OSDN Git Service

g729dec: switch to buffer refs style
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 21 Mar 2013 13:48:16 +0000 (14:48 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 21 Mar 2013 13:48:56 +0000 (14:48 +0100)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/g729dec.c

index 440bf80..85323ba 100644 (file)
@@ -101,7 +101,6 @@ typedef struct {
 
 typedef struct {
     DSPContext dsp;
-    AVFrame frame;
 
     /// past excitation signal buffer
     int16_t exc_base[2*SUBFRAME_SIZE+PITCH_DELAY_MAX+INTERPOL_LEN];
@@ -385,9 +384,6 @@ static av_cold int decoder_init(AVCodecContext * avctx)
     ff_dsputil_init(&ctx->dsp, avctx);
     ctx->dsp.scalarproduct_int16 = scalarproduct_int16_c;
 
-    avcodec_get_frame_defaults(&ctx->frame);
-    avctx->coded_frame = &ctx->frame;
-
     return 0;
 }
 
@@ -418,11 +414,12 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame_ptr,
     int j, ret;
     int gain_before, gain_after;
     int is_periodic = 0;         // whether one of the subframes is declared as periodic or not
+    AVFrame *frame = data;
 
-    ctx->frame.nb_samples = SUBFRAME_SIZE<<1;
-    if ((ret = ff_get_buffer(avctx, &ctx->frame, 0)) < 0)
+    frame->nb_samples = SUBFRAME_SIZE<<1;
+    if ((ret = ff_get_buffer(avctx, frame, 0)) < 0)
         return ret;
-    out_frame = (int16_t*) ctx->frame.data[0];
+    out_frame = (int16_t*) frame->data[0];
 
     if (buf_size == 10) {
         packet_type = FORMAT_G729_8K;
@@ -714,7 +711,6 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame_ptr,
     memmove(ctx->exc_base, ctx->exc_base + 2 * SUBFRAME_SIZE, (PITCH_DELAY_MAX+INTERPOL_LEN)*sizeof(int16_t));
 
     *got_frame_ptr = 1;
-    *(AVFrame*)data = ctx->frame;
     return buf_size;
 }