On Fri, 1 May 2020, Marton Balint wrote:
On Sun, 26 Apr 2020, James Almer wrote:
On 4/25/2020 3:55 PM, Marton Balint wrote:
Signed-off-by: Marton Balint <c...@passwd.hu>
---
fftools/ffmpeg_opt.c | 57
+++-------------------------------------------------
1 file changed, 3 insertions(+), 54 deletions(-)
diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c
index b52aa28626..dc42fb19d6 100644
--- a/fftools/ffmpeg_opt.c
+++ b/fftools/ffmpeg_opt.c
@@ -1416,7 +1416,6 @@ static OutputStream
*new_output_stream(OptionsContext *o, AVFormatContext *oc, e
{
OutputStream *ost;
AVStream *st = avformat_new_stream(oc, NULL);
- AVBSFList *bsf_list = NULL;
int idx = oc->nb_streams - 1, ret = 0;
const char *bsfs = NULL, *time_base = NULL;
char *next, *codec_tag = NULL;
@@ -1536,60 +1535,10 @@ static OutputStream
*new_output_stream(OptionsContext *o, AVFormatContext *oc, e
MATCH_PER_STREAM_OPT(copy_prior_start, i, ost->copy_prior_start, oc
,st);
MATCH_PER_STREAM_OPT(bitstream_filters, str, bsfs, oc, st);
- while (bsfs && *bsfs) {
- const AVBitStreamFilter *filter;
- char *bsf, *bsf_options_str, *bsf_name;
- AVBSFContext *bsf_ctx;
-
- bsf = av_get_token(&bsfs, ",");
- if (!bsf)
- exit_program(1);
- bsf_name = av_strtok(bsf, "=", &bsf_options_str);
- if (!bsf_name)
- exit_program(1);
-
- filter = av_bsf_get_by_name(bsf_name);
- if (!filter) {
- av_log(NULL, AV_LOG_FATAL, "Unknown bitstream filter %s\n",
bsf_name);
- exit_program(1);
- }
-
- ret = av_bsf_alloc(filter, &bsf_ctx);
- if (ret < 0) {
- av_log(NULL, AV_LOG_ERROR, "Error allocating a bitstream
filter context\n");
- exit_program(1);
- }
-
- if (bsf_options_str && filter->priv_class) {
- const AVOption *opt = av_opt_next(bsf_ctx->priv_data, NULL);
- const char * shorthand[2] = {NULL};
-
- if (opt)
- shorthand[0] = opt->name;
-
- ret = av_opt_set_from_string(bsf_ctx->priv_data,
bsf_options_str, shorthand, "=", ":");
- if (ret < 0) {
- av_log(NULL, AV_LOG_ERROR, "Error parsing options for
bitstream filter %s\n", bsf_name);
- exit_program(1);
- }
- }
-
- if (!bsf_list)
- bsf_list = av_bsf_list_alloc();
- if (!bsf_list || av_bsf_list_append(bsf_list, bsf_ctx) < 0) {
- av_log(NULL, AV_LOG_ERROR, "Failed to allocate or append to
bsf list\n");
- exit_program(1);
- }
-
- av_freep(&bsf);
-
- if (*bsfs)
- bsfs++;
- }
- if (bsf_list) {
- ret = av_bsf_list_finalize(&bsf_list, &ost->bsf_ctx);
+ if (bsfs && *bsfs) {
+ ret = av_bsf_list_parse_str(bsfs, &ost->bsf_ctx);
if (ret < 0) {
- av_log(NULL, AV_LOG_ERROR, "Failed to finalize bsf list\n");
+ av_log(NULL, AV_LOG_ERROR, "Error parsing bitstream filter
sequence '%s': %s\n", bsfs, av_err2str(ret));
exit_program(1);
}
}
Maybe this patch could instead be merged with 1/3 and applied after 2/3?
Will do and will apply soon.
Applied.
Regards,
Marton
_______________________________________________
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".