On Sat, 12 Oct 2019, 06:57 Steven Liu, <l...@chinaffmpeg.org> wrote: > > > > 在 2019年10月9日,01:51,Dennis Mungai <dmng...@gmail.com> 写道: > > > > On Tue, 8 Oct 2019 at 08:53, Steven Liu <l...@chinaffmpeg.org> wrote: > >> > >> > >> > >>> 在 2019年10月8日,05:54,Dennis Mungai <dmng...@gmail.com> 写道: > >>> > >>> On Mon, 7 Oct 2019 at 08:26, Liu Steven <l...@chinaffmpeg.org> wrote: > >>>> > >>>> > >>>> > >>>>> 在 2019年10月6日,上午11:37,Jun Li <junli1...@gmail.com> 写道: > >>>>> > >>>>> Fix #7620 > >>>>> In the case tee muxer with both "bsf" and "use_fifo" parameters > >>>>> wil trigger this bug. Tee muxer will first steal parameters (like > "f", > >>>>> "select"...) and then "use_fifo" will try reading out remaining > options > >>>>> and pass them to fifo as option "format_options". > >>>>> Current code miss the part of stealing "bsf" options. > >>>>> --- > >>>>> libavformat/tee.c | 12 +++++++++--- > >>>>> 1 file changed, 9 insertions(+), 3 deletions(-) > >>>>> > >>>>> diff --git a/libavformat/tee.c b/libavformat/tee.c > >>>>> index 89a4ceb280..3530582dbd 100644 > >>>>> --- a/libavformat/tee.c > >>>>> +++ b/libavformat/tee.c > >>>>> @@ -159,7 +159,7 @@ static void close_slaves(AVFormatContext *avf) > >>>>> static int open_slave(AVFormatContext *avf, char *slave, TeeSlave > *tee_slave) > >>>>> { > >>>>> int i, ret; > >>>>> - AVDictionary *options = NULL; > >>>>> + AVDictionary *options = NULL, *bsf_options = NULL; > >>>>> AVDictionaryEntry *entry; > >>>>> char *filename; > >>>>> char *format = NULL, *select = NULL, *on_fail = NULL; > >>>>> @@ -186,6 +186,11 @@ static int open_slave(AVFormatContext *avf, > char *slave, TeeSlave *tee_slave) > >>>>> STEAL_OPTION("onfail", on_fail); > >>>>> STEAL_OPTION("use_fifo", use_fifo); > >>>>> STEAL_OPTION("fifo_options", fifo_options_str); > >>>>> + entry = NULL; > >>>>> + while ((entry = av_dict_get(options, "bsfs", entry, > AV_DICT_IGNORE_SUFFIX))) { > >>>>> + av_dict_set(&bsf_options, entry->key, entry->value, 0); > >>>>> + av_dict_set(&options, entry->key, NULL, 0); > >>>>> + } > >>>>> > >>>>> ret = parse_slave_failure_policy_option(on_fail, tee_slave); > >>>>> if (ret < 0) { > >>>>> @@ -311,7 +316,7 @@ static int open_slave(AVFormatContext *avf, char > *slave, TeeSlave *tee_slave) > >>>>> } > >>>>> > >>>>> entry = NULL; > >>>>> - while (entry = av_dict_get(options, "bsfs", NULL, > AV_DICT_IGNORE_SUFFIX)) { > >>>>> + while (entry = av_dict_get(bsf_options, "bsfs", NULL, > AV_DICT_IGNORE_SUFFIX)) { > >>>>> const char *spec = entry->key + strlen("bsfs"); > >>>>> if (*spec) { > >>>>> if (strspn(spec, slave_bsfs_spec_sep) != 1) { > >>>>> @@ -352,7 +357,7 @@ static int open_slave(AVFormatContext *avf, char > *slave, TeeSlave *tee_slave) > >>>>> } > >>>>> } > >>>>> > >>>>> - av_dict_set(&options, entry->key, NULL, 0); > >>>>> + av_dict_set(&bsf_options, entry->key, NULL, 0); > >>>>> } > >>>>> > >>>>> for (i = 0; i < avf->nb_streams; i++){ > >>>>> @@ -399,6 +404,7 @@ end: > >>>>> av_free(select); > >>>>> av_free(on_fail); > >>>>> av_dict_free(&options); > >>>>> + av_dict_free(&bsf_options); > >>>>> av_freep(&tmp_select); > >>>>> return ret; > >>>>> } > >>>>> -- > >>>>> 2.17.1 > >>>>> > >>>>> _______________________________________________ > >>>>> ffmpeg-devel mailing list > >>>>> ffmpeg-devel@ffmpeg.org > >>>>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > >>>>> > >>>>> To unsubscribe, visit link above, or email > >>>>> ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe”. > >>>> > >>>> should be ok > >>>> > >>>> > >>>> Thanks > >>>> Steven > >>>> > >>>> > >>>> > >>> Generating valid HLS + DASH streams using fragmented mp4 should be > >>> much easier now, thanks. > >> Do you mean much easier after this patch? > >>> _______________________________________________ > >>> ffmpeg-devel mailing list > >>> ffmpeg-devel@ffmpeg.org > >>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > >>> > >>> To unsubscribe, visit link above, or email > >>> ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". > >> > >> Thanks > >> Steven > > > > Yes, Steven. > > Previously, attempting to use fifo within the tee muxer with any BSF > > applied resulted in error. > > And this patch fixes that, allowing for fifo-enabled tee slaves to > > resume operations with BSFs in place. > Will push if there have no objections. > > > Thanks. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".