sonicdec: update to new buffer API

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2013-03-21 16:00:35 +01:00
parent 85d7f54662
commit 4aa8503399

View File

@ -45,7 +45,6 @@
#define RIGHT_SIDE 2 #define RIGHT_SIDE 2
typedef struct SonicContext { typedef struct SonicContext {
AVFrame frame;
int lossless, decorrelation; int lossless, decorrelation;
int num_taps, downsampling; int num_taps, downsampling;
@ -767,9 +766,6 @@ static av_cold int sonic_decode_init(AVCodecContext *avctx)
s->channels = avctx->channels; s->channels = avctx->channels;
s->samplerate = avctx->sample_rate; s->samplerate = avctx->sample_rate;
avcodec_get_frame_defaults(&s->frame);
avctx->coded_frame = &s->frame;
if (!avctx->extradata) if (!avctx->extradata)
{ {
av_log(avctx, AV_LOG_ERROR, "No mandatory headers present\n"); av_log(avctx, AV_LOG_ERROR, "No mandatory headers present\n");
@ -879,13 +875,14 @@ static int sonic_decode_frame(AVCodecContext *avctx,
GetBitContext gb; GetBitContext gb;
int i, quant, ch, j, ret; int i, quant, ch, j, ret;
int16_t *samples; int16_t *samples;
AVFrame *frame = data;
if (buf_size == 0) return 0; if (buf_size == 0) return 0;
s->frame.nb_samples = s->frame_size / avctx->channels; frame->nb_samples = s->frame_size / avctx->channels;
if ((ret = ff_get_buffer(avctx, &s->frame, 0)) < 0) if ((ret = ff_get_buffer(avctx, frame, 0)) < 0)
return ret; return ret;
samples = (int16_t *)s->frame.data[0]; samples = (int16_t *)frame->data[0];
// av_log(NULL, AV_LOG_INFO, "buf_size: %d\n", buf_size); // av_log(NULL, AV_LOG_INFO, "buf_size: %d\n", buf_size);
@ -958,7 +955,6 @@ static int sonic_decode_frame(AVCodecContext *avctx,
align_get_bits(&gb); align_get_bits(&gb);
*got_frame_ptr = 1; *got_frame_ptr = 1;
*(AVFrame*)data = s->frame;
return (get_bits_count(&gb)+7)/8; return (get_bits_count(&gb)+7)/8;
} }