| 
																	
																	
																		
																	
																	
																 | 
																@@ -48,11 +48,6 @@ typedef struct PanContext { | 
															
														
														
													
														
															
																 | 
																 | 
																    int nb_output_channels; | 
																 | 
																 | 
																    int nb_output_channels; | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																    int pure_gains; | 
																 | 
																 | 
																    int pure_gains; | 
															
														
														
													
														
															
																 | 
																 | 
																    void (*filter_samples)(struct PanContext*, | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																                           AVFilterBufferRef*, | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																                           AVFilterBufferRef*, | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																                           int); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    /* channel mapping specific */ | 
																 | 
																 | 
																    /* channel mapping specific */ | 
															
														
														
													
														
															
																 | 
																 | 
																    int channel_map[SWR_CH_MAX]; | 
																 | 
																 | 
																    int channel_map[SWR_CH_MAX]; | 
															
														
														
													
														
															
																 | 
																 | 
																    struct SwrContext *swr; | 
																 | 
																 | 
																    struct SwrContext *swr; | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																		
																	
																	
																 | 
																@@ -332,14 +327,6 @@ static int config_props(AVFilterLink *link) | 
															
														
														
													
														
															
																 | 
																 | 
																    return 0; | 
																 | 
																 | 
																    return 0; | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																static void filter_samples_channel_mapping(PanContext *pan, | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																                                           AVFilterBufferRef *outsamples, | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																                                           AVFilterBufferRef *insamples, | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																                                           int n) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																{ | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    swr_convert(pan->swr, outsamples->data, n, (void *)insamples->data, n); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																static void filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamples) | 
																 | 
																 | 
																static void filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamples) | 
															
														
														
													
														
															
																 | 
																 | 
																{ | 
																 | 
																 | 
																{ | 
															
														
														
													
														
															
																 | 
																 | 
																    int n = insamples->audio->nb_samples; | 
																 | 
																 | 
																    int n = insamples->audio->nb_samples; | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																	
																 | 
																@@ -347,8 +334,7 @@ static void filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamples) | 
															
														
														
													
														
															
																 | 
																 | 
																    AVFilterBufferRef *outsamples = avfilter_get_audio_buffer(outlink, AV_PERM_WRITE, n); | 
																 | 
																 | 
																    AVFilterBufferRef *outsamples = avfilter_get_audio_buffer(outlink, AV_PERM_WRITE, n); | 
															
														
														
													
														
															
																 | 
																 | 
																    PanContext *pan = inlink->dst->priv; | 
																 | 
																 | 
																    PanContext *pan = inlink->dst->priv; | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																    pan->filter_samples(pan, outsamples, insamples, n); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    swr_convert(pan->swr, outsamples->data, n, (void *)insamples->data, n); | 
															
														
														
													
														
															
																 | 
																 | 
																    avfilter_copy_buffer_ref_props(outsamples, insamples); | 
																 | 
																 | 
																    avfilter_copy_buffer_ref_props(outsamples, insamples); | 
															
														
														
													
														
															
																 | 
																 | 
																    outsamples->audio->channel_layout = outlink->channel_layout; | 
																 | 
																 | 
																    outsamples->audio->channel_layout = outlink->channel_layout; | 
															
														
														
													
														
															
																 | 
																 | 
																    outsamples->audio->planar         = outlink->planar; | 
																 | 
																 | 
																    outsamples->audio->planar         = outlink->planar; | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																	
																 | 
																@@ -368,7 +354,6 @@ static int query_formats(AVFilterContext *ctx) | 
															
														
														
													
														
															
																 | 
																 | 
																    /* libswr supports any sample and packing formats */ | 
																 | 
																 | 
																    /* libswr supports any sample and packing formats */ | 
															
														
														
													
														
															
																 | 
																 | 
																    avfilter_set_common_sample_formats(ctx, avfilter_make_all_formats(AVMEDIA_TYPE_AUDIO)); | 
																 | 
																 | 
																    avfilter_set_common_sample_formats(ctx, avfilter_make_all_formats(AVMEDIA_TYPE_AUDIO)); | 
															
														
														
													
														
															
																 | 
																 | 
																    avfilter_set_common_packing_formats(ctx, avfilter_make_all_packing_formats()); | 
																 | 
																 | 
																    avfilter_set_common_packing_formats(ctx, avfilter_make_all_packing_formats()); | 
															
														
														
													
														
															
																 | 
																 | 
																    pan->filter_samples = filter_samples_channel_mapping; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																    // inlink supports any channel layout | 
																 | 
																 | 
																    // inlink supports any channel layout | 
															
														
														
													
														
															
																 | 
																 | 
																    formats = avfilter_make_all_channel_layouts(); | 
																 | 
																 | 
																    formats = avfilter_make_all_channel_layouts(); | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																	
																 | 
																
  |