ffmpeg | branch: master | Reimar Döffinger <reimar.doeffin...@gmx.de> | Wed Sep 3 00:22:41 2014 +0200| [235d401bfa407806a468379611bd7ed23e5cd0df] | committer: Reimar Döffinger
vorbisenc: avoid large stack allocation. Code is only used during initialization, so malloc/free should be fine to use. Signed-off-by: Reimar Döffinger <reimar.doeffin...@gmx.de> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=235d401bfa407806a468379611bd7ed23e5cd0df --- libavcodec/vorbisenc.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libavcodec/vorbisenc.c b/libavcodec/vorbisenc.c index 0fb7190..0f78d95 100644 --- a/libavcodec/vorbisenc.c +++ b/libavcodec/vorbisenc.c @@ -585,9 +585,11 @@ static int put_main_header(vorbis_enc_context *venc, uint8_t **out) { int i; PutBitContext pb; - uint8_t buffer[50000] = {0}, *p = buffer; - int buffer_len = sizeof buffer; int len, hlens[3]; + int buffer_len = 50000; + uint8_t *buffer = av_mallocz(buffer_len), *p = buffer; + if (!buffer) + return AVERROR(ENOMEM); // identification header init_put_bits(&pb, p, buffer_len); @@ -710,6 +712,7 @@ static int put_main_header(vorbis_enc_context *venc, uint8_t **out) buffer_len += hlens[i]; } + av_freep(&buffer); return p - *out; } _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog