Browse code

af_pan: remove the indirect function call.

libswresample is used in all cases.

Nicolas George authored on 2012/02/21 05:43:16
Showing 1 changed files
... ...
@@ -48,11 +48,6 @@ typedef struct PanContext {
48 48
     int nb_output_channels;
49 49
 
50 50
     int pure_gains;
51
-    void (*filter_samples)(struct PanContext*,
52
-                           AVFilterBufferRef*,
53
-                           AVFilterBufferRef*,
54
-                           int);
55
-
56 51
     /* channel mapping specific */
57 52
     int channel_map[SWR_CH_MAX];
58 53
     struct SwrContext *swr;
... ...
@@ -332,14 +327,6 @@ static int config_props(AVFilterLink *link)
332 332
     return 0;
333 333
 }
334 334
 
335
-static void filter_samples_channel_mapping(PanContext *pan,
336
-                                           AVFilterBufferRef *outsamples,
337
-                                           AVFilterBufferRef *insamples,
338
-                                           int n)
339
-{
340
-    swr_convert(pan->swr, outsamples->data, n, (void *)insamples->data, n);
341
-}
342
-
343 335
 static void filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamples)
344 336
 {
345 337
     int n = insamples->audio->nb_samples;
... ...
@@ -347,8 +334,7 @@ static void filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamples)
347 347
     AVFilterBufferRef *outsamples = avfilter_get_audio_buffer(outlink, AV_PERM_WRITE, n);
348 348
     PanContext *pan = inlink->dst->priv;
349 349
 
350
-    pan->filter_samples(pan, outsamples, insamples, n);
351
-
350
+    swr_convert(pan->swr, outsamples->data, n, (void *)insamples->data, n);
352 351
     avfilter_copy_buffer_ref_props(outsamples, insamples);
353 352
     outsamples->audio->channel_layout = outlink->channel_layout;
354 353
     outsamples->audio->planar         = outlink->planar;
... ...
@@ -368,7 +354,6 @@ static int query_formats(AVFilterContext *ctx)
368 368
     /* libswr supports any sample and packing formats */
369 369
     avfilter_set_common_sample_formats(ctx, avfilter_make_all_formats(AVMEDIA_TYPE_AUDIO));
370 370
     avfilter_set_common_packing_formats(ctx, avfilter_make_all_packing_formats());
371
-    pan->filter_samples = filter_samples_channel_mapping;
372 371
 
373 372
     // inlink supports any channel layout
374 373
     formats = avfilter_make_all_channel_layouts();