[FFmpeg-devel] [PATCH] avformat/mpegtsenc: correct bitstream check

Marton Balint cus at passwd.hu
Sat Mar 16 10:32:17 EET 2024



On Sat, 16 Mar 2024, Gyan Doshi wrote:

> 8559cce3c3 made the bitstream check generic using a LUT.
> However, one of the comparisons which involves a bitwise AND
> and equality check is faulty due to operator precedence.
>
> First reported and analysed at
> https://github.com/streamlink/streamlink/issues/5876
>
> Fixes #10908
> ---
> libavformat/mpegtsenc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c
> index 06e88e9879..b8efc535a7 100644
> --- a/libavformat/mpegtsenc.c
> +++ b/libavformat/mpegtsenc.c
> @@ -2319,7 +2319,7 @@ static int mpegts_check_bitstream(AVFormatContext *s, AVStream *st,
>                 pkt->size >= 5 && AV_RB32(pkt->data) != 0x0000001 &&
>                 (AV_RB24(pkt->data) != 0x000001 ||
>                     (st->codecpar->extradata_size > 0 &&
> -                        (st->codecpar->extradata[0] & e->mask == e->value))))
> +                        ((st->codecpar->extradata[0] & e->mask) == e->value))))
>             return ff_stream_add_bitstream_filter(st, e->bsf_name, NULL);
>     }
>     return 1;
> --

LGTM, thanks.

Marton


More information about the ffmpeg-devel mailing list