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 */