h264: fix direct temporal mvs for bottom-field-first poc order.
authorRonald S. Bultje <rsbultje@gmail.com>
Sat, 12 Jul 2014 22:38:13 +0000 (18:38 -0400)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 13 Jul 2014 11:26:19 +0000 (13:26 +0200)
Fixes http://forum.doom9.org/showthread.php?t=170867.
Fixes: corrupt-1677.mkv

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/h264_direct.c

index 3cc5f85..b83a279 100644 (file)
@@ -48,7 +48,9 @@ static int get_scale_factor(H264Context * const h, int poc, int poc1, int i){
 }
 
 void ff_h264_direct_dist_scale_factor(H264Context * const h){
-    const int poc = h->cur_pic_ptr->field_poc[h->picture_structure == PICT_BOTTOM_FIELD];
+    const int poc = h->picture_structure == PICT_FRAME ?
+        h->cur_pic_ptr->poc :
+        h->cur_pic_ptr->field_poc[h->picture_structure == PICT_BOTTOM_FIELD];
     const int poc1 = h->ref_list[1][0].poc;
     int i, field;