Add NTSC/PAL widescreen formats always to the template caps

This commit is contained in:
Sebastian Dröge 2021-08-20 11:58:32 +03:00
parent 3d40e2f547
commit 420a90b00b

View file

@ -166,33 +166,34 @@ GstCaps *gst_ntv2_supported_caps(NTV2DeviceID device_id) {
for (gsize i = 0; i < G_N_ELEMENTS(format_map); i++) { for (gsize i = 0; i < G_N_ELEMENTS(format_map); i++) {
const FormatMapEntry &format = format_map[i]; const FormatMapEntry &format = format_map[i];
GstCaps *tmp = NULL;
if (device_id == DEVICE_ID_INVALID) { if (device_id == DEVICE_ID_INVALID) {
gst_caps_append(caps, gst_aja_video_format_to_caps(format.gst_format)); tmp = gst_aja_video_format_to_caps(format.gst_format);
} else { } else if ((format.aja_format != NTV2_FORMAT_UNKNOWN &&
if ((format.aja_format != NTV2_FORMAT_UNKNOWN && ::NTV2DeviceCanDoVideoFormat(device_id, format.aja_format)) ||
::NTV2DeviceCanDoVideoFormat(device_id, format.aja_format)) || (format.quad_format != NTV2_FORMAT_UNKNOWN &&
(format.quad_format != NTV2_FORMAT_UNKNOWN && ::NTV2DeviceCanDoVideoFormat(device_id, format.quad_format))) {
::NTV2DeviceCanDoVideoFormat(device_id, format.quad_format))) { tmp = gst_aja_video_format_to_caps(format.gst_format);
GstCaps *tmp = gst_aja_video_format_to_caps(format.gst_format); }
// Widescreen PAL/NTSC if (tmp) {
if (format.gst_format == GST_AJA_VIDEO_FORMAT_525_2398 || // Widescreen PAL/NTSC
format.gst_format == GST_AJA_VIDEO_FORMAT_525_2400 || if (format.gst_format == GST_AJA_VIDEO_FORMAT_525_2398 ||
format.gst_format == GST_AJA_VIDEO_FORMAT_525_5994) { format.gst_format == GST_AJA_VIDEO_FORMAT_525_2400 ||
GstCaps *tmp2 = gst_caps_copy(tmp); format.gst_format == GST_AJA_VIDEO_FORMAT_525_5994) {
gst_caps_set_simple(tmp2, "pixel-aspect-ratio", GST_TYPE_FRACTION, 40, GstCaps *tmp2 = gst_caps_copy(tmp);
33, NULL); gst_caps_set_simple(tmp2, "pixel-aspect-ratio", GST_TYPE_FRACTION, 40,
gst_caps_append(tmp, tmp2); 33, NULL);
} else if (format.gst_format == GST_AJA_VIDEO_FORMAT_625_5000) { gst_caps_append(tmp, tmp2);
GstCaps *tmp2 = gst_caps_copy(tmp); } else if (format.gst_format == GST_AJA_VIDEO_FORMAT_625_5000) {
gst_caps_set_simple(tmp2, "pixel-aspect-ratio", GST_TYPE_FRACTION, 16, GstCaps *tmp2 = gst_caps_copy(tmp);
11, NULL); gst_caps_set_simple(tmp2, "pixel-aspect-ratio", GST_TYPE_FRACTION, 16,
gst_caps_append(tmp, tmp2); 11, NULL);
} gst_caps_append(tmp, tmp2);
gst_caps_append(caps, tmp);
} }
gst_caps_append(caps, tmp);
} }
} }