On Mon, Jul 17, 2017 at 3:19 PM, Nicolas George <geo...@nsup.org> wrote: > > Signed-off-by: Nicolas George <geo...@nsup.org> > --- > libavfilter/Makefile | 4 ++-- > libavfilter/vf_stack.c | 32 +++++++++++++------------------- > 2 files changed, 15 insertions(+), 21 deletions(-) > > > Works as expected. Including shortest. > And no longer subject to bufferqueue overflows.
Gentlemen, I am sorry to report that this particular patch to lavfi/vf_stack.c breaks FFmpeg on-screen output when a vertical stack (vstack) follows a horizontal stack (hstack). Below, please find a chain to -filter_complex, cut down from a much more complex chain, that reproduces the problem. FFmpeg here is compiled for Windows using mingw-w64 tool chain on Bash for Windows. I usually make this up nearly every day without incident. At commit 4e0e9ce2dc67a94c98d40a46e91fe5aa53ad0376 ("lavfi/framesync2: implement "activate" design"), the following script downloads an audio stream, and successfully produces three visual representations using FFmpeg filters, output to the 'SDL' device. 'opengl' also works. In this script, the avectorscope and showfreqs filters are horizontally stacked; then this combination is stacked vertically with an output from the ebur128 filter. ffmpeg -v debug -i 'http://s3.yesstreaming.net:7001/;stream/' -filter_complex "[a0]asplit=3[a][b][c]; [a]avectorscope=size=512x512[z]; [b]showfreqs[y]; [z][y]hstack[n]; [c]ebur128=video=1[d][e]; [d]scale=1536:512[g]; [n][g]vstack; [e]anullsink" -f SDL Test But once the patch to lavfi_vf_stack is applied, at commit 0dd8320e16bcdbe6b928e99489cf47abd16d3255, the same script results in a blank, white display window using the SDL device, and a blank black window using opengl. The text output from the ebur128 filter stops after one line. Merely applying a single hstack or vstack works: but the two together fail after this point: https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/0dd8320e16bcdbe6b928e99489cf47abd16d3255 ("lavfi/vf_stack: move to "activate" design") Furthermore, compiling from today's git master but reversing ONLY the above patch to vf_stack.c also results in a working FFmpeg when given the above test case. Both debug outputs from the parser are identical: [Parsed_asplit_0 @ 0000022917a3eb60] Setting 'outputs' to value '3' [Parsed_avectorscope_1 @ 0000022917a3e9c0] Setting 'size' to value '512x512' [Parsed_ebur128_4 @ 0000022917a3ec20] Setting 'video' to value '1' [Parsed_ebur128_4 @ 0000022917a3ec20] EBU +9 scale [Parsed_scale_5 @ 0000022917a3e820] Setting 'w' to value '1536' [Parsed_scale_5 @ 0000022917a3e820] Setting 'h' to value '512' [Parsed_scale_5 @ 0000022917a3e820] w:1536 h:512 flags:'bilinear' interl:0 [graph_0_in_0_0 @ 0000022917a3f2a0] Setting 'time_base' to value '1/44100' [graph_0_in_0_0 @ 0000022917a3f2a0] Setting 'sample_rate' to value '44100' [graph_0_in_0_0 @ 0000022917a3f2a0] Setting 'sample_fmt' to value 's16p' [graph_0_in_0_0 @ 0000022917a3f2a0] Setting 'channel_layout' to value '0x3' [graph_0_in_0_0 @ 0000022917a3f2a0] tb:1/44100 samplefmt:s16p samplerate:44100 chlayout:0x3 [Parsed_avectorscope_1 @ 0000022917a3e9c0] auto-inserting filter 'auto_resampler_0' between the filter 'Parsed_asplit_0' and the filter 'Parsed_avectorscope_1' [Parsed_showfreqs_2 @ 0000022917a3e740] auto-inserting filter 'auto_resampler_1' between the filter 'Parsed_asplit_0' and the filter 'Parsed_showfreqs_2' [Parsed_ebur128_4 @ 0000022917a3ec20] auto-inserting filter 'auto_resampler_2' between the filter 'Parsed_asplit_0' and the filter 'Parsed_ebur128_4' [AVFilterGraph @ 0000022917a3d540] query_formats: 10 queried, 12 merged, 9 already done, 0 delayed [auto_resampler_0 @ 0000022917a3e8e0] picking s16 out of 2 ref:s16p [auto_resampler_2 @ 0000022917a3f440] [SWR @ 0000022917f34f80] Using fltp internally between filters [auto_resampler_2 @ 0000022917a3f440] ch:2 chl:stereo fmt:s16p r:44100Hz -> ch:2 chl:stereo fmt:dbl r:48000Hz [auto_resampler_0 @ 0000022917a3e8e0] [SWR @ 0000022917a894c0] Using s16p internally between filters [auto_resampler_0 @ 0000022917a3e8e0] ch:2 chl:stereo fmt:s16p r:44100Hz -> ch:2 chl:stereo fmt:s16 r:44100Hz [auto_resampler_1 @ 0000022917a3ea80] [SWR @ 0000022917f1ffc0] Using s16p internally between filters [auto_resampler_1 @ 0000022917a3ea80] ch:2 chl:stereo fmt:s16p r:44100Hz -> ch:2 chl:stereo fmt:fltp r:44100Hz [Parsed_hstack_3 @ 0000022917a3f1e0] [framesync @ 0000022917a2e608] Selected 1/44100 time base [Parsed_hstack_3 @ 0000022917a3f1e0] [framesync @ 0000022917a2e608] Sync level 1 [swscaler @ 0000022918081100] Forcing full internal H chroma due to input having non subsampled chroma [Parsed_scale_5 @ 0000022917a3e820] w:640 h:480 fmt:rgb24 sar:1/1 -> w:1536 h:512 fmt:rgba sar:4/9 flags:0x2 [Parsed_vstack_6 @ 0000022917a3ed00] [framesync @ 00000229177dd5c8] Selected 1/1000000 time base [Parsed_vstack_6 @ 0000022917a3ed00] [framesync @ 00000229177dd5c8] Sync level 1 [sdl,sdl2 @ 0000022917a4df40] w:1536 h:1024 fmt:rgba -> w:1536 h:1024 I hope this information might be helpful to you. Kind regards, JW _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel