ffmpeg: switch to the new BSF API
authorClément Bœsch <clement@stupeflix.com>
Wed, 21 Sep 2016 13:39:16 +0000 (15:39 +0200)
committerJames Almer <jamrial@gmail.com>
Sat, 24 Sep 2016 17:25:53 +0000 (14:25 -0300)
commit5ef19590802f000299e418143fc2301e3f43affe
tree327fdd757e3aadc3ddf1a04ceb55364d47d31dac
parent159aa1275e5d9c94edc313a51d65220e887d790b
ffmpeg: switch to the new BSF API

This commit is initially largely based on commit 4426540 from Anton
Khirnov <anton@khirnov.net> and two following fixes (80fb19b and
fe7b21c) which were previously skipped respectively in 98e3153c9ee36e,
and 7fe7cdc.

mpeg4-bsf-unpack-bframes FATE reference is updated because the bsf
filter now actually fixes the extradata (mpeg4_unpack_bframes_init()
changing one byte is now honored on the output extradata).

The FATE references for remove_extra change because the packet flags
were wrong and the keyframes weren't marked, causing the bsf relying on
these proprieties to not actually work as intended.

The following was fixed by James Almer:

The filter option arguments are now also parsed correctly.

A hack to propagate extradata changed by bitstream filters after the
first av_bsf_receive_packet() call is added to maintain the current
behavior. This was previously done by av_bitstream_filter_filter() and
is needed for the aac_adtstoasc bsf.

The exit_on_error was not being checked anymore, and led to an exit
error in the last frame of h264_mp4toannexb test. Restoring this
behaviour prevents erroring out. The test is still changed as a result
due to the badly filtered frame now not being written after the failure.

Signed-off-by: Clément Bœsch <u@pkh.me>
Signed-off-by: James Almer <jamrial@gmail.com>
cmdutils.c
ffmpeg.c
ffmpeg.h
ffmpeg_opt.c
tests/ref/fate/ffmpeg-bsf-remove-k
tests/ref/fate/ffmpeg-bsf-remove-r
tests/ref/fate/h264_mp4toannexb_ticket2991
tests/ref/fate/mpeg4-bsf-unpack-bframes