align the audio decoding buffer, since some codecs write to it with simd
authorLoren Merritt <lorenm@u.washington.edu>
Tue, 12 Aug 2008 05:59:12 +0000 (05:59 +0000)
committerLoren Merritt <lorenm@u.washington.edu>
Tue, 12 Aug 2008 05:59:12 +0000 (05:59 +0000)
Originally committed as revision 14707 to svn://svn.ffmpeg.org/ffmpeg/trunk

ffmpeg.c

index 850778db91423b115796b088d34bb364cce353b1..53009d395f8dd4f2aebbc44fb3fb06345553b12b 100644 (file)
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -1198,8 +1198,11 @@ static int output_packet(AVInputStream *ist, int ist_index,
         if (ist->decoding_needed) {
             switch(ist->st->codec->codec_type) {
             case CODEC_TYPE_AUDIO:{
-                if(pkt)
-                    samples= av_fast_realloc(samples, &samples_size, FFMAX(pkt->size*sizeof(*samples), AVCODEC_MAX_AUDIO_FRAME_SIZE));
+                if(pkt && samples_size < FFMAX(pkt->size*sizeof(*samples), AVCODEC_MAX_AUDIO_FRAME_SIZE)) {
+                    samples_size = FFMAX(pkt->size*sizeof(*samples), AVCODEC_MAX_AUDIO_FRAME_SIZE);
+                    av_free(samples);
+                    samples= av_malloc(samples_size);
+                }
                 data_size= samples_size;
                     /* XXX: could avoid copy if PCM 16 bits with same
                        endianness as CPU */