| @@ -20,6 +20,8 @@ | |||||
| */ | */ | ||||
| #include <string.h> | #include <string.h> | ||||
| #include "libavutil/channel_layout.h" | |||||
| #include "avformat.h" | #include "avformat.h" | ||||
| static int apc_probe(AVProbeData *p) | static int apc_probe(AVProbeData *p) | ||||
| @@ -58,9 +60,13 @@ static int apc_read_header(AVFormatContext *s) | |||||
| /* initial predictor values for adpcm decoder */ | /* initial predictor values for adpcm decoder */ | ||||
| avio_read(pb, st->codec->extradata, 2 * 4); | avio_read(pb, st->codec->extradata, 2 * 4); | ||||
| st->codec->channels = 1; | |||||
| if (avio_rl32(pb)) | |||||
| st->codec->channels = 2; | |||||
| if (avio_rl32(pb)) { | |||||
| st->codec->channels = 2; | |||||
| st->codec->channel_layout = AV_CH_LAYOUT_STEREO; | |||||
| } else { | |||||
| st->codec->channels = 1; | |||||
| st->codec->channel_layout = AV_CH_LAYOUT_MONO; | |||||
| } | |||||
| st->codec->bits_per_coded_sample = 4; | st->codec->bits_per_coded_sample = 4; | ||||
| st->codec->bit_rate = st->codec->bits_per_coded_sample * st->codec->channels | st->codec->bit_rate = st->codec->bits_per_coded_sample * st->codec->channels | ||||