qtmux: add CineForm support

https://bugzilla.gnome.org/show_bug.cgi?id=780024
This commit is contained in:
Emeric Grange 2017-03-14 10:10:19 +01:00 committed by Sebastian Dröge
parent 6cb8c802f4
commit 534be3313c
5 changed files with 14 additions and 0 deletions

View file

@ -254,6 +254,7 @@ G_BEGIN_DECLS
#define FOURCC_wide GST_MAKE_FOURCC('w','i','d','e')
#define FOURCC_zlib GST_MAKE_FOURCC('z','l','i','b')
#define FOURCC_cfhd GST_MAKE_FOURCC('C','F','H','D')
#define FOURCC_ap4x GST_MAKE_FOURCC('a','p','4','x')
#define FOURCC_ap4h GST_MAKE_FOURCC('a','p','4','h')
#define FOURCC_apch GST_MAKE_FOURCC('a','p','c','h')

View file

@ -4380,6 +4380,9 @@ gst_qt_mux_video_sink_set_caps (GstQTPad * qtpad, GstCaps * caps)
qtmux->interleave_time = 500 * GST_MSECOND;
if (!qtmux->interleave_bytes_set)
qtmux->interleave_bytes = width > 720 ? 4 * 1024 * 1024 : 2 * 1024 * 1024;
} else if (strcmp (mimetype, "video/x-cineform") == 0) {
entry.fourcc = FOURCC_cfhd;
sync = FALSE;
}
if (!entry.fourcc)

View file

@ -84,6 +84,10 @@
"variant = (string) {standard, lt, hq, proxy, 4444, 4444xq}, " \
COMMON_VIDEO_CAPS
#define CINEFORM_CAPS \
"video/x-cineform, " \
COMMON_VIDEO_CAPS
#define SVQ_CAPS \
"video/x-svq, " \
"svqversion = (int) 3, " \
@ -178,6 +182,7 @@ GstQTMuxFormatProp gst_qt_mux_format_list[] = {
COMMON_VIDEO_CAPS "; "
MPEG4V_CAPS "; "
PRORES_CAPS "; "
CINEFORM_CAPS "; "
H263_CAPS "; "
H264_CAPS "; "
H265_CAPS "; "

View file

@ -13747,6 +13747,10 @@ qtdemux_video_caps (GstQTDemux * qtdemux, QtDemuxStream * stream,
gst_caps_new_simple ("video/x-prores", "variant", G_TYPE_STRING,
"4444xq", NULL);
break;
case FOURCC_cfhd:
_codec ("GoPro CineForm");
caps = gst_caps_from_string ("video/x-cineform");
break;
case FOURCC_vc_1:
case FOURCC_ovc1:
_codec ("VC-1");

View file

@ -94,6 +94,7 @@ static const QtNodeType qt_node_types[] = {
{FOURCC_dfLa, "dfLa", 0, qtdemux_dump_dfLa},
{FOURCC_wave, "wave", QT_FLAG_CONTAINER},
{FOURCC_appl, "appl", QT_FLAG_CONTAINER},
{FOURCC_cfhd, "cfhd", QT_FLAG_CONTAINER},
{FOURCC_esds, "esds", 0},
{FOURCC_hnti, "hnti", QT_FLAG_CONTAINER},
{FOURCC_rtp_, "rtp ", 0, qtdemux_dump_unknown},