Mercurial > libavformat.hg
changeset 2452:1b6ea48f7f24 libavformat
Write wav header if there is no native audio codec ID
author | conrad |
---|---|
date | Wed, 05 Sep 2007 00:23:29 +0000 |
parents | b66287f9c892 |
children | 2965cc9aa501 |
files | matroskaenc.c |
diffstat | 1 files changed, 14 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/matroskaenc.c Wed Sep 05 00:23:27 2007 +0000 +++ b/matroskaenc.c Wed Sep 05 00:23:29 2007 +0000 @@ -421,7 +421,20 @@ case CODEC_TYPE_AUDIO: put_ebml_uint(pb, MATROSKA_ID_TRACKTYPE, MATROSKA_TRACK_TYPE_AUDIO); - // XXX: A_MS/ACM + if (!native_id) { + offset_t wav_header; + // no mkv-specific ID, use ACM mode + codec->codec_tag = codec_get_tag(codec_wav_tags, codec->codec_id); + if (!codec->codec_tag) { + av_log(s, AV_LOG_ERROR, "no codec id found for stream %d", i); + return -1; + } + + put_ebml_string(pb, MATROSKA_ID_CODECID, MATROSKA_CODEC_ID_AUDIO_ACM); + wav_header = start_ebml_master(pb, MATROSKA_ID_CODECPRIVATE); + put_wav_header(pb, codec); + end_ebml_master(pb, wav_header); + } subinfo = start_ebml_master(pb, MATROSKA_ID_TRACKAUDIO); put_ebml_uint (pb, MATROSKA_ID_AUDIOCHANNELS , codec->channels); put_ebml_float (pb, MATROSKA_ID_AUDIOSAMPLINGFREQ, codec->sample_rate);