avfilter/af_channelmap: add support for unknown input channel layouts
Reviewed-by: Nicolas George <george@nsup.org> Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
		
							parent
							
								
									bffc2bcd75
								
							
						
					
					
						commit
						01a19f77ca
					
				| @ -291,7 +291,7 @@ static int channelmap_query_formats(AVFilterContext *ctx) | |||||||
|     AVFilterChannelLayouts *channel_layouts = NULL; |     AVFilterChannelLayouts *channel_layouts = NULL; | ||||||
|     int ret; |     int ret; | ||||||
| 
 | 
 | ||||||
|     layouts = ff_all_channel_layouts(); |     layouts = ff_all_channel_counts(); | ||||||
|     if (!layouts) { |     if (!layouts) { | ||||||
|         ret = AVERROR(ENOMEM); |         ret = AVERROR(ENOMEM); | ||||||
|         goto fail; |         goto fail; | ||||||
| @ -316,7 +316,7 @@ static int channelmap_filter_frame(AVFilterLink *inlink, AVFrame *buf) | |||||||
|     AVFilterContext  *ctx = inlink->dst; |     AVFilterContext  *ctx = inlink->dst; | ||||||
|     AVFilterLink *outlink = ctx->outputs[0]; |     AVFilterLink *outlink = ctx->outputs[0]; | ||||||
|     const ChannelMapContext *s = ctx->priv; |     const ChannelMapContext *s = ctx->priv; | ||||||
|     const int nch_in = av_get_channel_layout_nb_channels(inlink->channel_layout); |     const int nch_in = inlink->channels; | ||||||
|     const int nch_out = s->nch; |     const int nch_out = s->nch; | ||||||
|     int ch; |     int ch; | ||||||
|     uint8_t *source_planes[MAX_CH]; |     uint8_t *source_planes[MAX_CH]; | ||||||
| @ -363,7 +363,7 @@ static int channelmap_config_input(AVFilterLink *inlink) | |||||||
| { | { | ||||||
|     AVFilterContext *ctx = inlink->dst; |     AVFilterContext *ctx = inlink->dst; | ||||||
|     ChannelMapContext *s = ctx->priv; |     ChannelMapContext *s = ctx->priv; | ||||||
|     int nb_channels = av_get_channel_layout_nb_channels(inlink->channel_layout); |     int nb_channels = inlink->channels; | ||||||
|     int i, err = 0; |     int i, err = 0; | ||||||
|     const char *channel_name; |     const char *channel_name; | ||||||
|     char layout_name[256]; |     char layout_name[256]; | ||||||
| @ -378,7 +378,7 @@ static int channelmap_config_input(AVFilterLink *inlink) | |||||||
| 
 | 
 | ||||||
|         if (m->in_channel_idx < 0 || m->in_channel_idx >= nb_channels) { |         if (m->in_channel_idx < 0 || m->in_channel_idx >= nb_channels) { | ||||||
|             av_get_channel_layout_string(layout_name, sizeof(layout_name), |             av_get_channel_layout_string(layout_name, sizeof(layout_name), | ||||||
|                                          0, inlink->channel_layout); |                                          nb_channels, inlink->channel_layout); | ||||||
|             if (m->in_channel) { |             if (m->in_channel) { | ||||||
|                 channel_name = av_get_channel_name(m->in_channel); |                 channel_name = av_get_channel_name(m->in_channel); | ||||||
|                 av_log(ctx, AV_LOG_ERROR, |                 av_log(ctx, AV_LOG_ERROR, | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user