You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	lavfi/af_aresample: accept unknown channel layouts.
This commit is contained in:
		| @@ -98,7 +98,7 @@ static int query_formats(AVFilterContext *ctx) | |||||||
|     AVFilterFormats        *out_formats; |     AVFilterFormats        *out_formats; | ||||||
|     AVFilterFormats        *in_samplerates  = ff_all_samplerates(); |     AVFilterFormats        *in_samplerates  = ff_all_samplerates(); | ||||||
|     AVFilterFormats        *out_samplerates; |     AVFilterFormats        *out_samplerates; | ||||||
|     AVFilterChannelLayouts *in_layouts      = ff_all_channel_layouts(); |     AVFilterChannelLayouts *in_layouts      = ff_all_channel_counts(); | ||||||
|     AVFilterChannelLayouts *out_layouts; |     AVFilterChannelLayouts *out_layouts; | ||||||
|  |  | ||||||
|     ff_formats_ref  (in_formats,      &inlink->out_formats); |     ff_formats_ref  (in_formats,      &inlink->out_formats); | ||||||
| @@ -121,7 +121,7 @@ static int query_formats(AVFilterContext *ctx) | |||||||
|     if(out_layout) { |     if(out_layout) { | ||||||
|         out_layouts = avfilter_make_format64_list((int64_t[]){ out_layout, -1 }); |         out_layouts = avfilter_make_format64_list((int64_t[]){ out_layout, -1 }); | ||||||
|     } else |     } else | ||||||
|         out_layouts = ff_all_channel_layouts(); |         out_layouts = ff_all_channel_counts(); | ||||||
|     ff_channel_layouts_ref(out_layouts, &outlink->in_channel_layouts); |     ff_channel_layouts_ref(out_layouts, &outlink->in_channel_layouts); | ||||||
|  |  | ||||||
|     return 0; |     return 0; | ||||||
| @@ -145,6 +145,10 @@ static int config_output(AVFilterLink *outlink) | |||||||
|                                         0, ctx); |                                         0, ctx); | ||||||
|     if (!aresample->swr) |     if (!aresample->swr) | ||||||
|         return AVERROR(ENOMEM); |         return AVERROR(ENOMEM); | ||||||
|  |     if (!inlink->channel_layout) | ||||||
|  |         av_opt_set_int(aresample->swr, "ich", inlink->channels, 0); | ||||||
|  |     if (!outlink->channel_layout) | ||||||
|  |         av_opt_set_int(aresample->swr, "och", outlink->channels, 0); | ||||||
|  |  | ||||||
|     ret = swr_init(aresample->swr); |     ret = swr_init(aresample->swr); | ||||||
|     if (ret < 0) |     if (ret < 0) | ||||||
| @@ -164,9 +168,9 @@ static int config_output(AVFilterLink *outlink) | |||||||
|     av_get_channel_layout_string(inchl_buf,  sizeof(inchl_buf),  -1, inlink ->channel_layout); |     av_get_channel_layout_string(inchl_buf,  sizeof(inchl_buf),  -1, inlink ->channel_layout); | ||||||
|     av_get_channel_layout_string(outchl_buf, sizeof(outchl_buf), -1, outlink->channel_layout); |     av_get_channel_layout_string(outchl_buf, sizeof(outchl_buf), -1, outlink->channel_layout); | ||||||
|  |  | ||||||
|     av_log(ctx, AV_LOG_VERBOSE, "chl:%s fmt:%s r:%dHz -> chl:%s fmt:%s r:%dHz\n", |     av_log(ctx, AV_LOG_VERBOSE, "ch:%d chl:%s fmt:%s r:%dHz -> ch:%d chl:%s fmt:%s r:%dHz\n", | ||||||
|            inchl_buf,  av_get_sample_fmt_name(inlink->format),  inlink->sample_rate, |            inlink ->channels, inchl_buf,  av_get_sample_fmt_name(inlink->format),  inlink->sample_rate, | ||||||
|            outchl_buf, av_get_sample_fmt_name(outlink->format), outlink->sample_rate); |            outlink->channels, outchl_buf, av_get_sample_fmt_name(outlink->format), outlink->sample_rate); | ||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user