libswresample is used in all cases.
| ... | ... |
@@ -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(); |