From 93f19b19d28856a4d4aabb9a586d19c4b5d7bee0 Mon Sep 17 00:00:00 2001 From: Seungha Yang Date: Mon, 13 Nov 2017 10:38:06 +0900 Subject: [PATCH] isomp4: Add support VP9 codec 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 | 1 + gst/isomp4/gstqtmux.c | 2 ++ gst/isomp4/gstqtmuxmap.c | 2 ++ gst/isomp4/qtdemux.c | 4 ++++ 4 files changed, 9 insertions(+) diff --git a/gst/isomp4/fourcc.h b/gst/isomp4/fourcc.h index 4e39d337e5..3a92e83760 100644 --- a/gst/isomp4/fourcc.h +++ b/gst/isomp4/fourcc.h @@ -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') diff --git a/gst/isomp4/gstqtmux.c b/gst/isomp4/gstqtmux.c index 3d98ae3722..57294fed53 100644 --- a/gst/isomp4/gstqtmux.c +++ b/gst/isomp4/gstqtmux.c @@ -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) { diff --git a/gst/isomp4/gstqtmuxmap.c b/gst/isomp4/gstqtmuxmap.c index 239ff26c85..4e34e137f9 100644 --- a/gst/isomp4/gstqtmuxmap.c +++ b/gst/isomp4/gstqtmuxmap.c @@ -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 "; " diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c index 5a78702bf4..6a75301cac 100644 --- a/gst/isomp4/qtdemux.c +++ b/gst/isomp4/qtdemux.c @@ -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 =