if ((ret = ff_vc1_decode_sequence_header(avctx, v, &gb)) < 0)
return ret;
+ if (avctx->codec_id == AV_CODEC_ID_WMV3IMAGE && !v->res_sprite) {
+ avpriv_request_sample(avctx, "Non sprite WMV3IMAGE");
+ return AVERROR_PATCHWELCOME;
+ }
+
count = avctx->extradata_size*8 - get_bits_count(&gb);
if (count > 0) {
av_log(avctx, AV_LOG_INFO, "Extra data: %i bits left, value: %X\n",
av_log(v->s.avctx, AV_LOG_ERROR, "end mb y %d %d invalid\n", s->end_mb_y, s->start_mb_y);
continue;
}
- if (!v->p_frame_skipped && s->pict_type != AV_PICTURE_TYPE_I && !v->cbpcy_vlc) {
+ if (((s->pict_type == AV_PICTURE_TYPE_P && !v->p_frame_skipped) ||
+ (s->pict_type == AV_PICTURE_TYPE_B && !v->bi_type)) &&
+ !v->cbpcy_vlc) {
av_log(v->s.avctx, AV_LOG_ERROR, "missing cbpcy_vlc\n");
continue;
}