diff options
author | James Almer <jamrial@gmail.com> | 2022-03-15 14:18:24 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2022-03-15 14:29:04 -0300 |
commit | f5d67469b0e15402a6323e2e657572db8d17f8fe (patch) | |
tree | 7bb2ba3cd3a64886ae94fdad8b6fe98b207ea966 | |
parent | ef2b3efd5153568989324f01de41ca19bf3afda1 (diff) | |
download | ffmpeg-f5d67469b0e15402a6323e2e657572db8d17f8fe.tar.gz |
avfilter/buffersink: simplify parsing the input channel layout string
And remove a stray comma in the list of supported separators.
Signed-off-by: James Almer <jamrial@gmail.com>
-rw-r--r-- | libavfilter/buffersink.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/libavfilter/buffersink.c b/libavfilter/buffersink.c index b989473719..e269cf72d1 100644 --- a/libavfilter/buffersink.c +++ b/libavfilter/buffersink.c @@ -330,24 +330,22 @@ static int asink_query_formats(AVFilterContext *ctx) "Conflicting ch_layouts and list of channel_counts/channel_layouts. Ignoring the former\n"); else #endif - while (cur && *cur) { - char *chl = av_get_token(&cur, "|,"); - if (!chl) - return AVERROR(ENOMEM); - if (*cur) - cur++; - - ret = av_channel_layout_from_string(&layout, chl); + while (cur) { + char *next = strchr(cur, '|'); + if (next) + *next++ = 0; + + ret = av_channel_layout_from_string(&layout, cur); if (ret < 0) { - av_log(ctx, AV_LOG_ERROR, "Error parsing channel layout: %s.\n", chl); - av_free(chl); + av_log(ctx, AV_LOG_ERROR, "Error parsing channel layout: %s.\n", cur); return ret; } ret = ff_add_channel_layout(&layouts, &layout); av_channel_layout_uninit(&layout); - av_free(chl); if (ret < 0) return ret; + + cur = next; } } |