[FFmpeg-trac] #8634(avfilter:new): Unexpected filterchain behaviour

FFmpeg trac at avcodec.org
Sat Apr 25 13:10:58 EEST 2020


#8634: Unexpected filterchain behaviour
--------------------------------------+----------------------------------
               Reporter:  cehoyos     |                  Owner:
                   Type:  defect      |                 Status:  new
               Priority:  normal      |              Component:  avfilter
                Version:  git-master  |               Keywords:
             Blocked By:              |               Blocking:
Reproduced by developer:  0           |  Analyzed by developer:  0
--------------------------------------+----------------------------------
 Some filterchains do not terminate, they do terminate with minimal
 changes:
 {{{
 $ ffmpeg -f lavfi -i testsrc=d=10 -vf
 "split[a],select=eq(mod(n\,2)\,1)[b],[a]select=eq(mod(n\,2)\,0),[b]interleave"
 -f null -
 ffmpeg version N-97485-g6cfb33f976 Copyright (c) 2000-2020 the FFmpeg
 developers
   built with gcc 9 (SUSE Linux)
   configuration: --enable-gpl
   libavutil      56. 43.100 / 56. 43.100
   libavcodec     58. 82.100 / 58. 82.100
   libavformat    58. 42.101 / 58. 42.101
   libavdevice    58.  9.103 / 58.  9.103
   libavfilter     7. 79.100 /  7. 79.100
   libswscale      5.  6.101 /  5.  6.101
   libswresample   3.  6.100 /  3.  6.100
   libpostproc    55.  6.100 / 55.  6.100
 Input #0, lavfi, from 'testsrc=d=10':
   Duration: N/A, start: 0.000000, bitrate: N/A
     Stream #0:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 320x240
 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
 Stream mapping:
   Stream #0:0 -> #0:0 (rawvideo (native) -> wrapped_avframe (native))
 Press [q] to stop, [?] for help
 Output #0, null, to 'pipe:':
   Metadata:
     encoder         : Lavf58.42.101
     Stream #0:0: Video: wrapped_avframe, rgb24, 320x240 [SAR 1:1 DAR 4:3],
 q=2-31, 200 kb/s, 1000k tbn, 1000k tbc
     Metadata:
       encoder         : Lavc58.82.100 wrapped_avframe
 [Parsed_testsrc_0 @ 0x3d35780] EOF timestamp not reliable
 frame=  250 fps=0.0 q=-0.0 Lsize=N/A time=00:00:09.96 bitrate=N/A speed=
 197x
 video:131kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: unknown
 }}}
 (above does terminate)
 {{{
 $ ffmpeg -f lavfi -i testsrc=d=10 -vf
 "split[a],select=eq(mod(n\,2)\,0)[b],[a]select=eq(mod(n\,2)\,1),[b]interleave"
 -f null -
 ffmpeg version N-97485-g6cfb33f976 Copyright (c) 2000-2020 the FFmpeg
 developers
   built with gcc 9 (SUSE Linux)
   configuration: --enable-gpl
   libavutil      56. 43.100 / 56. 43.100
   libavcodec     58. 82.100 / 58. 82.100
   libavformat    58. 42.101 / 58. 42.101
   libavdevice    58.  9.103 / 58.  9.103
   libavfilter     7. 79.100 /  7. 79.100
   libswscale      5.  6.101 /  5.  6.101
   libswresample   3.  6.100 /  3.  6.100
   libpostproc    55.  6.100 / 55.  6.100
 Input #0, lavfi, from 'testsrc=d=10':
   Duration: N/A, start: 0.000000, bitrate: N/A
     Stream #0:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 320x240
 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
 Stream mapping:
   Stream #0:0 -> #0:0 (rawvideo (native) -> wrapped_avframe (native))
 Press [q] to stop, [?] for help
 Output #0, null, to 'pipe:':
   Metadata:
     encoder         : Lavf58.42.101
     Stream #0:0: Video: wrapped_avframe, rgb24, 320x240 [SAR 1:1 DAR 4:3],
 q=2-31, 200 kb/s, 1000k tbn, 1000k tbc
     Metadata:
       encoder         : Lavc58.82.100 wrapped_avframe
 [Parsed_testsrc_0 @ 0x3d95780] EOF timestamp not reliable
 frame=  249 fps= 92 q=-0.0 Lsize=N/A time=00:00:09.92 bitrate=N/A
 speed=3.65x
 }}}
 (above does not terminate, the only difference is that the select filters
 are exchanged)

 The difference is also visible if the duration of the input changed:
 {{{
 $ ffmpeg -f lavfi -i testsrc=d=10 -vf
 "split[a],select=eq(mod(n\,2)\,1)[b],[a]select=eq(mod(n\,2)\,0),[b]interleave"
 -f null -
 $ ffmpeg -f lavfi -i testsrc=d=11 -vf
 "split[a],select=eq(mod(n\,2)\,1)[b],[a]select=eq(mod(n\,2)\,0),[b]interleave"
 -f null -
 }}}
 The first command terminates, the second does not.

 Above command lines allow to reproduce the issue since f_interleave was
 switched to active.

--
Ticket URL: <https://trac.ffmpeg.org/ticket/8634>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list