use avcodec_decode_audio2
authorBaptiste Coudurier <baptiste.coudurier@gmail.com>
Tue, 27 Feb 2007 13:07:38 +0000 (13:07 +0000)
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>
Tue, 27 Feb 2007 13:07:38 +0000 (13:07 +0000)
Originally committed as revision 8146 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/utils.c

index 04ee6f2..d3fae29 100644 (file)
@@ -1750,7 +1750,7 @@ static int try_decode_frame(AVStream *st, const uint8_t *data, int size)
 {
     int16_t *samples;
     AVCodec *codec;
-    int got_picture, ret=0;
+    int got_picture, data_size, ret=0;
     AVFrame picture;
 
   if(!st->codec->codec){
@@ -1769,11 +1769,12 @@ static int try_decode_frame(AVStream *st, const uint8_t *data, int size)
                                    &got_picture, (uint8_t *)data, size);
         break;
     case CODEC_TYPE_AUDIO:
-        samples = av_malloc(AVCODEC_MAX_AUDIO_FRAME_SIZE);
+        data_size = FFMAX(size, AVCODEC_MAX_AUDIO_FRAME_SIZE);
+        samples = av_malloc(data_size);
         if (!samples)
             goto fail;
-        ret = avcodec_decode_audio(st->codec, samples,
-                                   &got_picture, (uint8_t *)data, size);
+        ret = avcodec_decode_audio2(st->codec, samples,
+                                    &data_size, (uint8_t *)data, size);
         av_free(samples);
         break;
     default: