Jerome GORIN: > - skip_bits1(&s->gb); /* freeze picture release off */ > + intra_flag = get_bits1(&s->gb); /* Intra 1 = I-frame, 0 = P-frame */ > > + if (intra_flag){ > + s->pict_type = AV_PICTURE_TYPE_I; > + }else{ > + s->pict_type = AV_PICTURE_TYPE_P; > + } > + > format = get_bits1(&s->gb); > > // only 2 formats possible > @@ -498,10 +504,8 @@ static int h261_decode_picture_header(H261DecContext *h) > if (skip_1stop_8data_bits(&s->gb) < 0) > return AVERROR_INVALIDDATA; > > - /* H.261 has no I-frames, but if we pass AV_PICTURE_TYPE_I for the first > - * frame, the codec crashes if it does not contain all I-blocks > - * (e.g. when a packet is lost). */ > - s->pict_type = AV_PICTURE_TYPE_P; > + > +
H.261 does not guarantee that a picture with the freeze picture release bit set is an actual keyframe; the macroblocks can nevertheless be inter coded (such a bitstream could cause a segfault with your patch because it tries to access references that aren't there). - Andreas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".