avformat/mpegtsenc: correct bitstream check

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
release/7.0
Gyan Doshi 11 months ago
parent aca7037e01
commit f5441e441f
  1. 2
      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;

Loading…
Cancel
Save