* available.
*/
+#include "libavutil/channel_layout.h"
#include "libavutil/lfg.h"
#include "avcodec.h"
#include "get_bits.h"
#include "dsputil.h"
#include "bytestream.h"
#include "fft.h"
-#include "libavutil/audioconvert.h"
+#include "internal.h"
#include "sinewin.h"
#include "cookdata.h"
AVCodecContext* avctx;
DSPContext dsp;
- AVFrame frame;
GetBitContext gb;
/* stream data */
int num_vectors;
static int cook_decode_frame(AVCodecContext *avctx, void *data,
int *got_frame_ptr, AVPacket *avpkt)
{
+ AVFrame *frame = data;
const uint8_t *buf = avpkt->data;
int buf_size = avpkt->size;
COOKContext *q = avctx->priv_data;
/* get output buffer */
if (q->discarded_packets >= 2) {
- q->frame.nb_samples = q->samples_per_channel;
- if ((ret = avctx->get_buffer(avctx, &q->frame)) < 0) {
+ frame->nb_samples = q->samples_per_channel;
+ if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) {
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
return ret;
}
- samples = (float **)q->frame.extended_data;
+ samples = (float **)frame->extended_data;
}
/* estimate subpacket sizes */
return avctx->block_align;
}
- *got_frame_ptr = 1;
- *(AVFrame *) data = q->frame;
+ *got_frame_ptr = 1;
return avctx->block_align;
}
static void dump_cook_context(COOKContext *q)
{
//int i=0;
-#define PRINT(a, b) av_log(q->avctx, AV_LOG_ERROR, " %s = %d\n", a, b);
- av_log(q->avctx, AV_LOG_ERROR, "COOKextradata\n");
- av_log(q->avctx, AV_LOG_ERROR, "cookversion=%x\n", q->subpacket[0].cookversion);
+#define PRINT(a, b) av_dlog(q->avctx, " %s = %d\n", a, b);
+ av_dlog(q->avctx, "COOKextradata\n");
+ av_dlog(q->avctx, "cookversion=%x\n", q->subpacket[0].cookversion);
if (q->subpacket[0].cookversion > STEREO) {
PRINT("js_subband_start", q->subpacket[0].js_subband_start);
PRINT("js_vlc_bits", q->subpacket[0].js_vlc_bits);
}
- av_log(q->avctx, AV_LOG_ERROR, "COOKContext\n");
+ av_dlog(q->avctx, "COOKContext\n");
PRINT("nb_channels", q->avctx->channels);
PRINT("bit_rate", q->avctx->bit_rate);
PRINT("sample_rate", q->avctx->sample_rate);
else
avctx->channel_layout = (avctx->channels == 2) ? AV_CH_LAYOUT_STEREO : AV_CH_LAYOUT_MONO;
- avcodec_get_frame_defaults(&q->frame);
- avctx->coded_frame = &q->frame;
-
#ifdef DEBUG
dump_cook_context(q);
#endif