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
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".