|
|
|
@ -113,7 +113,6 @@ typedef struct ATRAC3Context { |
|
|
|
|
//@}
|
|
|
|
|
//@{
|
|
|
|
|
/** extradata */ |
|
|
|
|
int delay; |
|
|
|
|
int scrambled_stream; |
|
|
|
|
int frame_factor; |
|
|
|
|
//@}
|
|
|
|
@ -853,7 +852,7 @@ static int atrac3_decode_frame(AVCodecContext *avctx, void *data, |
|
|
|
|
static av_cold int atrac3_decode_init(AVCodecContext *avctx) |
|
|
|
|
{ |
|
|
|
|
int i, ret; |
|
|
|
|
int version; |
|
|
|
|
int version, delay; |
|
|
|
|
const uint8_t *edata_ptr = avctx->extradata; |
|
|
|
|
ATRAC3Context *q = avctx->priv_data; |
|
|
|
|
static VLC_TYPE atrac3_vlc_table[4096][2]; |
|
|
|
@ -886,7 +885,7 @@ static av_cold int atrac3_decode_init(AVCodecContext *avctx) |
|
|
|
|
/* setup */ |
|
|
|
|
q->samples_per_frame = SAMPLES_PER_FRAME * avctx->channels; |
|
|
|
|
version = 4; |
|
|
|
|
q->delay = 0x88E; |
|
|
|
|
delay = 0x88E; |
|
|
|
|
q->coding_mode = q->coding_mode ? JOINT_STEREO : STEREO; |
|
|
|
|
q->scrambled_stream = 0; |
|
|
|
|
|
|
|
|
@ -902,7 +901,7 @@ static av_cold int atrac3_decode_init(AVCodecContext *avctx) |
|
|
|
|
/* Parse the extradata, RM format. */ |
|
|
|
|
version = bytestream_get_be32(&edata_ptr); |
|
|
|
|
q->samples_per_frame = bytestream_get_be16(&edata_ptr); |
|
|
|
|
q->delay = bytestream_get_be16(&edata_ptr); |
|
|
|
|
delay = bytestream_get_be16(&edata_ptr); |
|
|
|
|
q->coding_mode = bytestream_get_be16(&edata_ptr); |
|
|
|
|
q->samples_per_channel = q->samples_per_frame / avctx->channels; |
|
|
|
|
q->scrambled_stream = 1; |
|
|
|
@ -926,9 +925,9 @@ static av_cold int atrac3_decode_init(AVCodecContext *avctx) |
|
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (q->delay != 0x88E) { |
|
|
|
|
if (delay != 0x88E) { |
|
|
|
|
av_log(avctx, AV_LOG_ERROR, "Unknown amount of delay %x != 0x88E.\n", |
|
|
|
|
q->delay); |
|
|
|
|
delay); |
|
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|