diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2003-05-16 19:18:53 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2003-05-16 19:18:53 +0000 |
commit | 377ec88802f2023b8091954f880f94b0d5b49a98 (patch) | |
tree | 32a29769e9db2b688677cf858750df26b467fa76 /libavcodec | |
parent | 4c701ac80d528745090406e6dbd407b8343bffd6 (diff) | |
download | ffmpeg-streaming-377ec88802f2023b8091954f880f94b0d5b49a98.zip ffmpeg-streaming-377ec88802f2023b8091954f880f94b0d5b49a98.tar.gz |
bigendian fix
Originally committed as revision 1887 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/h264.c | 18 | ||||
-rw-r--r-- | libavcodec/svq3.c | 2 |
2 files changed, 14 insertions, 6 deletions
diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 62550f9..1d886c5 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -297,6 +297,14 @@ static VLC run7_vlc; static void svq3_luma_dc_dequant_idct_c(DCTELEM *block, int qp); static void svq3_add_idct_c(uint8_t *dst, DCTELEM *block, int stride, int qp, int dc); +static inline uint32_t pack16to32(int a, int b){ +#ifdef WORDS_BIGENDIAN + return (b&0xFFFF) + (a<<16); +#else + return (a&0xFFFF) + (b<<16); +#endif +} + /** * fill a rectangle. * @param h height of the recatangle, should be a constant @@ -3226,7 +3234,7 @@ static int decode_mb(H264Context *h){ fill_caches(h, mb_type); //FIXME check what is needed and what not ... pred_pskip_motion(h, &mx, &my); fill_rectangle(&h->ref_cache[0][scan8[0]], 4, 4, 8, 0, 1); - fill_rectangle( h->mv_cache[0][scan8[0]], 4, 4, 8, (mx&0xFFFF)+(my<<16), 4); + fill_rectangle( h->mv_cache[0][scan8[0]], 4, 4, 8, pack16to32(mx,my), 4); write_back_motion(h, mb_type); s->current_picture.mb_type[mb_xy]= mb_type; //FIXME SKIP type @@ -3456,7 +3464,7 @@ decode_intra_mb: my += get_se_golomb(&s->gb); tprintf("final mv:%d %d\n", mx, my); - fill_rectangle(h->mv_cache[list][ scan8[0] ], 4, 4, 8, (mx&0xFFFF) + (my<<16), 4); + fill_rectangle(h->mv_cache[list][ scan8[0] ], 4, 4, 8, pack16to32(mx,my), 4); } } } @@ -3479,7 +3487,7 @@ decode_intra_mb: my += get_se_golomb(&s->gb); tprintf("final mv:%d %d\n", mx, my); - fill_rectangle(h->mv_cache[list][ scan8[0] + 16*i ], 4, 2, 8, (mx&0xFFFF) + (my<<16), 4); + fill_rectangle(h->mv_cache[list][ scan8[0] + 16*i ], 4, 2, 8, pack16to32(mx,my), 4); } } } @@ -3503,7 +3511,7 @@ decode_intra_mb: my += get_se_golomb(&s->gb); tprintf("final mv:%d %d\n", mx, my); - fill_rectangle(h->mv_cache[list][ scan8[0] + 2*i ], 2, 4, 8, (mx&0xFFFF) + (my<<16), 4); + fill_rectangle(h->mv_cache[list][ scan8[0] + 2*i ], 2, 4, 8, pack16to32(mx,my), 4); } } } @@ -3999,7 +4007,7 @@ static int decode_nal_units(H264Context *h, uint8_t *buf, int buf_size){ AVCodecContext * const avctx= s->avctx; int buf_index=0; int i; -#if 0 +#if 0 for(i=0; i<32; i++){ printf("%X ", buf[i]); } diff --git a/libavcodec/svq3.c b/libavcodec/svq3.c index 767d638..e30fd72 100644 --- a/libavcodec/svq3.c +++ b/libavcodec/svq3.c @@ -438,7 +438,7 @@ static int svq3_decode_mb (H264Context *h, unsigned int mb_type) { } /* update mv_cache */ - fill_rectangle(h->mv_cache[0][scan8[k]], part_width>>2, part_height>>2, 8, (mx&0xFFFF)+(my<<16), 4); + fill_rectangle(h->mv_cache[0][scan8[k]], part_width>>2, part_height>>2, 8, pack16to32(mx,my), 4); } } |