aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Melanson <mike@multimedia.cx>2003-12-04 14:14:43 +0000
committerMike Melanson <mike@multimedia.cx>2003-12-04 14:14:43 +0000
commit6952f12338a947a048a5cd5ca553aad4269aa7f3 (patch)
tree83fa855e8fe56da5f25bc52bc35c0afdc33ed744
parent9a197a24c634e4c0c4f02826f988c0ab8d0129c8 (diff)
downloadffmpeg-6952f12338a947a048a5cd5ca553aad4269aa7f3.tar.gz
this should make the decoder safe for big-endian platforms
Originally committed as revision 2560 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavcodec/truemotion1.c11
1 files 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();