From e09f7d61da3a08a8595400ebdde44034f0c1b10c Mon Sep 17 00:00:00 2001
From: David Conrad <lessen42@gmail.com>
Date: Wed, 5 Sep 2007 00:38:42 +0000
Subject: [PATCH] Enable Matroska muxer

Originally committed as revision 10389 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 Changelog                | 1 +
 MAINTAINERS              | 1 +
 doc/general.texi         | 2 +-
 libavformat/Makefile     | 2 ++
 libavformat/allformats.c | 3 ++-
 libavformat/allformats.h | 2 ++
 6 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/Changelog b/Changelog
index 51feb54d680..c6243d6d840 100644
--- a/Changelog
+++ b/Changelog
@@ -92,6 +92,7 @@ version <next>
 - OS/2 support removed
 - AC-3 decoder
 - NUT muxer (since r10052)
+- Matroska muxer
 
 version 0.4.9-pre1:
 
diff --git a/MAINTAINERS b/MAINTAINERS
index db92b285a6d..bb34b0c0836 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -222,6 +222,7 @@ Muxers/Demuxers:
   img2.c                                Michael Niedermayer
   libnut.c                              Oded Shimon
   matroska.c                            Aurelien Jacobs
+  matroskaenc.c                         David Conrad
   mov.c                                 Michael Niedermayer, Baptiste Coudurier
   movenc.c                              Michael Niedermayer, Baptiste Coudurier
   mpc.c                                 Kostya Shishkov
diff --git a/doc/general.texi b/doc/general.texi
index 91471b6ee83..3160a4d7d78 100644
--- a/doc/general.texi
+++ b/doc/general.texi
@@ -85,7 +85,7 @@ library:
 @tab Used in Sierra CD-ROM games.
 @item Sierra Online    @tab    @tab X
 @tab .sol files used in Sierra Online games.
-@item Matroska         @tab    @tab X
+@item Matroska         @tab X  @tab X
 @item Electronic Arts Multimedia    @tab    @tab X
 @tab Used in various EA games; files have extensions like WVE and UV2.
 @item Nullsoft Video (NSV) format @tab    @tab X
diff --git a/libavformat/Makefile b/libavformat/Makefile
index 11fd2cf6525..6ccf672e377 100644
--- a/libavformat/Makefile
+++ b/libavformat/Makefile
@@ -70,7 +70,9 @@ OBJS-$(CONFIG_INGENIENT_DEMUXER)         += raw.o
 OBJS-$(CONFIG_IPMOVIE_DEMUXER)           += ipmovie.o
 OBJS-$(CONFIG_M4V_DEMUXER)               += raw.o
 OBJS-$(CONFIG_M4V_MUXER)                 += raw.o
+OBJS-$(CONFIG_MATROSKA_AUDIO_MUXER)      += matroskaenc.o matroska.o riff.o
 OBJS-$(CONFIG_MATROSKA_DEMUXER)          += matroskadec.o matroska.o riff.o
+OBJS-$(CONFIG_MATROSKA_MUXER)            += matroskaenc.o matroska.o riff.o
 OBJS-$(CONFIG_MJPEG_DEMUXER)             += raw.o
 OBJS-$(CONFIG_MJPEG_MUXER)               += raw.o
 OBJS-$(CONFIG_MM_DEMUXER)                += mm.o
diff --git a/libavformat/allformats.c b/libavformat/allformats.c
index e18063531d6..5b5f88f8622 100644
--- a/libavformat/allformats.c
+++ b/libavformat/allformats.c
@@ -91,7 +91,8 @@ void av_register_all(void)
     if (!ENABLE_NUT_DEMUXER) REGISTER_DEMUXER (LIBNUT, libnut);
     if (!ENABLE_NUT_MUXER)   REGISTER_MUXER   (LIBNUT, libnut);
     REGISTER_MUXDEMUX(M4V, m4v);
-    REGISTER_DEMUXER (MATROSKA, matroska);
+    REGISTER_MUXDEMUX(MATROSKA, matroska);
+    REGISTER_MUXER   (MATROSKA_AUDIO, matroska_audio);
     REGISTER_MUXDEMUX(MJPEG, mjpeg);
     REGISTER_DEMUXER (MM, mm);
     REGISTER_MUXDEMUX(MMF, mmf);
diff --git a/libavformat/allformats.h b/libavformat/allformats.h
index 4ae01e6e28d..d17a146e7cb 100644
--- a/libavformat/allformats.h
+++ b/libavformat/allformats.h
@@ -144,6 +144,8 @@ extern AVOutputFormat image_muxer;
 extern AVOutputFormat imagepipe_muxer;
 extern AVOutputFormat libnut_muxer;
 extern AVOutputFormat m4v_muxer;
+extern AVOutputFormat matroska_audio_muxer;
+extern AVOutputFormat matroska_muxer;
 extern AVOutputFormat mjpeg_muxer;
 extern AVOutputFormat mmf_muxer;
 extern AVOutputFormat mov_muxer;
-- 
GitLab