decklink: Use ComPtr for variables

This makes sure Decklink variables are automatically released.

Closes https://github.com/obsproject/obs-studio/pull/5508
This commit is contained in:
cg2121
2022-03-08 03:36:01 -08:00
committed by Jim
parent 3df2f3e069
commit efce0f41d0
7 changed files with 19 additions and 44 deletions
+4 -10
View File
@@ -49,9 +49,9 @@ bool DeckLinkDevice::Init()
ComPtr<IDeckLinkInput> input;
if (device->QueryInterface(IID_IDeckLinkInput, (void **)&input) ==
S_OK) {
IDeckLinkDisplayModeIterator *modeIterator;
ComPtr<IDeckLinkDisplayModeIterator> modeIterator;
if (input->GetDisplayModeIterator(&modeIterator) == S_OK) {
IDeckLinkDisplayMode *displayMode;
ComPtr<IDeckLinkDisplayMode> displayMode;
long long modeId = 1;
while (modeIterator->Next(&displayMode) == S_OK) {
@@ -63,11 +63,8 @@ bool DeckLinkDevice::Init()
modeId);
inputModes.push_back(mode);
inputModeIdMap[modeId] = mode;
displayMode->Release();
++modeId;
}
modeIterator->Release();
}
}
@@ -88,9 +85,9 @@ bool DeckLinkDevice::Init()
if (device->QueryInterface(IID_IDeckLinkOutput, (void **)&output) ==
S_OK) {
IDeckLinkDisplayModeIterator *modeIterator;
ComPtr<IDeckLinkDisplayModeIterator> modeIterator;
if (output->GetDisplayModeIterator(&modeIterator) == S_OK) {
IDeckLinkDisplayMode *displayMode;
ComPtr<IDeckLinkDisplayMode> displayMode;
long long modeId = 1;
while (modeIterator->Next(&displayMode) == S_OK) {
@@ -102,11 +99,8 @@ bool DeckLinkDevice::Init()
modeId);
outputModes.push_back(mode);
outputModeIdMap[modeId] = mode;
displayMode->Release();
++modeId;
}
modeIterator->Release();
}
}