[FFmpeg-devel] [PATCH] avfilter/trim: support all channel numbers in atrim filter

Paul B Mahol onemda at gmail.com
Wed Dec 30 09:17:56 CET 2015


Signed-off-by: Paul B Mahol <onemda at gmail.com>
---
 libavfilter/trim.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/libavfilter/trim.c b/libavfilter/trim.c
index b2d9c6f..9d040dd 100644
--- a/libavfilter/trim.c
+++ b/libavfilter/trim.c
@@ -345,6 +345,32 @@ drop:
     return 0;
 }
 
+static int atrim_query_formats(AVFilterContext *ctx)
+{
+    AVFilterFormats *formats;
+    AVFilterChannelLayouts *layouts;
+    int ret;
+
+    layouts = ff_all_channel_counts();
+    if (!layouts)
+        return AVERROR(ENOMEM);
+    ret = ff_set_common_channel_layouts(ctx, layouts);
+    if (ret < 0)
+        return ret;
+
+    formats = ff_all_formats(AVMEDIA_TYPE_AUDIO);
+    if (!formats)
+        return AVERROR(ENOMEM);
+    ret = ff_set_common_formats(ctx, formats);
+    if (ret < 0)
+        return ret;
+
+    formats = ff_all_samplerates();
+    if (!formats)
+        return AVERROR(ENOMEM);
+    return ff_set_common_samplerates(ctx, formats);
+}
+
 #define FLAGS AV_OPT_FLAG_AUDIO_PARAM | AV_OPT_FLAG_FILTERING_PARAM
 static const AVOption atrim_options[] = {
     COMMON_OPTS
@@ -381,6 +407,7 @@ AVFilter ff_af_atrim = {
     .name        = "atrim",
     .description = NULL_IF_CONFIG_SMALL("Pick one continuous section from the input, drop the rest."),
     .init        = init,
+    .query_formats = atrim_query_formats,
     .priv_size   = sizeof(TrimContext),
     .priv_class  = &atrim_class,
     .inputs      = atrim_inputs,
-- 
1.9.1



More information about the ffmpeg-devel mailing list