]> git.sesse.net Git - ffmpeg/blobdiff - libavfilter/af_amerge.c
Merge remote-tracking branch 'qatar/master'
[ffmpeg] / libavfilter / af_amerge.c
index a8942a18f003f6e6d57166db20b6e1a5188f215c..b810f73b3886196ce4599a0e74d2c87a5e87a456 100644 (file)
@@ -23,6 +23,7 @@
  * Audio merging filter
  */
 
+#include "libavutil/audioconvert.h"
 #include "libavutil/bprint.h"
 #include "libavutil/opt.h"
 #include "libswresample/swresample.h" // only for SWR_CH_MAX
@@ -52,11 +53,7 @@ static const AVOption amerge_options[] = {
     {0}
 };
 
-static const AVClass amerge_class = {
-    .class_name = "AMergeContext",
-    .item_name  = av_default_item_name,
-    .option     = amerge_options,
-};
+AVFILTER_DEFINE_CLASS(amerge);
 
 static av_cold void uninit(AVFilterContext *ctx)
 {
@@ -119,8 +116,8 @@ static int query_formats(AVFilterContext *ctx)
                 if ((inlayout[i] >> c) & 1)
                     *(route[i]++) = out_ch_number++;
     }
-    formats = avfilter_make_format_list(ff_packed_sample_fmts_array);
-    avfilter_set_common_sample_formats(ctx, formats);
+    formats = ff_make_format_list(ff_packed_sample_fmts_array);
+    ff_set_common_formats(ctx, formats);
     for (i = 0; i < am->nb_inputs; i++) {
         layouts = NULL;
         ff_add_channel_layout(&layouts, inlayout[i]);
@@ -144,7 +141,7 @@ static int config_output(AVFilterLink *outlink)
         if (ctx->inputs[i]->sample_rate != ctx->inputs[0]->sample_rate) {
             av_log(ctx, AV_LOG_ERROR,
                    "Inputs must have the same sample rate "
-                   "(%"PRIi64" for in%d vs %"PRIi64")\n",
+                   "%d for in%d vs %d\n",
                    ctx->inputs[i]->sample_rate, i, ctx->inputs[0]->sample_rate);
             return AVERROR(EINVAL);
         }
@@ -160,7 +157,7 @@ static int config_output(AVFilterLink *outlink)
     }
     av_bprintf(&bp, " -> out:");
     av_bprint_channel_layout(&bp, -1, ctx->outputs[0]->channel_layout);
-    av_log(ctx, AV_LOG_INFO, "%s\n", bp.str);
+    av_log(ctx, AV_LOG_VERBOSE, "%s\n", bp.str);
 
     return 0;
 }
@@ -173,7 +170,7 @@ static int request_frame(AVFilterLink *outlink)
 
     for (i = 0; i < am->nb_inputs; i++)
         if (!am->in[i].nb_samples)
-            if ((ret = avfilter_request_frame(ctx->inputs[i])) < 0)
+            if ((ret = ff_request_frame(ctx->inputs[i])) < 0)
                 return ret;
     return 0;
 }
@@ -215,7 +212,7 @@ static inline void copy_samples(int nb_inputs, struct amerge_input in[],
     }
 }
 
-static void filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamples)
+static int filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamples)
 {
     AVFilterContext *ctx = inlink->dst;
     AMergeContext *am = ctx->priv;
@@ -235,7 +232,7 @@ static void filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamples)
     for (i = 1; i < am->nb_inputs; i++)
         nb_samples = FFMIN(nb_samples, am->in[i].nb_samples);
     if (!nb_samples)
-        return;
+        return 0;
 
     outbuf = ff_get_audio_buffer(ctx->outputs[0], AV_PERM_WRITE, nb_samples);
     outs = outbuf->data[0];
@@ -288,10 +285,10 @@ static void filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamples)
             }
         }
     }
-    ff_filter_samples(ctx->outputs[0], outbuf);
+    return ff_filter_samples(ctx->outputs[0], outbuf);
 }
 
-static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque)
+static av_cold int init(AVFilterContext *ctx, const char *args)
 {
     AMergeContext *am = ctx->priv;
     int ret, i;
@@ -315,7 +312,7 @@ static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque)
             .min_perms        = AV_PERM_READ | AV_PERM_PRESERVE,
         };
         snprintf(name, sizeof(name), "in%d", i);
-        avfilter_insert_inpad(ctx, i, &pad);
+        ff_insert_inpad(ctx, i, &pad);
     }
     return 0;
 }