You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm testing with an UltraStudio HD Mini. The getDeviceInfo output for this device is down below.
Clearly according to the specs, this device does not support output on 1080p50, 1080p59.94 and 1080p60 except in 8 or 10 bit YUV mode. That should rule out any BGRA output.
Here's the thing though: it does. I can use OBS or V-Mix to output the above resolutions and framerates with the external keyer enabled. External keying is only possible when passing a BGRA buffer to the device... so... what the heck? Is this an undocumented supported displayMode?
I spent the day going through the OBS source code to see whether they might be applying any trickery behind the scenes to, perhaps, convert it into YUV before output (even though I can't see how this is possible when using the external keyer). They either don't or I can't find it.
This leads me to hypothesise that certain Decklink devices have unsupported video modes or a different list of supported output modes when the keyer is enabled.
To compensate I think there should be an option to circumvent the supported modes check when starting playback, to attempt to output the selected video mode to the device even if it is not supported according to the device.
I attempted to do this myself by changing playback_promise.cc to the following:
switch (supported) {
casebmdDisplayModeSupported:
break;
casebmdDisplayModeSupportedWithConversion:
break;
c->status=MACADAM_NO_CONVERESION; // TODO consider adding conversion supportc->errorMsg="Display mode is supported via conversion and not by macadam.";
return;
default:
break;
c->status=MACADAM_MODE_NOT_SUPPORTED;
c->errorMsg="Requested display mode is not supported.";
return;
}
But that didn't work, and I can't figure out why. C is not my main language.
I'm testing with an UltraStudio HD Mini. The getDeviceInfo output for this device is down below.
Clearly according to the specs, this device does not support output on 1080p50, 1080p59.94 and 1080p60 except in 8 or 10 bit YUV mode. That should rule out any BGRA output.
Here's the thing though: it does. I can use OBS or V-Mix to output the above resolutions and framerates with the external keyer enabled. External keying is only possible when passing a BGRA buffer to the device... so... what the heck? Is this an undocumented supported displayMode?
I spent the day going through the OBS source code to see whether they might be applying any trickery behind the scenes to, perhaps, convert it into YUV before output (even though I can't see how this is possible when using the external keyer). They either don't or I can't find it.
This leads me to hypothesise that certain Decklink devices have unsupported video modes or a different list of supported output modes when the keyer is enabled.
To compensate I think there should be an option to circumvent the supported modes check when starting playback, to attempt to output the selected video mode to the device even if it is not supported according to the device.
I attempted to do this myself by changing playback_promise.cc to the following:
But that didn't work, and I can't figure out why. C is not my main language.
Here's the getDeviceInfo output as promised:
The text was updated successfully, but these errors were encountered: