mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
lswr: channel_map requires input conversion.
channel_map is applied between in and postin. Without this test, if the input format is an acceptable internal format, the in->postin conversion is skipped. In the best case, it ignores channel_map, in the worst case it causes an assert failure if the number of channels is changed by the map.
This commit is contained in:
parent
81dd908c6e
commit
1d903a5ee4
@ -542,7 +542,7 @@ static int swr_convert_internal(struct SwrContext *s, AudioData *out, int out_co
|
|||||||
preout_tmp= s->preout;
|
preout_tmp= s->preout;
|
||||||
preout= &preout_tmp;
|
preout= &preout_tmp;
|
||||||
|
|
||||||
if(s->int_sample_fmt == s-> in_sample_fmt && s->in.planar)
|
if(s->int_sample_fmt == s-> in_sample_fmt && s->in.planar && !s->channel_map)
|
||||||
postin= in;
|
postin= in;
|
||||||
|
|
||||||
if(s->resample_first ? !s->resample : !s->rematrix)
|
if(s->resample_first ? !s->resample : !s->rematrix)
|
||||||
|
Loading…
Reference in New Issue
Block a user