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>
pull/88/head
Reimar Döffinger 11 years ago
parent fcfc90ed65
commit 235d401bfa
  1. 7
      libavcodec/vorbisenc.c

@ -585,9 +585,11 @@ static int put_main_header(vorbis_enc_context *venc, uint8_t **out)
{ {
int i; int i;
PutBitContext pb; PutBitContext pb;
uint8_t buffer[50000] = {0}, *p = buffer;
int buffer_len = sizeof buffer;
int len, hlens[3]; int len, hlens[3];
int buffer_len = 50000;
uint8_t *buffer = av_mallocz(buffer_len), *p = buffer;
if (!buffer)
return AVERROR(ENOMEM);
// identification header // identification header
init_put_bits(&pb, p, buffer_len); 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]; buffer_len += hlens[i];
} }
av_freep(&buffer);
return p - *out; return p - *out;
} }

Loading…
Cancel
Save