From 6bfee34b93aa85b657ffa3c2217f4bfcd2347486 Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Sun, 11 Oct 2015 09:18:40 +0100 Subject: [PATCH] qtmux: Add prores support https://bugzilla.gnome.org/show_bug.cgi?id=756388 --- gst/isomp4/gstqtmux.c | 12 ++++++++++++ gst/isomp4/gstqtmuxmap.c | 5 +++++ 2 files changed, 17 insertions(+) diff --git a/gst/isomp4/gstqtmux.c b/gst/isomp4/gstqtmux.c index ccc6ecf..e83095a 100644 --- a/gst/isomp4/gstqtmux.c +++ b/gst/isomp4/gstqtmux.c @@ -4024,6 +4024,18 @@ gst_qt_mux_video_sink_set_caps (GstQTPad * qtpad, GstCaps * caps) gst_structure_get_uint (structure, "format", &fourcc); entry.fourcc = fourcc; + } else if (strcmp (mimetype, "video/x-prores") == 0) { + const gchar *variant; + + variant = gst_structure_get_string (structure, "format"); + if (!variant || !g_strcmp0 (variant, "standard")) + entry.fourcc = GST_MAKE_FOURCC ('a', 'p', 'c', 'n'); + else if (!g_strcmp0 (variant, "lt")) + entry.fourcc = GST_MAKE_FOURCC ('a', 'p', 'c', 's'); + else if (!g_strcmp0 (variant, "hq")) + entry.fourcc = GST_MAKE_FOURCC ('a', 'p', 'c', 'h'); + else if (!g_strcmp0 (variant, "proxy")) + entry.fourcc = GST_MAKE_FOURCC ('a', 'p', '4', 'h'); } if (!entry.fourcc) diff --git a/gst/isomp4/gstqtmuxmap.c b/gst/isomp4/gstqtmuxmap.c index e088a42..006f16d 100644 --- a/gst/isomp4/gstqtmuxmap.c +++ b/gst/isomp4/gstqtmuxmap.c @@ -73,6 +73,10 @@ "divxversion = (int) 5, "\ COMMON_VIDEO_CAPS +#define PRORES_CAPS \ + "video/x-prores, variant = (string) {standard, lt, hq, proxy}, " \ + COMMON_VIDEO_CAPS + #define SVQ_CAPS \ "video/x-svq, " \ "svqversion = (int) 3, " \ @@ -156,6 +160,7 @@ GstQTMuxFormatProp gst_qt_mux_format_list[] = { "format = (string) { RGB, UYVY, v210 }, " COMMON_VIDEO_CAPS "; " MPEG4V_CAPS "; " + PRORES_CAPS "; " H263_CAPS "; " H264_CAPS "; " SVQ_CAPS "; " -- 2.7.4