summaryrefslogtreecommitdiff
path: root/ffmpeg/libavcodec/g729dec.c
diff options
context:
space:
mode:
Diffstat (limited to 'ffmpeg/libavcodec/g729dec.c')
-rw-r--r--ffmpeg/libavcodec/g729dec.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/ffmpeg/libavcodec/g729dec.c b/ffmpeg/libavcodec/g729dec.c
index 440bf80..d29ad1f 100644
--- a/ffmpeg/libavcodec/g729dec.c
+++ b/ffmpeg/libavcodec/g729dec.c
@@ -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,17 +711,16 @@ 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;
}
AVCodec ff_g729_decoder = {
.name = "g729",
+ .long_name = NULL_IF_CONFIG_SMALL("G.729"),
.type = AVMEDIA_TYPE_AUDIO,
.id = AV_CODEC_ID_G729,
.priv_data_size = sizeof(G729Context),
.init = decoder_init,
.decode = decode_frame,
.capabilities = CODEC_CAP_DR1,
- .long_name = NULL_IF_CONFIG_SMALL("G.729"),
};