ソースを参照

decklink: Keep deckLinkConfiguration while in use

Apparently this annoying, stupid variable was leaking before the ComPtr
was added, which ironically was necessary to ensure devices worked.
After that ComPtr commit some devices stopped capturing properly.
Basically, it implies that this pointer needs to stick around while the
device is in use.

(Jim note: This was one of the most painful things I've ever had to
debug)
jp9000 3 年 前
コミット
2f8d28f7fa

+ 0 - 1
plugins/decklink/decklink-device-instance.cpp

@@ -371,7 +371,6 @@ bool DeckLinkDeviceInstance::StartCapture(DeckLinkDeviceMode *mode_,
 	if (!device->GetInput(&input))
 		return false;
 
-	ComPtr<IDeckLinkConfiguration> deckLinkConfiguration;
 	HRESULT result = input->QueryInterface(IID_IDeckLinkConfiguration,
 					       (void **)&deckLinkConfiguration);
 	if (result != S_OK) {

+ 1 - 0
plugins/decklink/decklink-device-instance.hpp

@@ -13,6 +13,7 @@ class DecklinkBase;
 
 class DeckLinkDeviceInstance : public IDeckLinkInputCallback {
 protected:
+	ComPtr<IDeckLinkConfiguration> deckLinkConfiguration;
 	struct obs_source_frame2 currentFrame;
 	struct obs_source_audio currentPacket;
 	struct obs_source_cea_708 currentCaptions;