aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2022-03-15 14:18:24 -0300
committerJames Almer <jamrial@gmail.com>2022-03-15 14:29:04 -0300
commitf5d67469b0e15402a6323e2e657572db8d17f8fe (patch)
tree7bb2ba3cd3a64886ae94fdad8b6fe98b207ea966
parentef2b3efd5153568989324f01de41ca19bf3afda1 (diff)
downloadffmpeg-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.c20
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;
}
}