summaryrefslogtreecommitdiffstats
path: root/libmpcodecs
diff options
context:
space:
mode:
authorsiretart <siretart@b3059339-0415-0410-9bf9-f77b7e298cf2>2010-06-01 21:07:02 +0000
committersiretart <siretart@b3059339-0415-0410-9bf9-f77b7e298cf2>2010-06-01 21:07:02 +0000
commit1cbf1ec46835300d1226068487b90476aff73ce8 (patch)
treee75c066a2663cb1716b7572d30fe407cad9a771f /libmpcodecs
parent988b04eb2d20178c534236a431f74825bddb5cdc (diff)
downloadmpv-1cbf1ec46835300d1226068487b90476aff73ce8.tar.bz2
mpv-1cbf1ec46835300d1226068487b90476aff73ce8.tar.xz
avoid using swscale internals by copying in palette8torbg16 and its bgr variant
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31303 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpcodecs')
-rw-r--r--libmpcodecs/vf_palette.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/libmpcodecs/vf_palette.c b/libmpcodecs/vf_palette.c
index 918e32cacb..c7db300396 100644
--- a/libmpcodecs/vf_palette.c
+++ b/libmpcodecs/vf_palette.c
@@ -28,9 +28,9 @@
#include "img_format.h"
#include "mp_image.h"
#include "vf.h"
+#include "mpbswap.h"
#include "libswscale/swscale.h"
-#include "libswscale/rgb2rgb.h"
//===========================================================================//
@@ -53,6 +53,23 @@ static const unsigned int rgb_list[]={
0
};
+/**
+ * Palette is assumed to contain BGR16, see rgb32to16 to convert the palette.
+ */
+static void palette8torgb16(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette)
+{
+ long i;
+ for (i=0; i<num_pixels; i++)
+ ((uint16_t *)dst)[i] = ((const uint16_t *)palette)[src[i]];
+}
+
+static void palette8tobgr16(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette)
+{
+ long i;
+ for (i=0; i<num_pixels; i++)
+ ((uint16_t *)dst)[i] = bswap_16(((const uint16_t *)palette)[src[i]]);
+}
+
static unsigned int gray_pal[256];
static unsigned int find_best(struct vf_instance *vf, unsigned int fmt){