typedef struct {
DSPContext dsp;
- AVFrame frame;
/// past excitation signal buffer
int16_t exc_base[2*SUBFRAME_SIZE+PITCH_DELAY_MAX+INTERPOL_LEN];
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;
}
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;
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;
}