- st->codec.codec_type = CODEC_TYPE_AUDIO;
- st->codec.codec_id = film->audio_type;
- st->codec.codec_tag = 1;
- st->codec.channels = film->audio_channels;
- st->codec.bits_per_sample = film->audio_bits;
- st->codec.sample_rate = film->audio_samplerate;
- st->codec.bit_rate = st->codec.channels * st->codec.sample_rate *
- st->codec.bits_per_sample;
- st->codec.block_align = st->codec.channels *
- st->codec.bits_per_sample / 8;
+ st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
+ st->codec->codec_id = film->audio_type;
+ st->codec->codec_tag = 1;
+ st->codec->channels = film->audio_channels;
+ st->codec->sample_rate = film->audio_samplerate;
+
+ if (film->audio_type == AV_CODEC_ID_ADPCM_ADX) {
+ st->codec->bits_per_coded_sample = 18 * 8 / 32;
+ st->codec->block_align = st->codec->channels * 18;
+ st->need_parsing = AVSTREAM_PARSE_FULL;
+ } else {
+ st->codec->bits_per_coded_sample = film->audio_bits;
+ st->codec->block_align = st->codec->channels *
+ st->codec->bits_per_coded_sample / 8;
+ }
+
+ st->codec->bit_rate = st->codec->channels * st->codec->sample_rate *
+ st->codec->bits_per_coded_sample;