diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-01-13 15:57:56 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-01-13 16:04:41 +0100 |
commit | a34aee4646284eae67c1317d7baf82c2b3012aba (patch) | |
tree | e154a7b35365c0f121d8d57a520875edea9bccda /libswresample | |
parent | b481d09bd9c7b3cba617a7811d7015ea0472e4ee (diff) | |
download | ffmpeg-a34aee4646284eae67c1317d7baf82c2b3012aba.tar.gz |
swr: limit buffer size for silence injection
This reduces memory usage for unreasonable large silence injections
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libswresample')
-rw-r--r-- | libswresample/swresample.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/libswresample/swresample.c b/libswresample/swresample.c index 6f1c41bc5c..19423024ba 100644 --- a/libswresample/swresample.c +++ b/libswresample/swresample.c @@ -818,6 +818,13 @@ int swr_inject_silence(struct SwrContext *s, int count){ if(count <= 0) return 0; +#define MAX_SILENCE_STEP 16384 + while (count > MAX_SILENCE_STEP) { + if ((ret = swr_inject_silence(s, MAX_SILENCE_STEP)) < 0) + return ret; + count -= MAX_SILENCE_STEP; + } + if((ret=swri_realloc_audio(&s->silence, count))<0) return ret; |