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.Doeffinger@gmx.de>
This commit is contained in:
Reimar Döffinger 2014-09-03 00:22:41 +02:00
parent fcfc90ed65
commit 235d401bfa
1 changed files with 5 additions and 2 deletions

View File

@ -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;
}