[FFmpeg-trac] #7620(avformat:new): avformat/tee: tee muxer with fifo incorrectly parse bsfs options

FFmpeg trac at avcodec.org
Sun Dec 16 18:02:18 EET 2018


#7620: avformat/tee: tee muxer with fifo incorrectly parse bsfs options
----------------------------------+---------------------------------------
             Reporter:  caspy     |                     Type:  defect
               Status:  new       |                 Priority:  normal
            Component:  avformat  |                  Version:  unspecified
             Keywords:  tee fifo  |               Blocked By:
             Blocking:            |  Reproduced by developer:  0
Analyzed by developer:  0         |
----------------------------------+---------------------------------------
 Summary of the bug:
 if tee muxer used with fifo muxer (use_fifo=1) it incorrectly parse/handle
 bsfs options.

 Simplified example to reproduce:
 {{{
 %ffmpeg -i in.mp4 -c copy -map 0 -f tee "[bsfs/v=h264_mp4toannexb]out.ts
 runs ok

 %ffmpeg -i in.mp4 -c copy -map 0 -f tee
 "[bsfs/v=h264_mp4toannexb:use_fifo=1]out.ts
 fails with:
 [mpegts @ 0x354ce40] Unknown option 'bsfs/v'
 [tee @ 0x34f5e80] All tee outputs failed.
 av_interleaved_write_frame(): Invalid argument

 }}}

 additional info:

 in libavformat/tee.c:
 in open_slave():
 {{{
     if (tee_slave->use_fifo) {
 ...
             ret = av_dict_get_string(options, &format_options_str, '=',
 ':');
             ret = av_dict_set(&tee_slave->fifo_options, "format_opts",
 format_options_str,
 ...
         av_dict_free(&options);
         options = tee_slave->fifo_options;
     }
 }}}
 we refill 'options', and move bsfs parts into 'format_opts'
 and later in this function this code:
     while (entry = av_dict_get(options, "bsfs", NULL,
 AV_DICT_IGNORE_SUFFIX)) {
 do not see bsfs options.

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


More information about the FFmpeg-trac mailing list