mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-09-24 23:31:36 +08:00
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:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user