dump_extra: Don't add extradata if it already exists
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Sat, 13 Jul 2019 02:55:50 +0000 (04:55 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Sun, 14 Jul 2019 20:17:43 +0000 (22:17 +0200)
commit3469cfab4adb242fa2116f4858f0768cec400afa
treeae5396f06ba149258bd8ada77054172bccaebbc0
parent97698b15a2b5cfc4632ee89d8c53137a41b3752c
dump_extra: Don't add extradata if it already exists

The dump_extra bitstream filter currently simply adds the extradata to
the packets indicated by the user without checking whether said
extradata already exists in the packets. Besides wasting space
duplicated extradata in the same packet/access unit is also forbidden
for some codecs, e.g. MPEG-2.

This check has been added to be able to use the mpeg2_qsv encoder (which
only adds the sequence headers to the first packet) in broadcast
scenarios where repeating sequence headers are required.

The check used here is not perfect: E.g. dump_extra would add the
extradata to a H.264 access unit consisting of an access unit delimiter,
SPS, PPS and slices.

Fixes #8007.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
doc/bitstream_filters.texi
libavcodec/dump_extradata_bsf.c