Commit 3509eee1 authored by Justin Ruggles's avatar Justin Ruggles

cook: use AVCodecContext.channels instead of keeping a private copy

parent a3145d03
...@@ -126,7 +126,6 @@ typedef struct cook { ...@@ -126,7 +126,6 @@ typedef struct cook {
AVFrame frame; AVFrame frame;
GetBitContext gb; GetBitContext gb;
/* stream data */ /* stream data */
int nb_channels;
int bit_rate; int bit_rate;
int sample_rate; int sample_rate;
int num_vectors; int num_vectors;
...@@ -1024,7 +1023,7 @@ static void dump_cook_context(COOKContext *q) ...@@ -1024,7 +1023,7 @@ static void dump_cook_context(COOKContext *q)
PRINT("js_vlc_bits", q->subpacket[0].js_vlc_bits); PRINT("js_vlc_bits", q->subpacket[0].js_vlc_bits);
} }
av_log(q->avctx, AV_LOG_ERROR, "COOKContext\n"); av_log(q->avctx, AV_LOG_ERROR, "COOKContext\n");
PRINT("nb_channels", q->nb_channels); PRINT("nb_channels", q->avctx->channels);
PRINT("bit_rate", q->bit_rate); PRINT("bit_rate", q->bit_rate);
PRINT("sample_rate", q->sample_rate); PRINT("sample_rate", q->sample_rate);
PRINT("samples_per_channel", q->subpacket[0].samples_per_channel); PRINT("samples_per_channel", q->subpacket[0].samples_per_channel);
...@@ -1072,9 +1071,8 @@ static av_cold int cook_decode_init(AVCodecContext *avctx) ...@@ -1072,9 +1071,8 @@ static av_cold int cook_decode_init(AVCodecContext *avctx)
/* Take data from the AVCodecContext (RM container). */ /* Take data from the AVCodecContext (RM container). */
q->sample_rate = avctx->sample_rate; q->sample_rate = avctx->sample_rate;
q->nb_channels = avctx->channels;
q->bit_rate = avctx->bit_rate; q->bit_rate = avctx->bit_rate;
if (!q->nb_channels) { if (!avctx->channels) {
av_log(avctx, AV_LOG_ERROR, "Invalid number of channels\n"); av_log(avctx, AV_LOG_ERROR, "Invalid number of channels\n");
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
} }
...@@ -1101,7 +1099,7 @@ static av_cold int cook_decode_init(AVCodecContext *avctx) ...@@ -1101,7 +1099,7 @@ static av_cold int cook_decode_init(AVCodecContext *avctx)
} }
/* Initialize extradata related variables. */ /* Initialize extradata related variables. */
q->subpacket[s].samples_per_channel = q->subpacket[s].samples_per_frame / q->nb_channels; q->subpacket[s].samples_per_channel = q->subpacket[s].samples_per_frame / avctx->channels;
q->subpacket[s].bits_per_subpacket = avctx->block_align * 8; q->subpacket[s].bits_per_subpacket = avctx->block_align * 8;
/* Initialize default data states. */ /* Initialize default data states. */
...@@ -1116,21 +1114,21 @@ static av_cold int cook_decode_init(AVCodecContext *avctx) ...@@ -1116,21 +1114,21 @@ static av_cold int cook_decode_init(AVCodecContext *avctx)
q->subpacket[s].joint_stereo = 0; q->subpacket[s].joint_stereo = 0;
switch (q->subpacket[s].cookversion) { switch (q->subpacket[s].cookversion) {
case MONO: case MONO:
if (q->nb_channels != 1) { if (avctx->channels != 1) {
av_log_ask_for_sample(avctx, "Container channels != 1.\n"); av_log_ask_for_sample(avctx, "Container channels != 1.\n");
return AVERROR_PATCHWELCOME; return AVERROR_PATCHWELCOME;
} }
av_log(avctx, AV_LOG_DEBUG, "MONO\n"); av_log(avctx, AV_LOG_DEBUG, "MONO\n");
break; break;
case STEREO: case STEREO:
if (q->nb_channels != 1) { if (avctx->channels != 1) {
q->subpacket[s].bits_per_subpdiv = 1; q->subpacket[s].bits_per_subpdiv = 1;
q->subpacket[s].num_channels = 2; q->subpacket[s].num_channels = 2;
} }
av_log(avctx, AV_LOG_DEBUG, "STEREO\n"); av_log(avctx, AV_LOG_DEBUG, "STEREO\n");
break; break;
case JOINT_STEREO: case JOINT_STEREO:
if (q->nb_channels != 2) { if (avctx->channels != 2) {
av_log_ask_for_sample(avctx, "Container channels != 2.\n"); av_log_ask_for_sample(avctx, "Container channels != 2.\n");
return AVERROR_PATCHWELCOME; return AVERROR_PATCHWELCOME;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment