Fix VC-1 playback with pulldown content
authorAlexandre Colucci <alexandre@elgato.com>
Mon, 4 Apr 2011 13:08:50 +0000 (15:08 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 4 Apr 2011 13:35:03 +0000 (15:35 +0200)
The attached patch fixes the jerky playback of VC-1 content with pulldown. The pulldown flags were incorrectly set. They must be correct in order to display the frames with the correct timing as mentioned in the specifications: "SMPTE 421M: VC-1 Compressed Video Bitstream Format and Decoding Process". More precisely the following tables:

Table 20: Progressive P picture layer bitstream for Advanced Profile
Table 22: Progressive B picture layer bitstream for Advanced Profile
Table 23: Progressive Skipped picture layer bitstream for Advanced Profile
Table 82: Interlaced Frame I and BI picture layer bitstream for Advanced Profile
Table 83: Interlaced Frame P picture layer bitstream for Advanced Profile
Table 84: Interlaced Frame B picture layer bitstream for Advanced Profile
Table 85: Picture Layer bitstream for Field 1 of Interlace Field Picture for Advanced Profile

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

index 1b77105..73f0cba 100644 (file)
@@ -859,7 +859,7 @@ int vc1_parse_frame_header_adv(VC1Context *v, GetBitContext* gb)
             v->rptfrm = get_bits(gb, 2);
         } else {
             v->tff = get_bits1(gb);
-            v->rptfrm = get_bits1(gb);
+            v->rff = get_bits1(gb);
         }
     }
     if(v->panscanflag) {