Browse Source

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.
tags/n1.0
Nicolas George 13 years ago
parent
commit
1d903a5ee4
1 changed files with 1 additions and 1 deletions
  1. +1
    -1
      libswresample/swresample.c

+ 1
- 1
libswresample/swresample.c View File

@@ -542,7 +542,7 @@ static int swr_convert_internal(struct SwrContext *s, AudioData *out, int out_co
preout_tmp= s->preout;
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;

if(s->resample_first ? !s->resample : !s->rematrix)


Loading…
Cancel
Save