Print error message when true interlaced VC-1 frames are encountered

to inform user why decoder produces no output.

Originally committed as revision 20196 to svn://svn.ffmpeg.org/ffmpeg/trunk
release/0.6
Kostya Shishkov 15 years ago
parent 54eb4ae0a2
commit 9e553f7acc
  1. 6
      libavcodec/vc1.c
  2. 2
      libavcodec/vc1.h

@ -781,7 +781,11 @@ int vc1_parse_frame_header_adv(VC1Context *v, GetBitContext* gb)
if(v->interlace){ if(v->interlace){
v->fcm = decode012(gb); v->fcm = decode012(gb);
if(v->fcm) return -1; // interlaced frames/fields are not implemented if(v->fcm){
if(!v->warn_interlaced++)
av_log(v->s.avctx, AV_LOG_ERROR, "Interlaced frames/fields support is not implemented\n");
return -1;
}
} }
switch(get_unary(gb, 0, 4)) { switch(get_unary(gb, 0, 4)) {
case 0: case 0:

@ -312,6 +312,8 @@ typedef struct VC1Context{
uint8_t closed_entry; ///< Closed entry point flag (CLOSED_ENTRY syntax element) uint8_t closed_entry; ///< Closed entry point flag (CLOSED_ENTRY syntax element)
int parse_only; ///< Context is used within parser int parse_only; ///< Context is used within parser
int warn_interlaced;
} VC1Context; } VC1Context;
/** Find VC-1 marker in buffer /** Find VC-1 marker in buffer

Loading…
Cancel
Save