decklink: only expose HDR colorimetry if 2020 colorspace is supported

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7742>
This commit is contained in:
Matthew Waters 2024-10-22 18:06:46 +11:00 committed by GStreamer Marge Bot
parent 19a60f341c
commit 2832aab78a

View file

@ -1009,18 +1009,18 @@ gst_decklink_mode_get_caps (GstDecklinkModeEnum e, BMDDisplayModeFlags mode_flag
GstStructure *s = gst_structure_copy (generic); GstStructure *s = gst_structure_copy (generic);
gst_structure_set (s, "colorimetry", G_TYPE_STRING, "bt2020", NULL); gst_structure_set (s, "colorimetry", G_TYPE_STRING, "bt2020", NULL);
caps = gst_caps_merge_structure (caps, s); caps = gst_caps_merge_structure (caps, s);
}
if (dynamic_range & bmdDynamicRangeHDRStaticPQ) { if (dynamic_range & bmdDynamicRangeHDRStaticPQ) {
GstStructure *s = gst_structure_copy (generic); GstStructure *s = gst_structure_copy (generic);
gst_structure_set (s, "colorimetry", G_TYPE_STRING, "bt2100-pq", NULL); gst_structure_set (s, "colorimetry", G_TYPE_STRING, "bt2100-pq", NULL);
caps = gst_caps_merge_structure (caps, s); caps = gst_caps_merge_structure (caps, s);
} }
if (dynamic_range & bmdDynamicRangeHDRStaticHLG) { if (dynamic_range & bmdDynamicRangeHDRStaticHLG) {
GstStructure *s = gst_structure_copy (generic); GstStructure *s = gst_structure_copy (generic);
gst_structure_set (s, "colorimetry", G_TYPE_STRING, "bt2100-hlg", NULL); gst_structure_set (s, "colorimetry", G_TYPE_STRING, "bt2100-hlg", NULL);
caps = gst_caps_merge_structure (caps, s); caps = gst_caps_merge_structure (caps, s);
}
} }
} else { } else {
caps = gst_caps_merge_structure (caps, generic); caps = gst_caps_merge_structure (caps, generic);
@ -1938,22 +1938,22 @@ init_devices (gpointer data)
NULL); NULL);
video_input_caps = video_input_caps =
gst_caps_merge_structure (video_input_caps, s); gst_caps_merge_structure (video_input_caps, s);
}
if (dynamic_range & bmdDynamicRangeHDRStaticPQ) { if (dynamic_range & bmdDynamicRangeHDRStaticPQ) {
GstStructure *s = gst_structure_copy (generic); GstStructure *s = gst_structure_copy (generic);
gst_structure_set (s, "colorimetry", G_TYPE_STRING, "bt2100-pq", gst_structure_set (s, "colorimetry", G_TYPE_STRING, "bt2100-pq",
NULL); NULL);
video_input_caps = video_input_caps =
gst_caps_merge_structure (video_input_caps, s); gst_caps_merge_structure (video_input_caps, s);
} }
if (dynamic_range & bmdDynamicRangeHDRStaticHLG) { if (dynamic_range & bmdDynamicRangeHDRStaticHLG) {
GstStructure *s = gst_structure_copy (generic); GstStructure *s = gst_structure_copy (generic);
gst_structure_set (s, "colorimetry", G_TYPE_STRING, "bt2100-hlg", gst_structure_set (s, "colorimetry", G_TYPE_STRING, "bt2100-hlg",
NULL); NULL);
video_input_caps = video_input_caps =
gst_caps_merge_structure (video_input_caps, s); gst_caps_merge_structure (video_input_caps, s);
}
} }
gst_clear_structure (&generic); gst_clear_structure (&generic);
} }
@ -2029,23 +2029,24 @@ init_devices (gpointer data)
NULL); NULL);
video_input_caps = video_input_caps =
gst_caps_merge_structure (video_input_caps, s); gst_caps_merge_structure (video_input_caps, s);
if (dynamic_range & bmdDynamicRangeHDRStaticPQ) {
GstStructure *s = gst_structure_copy (generic);
gst_structure_set (s, "colorimetry", G_TYPE_STRING, "bt2100-pq",
NULL);
video_input_caps =
gst_caps_merge_structure (video_input_caps, s);
}
if (dynamic_range & bmdDynamicRangeHDRStaticHLG) {
GstStructure *s = gst_structure_copy (generic);
gst_structure_set (s, "colorimetry", G_TYPE_STRING, "bt2100-hlg",
NULL);
video_input_caps =
gst_caps_merge_structure (video_input_caps, s);
}
} }
if (dynamic_range & bmdDynamicRangeHDRStaticPQ) {
GstStructure *s = gst_structure_copy (generic);
gst_structure_set (s, "colorimetry", G_TYPE_STRING, "bt2100-pq",
NULL);
video_input_caps =
gst_caps_merge_structure (video_input_caps, s);
}
if (dynamic_range & bmdDynamicRangeHDRStaticHLG) {
GstStructure *s = gst_structure_copy (generic);
gst_structure_set (s, "colorimetry", G_TYPE_STRING, "bt2100-hlg",
NULL);
video_input_caps =
gst_caps_merge_structure (video_input_caps, s);
}
gst_clear_structure (&generic); gst_clear_structure (&generic);
} }