isomp4: Add support VP9 codec
authorSeungha Yang <pudding8757@gmail.com>
Mon, 13 Nov 2017 01:38:06 +0000 (10:38 +0900)
committerNicolas Dufresne <nicolas.dufresne@collabora.com>
Mon, 13 Nov 2017 15:08:14 +0000 (10:08 -0500)
Add fourcc for VP9 codec and support it by qtdemux and qtmux
See also https://www.webmproject.org/vp9/mp4/

https://bugzilla.gnome.org/show_bug.cgi?id=790026

gst/isomp4/fourcc.h
gst/isomp4/gstqtmux.c
gst/isomp4/gstqtmuxmap.c
gst/isomp4/qtdemux.c

index 4e39d33..3a92e83 100644 (file)
@@ -251,6 +251,7 @@ G_BEGIN_DECLS
 #define FOURCC_vc_1     GST_MAKE_FOURCC('v','c','-','1')
 #define FOURCC_vide     GST_MAKE_FOURCC('v','i','d','e')
 #define FOURCC_vmhd     GST_MAKE_FOURCC('v','m','h','d')
+#define FOURCC_vp09     GST_MAKE_FOURCC('v','p','0','9')
 #define FOURCC_xvid     GST_MAKE_FOURCC('x','v','i','d')
 #define FOURCC_wave     GST_MAKE_FOURCC('w','a','v','e')
 #define FOURCC_wide     GST_MAKE_FOURCC('w','i','d','e')
index 3d98ae3..57294fe 100644 (file)
@@ -5348,6 +5348,8 @@ gst_qt_mux_video_sink_set_caps (GstQTPad * qtpad, GstCaps * caps)
   } else if (strcmp (mimetype, "video/x-vp8") == 0) {
     entry.fourcc = FOURCC_VP80;
     sync = FALSE;
+  } else if (strcmp (mimetype, "video/x-vp9") == 0) {
+    entry.fourcc = FOURCC_vp09;
   } else if (strcmp (mimetype, "video/x-dirac") == 0) {
     entry.fourcc = FOURCC_drac;
   } else if (strcmp (mimetype, "video/x-qt-part") == 0) {
index 239ff26..4e34e13 100644 (file)
@@ -196,6 +196,8 @@ GstQTMuxFormatProp gst_qt_mux_format_list[] = {
             COMMON_VIDEO_CAPS_NO_FRAMERATE "; "
             "video/x-vp8, "
             COMMON_VIDEO_CAPS "; "
+            "video/x-vp9, "
+            COMMON_VIDEO_CAPS "; "
             "video/x-dirac, "
             COMMON_VIDEO_CAPS "; " "video/x-qt-part, " COMMON_VIDEO_CAPS),
         GST_STATIC_CAPS (PCM_CAPS_FULL "; "
index 5a78702..6a75301 100644 (file)
@@ -13940,6 +13940,10 @@ qtdemux_video_caps (GstQTDemux * qtdemux, QtDemuxStream * stream,
       _codec ("On2 VP8");
       caps = gst_caps_from_string ("video/x-vp8");
       break;
+    case FOURCC_vp09:
+      _codec ("Google VP9");
+      caps = gst_caps_from_string ("video/x-vp9");
+      break;
     case FOURCC_apcs:
       _codec ("Apple ProRes LT");
       caps =