diff --git a/gst/isomp4/gstqtmux.c b/gst/isomp4/gstqtmux.c index ccc6ecfd93..e83095a0f7 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 e088a424a5..006f16d33c 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 "; "