From 2b9be36ccc435082a04094f00a71de1068c2287c Mon Sep 17 00:00:00 2001 From: reimar Date: Wed, 31 Jan 2007 18:14:47 +0000 Subject: Swap palette on bigendian. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22094 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpcodecs/vd_ffmpeg.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'libmpcodecs') diff --git a/libmpcodecs/vd_ffmpeg.c b/libmpcodecs/vd_ffmpeg.c index 26eacd3ff1..2b993c4a93 100644 --- a/libmpcodecs/vd_ffmpeg.c +++ b/libmpcodecs/vd_ffmpeg.c @@ -717,6 +717,12 @@ typedef struct dp_hdr_s { uint32_t chunktab; // offset to chunk offset array } dp_hdr_t; +void swap_palette(void *pal) { + int i; + uint32_t *p = pal; + for (i = 0; i < AVPALETTE_COUNT; i++) + p[i] = le2me_32(p[i]); +} // decode a frame static mp_image_t* decode(sh_video_t *sh,void* data,int len,int flags){ @@ -884,6 +890,11 @@ static mp_image_t* decode(sh_video_t *sh,void* data,int len,int flags){ mpi->stride[2]*=2; } +#ifdef WORDS_BIGENDIAN + // FIXME: this might cause problems for buffers with FF_BUFFER_HINTS_PRESERVE + if (mpi->bpp == 8) + swap_palette(mpi->planes[1]); +#endif /* to comfirm with newer lavc style */ mpi->qscale =pic->qscale_table; mpi->qstride=pic->qstride; -- cgit v1.2.3