Fixes audio playback in some players (e.g. VLC) that expect a full WAVEFORMATEX structure where we were generating WAVEFORMAT
Signed-off-by: John Brooks <[email protected]> --- libavformat/matroskaenc.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index 02d10af..a59ab38 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -490,6 +490,7 @@ static int mkv_write_codecprivate(AVFormatContext *s, AVIOContext *pb, AVCodecCo } else if (codec->codec_type == AVMEDIA_TYPE_AUDIO) { unsigned int tag; + int wavsize; tag = ff_codec_get_tag(ff_codec_wav_tags, codec->codec_id); if (!tag) { av_log(s, AV_LOG_ERROR, "No wav codec ID found.\n"); @@ -498,7 +499,11 @@ static int mkv_write_codecprivate(AVFormatContext *s, AVIOContext *pb, AVCodecCo if (!codec->codec_tag) codec->codec_tag = tag; - ff_put_wav_header(dyn_cp, codec); + wavsize = ff_put_wav_header(dyn_cp, codec); + if (wavsize < 18) { + /* Add WAVEFORMATEX cbSize field to WAVEFORMAT */ + avio_wl16(dyn_cp, 0); + } } codecpriv_size = avio_close_dyn_buf(dyn_cp, &codecpriv); -- 1.7.4.1 _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
