libvorbisdec: Remove AVFrame from context
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 13 Feb 2013 14:54:47 +0000 (15:54 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 13 Feb 2013 15:07:07 +0000 (16:07 +0100)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/libvorbisdec.c

index c56be29..99fb83a 100644 (file)
@@ -25,7 +25,6 @@
 #include "internal.h"
 
 typedef struct OggVorbisDecContext {
-    AVFrame frame;
     vorbis_info vi;                     /**< vorbis_info used during init   */
     vorbis_dsp_state vd;                /**< DSP state used for analysis    */
     vorbis_block vb;                    /**< vorbis_block used for analysis */
@@ -131,6 +130,7 @@ static int oggvorbis_decode_frame(AVCodecContext *avccontext, void *data,
                         int *got_frame_ptr, AVPacket *avpkt)
 {
     OggVorbisDecContext *context = avccontext->priv_data ;
+    AVFrame *frame = data;
     float **pcm ;
     ogg_packet *op= &context->op;
     int samples, total_samples, total_bytes;
@@ -142,12 +142,12 @@ static int oggvorbis_decode_frame(AVCodecContext *avccontext, void *data,
         return 0;
     }
 
-    context->frame.nb_samples = 8192*4;
-    if ((ret = ff_get_buffer(avccontext, &context->frame)) < 0) {
+    frame->nb_samples = 8192*4;
+    if ((ret = ff_get_buffer(avccontext, frame)) < 0) {
         av_log(avccontext, AV_LOG_ERROR, "get_buffer() failed\n");
         return ret;
     }
-    output = (int16_t *)context->frame.data[0];
+    output = (int16_t *)frame->data[0];
 
 
     op->packet = avpkt->data;
@@ -172,9 +172,8 @@ static int oggvorbis_decode_frame(AVCodecContext *avccontext, void *data,
         vorbis_synthesis_read(&context->vd, samples) ;
     }
 
-    context->frame.nb_samples = total_samples;
+    frame->nb_samples = total_samples;
     *got_frame_ptr   = 1;
-    *(AVFrame *)data = context->frame;
     return avpkt->size;
 }