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