From d99be83fb7fd28fe7c3ac79945dca0f9be726a9c Mon Sep 17 00:00:00 2001 From: jp9000 Date: Tue, 16 Sep 2014 13:10:54 -0700 Subject: [PATCH] Fix resolution issue for elgato 1.x.x filter If using the elgato 1.x.x filter it would not properly set resolution changes due to intermediary filters. Change to direct connect to prevent that issue from occurring. --- DShowPlugin/DShowPlugin.rc | 8 ++++---- DShowPlugin/DeviceSource.cpp | 20 ++++++++++++++++---- OBS.rc | 8 ++++---- Source/Main.h | 4 ++-- installer/installer.nsi | 2 +- 5 files changed, 27 insertions(+), 15 deletions(-) diff --git a/DShowPlugin/DShowPlugin.rc b/DShowPlugin/DShowPlugin.rc index f59d11c30..f9db76235 100644 --- a/DShowPlugin/DShowPlugin.rc +++ b/DShowPlugin/DShowPlugin.rc @@ -58,8 +58,8 @@ IDC_COLORPICKER CURSOR "cursor1.cur" // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,6,3,0 - PRODUCTVERSION 0,6,3,0 + FILEVERSION 0,6,3,5 + PRODUCTVERSION 0,6,3,5 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -75,12 +75,12 @@ BEGIN BLOCK "040904b0" BEGIN VALUE "FileDescription", "Open Broadcaster Software DirectShow Plugin" - VALUE "FileVersion", "0.6.3.0" + VALUE "FileVersion", "0.6.3.5" VALUE "InternalName", "DShowPlugin.dll" VALUE "LegalCopyright", "Copyright (C) 2013" VALUE "OriginalFilename", "DShowPlugin.dll" VALUE "ProductName", "Open Broadcaster Software DirectShow Plugin" - VALUE "ProductVersion", "0.6.3.0" + VALUE "ProductVersion", "0.6.3.5" END END BLOCK "VarFileInfo" diff --git a/DShowPlugin/DeviceSource.cpp b/DShowPlugin/DeviceSource.cpp index dc75f2102..45548cd8e 100644 --- a/DShowPlugin/DeviceSource.cpp +++ b/DShowPlugin/DeviceSource.cpp @@ -719,16 +719,28 @@ bool DeviceSource::LoadFilters() //------------------------------------------------ // connect all pins and set up the whole capture thing - //THANK THE NINE DIVINES I FINALLY GOT IT WORKING - bool bConnected = SUCCEEDED(err = capture->RenderStream(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video, deviceFilter, NULL, captureFilter)); - if(!bConnected) + bool bConnected = false; + if (elgato) { - if(FAILED(err = graph->Connect(devicePin, captureFilter->GetCapturePin()))) + bConnected = SUCCEEDED(err = graph->ConnectDirect(devicePin, captureFilter->GetCapturePin(), nullptr)); + if (!bConnected) { AppWarning(TEXT("DShowPlugin: Failed to connect the video device pin to the video capture pin, result = %08lX"), err); goto cleanFinish; } } + else + { + bConnected = SUCCEEDED(err = capture->RenderStream(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video, deviceFilter, NULL, captureFilter)); + if(!bConnected) + { + if(FAILED(err = graph->Connect(devicePin, captureFilter->GetCapturePin()))) + { + AppWarning(TEXT("DShowPlugin: Failed to connect the video device pin to the video capture pin, result = %08lX"), err); + goto cleanFinish; + } + } + } if(soundOutputType != 0) { diff --git a/OBS.rc b/OBS.rc index 5e82df6b8..69040aa22 100644 --- a/OBS.rc +++ b/OBS.rc @@ -896,8 +896,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,6,3,1 - PRODUCTVERSION 0,6,3,1 + FILEVERSION 0,6,3,5 + PRODUCTVERSION 0,6,3,5 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -913,12 +913,12 @@ BEGIN BLOCK "040904b0" BEGIN VALUE "FileDescription", "Open Broadcaster Software" - VALUE "FileVersion", "0.6.3.1" + VALUE "FileVersion", "0.6.3.5" VALUE "InternalName", "OBS" VALUE "LegalCopyright", "Copyright (C) 2013-2014" VALUE "OriginalFilename", "OBS.exe" VALUE "ProductName", "Open Broadcaster Software" - VALUE "ProductVersion", "0.6.3.1" + VALUE "ProductVersion", "0.6.3.5" END END BLOCK "VarFileInfo" diff --git a/Source/Main.h b/Source/Main.h index 0571ccf9b..a625fa6a7 100644 --- a/Source/Main.h +++ b/Source/Main.h @@ -81,8 +81,8 @@ extern TCHAR lpAppDataPath[MAX_PATH]; #define OBS_VERSION_SUFFIX "" #endif -#define OBS_VERSION 0x006304 //version number is 0xMMmmtt (super-major.major.minor - hex) -#define OBS_VERSION_STRING_RAW "Open Broadcaster Software v0.634b" +#define OBS_VERSION 0x006305 //version number is 0xMMmmtt (super-major.major.minor - hex) +#define OBS_VERSION_STRING_RAW "Open Broadcaster Software v0.635b" //#define OBS_TEST_BUILD 1 //define this if releasing a test build to disable the auto updater #define OBS_VERSION_STRING_ANSI OBS_VERSION_STRING_RAW OBS_VERSION_SUFFIX diff --git a/installer/installer.nsi b/installer/installer.nsi index 32af57af5..0c8c73e59 100644 --- a/installer/installer.nsi +++ b/installer/installer.nsi @@ -2,7 +2,7 @@ ; Define your application name !define APPNAME "Open Broadcaster Software" -!define APPNAMEANDVERSION "Open Broadcaster Software 0.633b" +!define APPNAMEANDVERSION "Open Broadcaster Software 0.635b" ; Additional script dependencies !include WinVer.nsh