From 6952f12338a947a048a5cd5ca553aad4269aa7f3 Mon Sep 17 00:00:00 2001 From: Mike Melanson Date: Thu, 4 Dec 2003 14:14:43 +0000 Subject: [PATCH] this should make the decoder safe for big-endian platforms Originally committed as revision 2560 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/truemotion1.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/libavcodec/truemotion1.c b/libavcodec/truemotion1.c index 7f5fafea0a..ebd0ad5229 100644 --- a/libavcodec/truemotion1.c +++ b/libavcodec/truemotion1.c @@ -164,7 +164,11 @@ static void select_delta_tables(TrueMotion1Context *s, int delta_table_index) } } +#ifdef WORDS_BIGENDIAN +static int make_ydt_entry(int p2, int p1, int16_t *ydt) +#else static int make_ydt_entry(int p1, int p2, int16_t *ydt) +#endif { int lo, hi; @@ -175,7 +179,11 @@ static int make_ydt_entry(int p1, int p2, int16_t *ydt) return ((lo + (hi << 16)) << 1); } +#ifdef WORDS_BIGENDIAN +static int make_cdt_entry(int p2, int p1, int16_t *cdt) +#else static int make_cdt_entry(int p1, int p2, int16_t *cdt) +#endif { int r, b, lo; @@ -438,8 +446,7 @@ static void truemotion1_decode_16bit(TrueMotion1Context *s) case 0: /* if macroblock width is 2, apply C-Y-C-Y; else * apply C-Y-Y */ - if ((s->block_type == BLOCK_2x2) || - (s->block_type == BLOCK_2x4)) { + if (s->block_width == 2) { APPLY_C_PREDICTOR(); APPLY_Y_PREDICTOR(); OUTPUT_PIXEL_PAIR(); -- GitLab