diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-03-23 12:10:08 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-03-23 12:10:08 +0100 |
commit | ae03b2141e451f0a3330566f2f2c8e3b9186c2ad (patch) | |
tree | f6718d56489c637e6752b305984448af31a85857 /libswresample/swresample.c | |
parent | 2e909b3c77d0d39d4f30aba8b6a780c979551e38 (diff) | |
download | ffmpeg-ae03b2141e451f0a3330566f2f2c8e3b9186c2ad.tar.gz |
swr: check that there is enough information to do rematrixing when needed.
Fixes assertion failure.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libswresample/swresample.c')
-rw-r--r-- | libswresample/swresample.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libswresample/swresample.c b/libswresample/swresample.c index dd09fc9245..44a2917ff9 100644 --- a/libswresample/swresample.c +++ b/libswresample/swresample.c @@ -226,6 +226,11 @@ int swr_init(struct SwrContext *s){ return -1; } + if ((!s->out_ch_layout || !s->in_ch_layout) && s->used_ch_count != s->out.ch_count && !s->rematrix_custom) { + av_log(s, AV_LOG_ERROR, "Rematrix is needed but there is not enough information to do it\n"); + return -1; + } + av_assert0(s->used_ch_count); av_assert0(s->out.ch_count); s->resample_first= RSC*s->out.ch_count/s->in.ch_count - RSC < s->out_sample_rate/(float)s-> in_sample_rate - 1.0; |