mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
af_resample: avoid conversion of identical sample formats for 1 channel
When there is only 1 channel, the planar and interleaved formats of the same data type should be treated as identical.
This commit is contained in:
parent
37f701f1c3
commit
7b556be673
@ -93,7 +93,11 @@ static int config_output(AVFilterLink *outlink)
|
|||||||
|
|
||||||
if (inlink->channel_layout == outlink->channel_layout &&
|
if (inlink->channel_layout == outlink->channel_layout &&
|
||||||
inlink->sample_rate == outlink->sample_rate &&
|
inlink->sample_rate == outlink->sample_rate &&
|
||||||
inlink->format == outlink->format)
|
(inlink->format == outlink->format ||
|
||||||
|
(av_get_channel_layout_nb_channels(inlink->channel_layout) == 1 &&
|
||||||
|
av_get_channel_layout_nb_channels(outlink->channel_layout) == 1 &&
|
||||||
|
av_get_planar_sample_fmt(inlink->format) ==
|
||||||
|
av_get_planar_sample_fmt(outlink->format))))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (!(s->avr = avresample_alloc_context()))
|
if (!(s->avr = avresample_alloc_context()))
|
||||||
@ -226,6 +230,7 @@ static int filter_samples(AVFilterLink *inlink, AVFilterBufferRef *buf)
|
|||||||
fail:
|
fail:
|
||||||
avfilter_unref_buffer(buf);
|
avfilter_unref_buffer(buf);
|
||||||
} else {
|
} else {
|
||||||
|
buf->format = outlink->format;
|
||||||
ret = ff_filter_samples(outlink, buf);
|
ret = ff_filter_samples(outlink, buf);
|
||||||
s->got_output = 1;
|
s->got_output = 1;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user