diff --git a/DolbyIO/Source/Private/Subsystem/DolbyIOInitialization.cpp b/DolbyIO/Source/Private/Subsystem/DolbyIOInitialization.cpp index 4c6b4205..b2361b0c 100644 --- a/DolbyIO/Source/Private/Subsystem/DolbyIOInitialization.cpp +++ b/DolbyIO/Source/Private/Subsystem/DolbyIOInitialization.cpp @@ -37,6 +37,13 @@ void UDolbyIOSubsystem::Initialize(FSubsystemCollectionBase& Collection) BroadcastEvent(OnTokenNeeded); } +void UDolbyIOSubsystem::Deinitialize() +{ + Sdk.Reset(); // make sure Sdk is dead so it doesn't call handle_frame on VideoSink during game destruction + + Super::Deinitialize(); +} + void UDolbyIOSubsystem::SetLogSettings(EDolbyIOLogLevel SdkLogLevel, EDolbyIOLogLevel MediaLogLevel, EDolbyIOLogLevel DvcLogLevel) { diff --git a/DolbyIO/Source/Public/DolbyIO.h b/DolbyIO/Source/Public/DolbyIO.h index 57f283aa..1a8e0474 100644 --- a/DolbyIO/Source/Public/DolbyIO.h +++ b/DolbyIO/Source/Public/DolbyIO.h @@ -322,6 +322,7 @@ class DOLBYIO_API UDolbyIOSubsystem : public UGameInstanceSubsystem private: void Initialize(FSubsystemCollectionBase&) override; + void Deinitialize() override; bool CanConnect(const FDolbyIOOnErrorDelegate&) const; bool IsConnected() const;