diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2011-11-21 02:03:13 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-11-21 02:18:47 +0100 |
commit | 833a195905405fc9646c7544ce9d0f3279608977 (patch) | |
tree | 9394fb0cdcccb9658bcec64418c97337506da253 /libavcodec | |
parent | d2e0a6dd64bc323abdaf320aeef3cbad010d2166 (diff) | |
download | ffmpeg-833a195905405fc9646c7544ce9d0f3279608977.tar.gz |
h264: Fix invalid interlaced progressive MB combinations for direct mode prediction.
Fixes Ticket312
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/h264_direct.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libavcodec/h264_direct.c b/libavcodec/h264_direct.c index 453199d540..079c665509 100644 --- a/libavcodec/h264_direct.c +++ b/libavcodec/h264_direct.c @@ -253,6 +253,10 @@ static void pred_spatial_direct_motion(H264Context * const h, int *mb_type){ mb_type_col[1] = h->ref_list[1][0].f.mb_type[mb_xy + s->mb_stride]; b8_stride = 2+4*s->mb_stride; b4_stride *= 6; + if(IS_INTERLACED(mb_type_col[0]) != IS_INTERLACED(mb_type_col[1])){ + mb_type_col[0] &= ~MB_TYPE_INTERLACED; + mb_type_col[1] &= ~MB_TYPE_INTERLACED; + } sub_mb_type |= MB_TYPE_16x16|MB_TYPE_DIRECT2; /* B_SUB_8x8 */ if( (mb_type_col[0] & MB_TYPE_16x16_OR_INTRA) |