Browse code

avformat: add an Ogg Video muxer

Signed-off-by: James Almer <jamrial@gmail.com>

James Almer authored on 2016/07/21 09:55:12
Showing 6 changed files
... ...
@@ -5,6 +5,7 @@ version <next>:
5 5
 - libopenmpt demuxer
6 6
 - tee protocol
7 7
 - Changed metadata print option to accept general urls
8
+- Alias muxer for Ogg Video (.ogv)
8 9
 
9 10
 
10 11
 version 3.1:
... ...
@@ -2860,6 +2860,7 @@ nut_muxer_select="riffenc"
2860 2860
 nuv_demuxer_select="riffdec"
2861 2861
 oga_muxer_select="ogg_muxer"
2862 2862
 ogg_demuxer_select="dirac_parse"
2863
+ogv_muxer_select="ogg_muxer"
2863 2864
 opus_muxer_select="ogg_muxer"
2864 2865
 psp_muxer_select="mov_muxer"
2865 2866
 rtp_demuxer_select="sdp_demuxer"
... ...
@@ -340,6 +340,8 @@ OBJS-$(CONFIG_OGA_MUXER)                 += oggenc.o \
340 340
                                             vorbiscomment.o
341 341
 OBJS-$(CONFIG_OGG_MUXER)                 += oggenc.o \
342 342
                                             vorbiscomment.o
343
+OBJS-$(CONFIG_OGV_MUXER)                 += oggenc.o \
344
+                                            vorbiscomment.o
343 345
 OBJS-$(CONFIG_OMA_DEMUXER)               += omadec.o pcm.o oma.o
344 346
 OBJS-$(CONFIG_OMA_MUXER)                 += omaenc.o rawenc.o oma.o id3v2enc.o
345 347
 OBJS-$(CONFIG_OPUS_MUXER)                += oggenc.o \
... ...
@@ -225,6 +225,7 @@ void av_register_all(void)
225 225
     REGISTER_DEMUXER (NUV,              nuv);
226 226
     REGISTER_MUXER   (OGA,              oga);
227 227
     REGISTER_MUXDEMUX(OGG,              ogg);
228
+    REGISTER_MUXER   (OGV,              ogv);
228 229
     REGISTER_MUXDEMUX(OMA,              oma);
229 230
     REGISTER_MUXER   (OPUS,             opus);
230 231
     REGISTER_DEMUXER (PAF,              paf);
... ...
@@ -668,7 +668,10 @@ AVOutputFormat ff_ogg_muxer = {
668 668
     .name              = "ogg",
669 669
     .long_name         = NULL_IF_CONFIG_SMALL("Ogg"),
670 670
     .mime_type         = "application/ogg",
671
-    .extensions        = "ogg,ogv"
671
+    .extensions        = "ogg"
672
+#if !CONFIG_OGV_MUXER
673
+                         ",ogv"
674
+#endif
672 675
 #if !CONFIG_SPX_MUXER
673 676
                          ",spx"
674 677
 #endif
... ...
@@ -705,6 +708,25 @@ AVOutputFormat ff_oga_muxer = {
705 705
 };
706 706
 #endif
707 707
 
708
+#if CONFIG_OGV_MUXER
709
+OGG_CLASS(ogv, Ogg video)
710
+AVOutputFormat ff_ogv_muxer = {
711
+    .name              = "ogv",
712
+    .long_name         = NULL_IF_CONFIG_SMALL("Ogg Video"),
713
+    .mime_type         = "video/ogg",
714
+    .extensions        = "ogv",
715
+    .priv_data_size    = sizeof(OGGContext),
716
+    .audio_codec       = CONFIG_LIBVORBIS_ENCODER ?
717
+                         AV_CODEC_ID_VORBIS : AV_CODEC_ID_FLAC,
718
+    .video_codec       = AV_CODEC_ID_THEORA,
719
+    .write_header      = ogg_write_header,
720
+    .write_packet      = ogg_write_packet,
721
+    .write_trailer     = ogg_write_trailer,
722
+    .flags             = AVFMT_TS_NEGATIVE | AVFMT_ALLOW_FLUSH,
723
+    .priv_class        = &ogv_muxer_class,
724
+};
725
+#endif
726
+
708 727
 #if CONFIG_SPX_MUXER
709 728
 OGG_CLASS(spx, Ogg Speex)
710 729
 AVOutputFormat ff_spx_muxer = {
... ...
@@ -32,7 +32,7 @@
32 32
 // Major bumping may affect Ticket5467, 5421, 5451(compatibility with Chromium)
33 33
 // Also please add any ticket numbers that you belive might be affected here
34 34
 #define LIBAVFORMAT_VERSION_MAJOR  57
35
-#define LIBAVFORMAT_VERSION_MINOR  43
35
+#define LIBAVFORMAT_VERSION_MINOR  44
36 36
 #define LIBAVFORMAT_VERSION_MICRO 100
37 37
 
38 38
 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \