Skip to content

Commit

Permalink
Fix Hang in GstPipelineHandler::Stop() and VS build
Browse files Browse the repository at this point in the history
This is a fix for the same problem as XPav had and it is the solution provided in the comment:
mrayy#48

Also fixed that the VS solution could be built, by removing flag and files from the build.
  • Loading branch information
andbro-ep committed Jun 9, 2023
1 parent 83577f3 commit 2c6cb1a
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 18 deletions.
72 changes: 54 additions & 18 deletions Plugin/VS/GStreamerUnityPlugin.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -28,26 +28,26 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
Expand Down Expand Up @@ -129,7 +129,7 @@
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>USE_UNITY_GRABBER;USE_UNITY_NETWORK;WIN32;_DEBUG;_WINDOWS;_USRDLL;GSTREAMERUNITYPLUGIN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>USE_UNITY_GRABBER;WIN32;_DEBUG;_WINDOWS;_USRDLL;GSTREAMERUNITYPLUGIN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>./;../includes;../includes/Win32;../sources;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
Expand Down Expand Up @@ -163,7 +163,7 @@
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<PreprocessorDefinitions>USE_UNITY_GRABBER;__USE_UNITY_NETWORK;WIN32;NDEBUG;_WINDOWS;_USRDLL;GSTREAMERUNITYPLUGIN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>USE_UNITY_GRABBER;WIN32;NDEBUG;_WINDOWS;_USRDLL;GSTREAMERUNITYPLUGIN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>./;../includes;../includes/Win32;../sources;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
Expand Down Expand Up @@ -225,12 +225,27 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="..\includes\MutexLocks.h" />
<ClInclude Include="..\sources\CMyListener.h" />
<ClInclude Include="..\sources\CMyUDPSink.h" />
<ClInclude Include="..\sources\CMyUDPSrc.h" />
<ClInclude Include="..\sources\CMyListener.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|X64'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">false</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="..\sources\CMyUDPSink.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|X64'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="..\sources\CMyUDPSrc.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|X64'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="..\sources\CustomAudioGrabber.h" />
<ClInclude Include="..\sources\DirectSoundInputStream.h" />
<ClInclude Include="..\sources\DirectSoundOutputStream.h" />
<ClInclude Include="..\sources\DirectSoundInputStream.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|X64'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="..\sources\DirectSoundOutputStream.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|X64'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="..\sources\GstAppAudioPlayer.h" />
<ClInclude Include="..\sources\GstAppNetAudioStreamer.h" />
<ClInclude Include="..\sources\GstAudioSampler.h" />
Expand All @@ -239,7 +254,10 @@
<ClInclude Include="..\sources\GstCustomVideoStreamer.h" />
<ClInclude Include="..\sources\GstNetworkVideoStreamer.h" />
<ClInclude Include="..\sources\GstNetworkAudioStreamer.h" />
<ClInclude Include="..\sources\GZipCompress.h" />
<ClInclude Include="..\sources\GZipCompress.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|X64'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="..\sources\IAudioGrabber.h" />
<ClInclude Include="..\sources\NetworkAudioGrabber.h" />
<ClInclude Include="..\sources\UnityAudioGrabber.h" />
Expand Down Expand Up @@ -280,14 +298,29 @@
</ClCompile>
<ClCompile Include="../sources/IAppSinkHandler.cpp" />
<ClCompile Include="..\includes\RenderAPI_OpenGLCoreES.cpp" />
<ClCompile Include="..\sources\CMyListener.cpp" />
<ClCompile Include="..\sources\CMyUDPSink.cpp" />
<ClCompile Include="..\sources\CMyUDPSrc.cpp" />
<ClCompile Include="..\sources\CMyListener.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|X64'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">false</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\sources\CMyUDPSink.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|X64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\sources\CMyUDPSrc.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|X64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\sources\CustomAudioGrabber.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|X64'">Disabled</Optimization>
</ClCompile>
<ClCompile Include="..\sources\DirectSoundInputStream.cpp" />
<ClCompile Include="..\sources\DirectSoundOutputStream.cpp" />
<ClCompile Include="..\sources\DirectSoundInputStream.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|X64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\sources\DirectSoundOutputStream.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|X64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\sources\GstAppAudioPlayer.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|X64'">Disabled</Optimization>
</ClCompile>
Expand All @@ -309,7 +342,10 @@
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|X64'">Disabled</Optimization>
</ClCompile>
<ClCompile Include="..\sources\GstNetworkVideoPlayer.cpp" />
<ClCompile Include="..\sources\GZipCompress.cpp" />
<ClCompile Include="..\sources\GZipCompress.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|X64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\sources\NetworkAudioGrabber.cpp" />
<ClCompile Include="..\sources\UnityAudioGrabber.cpp" />
<ClCompile Include="..\sources\LocalAudioGrabber.cpp" />
Expand Down
1 change: 1 addition & 0 deletions Plugin/sources/GstPipelineHandler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -408,6 +408,7 @@ void GstPipelineHandler::Stop() {
LogMessage(m_data->_name + ": GstPipelineHandler::Stop ", ELL_INFO);
if (!m_data->Loaded) return;
std::lock_guard<std::recursive_mutex> lock(GetMutex());
if (m_data->paused == true && m_data->playing == false) return;
GstState state;
m_data->_seekPos = GST_CLOCK_TIME_NONE;
// gst_element_send_event(m_data->gstPipeline, gst_event_new_eos());
Expand Down

0 comments on commit 2c6cb1a

Please sign in to comment.