Marvin Scholz: > Instead of manually assembling the string, use av_dict_get_string > which handles things like proper escaping too (even though it is > not yet needed here). > --- > fftools/ffmpeg_filter.c | 31 +++++++++++++------------------ > 1 file changed, 13 insertions(+), 18 deletions(-) > > diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c > index b0c4c8ece3..29794fdc85 100644 > --- a/fftools/ffmpeg_filter.c > +++ b/fftools/ffmpeg_filter.c > @@ -972,7 +972,7 @@ int configure_filtergraph(FilterGraph *fg) > > if (simple) { > OutputStream *ost = fg->outputs[0]->ost; > - char args[512]; > + char *args = NULL; > const AVDictionaryEntry *e = NULL; > > if (filter_nbthreads) { > @@ -985,26 +985,21 @@ int configure_filtergraph(FilterGraph *fg) > av_opt_set(fg->graph, "threads", e->value, 0); > } > > - args[0] = 0; > - e = NULL; > - while ((e = av_dict_get(ost->sws_dict, "", e, > - AV_DICT_IGNORE_SUFFIX))) { > - av_strlcatf(args, sizeof(args), "%s=%s:", e->key, e->value); > - } > - if (strlen(args)) { > - args[strlen(args)-1] = 0; > - fg->graph->scale_sws_opts = av_strdup(args); > + if (av_dict_count(ost->sws_dict)) { > + ret = av_dict_get_string(ost->sws_dict, &args, '=', ':'); > + if (ret < 0) > + goto fail; > + fg->graph->scale_sws_opts = args; > + args = NULL;
It would be cleaner if you used a smaller scope for args (here and below); or maybe just eliminate this variable here entirely by using &fg->graph->scale_sws_opts as destination for av_dict_get_string()? > } > > - args[0] = 0; > - e = NULL; > - while ((e = av_dict_get(ost->swr_opts, "", e, > - AV_DICT_IGNORE_SUFFIX))) { > - av_strlcatf(args, sizeof(args), "%s=%s:", e->key, e->value); > + if (av_dict_count(ost->swr_opts)) { > + ret = av_dict_get_string(ost->swr_opts, &args, '=', ':'); > + if (ret < 0) > + goto fail; > + av_opt_set(fg->graph, "aresample_swr_opts", args, 0); > + free(args); Wrong deallocator. > } > - if (strlen(args)) > - args[strlen(args)-1] = 0; > - av_opt_set(fg->graph, "aresample_swr_opts", args, 0); > } else { > fg->graph->nb_threads = filter_complex_nbthreads; > } _______________________________________________ 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".