summaryrefslogtreecommitdiffstats
path: root/xbmc/utils/EndianSwap.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--xbmc/utils/EndianSwap.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/xbmc/utils/EndianSwap.cpp b/xbmc/utils/EndianSwap.cpp
new file mode 100644
index 0000000..3f645d9
--- /dev/null
+++ b/xbmc/utils/EndianSwap.cpp
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2012-2018 Team Kodi
+ * This file is part of Kodi - https://kodi.tv
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ * See LICENSES/README.md for more information.
+ */
+
+#include "EndianSwap.h"
+
+/* based on libavformat/spdif.c */
+void Endian_Swap16_buf(uint16_t *dst, uint16_t *src, int w)
+{
+ int i;
+
+ for (i = 0; i + 8 <= w; i += 8) {
+ dst[i + 0] = Endian_Swap16(src[i + 0]);
+ dst[i + 1] = Endian_Swap16(src[i + 1]);
+ dst[i + 2] = Endian_Swap16(src[i + 2]);
+ dst[i + 3] = Endian_Swap16(src[i + 3]);
+ dst[i + 4] = Endian_Swap16(src[i + 4]);
+ dst[i + 5] = Endian_Swap16(src[i + 5]);
+ dst[i + 6] = Endian_Swap16(src[i + 6]);
+ dst[i + 7] = Endian_Swap16(src[i + 7]);
+ }
+
+ for (; i < w; i++)
+ dst[i + 0] = Endian_Swap16(src[i + 0]);
+}
+