diff --git a/subprojects/gst-plugins-good/gst/matroska/matroska-demux.c b/subprojects/gst-plugins-good/gst/matroska/matroska-demux.c index 0f1069df24..2622ae5efc 100644 --- a/subprojects/gst-plugins-good/gst/matroska/matroska-demux.c +++ b/subprojects/gst-plugins-good/gst/matroska/matroska-demux.c @@ -6501,12 +6501,21 @@ gst_matroska_demux_video_caps (GstMatroskaTrackVideoContext * case GST_MAKE_FOURCC ('Y', '8', ' ', ' '): format = GST_VIDEO_FORMAT_GRAY8; break; + case GST_MAKE_FOURCC ('Y', '1', 0, 10): + format = GST_VIDEO_FORMAT_GRAY10_LE32; + break; case GST_MAKE_FOURCC ('R', 'G', 'B', 24): format = GST_VIDEO_FORMAT_RGB; break; case GST_MAKE_FOURCC ('B', 'G', 'R', 24): format = GST_VIDEO_FORMAT_BGR; break; + case GST_MAKE_FOURCC ('R', 'B', 'A', 64): + format = GST_VIDEO_FORMAT_RGBA64_LE; + break; + case GST_MAKE_FOURCC ('B', 'R', 'A', 64): + format = GST_VIDEO_FORMAT_BGRA64_LE; + break; default: GST_DEBUG ("Unknown fourcc %" GST_FOURCC_FORMAT, GST_FOURCC_ARGS (videocontext->fourcc)); diff --git a/subprojects/gst-plugins-good/gst/matroska/matroska-mux.c b/subprojects/gst-plugins-good/gst/matroska/matroska-mux.c index e6144328f8..f7f98895e9 100644 --- a/subprojects/gst-plugins-good/gst/matroska/matroska-mux.c +++ b/subprojects/gst-plugins-good/gst/matroska/matroska-mux.c @@ -141,7 +141,8 @@ static GstStaticPadTemplate videosink_templ = "video/x-vp9, " COMMON_VIDEO_CAPS "; " "video/x-raw, " - "format = (string) { YUY2, I420, YV12, UYVY, AYUV, GRAY8, BGR, RGB }, " + "format = (string) { YUY2, I420, YV12, UYVY, AYUV, GRAY8, GRAY10_LE32," + " BGR, RGB, RGBA64_LE, BGRA64_LE }, " COMMON_VIDEO_CAPS "; " "video/x-prores, " COMMON_VIDEO_CAPS "; " @@ -1256,10 +1257,16 @@ skip_details: videocontext->fourcc = GST_STR_FOURCC (fstr); else if (!strcmp (fstr, "GRAY8")) videocontext->fourcc = GST_MAKE_FOURCC ('Y', '8', '0', '0'); + else if (!strcmp (fstr, "GRAY10_LE32")) + videocontext->fourcc = GST_MAKE_FOURCC ('Y', '1', 0, 10); else if (!strcmp (fstr, "BGR")) videocontext->fourcc = GST_MAKE_FOURCC ('B', 'G', 'R', 24); else if (!strcmp (fstr, "RGB")) videocontext->fourcc = GST_MAKE_FOURCC ('R', 'G', 'B', 24); + else if (!strcmp (fstr, "RGBA64_LE")) + videocontext->fourcc = GST_MAKE_FOURCC ('R', 'B', 'A', 64); + else if (!strcmp (fstr, "BGRA64_LE")) + videocontext->fourcc = GST_MAKE_FOURCC ('B', 'R', 'A', 64); } } else if (!strcmp (mimetype, "video/x-huffyuv") /* MS/VfW compatibility cases */ ||!strcmp (mimetype, "video/x-divx")