[FFmpeg-devel] [PATCH v2 0/8] Merge lazy filter initialization in ffmpeg CLI

Michael Niedermayer michael at niedermayer.cc
Fri Feb 17 13:16:01 EET 2017


On Wed, Feb 15, 2017 at 07:57:17PM +0100, Michael Niedermayer wrote:
> On Wed, Feb 15, 2017 at 03:22:33PM +0100, Michael Niedermayer wrote:
> > On Wed, Feb 15, 2017 at 10:24:15AM +0100, wm4 wrote:
> > > These patches merge the previously skipped Libav commits, which made
> > > avconv lazily initialize libavfilter graphs. This means the filters
> > > are initialized with the actual output format, instead of whatever
> > > libavformat reports.
> > > 
> > > It's a prerequisite to making hardware decoding support saner, as
> > > hardware decoders will output a different pixfmt than the software
> > > format reported by libavformat. This can be seen on ffmpeg_qsv.c
> > > and ffmpeg_cuvid.c, which don't lose any functionality, even though
> > > half of the code is removed.
> > > 
> > > There are some differences in how ffmpeg.c and avconv.c filter-flow
> > > works. Also, avconv.c doesn't have sub2video. Relatively intrusive
> > > changes were required.
> > > 
> > > I plan to push this tomorrow, except if critical errors are found.
> > > 
> > > Anton Khirnov (4):
> > >   ffmpeg: do packet ts rescaling in write_packet()
> > >   ffmpeg: init filtergraphs only after we have a frame on each input
> > >   ffmpeg: move flushing the queued frames to configure_filtergraph()
> > >   ffmpeg: restructure sending EOF to filters
> > > 
> > > Timo Rothenpieler (2):
> > >   ffmpeg_cuvid: adapt for recent filter graph initialization changes
> > >   avcodec/cuvid: update hw_frames_ctx reference after get_format call
> > > 
> > > wm4 (2):
> > >   ffmpeg: make sure packets put into the muxing FIFO are refcounted
> > >   ffmpeg: fix printing of filter input/output names
> > 
> > breaks: (Application provided invalid, non monotonically increasing dts to muxer in stream 1: 1824120 >= 70020)
> > 
> > ./ffmpeg -skip_frame nokey -ss 20  -i ~/tickets/2024/dvbsubtest.ts -qscale 2  -scodec dvbsub -t 6   -an file.ts
> 
> heres another issue:
> 
> ./ffmpeg -i ~/tickets/3015/test_video -filter:a apad -f flv -vcodec flv -ar 22050 -shortest file.flv
> 
> the output files looses a audio stream

also it seems this patchset does not fix all the previously reported
isssues, tickets/1726/Mono.thd is still broken

and the patchset causes crashes, sadly it seems not with any public
files i could find but heres a backtrace
==11848== Invalid read of size 8
==11848==    at 0x4714B1: av_buffersink_get_frame_rate (buffersink.c:193)
==11848==    by 0x435ADB: init_output_stream_encode (ffmpeg.c:3207)
==11848==    by 0x43641C: init_output_stream (ffmpeg.c:3339)
==11848==    by 0x42E4DB: reap_filters (ffmpeg.c:1428)
==11848==    by 0x43A9CC: transcode_step (ffmpeg.c:4442)
==11848==    by 0x43AAB0: transcode (ffmpeg.c:4486)
==11848==    by 0x43B285: main (ffmpeg.c:4691)
==11848==  Address 0x8 is not stack'd, malloc'd or (recently) free'd

If this backtrace is not sufficient i can share the file privatly
with someone who wants to work on fixing this

It also may make sense to test this patchset with a fuzzer, i did not
try that.


[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Into a blind darkness they enter who follow after the Ignorance,
they as if into a greater darkness enter who devote themselves
to the Knowledge alone. -- Isha Upanishad
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20170217/2b656966/attachment.sig>


More information about the ffmpeg-devel mailing list