diff --git a/docs/plugins/gst_plugins_cache.json b/docs/plugins/gst_plugins_cache.json index c047cf19c5..c848461d72 100644 --- a/docs/plugins/gst_plugins_cache.json +++ b/docs/plugins/gst_plugins_cache.json @@ -8033,18 +8033,6 @@ "type": "gint", "writable": true }, - "duplex-mode": { - "blurb": "Certain DeckLink devices such as the DeckLink Quad 2 and the DeckLink Duo 2 support configuration of the duplex mode of individual sub-devices.A sub-device configured as full-duplex will use two connectors, which allows simultaneous capture and playback, internal keying, and fill & key scenarios.A half-duplex sub-device will use a single connector as an individual capture or playback channel.", - "conditionally-available": false, - "construct": true, - "construct-only": false, - "controllable": false, - "default": "half (0)", - "mutable": "null", - "readable": true, - "type": "GstDecklinkDuplexMode", - "writable": true - }, "hw-serial-number": { "blurb": "The serial number (hardware ID) of the Decklink card", "conditionally-available": false, @@ -8095,6 +8083,18 @@ "type": "GstDecklinkModes", "writable": true }, + "profile": { + "blurb": "Certain DeckLink devices such as the DeckLink 8K Pro, the DeckLink Quad 2 and the DeckLink Duo 2 support multiple profiles to configure the capture and playback behavior of its sub-devices.For the DeckLink Duo 2 and DeckLink Quad 2, a profile is shared between any 2 sub-devices that utilize the same connectors. For the DeckLink 8K Pro, a profile is shared between all 4 sub-devices. Any sub-devices that share a profile are considered to be part of the same profile group.DeckLink Duo 2 support configuration of the duplex mode of individual sub-devices.", + "conditionally-available": false, + "construct": true, + "construct-only": false, + "controllable": false, + "default": "one-sub-device-full (0)", + "mutable": "null", + "readable": true, + "type": "GstDecklinkProfileId", + "writable": true + }, "timecode-format": { "blurb": "Timecode format type to use for playback", "conditionally-available": false, @@ -8196,18 +8196,6 @@ "type": "gboolean", "writable": true }, - "duplex-mode": { - "blurb": "Certain DeckLink devices such as the DeckLink Quad 2 and the DeckLink Duo 2 support configuration of the duplex mode of individual sub-devices.A sub-device configured as full-duplex will use two connectors, which allows simultaneous capture and playback, internal keying, and fill & key scenarios.A half-duplex sub-device will use a single connector as an individual capture or playback channel.", - "conditionally-available": false, - "construct": true, - "construct-only": false, - "controllable": false, - "default": "half (0)", - "mutable": "null", - "readable": true, - "type": "GstDecklinkDuplexMode", - "writable": true - }, "hw-serial-number": { "blurb": "The serial number (hardware ID) of the Decklink card", "conditionally-available": false, @@ -8268,6 +8256,18 @@ "type": "gboolean", "writable": true }, + "profile": { + "blurb": "Certain DeckLink devices such as the DeckLink 8K Pro, the DeckLink Quad 2 and the DeckLink Duo 2 support multiple profiles to configure the capture and playback behavior of its sub-devices.For the DeckLink Duo 2 and DeckLink Quad 2, a profile is shared between any 2 sub-devices that utilize the same connectors. For the DeckLink 8K Pro, a profile is shared between all 4 sub-devices. Any sub-devices that share a profile are considered to be part of the same profile group.DeckLink Duo 2 support configuration of the duplex mode of individual sub-devices.", + "conditionally-available": false, + "construct": true, + "construct-only": false, + "controllable": false, + "default": "one-sub-device-full (0)", + "mutable": "null", + "readable": true, + "type": "GstDecklinkProfileId", + "writable": true + }, "signal": { "blurb": "True if there is a valid input signal available", "conditionally-available": false, @@ -8425,21 +8425,6 @@ } ] }, - "GstDecklinkDuplexMode": { - "kind": "enum", - "values": [ - { - "desc": "Half-Duplex", - "name": "half", - "value": "0" - }, - { - "desc": "Full-Duplex", - "name": "full", - "value": "1" - } - ] - }, "GstDecklinkKeyerMode": { "kind": "enum", "values": [ @@ -8685,6 +8670,36 @@ } ] }, + "GstDecklinkProfileId": { + "kind": "enum", + "values": [ + { + "desc": "One sub-device, Full-Duplex", + "name": "one-sub-device-full", + "value": "0" + }, + { + "desc": "One sub-device, Half-Duplex", + "name": "one-sub-device-half", + "value": "1" + }, + { + "desc": "Two sub-devices, Full-Duplex", + "name": "two-sub-devices-full", + "value": "2" + }, + { + "desc": "Two sub-devices, Half-Duplex", + "name": "two-sub-devices-half", + "value": "3" + }, + { + "desc": "Four sub-devices, Half-Duplex", + "name": "four-sub-devices-half", + "value": "4" + } + ] + }, "GstDecklinkTimecodeFormat": { "kind": "enum", "values": [ diff --git a/sys/decklink/gstdecklink.cpp b/sys/decklink/gstdecklink.cpp index b2160f1971..5637b1018d 100644 --- a/sys/decklink/gstdecklink.cpp +++ b/sys/decklink/gstdecklink.cpp @@ -156,6 +156,18 @@ gst_decklink_video_format_get_type (void) return (GType) id; } +/** + * GstDecklinkProfileId: + * @GST_DECKLINK_PROFILE_ID_ONE_SUB_DEVICE_FULL_DUPLEX: Equivalent to bmdProfileOneSubDeviceFullDuplex + * @GST_DECKLINK_PROFILE_ID_ONE_SUB_DEVICE_HALF_DUPLEX: Equivalent to bmdProfileOneSubDeviceHalfDuplex + * @GST_DECKLINK_PROFILE_ID_TWO_SUB_DEVICES_FULL_DUPLEX: Equivalent to bmdProfileTwoSubDevicesFullDuplex + * @GST_DECKLINK_PROFILE_ID_TWO_SUB_DEVICES_HALF_DUPLEX: Equivalent to bmdProfileTwoSubDevicesHalfDuplex + * @GST_DECKLINK_PROFILE_ID_FOUR_SUB_DEVICES_HALF_DUPLEX: Equivalent to bmdProfileFourSubDevicesHalfDuplex + * + * Decklink Profile ID + * + * Since: 1.20 + */ GType gst_decklink_profile_id_get_type (void) { diff --git a/sys/decklink/gstdecklinkvideosink.cpp b/sys/decklink/gstdecklinkvideosink.cpp index 9a27d26f79..06b12a7e8f 100644 --- a/sys/decklink/gstdecklinkvideosink.cpp +++ b/sys/decklink/gstdecklinkvideosink.cpp @@ -341,6 +341,13 @@ gst_decklink_video_sink_class_init (GstDecklinkVideoSinkClass * klass) (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT))); + /** + * GstDecklinkVideoSink:profile + * + * Specifies decklink profile to use. + * + * Since: 1.20 + */ g_object_class_install_property (gobject_class, PROP_PROFILE_ID, g_param_spec_enum ("profile", "Profile", "Certain DeckLink devices such as the DeckLink 8K Pro, the DeckLink " diff --git a/sys/decklink/gstdecklinkvideosrc.cpp b/sys/decklink/gstdecklinkvideosrc.cpp index 0a84fb9632..b30f442fab 100644 --- a/sys/decklink/gstdecklinkvideosrc.cpp +++ b/sys/decklink/gstdecklinkvideosrc.cpp @@ -298,6 +298,13 @@ gst_decklink_video_src_class_init (GstDecklinkVideoSrcClass * klass) (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT))); + /** + * GstDecklinkVideoSrc:profile + * + * Specifies decklink profile to use. + * + * Since: 1.20 + */ g_object_class_install_property (gobject_class, PROP_PROFILE_ID, g_param_spec_enum ("profile", "Profile", "Certain DeckLink devices such as the DeckLink 8K Pro, the DeckLink "