diff options
author | Rob Sykes <aquegg@yahoo.co.uk> | 2014-12-13 21:12:56 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-12-13 22:20:16 +0100 |
commit | 9783d5bfda33ab7b4da30f88cea3fcfd8d9d3957 (patch) | |
tree | a7bb3f225d97e78c9f6569824ea730300f5b326e | |
parent | 0e4efad93c1defa12e8e2c103f7b92b91a7608dd (diff) | |
download | ffmpeg-9783d5bfda33ab7b4da30f88cea3fcfd8d9d3957.tar.gz |
swresample/soxr_resample: fix error handling
Fixes CID1257659
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 4b6f2253741f3023928e61ae5105ccd4b1c515fb)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libswresample/soxr_resample.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/libswresample/soxr_resample.c b/libswresample/soxr_resample.c index 064451df45..9e87f2fc4b 100644 --- a/libswresample/soxr_resample.c +++ b/libswresample/soxr_resample.c @@ -76,8 +76,12 @@ static int process( AudioData *src, int src_size, int *consumed){ size_t idone, odone; soxr_error_t error = soxr_set_error((soxr_t)c, soxr_set_num_channels((soxr_t)c, src->ch_count)); - error = soxr_process((soxr_t)c, src->ch, (size_t)src_size, - &idone, dst->ch, (size_t)dst_size, &odone); + if (!error) + error = soxr_process((soxr_t)c, src->ch, (size_t)src_size, + &idone, dst->ch, (size_t)dst_size, &odone); + else + idone = 0; + *consumed = (int)idone; return error? -1 : odone; } |