aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorAlexander Strange <astrange@ithinksw.com>2010-01-25 01:56:13 +0000
committerAlexander Strange <astrange@ithinksw.com>2010-01-25 01:56:13 +0000
commit1e4f1c56d7f13a1425d6c8b1f2edb3194e295482 (patch)
tree72c44a0be65b15bdad64ccb634fa6f09caf14943 /libavcodec
parent9104cd5161ec7cb31361f3dabd73a8a813d4f7d0 (diff)
downloadffmpeg-1e4f1c56d7f13a1425d6c8b1f2edb3194e295482.tar.gz
100l, correct wrong H.264+adaptive MBAFF decoding
Fixes several FATE tests. Originally committed as revision 21445 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/h264.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index e07cd2ef22..2de6f6ccc4 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -987,8 +987,8 @@ static inline void xchg_mb_border(H264Context *h, uint8_t *src_y, uint8_t *src_c
int deblock_top;
int mb_xy;
int top_idx = 1;
- uint8_t *top_border_m1 = h->top_borders[top_idx][s->mb_x-1];
- uint8_t *top_border = h->top_borders[top_idx][s->mb_x];
+ uint8_t *top_border_m1;
+ uint8_t *top_border;
if(!simple && FRAME_MBAFF){
if(s->mb_y&1){
@@ -1012,6 +1012,9 @@ static inline void xchg_mb_border(H264Context *h, uint8_t *src_y, uint8_t *src_c
src_cb -= uvlinesize + 1;
src_cr -= uvlinesize + 1;
+ top_border_m1 = h->top_borders[top_idx][s->mb_x-1];
+ top_border = h->top_borders[top_idx][s->mb_x];
+
#define XCHG(a,b,xchg)\
if (xchg) AV_SWAP64(b,a);\
else AV_COPY64(b,a);