Mercurial > libavcodec.hg
comparison mjpeg.c @ 2799:924c7e66ced8 libavcodec
dont pre allocate uselessly large buffer and dont ignore FF_INPUT_BUFFER_PADDING_SIZE
author | michael |
---|---|
date | Sun, 17 Jul 2005 12:56:56 +0000 |
parents | eb488002ab4a |
children | 4db6127e20b8 |
comparison
equal
deleted
inserted
replaced
2798:eb488002ab4a | 2799:924c7e66ced8 |
---|---|
894 | 894 |
895 s->scantable= s2.intra_scantable; | 895 s->scantable= s2.intra_scantable; |
896 s->idct_put= s2.dsp.idct_put; | 896 s->idct_put= s2.dsp.idct_put; |
897 | 897 |
898 s->mpeg_enc_ctx_allocated = 0; | 898 s->mpeg_enc_ctx_allocated = 0; |
899 s->buffer_size = 102400; /* smaller buffer should be enough, | 899 s->buffer_size = 0; |
900 but photojpg files could ahive bigger sizes */ | 900 s->buffer = NULL; |
901 s->buffer = av_malloc(s->buffer_size); | |
902 if (!s->buffer) | |
903 return -1; | |
904 s->start_code = -1; | 901 s->start_code = -1; |
905 s->first_picture = 1; | 902 s->first_picture = 1; |
906 s->org_height = avctx->coded_height; | 903 s->org_height = avctx->coded_height; |
907 | 904 |
908 build_vlc(&s->vlcs[0][0], bits_dc_luminance, val_dc_luminance, 12, 0); | 905 build_vlc(&s->vlcs[0][0], bits_dc_luminance, val_dc_luminance, 12, 0); |
1839 | 1836 |
1840 if ((buf_end - buf_ptr) > s->buffer_size) | 1837 if ((buf_end - buf_ptr) > s->buffer_size) |
1841 { | 1838 { |
1842 av_free(s->buffer); | 1839 av_free(s->buffer); |
1843 s->buffer_size = buf_end-buf_ptr; | 1840 s->buffer_size = buf_end-buf_ptr; |
1844 s->buffer = av_malloc(s->buffer_size); | 1841 s->buffer = av_malloc(s->buffer_size + FF_INPUT_BUFFER_PADDING_SIZE); |
1845 dprintf("buffer too small, expanding to %d bytes\n", | 1842 dprintf("buffer too small, expanding to %d bytes\n", |
1846 s->buffer_size); | 1843 s->buffer_size); |
1847 } | 1844 } |
1848 | 1845 |
1849 /* unescape buffer of SOS */ | 1846 /* unescape buffer of SOS */ |