| @@ -27,6 +27,7 @@ | |||||
| * http://www.pcisys.net/~melanson/codecs/ | * http://www.pcisys.net/~melanson/codecs/ | ||||
| */ | */ | ||||
| #include "libavutil/channel_layout.h" | |||||
| #include "libavutil/intreadwrite.h" | #include "libavutil/intreadwrite.h" | ||||
| #include "avformat.h" | #include "avformat.h" | ||||
| #include "internal.h" | #include "internal.h" | ||||
| @@ -132,7 +133,13 @@ static int vmd_read_header(AVFormatContext *s) | |||||
| st->codec->codec_type = AVMEDIA_TYPE_AUDIO; | st->codec->codec_type = AVMEDIA_TYPE_AUDIO; | ||||
| st->codec->codec_id = AV_CODEC_ID_VMDAUDIO; | st->codec->codec_id = AV_CODEC_ID_VMDAUDIO; | ||||
| st->codec->codec_tag = 0; /* no fourcc */ | st->codec->codec_tag = 0; /* no fourcc */ | ||||
| st->codec->channels = (vmd->vmd_header[811] & 0x80) ? 2 : 1; | |||||
| if (vmd->vmd_header[811] & 0x80) { | |||||
| 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->sample_rate = vmd->sample_rate; | st->codec->sample_rate = vmd->sample_rate; | ||||
| st->codec->block_align = AV_RL16(&vmd->vmd_header[806]); | st->codec->block_align = AV_RL16(&vmd->vmd_header[806]); | ||||
| if (st->codec->block_align & 0x8000) { | if (st->codec->block_align & 0x8000) { | ||||