From 39f6a850f664ed6e931197f1285b2bf2b7af3e74 Mon Sep 17 00:00:00 2001 From: Gerke Max Preussner <info@headcrash.us> Date: Tue, 25 Oct 2016 18:41:10 -0400 Subject: [PATCH] Added 4.14 sink API changes. --- .../Private/Player/VlcMediaOutput.cpp | 42 ++++++------------- .../VlcMedia/Private/Player/VlcMediaOutput.h | 12 ++---- Source/VlcMedia/Private/VlcMediaPCH.h | 2 +- 3 files changed, 18 insertions(+), 38 deletions(-) diff --git a/Source/VlcMedia/Private/Player/VlcMediaOutput.cpp b/Source/VlcMedia/Private/Player/VlcMediaOutput.cpp index d3f46729..a5edef8c 100644 --- a/Source/VlcMedia/Private/Player/VlcMediaOutput.cpp +++ b/Source/VlcMedia/Private/Player/VlcMediaOutput.cpp @@ -10,11 +10,10 @@ FVlcMediaOutput::FVlcMediaOutput() : AudioSink(nullptr) - , CaptionSink(nullptr) , Player(nullptr) , ResumeOrigin(0) , ResumeTime(FTimespan::Zero()) - , SubtitleSink(nullptr) + , OverlaySink(nullptr) , VideoSink(nullptr) { } @@ -81,38 +80,23 @@ void FVlcMediaOutput::SetAudioSink(IMediaAudioSink* Sink) } -void FVlcMediaOutput::SetCaptionSink(IMediaStringSink* Sink) +void FVlcMediaOutput::SetOverlaySink(IMediaOverlaySink* Sink) { FScopeLock Lock(&CriticalSection); - if (Sink != CaptionSink) + if (Sink != OverlaySink) { - if (CaptionSink != nullptr) + if (OverlaySink != nullptr) { - CaptionSink->ShutdownStringSink(); + OverlaySink->ShutdownOverlaySink(); } - CaptionSink = Sink; - SetupCaptionOutput(); - } -} - -/* -void FVlcMediaOutput::SetSubtitleSink(IMediaStringSink* Sink) -{ - FScopeLock Lock(&CriticalSection); + OverlaySink = Sink; - if (Sink != SubtitleSink) - { - if (SubtitleSink != nullptr) - { - SubtitleSink->ShutdownStringSink(); - } - - SubtitleSink = Sink; + SetupCaptionOutput(); SetupSubtitleOutput(); } -}*/ +} void FVlcMediaOutput::SetVideoSink(IMediaTextureSink* Sink) @@ -487,16 +471,16 @@ unsigned FVlcMediaOutput::StaticVideoSetupCallback(void** Opaque, char* Chroma, Pitches[0] = *Width * 2; } else if ((FCStringAnsi::Stricmp(Chroma, "UYVY") == 0) || - (FCStringAnsi::Stricmp(Chroma, "Y422") == 0) || - (FCStringAnsi::Stricmp(Chroma, "UYNV") == 0) || - (FCStringAnsi::Stricmp(Chroma, "HDYC") == 0)) + (FCStringAnsi::Stricmp(Chroma, "Y422") == 0) || + (FCStringAnsi::Stricmp(Chroma, "UYNV") == 0) || + (FCStringAnsi::Stricmp(Chroma, "HDYC") == 0)) { SinkFormat = EMediaTextureSinkFormat::CharUYVY; Pitches[0] = *Width * 2; } else if ((FCStringAnsi::Stricmp(Chroma, "YUY2") == 0) || - (FCStringAnsi::Stricmp(Chroma, "V422") == 0) || - (FCStringAnsi::Stricmp(Chroma, "YUYV") == 0)) + (FCStringAnsi::Stricmp(Chroma, "V422") == 0) || + (FCStringAnsi::Stricmp(Chroma, "YUYV") == 0)) { SinkFormat = EMediaTextureSinkFormat::CharYUY2; Pitches[0] = *Width * 2; diff --git a/Source/VlcMedia/Private/Player/VlcMediaOutput.h b/Source/VlcMedia/Private/Player/VlcMediaOutput.h index eade1de1..9ae5e684 100644 --- a/Source/VlcMedia/Private/Player/VlcMediaOutput.h +++ b/Source/VlcMedia/Private/Player/VlcMediaOutput.h @@ -46,8 +46,7 @@ class FVlcMediaOutput //~ IMediaOutput interface virtual void SetAudioSink(IMediaAudioSink* Sink) override; - virtual void SetCaptionSink(IMediaStringSink* Sink) override; -// virtual void SetSubtitleSink(IMediaStringSink* Sink) override; + virtual void SetOverlaySink(IMediaOverlaySink* Sink) override; virtual void SetVideoSink(IMediaTextureSink* Sink) override; protected: @@ -117,10 +116,7 @@ class FVlcMediaOutput /** The audio sink. */ IMediaAudioSink* AudioSink; - - /** The caption text sink. */ - IMediaStringSink* CaptionSink; - + /** Critical section for synchronizing access to sinks. */ FCriticalSection CriticalSection; @@ -133,8 +129,8 @@ class FVlcMediaOutput /** The time at which playback resumed. */ FTimespan ResumeTime; - /** The subtitle sink. */ - IMediaStringSink* SubtitleSink; + /** The text overlay sink. */ + IMediaOverlaySink* OverlaySink; /** Dimensions of the current video track. */ FIntPoint VideoDimensions; diff --git a/Source/VlcMedia/Private/VlcMediaPCH.h b/Source/VlcMedia/Private/VlcMediaPCH.h index eac2ca7d..5af633dc 100644 --- a/Source/VlcMedia/Private/VlcMediaPCH.h +++ b/Source/VlcMedia/Private/VlcMediaPCH.h @@ -8,7 +8,7 @@ #include "Runtime/CoreUObject/Public/CoreUObject.h" #include "Runtime/Media/Public/IMediaAudioSink.h" #include "Runtime/Media/Public/IMediaOptions.h" -#include "Runtime/Media/Public/IMediaStringSink.h" +#include "Runtime/Media/Public/IMediaOverlaySink.h" #include "Runtime/Media/Public/IMediaTextureSink.h" #include "Runtime/Projects/Public/Interfaces/IPluginManager.h"