[FFmpeg-devel] [PATCH 6/8] avcodec/h264_redundant_pps_bsf: implement a AVBSFContext.flush() callback

Mark Thompson sw at jkqxz.net
Thu Aug 2 01:20:46 EEST 2018


On 28/07/18 22:59, Michael Niedermayer wrote:
> On Fri, Jul 27, 2018 at 11:57:47AM -0300, James Almer wrote:
>> Signed-off-by: James Almer <jamrial at gmail.com>
>> ---
>> I'm not 100% sure this is correct. I also don't know if the CBS contexts need
>> to be fully reinitialized or not in this scenario. Because if so, then every
>> bsf using cbs will require a flush() callback as well.
>>
>>  libavcodec/h264_redundant_pps_bsf.c | 9 +++++++++
>>  1 file changed, 9 insertions(+)
> 
> Do we have a fate test for this ?

No - I don't have a public file it applies to.  (I can share an example privately.)

> Also from a quick look, isnt this filter lacking checks ?
> it removes PPS but i see no check that these PPS differ only in the qp
> related parameters. Also doesnt this filter miss that there can be multiple
> PPS with different id#

The problematic streams repeatedly overwrite PPS id 0 with different parameters, and that's what we're fixing up here - using a stream like that in any case with global extradata fails on seeking or fragmenting.

> Maybe iam missing something and this is of course not about the
> patch at hand but it looks like this is a quite specific filter that
> cannot saftely be applied to h264 in general and if so this is not
> obvious from the documentation.

The documentation says the filter "applies a specific fixup to some Blu-ray streams", which implies that it doesn't apply to anything else?  Feel free to add some additional text which clarifies it to your reading if you don't agree.

Thanks,

- Mark


More information about the ffmpeg-devel mailing list