Lines Matching defs:avctx
73 static av_cold int decode_init(AVCodecContext *avctx)
75 BinkAudioContext *s = avctx->priv_data;
76 int sample_rate = avctx->sample_rate;
80 int max_channels = avctx->codec->id == AV_CODEC_ID_BINKAUDIO_RDFT ? MAX_CHANNELS : MAX_DCT_CHANNELS;
81 int channels = avctx->ch_layout.nb_channels;
84 if (avctx->sample_rate < 22050) {
86 } else if (avctx->sample_rate < 44100) {
93 av_log(avctx, AV_LOG_ERROR, "invalid number of channels: %d\n", channels);
96 av_channel_layout_uninit(&avctx->ch_layout);
97 av_channel_layout_default(&avctx->ch_layout, channels);
99 s->version_b = avctx->extradata_size >= 4 && avctx->extradata[3] == 'b';
101 if (avctx->codec->id == AV_CODEC_ID_BINKAUDIO_RDFT) {
103 avctx->sample_fmt = AV_SAMPLE_FMT_FLT;
112 avctx->sample_fmt = AV_SAMPLE_FMT_FLTP;
119 if (avctx->codec->id == AV_CODEC_ID_BINKAUDIO_RDFT)
141 if (CONFIG_BINKAUDIO_RDFT_DECODER && avctx->codec->id == AV_CODEC_ID_BINKAUDIO_RDFT)
150 s->pkt = avctx->internal->in_pkt;
278 static av_cold int decode_end(AVCodecContext *avctx)
280 BinkAudioContext * s = avctx->priv_data;
281 if (CONFIG_BINKAUDIO_RDFT_DECODER && avctx->codec->id == AV_CODEC_ID_BINKAUDIO_RDFT)
295 static int binkaudio_receive_frame(AVCodecContext *avctx, AVFrame *frame)
297 BinkAudioContext *s = avctx->priv_data;
303 ret = ff_decode_get_packet(avctx, s->pkt);
310 av_log(avctx, AV_LOG_ERROR, "Packet is too small\n");
326 if ((ret = ff_get_buffer(avctx, frame, 0)) < 0)
331 avctx->codec->id == AV_CODEC_ID_BINKAUDIO_DCT,
333 av_log(avctx, AV_LOG_ERROR, "Incomplete packet\n");
349 frame->nb_samples = s->block_size / FFMIN(avctx->ch_layout.nb_channels, MAX_CHANNELS);
358 static void decode_flush(AVCodecContext *avctx)
360 BinkAudioContext *const s = avctx->priv_data;
362 /* s->pkt coincides with avctx->internal->in_pkt