CriWare Unreal Engine
Plug-ins for CriWare solutions.
読み取り中…
検索中…
一致する文字列を見つけられません
FNativeManaPlayer クラス

#include <NativeManaPlayer.h>

FNativeManaPlayer の継承関係図

クラス

struct  FAudioTrackAttributes
struct  FAudioTrackInfo
struct  FLoopState
class  FManaInternalPlayer
struct  FMovieInfo
struct  FPlaybackRange
struct  FPlayerSequenceState
struct  FPlaystartOptions
struct  FSeekParam
struct  FSeekVars
struct  FStreamBufferInfo
struct  FSubtitleTrackAttributes
struct  FVideoTrackAttributes
class  IAsyncResourceReleaseNotifyContainer

公開型

enum  { ResourceFlags_Decoder = 1 << 0 , ResourceFlags_OutputBuffers = 1 << 1 , ResourceFlags_All = (1 << 2) - 1 , ResourceFlags_Any = ResourceFlags_All }
enum class  EManaPlayerCommand {
  DecodeHeader , Prepare , Play , Pause ,
  Loop , Seek , Stop , Destroy ,
  Flush , Update , DelayNextTick
}
enum class  EPlayerState : uint8 {
  Stop = 0 , DecHdr , WaitPrep , Prep ,
  Ready , Playing , PlayEnd , Error ,
  Closed
}
enum class  ETimeRangeType { Absolute , Current }

公開メンバ関数

 FNativeManaPlayer (const TSharedPtr< IManaPlayerDelegate, ESPMode::ThreadSafe > &AdapterDelegate)
virtual ~FNativeManaPlayer ()
bool CanPresentAudioFrames (uint64 NumFrames)
bool CanPresentVideoFrames (uint64 NumFrames)
void CloseInternal (bool)
void DropOldFramesFromPresentationQueue ()
void ExecuteNativePlayerCommand (TFunction< void(void *NativePlayer)> InFunction)
bool GetAlphaTrackFormat (int32 TrackIndex, int32 FormatIndex, FManaVideoTrackInfo &OutFormat) const
FCriAtomExPlayerPtr GetAtomExPlayer (EManaTrackType TrackType)
FCriAtomVoicePoolPtr GetAtomExVoicePool (EManaTrackType TrackType)
bool GetAudioTrackFormat (int32 TrackIndex, int32 FormatIndex, FManaAudioTrackInfo &OutFormat) const
FTimespan GetDuration ()
int32 GetLoopCount () const
CriManaPlayerHn GetNativePlayer () const
int32 GetNumTrackFormats (EManaTrackType TrackType, int32 TrackIndex) const
int32 GetNumTracks (EManaTrackType TrackType) const
TRange< FTimespan > GetPlaybackRange (ETimeRangeType InRangeToGet) const
void GetPlaybackRange (FPlaybackRange &OutPlaybackRange) const
float GetRate ()
void GetSeekableRange (FTimespan &Start, FTimespan &End)
int32 GetSelectedTrack (EManaTrackType TrackType) const
EPlayerState GetState ()
bool GetStreamBufferInformation (FStreamBufferInfo &OutBufferInformation, EManaTrackType InTrackType) const
FTimespan GetTime ()
FText GetTrackDisplayName (EManaTrackType TrackType, int32 TrackIndex) const
int32 GetTrackFormat (EManaTrackType TrackType, int32 TrackIndex) const
FString GetTrackLanguage (EManaTrackType TrackType, int32 TrackIndex) const
FString GetTrackName (EManaTrackType TrackType, int32 TrackIndex) const
FString GetUrl () const
bool GetVideoTrackFormat (int32 TrackIndex, int32 FormatIndex, FManaVideoTrackInfo &OutFormat) const
void HandleNativeOnCuePoint (CriManaEventPoint *EventPoint)
bool IsLooping ()
bool IsPaused ()
void OnAudioDecoded (const IManaMovieAudioDecoderOutputPtr &DecoderOutput)
void OnAudioFlush ()
void OnEventPointReceived (TSharedPtr< FManaEventPointInfo, ESPMode::ThreadSafe > EventPointInfo)
void OnSubtitleDecoded (const IManaMovieSubtitleDecoderOutputPtr DecoderOutput)
void OnSubtitleFlush ()
void OnVideoDecoded (const FManaMovieVideoDecoderOutputPtr &DecoderOutput, bool bDoNotRender)
void OnVideoFlush ()
bool OpenInternal (const FString &Url, const FPlaystartOptions &PlaystartOptions)
void Pause (bool bPause)
void PlayInternal ()
bool Seek (const FTimespan &Time)
bool Seek (const FTimespan &Time, const FSeekParam &Param)
bool SelectTrack (EManaTrackType TrackType, int32 TrackIndex)
void SetAsyncResourceReleaseNotification (IAsyncResourceReleaseNotifyContainer *AsyncResourceReleaseNotification)
void SetGuid (const FGuid &Guid)
bool SetLooping (bool bLooping)
bool SetNativeVolume (float Volume)
void SetPlaybackRange (const FPlaybackRange &InPlaybackRange)
bool SetRate (float Rate)
void Tick (FTimespan DeltaTime, FTimespan Timecode)
void TickAudio ()
const TCHAR * ToString (EManaPlayerCommand Cmd)
const TCHAR * ToString (EPlayerState Cmd)

公開変数類

friend FManaInternalPlayer
FMovieInfo MovieInfo

非公開メンバ関数

void CalculateTargetSeekTime (FTimespan &OutTargetTime, const FTimespan &InTime)
void ClearToDefaultState ()
void OnSeekRequest (const FSeekParam &InSeekPosition)
void OnStatusChanged (EPlayerState NewStatus)
void PrepareResourcesForPlayback ()
bool PresentAudioFrame (const IManaMovieAudioDecoderOutputPtr &DecoderOutput)
bool PresentSubtitle (const IManaMovieSubtitleDecoderOutputPtr &DecoderOutput)
bool PresentVideoFrame (const FManaMovieVideoDecoderOutputPtr &InVideoFrame)
bool ProcessAudioTime ()
bool ProcessManaCommand (EManaPlayerCommand Command, EPlayerState InManaStatus, bool bInternal=false)
bool ProcessSeek (EPlayerState InManaStatus)
bool ProcessVideoFrame ()
void SeekTo (const FSeekParam &NewPosition)
EPlayerState UpdateStatus ()

非公開変数類

TSharedPtr< IAsyncResourceReleaseNotifyContainer, ESPMode::ThreadSafe > AsyncResourceReleaseNotification
bool bAllowKillAfterCloseEvent = false
TOptional< bool > bEnableLooping
TAtomic< bool > bHasPendingError = false
TAtomic< bool > bIsInitialized = false
TAtomic< bool > bIsPaused = false
TAtomic< bool > bIsPreparing = false
TAtomic< bool > bIsRequestingHeader = false
TAtomic< bool > bIsRequestingPause = false
TAtomic< bool > bIsRequestingPlay = false
TAtomic< bool > bIsRequestingPrepare = false
TAtomic< bool > bIsRequestingSeek = false
TAtomic< bool > bIsRequestingStop = false
TAtomic< bool > bIsSeeking = false
TAtomic< bool > bPlayerHasClosed = false
int32 CurrentAlphaTrackIndex = INDEX_NONE
int32 CurrentAudioTrackIndex = INDEX_NONE
int32 CurrentExtraAudioTrackIndex = INDEX_NONE
FPlaybackRange CurrentPlaybackRange
FPlayerSequenceState CurrentPlaybackSequenceState
TSharedPtr< FManaInternalPlayer, ESPMode::ThreadSafe > CurrentPlayer
float CurrentPlayRate = 0.0f
int32 CurrentSubAudioTrackIndex = INDEX_NONE
int32 CurrentSubtitleTrackIndex = INDEX_NONE
FString CurrentUrl
int32 CurrentVideoTrackIndex = 0
TAtomic< EPlayerStateCurStatus
FTimespan LastDecodedFrameTime = FTimespan::Zero()
FLoopState LoopState
FManaRuntime * ManaRuntime
FTimespan ManaTime = FTimespan::Zero()
TWeakPtr< IManaPlayerDelegate, ESPMode::ThreadSafe > PlayerDelegate
FGuid PlayerGuid
FCriticalSection PlayerLock
FPlaystartOptions PlaystartOptions
TQueue< EManaPlayerCommand, EQueueMode::Mpsc > QueuedCommands
TQueue< IManaPlayerDelegate::EPlayerEvent, EQueueMode::Mpsc > QueuedEvents
FSeekVars SeekVars
FEvent * WaitForPlayerDestroyedEvent

列挙型メンバ詳解

◆ anonymous enum

anonymous enum
列挙値
ResourceFlags_Decoder 
ResourceFlags_OutputBuffers 
ResourceFlags_All 
ResourceFlags_Any 

◆ EManaPlayerCommand

Enumerates Mana commands.

列挙値
DecodeHeader 
Prepare 
Play 
Pause 
Loop 
Seek 
Stop 
Destroy 
Flush 
Update 
DelayNextTick 

◆ EPlayerState

enum class FNativeManaPlayer::EPlayerState : uint8
strong

Enumerates Mana movie status.

列挙値
Stop 
DecHdr 
WaitPrep 
Prep 
Ready 
Playing 
PlayEnd 
Error 
Closed 

◆ ETimeRangeType

列挙値
Absolute 

Total absolute time range as defined by the media.

Current 

Current time range of the media, set by media internal means or through API calls.

構築子と解体子

◆ FNativeManaPlayer()

FNativeManaPlayer::FNativeManaPlayer ( const TSharedPtr< IManaPlayerDelegate, ESPMode::ThreadSafe > & AdapterDelegate)

◆ ~FNativeManaPlayer()

FNativeManaPlayer::~FNativeManaPlayer ( )
virtual

関数詳解

◆ CalculateTargetSeekTime()

void FNativeManaPlayer::CalculateTargetSeekTime ( FTimespan & OutTargetTime,
const FTimespan & InTime )
private

◆ CanPresentAudioFrames()

bool FNativeManaPlayer::CanPresentAudioFrames ( uint64 NumFrames)

◆ CanPresentVideoFrames()

bool FNativeManaPlayer::CanPresentVideoFrames ( uint64 NumFrames)

◆ ClearToDefaultState()

void FNativeManaPlayer::ClearToDefaultState ( )
private

◆ CloseInternal()

void FNativeManaPlayer::CloseInternal ( bool bKillAfterClose)

◆ DropOldFramesFromPresentationQueue()

void FNativeManaPlayer::DropOldFramesFromPresentationQueue ( )

Attempt to drop any old frames from the presentation queue

◆ ExecuteNativePlayerCommand()

void FNativeManaPlayer::ExecuteNativePlayerCommand ( TFunction< void(void *NativePlayer)> InFunction)

◆ GetAlphaTrackFormat()

bool FNativeManaPlayer::GetAlphaTrackFormat ( int32 TrackIndex,
int32 FormatIndex,
FManaVideoTrackInfo & OutFormat ) const

◆ GetAtomExPlayer()

FCriAtomExPlayerPtr FNativeManaPlayer::GetAtomExPlayer ( EManaTrackType TrackType)

◆ GetAtomExVoicePool()

FCriAtomVoicePoolPtr FNativeManaPlayer::GetAtomExVoicePool ( EManaTrackType TrackType)

◆ GetAudioTrackFormat()

bool FNativeManaPlayer::GetAudioTrackFormat ( int32 TrackIndex,
int32 FormatIndex,
FManaAudioTrackInfo & OutFormat ) const

◆ GetDuration()

FTimespan FNativeManaPlayer::GetDuration ( )

◆ GetLoopCount()

int32 FNativeManaPlayer::GetLoopCount ( ) const

◆ GetNativePlayer()

CriManaPlayerHn FNativeManaPlayer::GetNativePlayer ( ) const
inline

◆ GetNumTrackFormats()

int32 FNativeManaPlayer::GetNumTrackFormats ( EManaTrackType TrackType,
int32 TrackIndex ) const

◆ GetNumTracks()

int32 FNativeManaPlayer::GetNumTracks ( EManaTrackType TrackType) const

◆ GetPlaybackRange() [1/2]

TRange< FTimespan > FNativeManaPlayer::GetPlaybackRange ( ETimeRangeType InRangeToGet) const

◆ GetPlaybackRange() [2/2]

void FNativeManaPlayer::GetPlaybackRange ( FPlaybackRange & OutPlaybackRange) const

◆ GetRate()

float FNativeManaPlayer::GetRate ( )

◆ GetSeekableRange()

void FNativeManaPlayer::GetSeekableRange ( FTimespan & Start,
FTimespan & End )

◆ GetSelectedTrack()

int32 FNativeManaPlayer::GetSelectedTrack ( EManaTrackType TrackType) const

◆ GetState()

EPlayerState FNativeManaPlayer::GetState ( )
inline

◆ GetStreamBufferInformation()

bool FNativeManaPlayer::GetStreamBufferInformation ( FStreamBufferInfo & OutBufferInformation,
EManaTrackType InTrackType ) const

Provides information about the time ranges that are currently available to the player and those that are being loaded.

◆ GetTime()

FTimespan FNativeManaPlayer::GetTime ( )

◆ GetTrackDisplayName()

FText FNativeManaPlayer::GetTrackDisplayName ( EManaTrackType TrackType,
int32 TrackIndex ) const

◆ GetTrackFormat()

int32 FNativeManaPlayer::GetTrackFormat ( EManaTrackType TrackType,
int32 TrackIndex ) const

◆ GetTrackLanguage()

FString FNativeManaPlayer::GetTrackLanguage ( EManaTrackType TrackType,
int32 TrackIndex ) const

◆ GetTrackName()

FString FNativeManaPlayer::GetTrackName ( EManaTrackType TrackType,
int32 TrackIndex ) const

◆ GetUrl()

FString FNativeManaPlayer::GetUrl ( ) const
inline

◆ GetVideoTrackFormat()

bool FNativeManaPlayer::GetVideoTrackFormat ( int32 TrackIndex,
int32 FormatIndex,
FManaVideoTrackInfo & OutFormat ) const

◆ HandleNativeOnCuePoint()

void FNativeManaPlayer::HandleNativeOnCuePoint ( CriManaEventPoint * EventPoint)

◆ IsLooping()

bool FNativeManaPlayer::IsLooping ( )

◆ IsPaused()

bool FNativeManaPlayer::IsPaused ( )

◆ OnAudioDecoded()

void FNativeManaPlayer::OnAudioDecoded ( const IManaMovieAudioDecoderOutputPtr & DecoderOutput)

The audio renderer is adding a buffer to the queue

◆ OnAudioFlush()

void FNativeManaPlayer::OnAudioFlush ( )

◆ OnEventPointReceived()

void FNativeManaPlayer::OnEventPointReceived ( TSharedPtr< FManaEventPointInfo, ESPMode::ThreadSafe > EventPointInfo)

◆ OnSeekRequest()

void FNativeManaPlayer::OnSeekRequest ( const FSeekParam & InSeekPosition)
private

◆ OnStatusChanged()

void FNativeManaPlayer::OnStatusChanged ( EPlayerState NewStatus)
private

Setup status flags when native player status changes.

引数
NewStatusThe new player status.

◆ OnSubtitleDecoded()

void FNativeManaPlayer::OnSubtitleDecoded ( const IManaMovieSubtitleDecoderOutputPtr DecoderOutput)

◆ OnSubtitleFlush()

void FNativeManaPlayer::OnSubtitleFlush ( )

◆ OnVideoDecoded()

void FNativeManaPlayer::OnVideoDecoded ( const FManaMovieVideoDecoderOutputPtr & DecoderOutput,
bool bDoNotRender )

The video renderer is adding a buffer to the queue

◆ OnVideoFlush()

void FNativeManaPlayer::OnVideoFlush ( )

◆ OpenInternal()

bool FNativeManaPlayer::OpenInternal ( const FString & Url,
const FPlaystartOptions & PlaystartOptions )

◆ Pause()

void FNativeManaPlayer::Pause ( bool bPause)

◆ PlayInternal()

void FNativeManaPlayer::PlayInternal ( )

◆ PrepareResourcesForPlayback()

void FNativeManaPlayer::PrepareResourcesForPlayback ( )
private

◆ PresentAudioFrame()

bool FNativeManaPlayer::PresentAudioFrame ( const IManaMovieAudioDecoderOutputPtr & DecoderOutput)
private

Check timeline and moves sample over to media FACADE sinks

Returns true if sample was moved over, but DOES not remove the sample from player queue

◆ PresentSubtitle()

bool FNativeManaPlayer::PresentSubtitle ( const IManaMovieSubtitleDecoderOutputPtr & DecoderOutput)
private

◆ PresentVideoFrame()

bool FNativeManaPlayer::PresentVideoFrame ( const FManaMovieVideoDecoderOutputPtr & InVideoFrame)
private

Check timeline and moves sample over to media FACADE sinks

Returns true if sample was moved over, but DOES not remove the sample from player queue

◆ ProcessAudioTime()

bool FNativeManaPlayer::ProcessAudioTime ( )
private

◆ ProcessManaCommand()

bool FNativeManaPlayer::ProcessManaCommand ( EManaPlayerCommand Command,
EPlayerState InManaStatus,
bool bInternal = false )
private

Process the given Mana command.

引数
CommandThe command to process.
InManaStatusThe current player status. @paran bInternal Is the command do not check status flags.
戻り値
True if command was processed.

◆ ProcessSeek()

bool FNativeManaPlayer::ProcessSeek ( EPlayerState InManaStatus)
private

◆ ProcessVideoFrame()

bool FNativeManaPlayer::ProcessVideoFrame ( )
private

◆ Seek() [1/2]

bool FNativeManaPlayer::Seek ( const FTimespan & Time)

◆ Seek() [2/2]

bool FNativeManaPlayer::Seek ( const FTimespan & Time,
const FSeekParam & Param )

◆ SeekTo()

void FNativeManaPlayer::SeekTo ( const FSeekParam & NewPosition)
private

◆ SelectTrack()

bool FNativeManaPlayer::SelectTrack ( EManaTrackType TrackType,
int32 TrackIndex )

◆ SetAsyncResourceReleaseNotification()

void FNativeManaPlayer::SetAsyncResourceReleaseNotification ( IAsyncResourceReleaseNotifyContainer * AsyncResourceReleaseNotification)

◆ SetGuid()

void FNativeManaPlayer::SetGuid ( const FGuid & Guid)
inline

◆ SetLooping()

bool FNativeManaPlayer::SetLooping ( bool bLooping)

◆ SetNativeVolume()

bool FNativeManaPlayer::SetNativeVolume ( float Volume)

◆ SetPlaybackRange()

void FNativeManaPlayer::SetPlaybackRange ( const FPlaybackRange & InPlaybackRange)

◆ SetRate()

bool FNativeManaPlayer::SetRate ( float Rate)

◆ Tick()

void FNativeManaPlayer::Tick ( FTimespan DeltaTime,
FTimespan Timecode )

◆ TickAudio()

void FNativeManaPlayer::TickAudio ( )

◆ ToString() [1/2]

const TCHAR * FNativeManaPlayer::ToString ( EManaPlayerCommand Cmd)
inline

◆ ToString() [2/2]

const TCHAR * FNativeManaPlayer::ToString ( EPlayerState Cmd)
inline

◆ UpdateStatus()

FNativeManaPlayer::EPlayerState FNativeManaPlayer::UpdateStatus ( )
private

メンバ詳解

◆ AsyncResourceReleaseNotification

TSharedPtr<IAsyncResourceReleaseNotifyContainer, ESPMode::ThreadSafe> FNativeManaPlayer::AsyncResourceReleaseNotification
private

Notification listener to signal when native Mana player is destroyed.

◆ bAllowKillAfterCloseEvent

bool FNativeManaPlayer::bAllowKillAfterCloseEvent = false
private

◆ bEnableLooping

TOptional<bool> FNativeManaPlayer::bEnableLooping
private

◆ bHasPendingError

TAtomic<bool> FNativeManaPlayer::bHasPendingError = false
private

◆ bIsInitialized

TAtomic<bool> FNativeManaPlayer::bIsInitialized = false
private

◆ bIsPaused

TAtomic<bool> FNativeManaPlayer::bIsPaused = false
private

◆ bIsPreparing

TAtomic<bool> FNativeManaPlayer::bIsPreparing = false
private

◆ bIsRequestingHeader

TAtomic<bool> FNativeManaPlayer::bIsRequestingHeader = false
private

◆ bIsRequestingPause

TAtomic<bool> FNativeManaPlayer::bIsRequestingPause = false
private

◆ bIsRequestingPlay

TAtomic<bool> FNativeManaPlayer::bIsRequestingPlay = false
private

◆ bIsRequestingPrepare

TAtomic<bool> FNativeManaPlayer::bIsRequestingPrepare = false
private

◆ bIsRequestingSeek

TAtomic<bool> FNativeManaPlayer::bIsRequestingSeek = false
private

◆ bIsRequestingStop

TAtomic<bool> FNativeManaPlayer::bIsRequestingStop = false
private

◆ bIsSeeking

TAtomic<bool> FNativeManaPlayer::bIsSeeking = false
private

◆ bPlayerHasClosed

TAtomic<bool> FNativeManaPlayer::bPlayerHasClosed = false
private

◆ CurrentAlphaTrackIndex

int32 FNativeManaPlayer::CurrentAlphaTrackIndex = INDEX_NONE
private

◆ CurrentAudioTrackIndex

int32 FNativeManaPlayer::CurrentAudioTrackIndex = INDEX_NONE
private

◆ CurrentExtraAudioTrackIndex

int32 FNativeManaPlayer::CurrentExtraAudioTrackIndex = INDEX_NONE
private

◆ CurrentPlaybackRange

FPlaybackRange FNativeManaPlayer::CurrentPlaybackRange
private

◆ CurrentPlaybackSequenceState

FPlayerSequenceState FNativeManaPlayer::CurrentPlaybackSequenceState
private

◆ CurrentPlayer

TSharedPtr<FManaInternalPlayer, ESPMode::ThreadSafe> FNativeManaPlayer::CurrentPlayer
private

◆ CurrentPlayRate

float FNativeManaPlayer::CurrentPlayRate = 0.0f
private

◆ CurrentSubAudioTrackIndex

int32 FNativeManaPlayer::CurrentSubAudioTrackIndex = INDEX_NONE
private

◆ CurrentSubtitleTrackIndex

int32 FNativeManaPlayer::CurrentSubtitleTrackIndex = INDEX_NONE
private

◆ CurrentUrl

FString FNativeManaPlayer::CurrentUrl
private

The URL of the currently opened media.

◆ CurrentVideoTrackIndex

int32 FNativeManaPlayer::CurrentVideoTrackIndex = 0
private

◆ CurStatus

TAtomic<EPlayerState> FNativeManaPlayer::CurStatus
private

◆ FManaInternalPlayer

friend FNativeManaPlayer::FManaInternalPlayer

◆ LastDecodedFrameTime

FTimespan FNativeManaPlayer::LastDecodedFrameTime = FTimespan::Zero()
private

◆ LoopState

FLoopState FNativeManaPlayer::LoopState
private

◆ ManaRuntime

FManaRuntime* FNativeManaPlayer::ManaRuntime
private

◆ ManaTime

FTimespan FNativeManaPlayer::ManaTime = FTimespan::Zero()
private

◆ MovieInfo

FMovieInfo FNativeManaPlayer::MovieInfo

◆ PlayerDelegate

TWeakPtr<IManaPlayerDelegate, ESPMode::ThreadSafe> FNativeManaPlayer::PlayerDelegate
private

◆ PlayerGuid

FGuid FNativeManaPlayer::PlayerGuid
private

Mana player Guid

◆ PlayerLock

FCriticalSection FNativeManaPlayer::PlayerLock
mutableprivate

◆ PlaystartOptions

FPlaystartOptions FNativeManaPlayer::PlaystartOptions
private

◆ QueuedCommands

TQueue<EManaPlayerCommand, EQueueMode::Mpsc> FNativeManaPlayer::QueuedCommands
private

Mana player command queue.

◆ QueuedEvents

TQueue<IManaPlayerDelegate::EPlayerEvent, EQueueMode::Mpsc> FNativeManaPlayer::QueuedEvents
private

Mana player event queue.

◆ SeekVars

FSeekVars FNativeManaPlayer::SeekVars
private

◆ WaitForPlayerDestroyedEvent

FEvent* FNativeManaPlayer::WaitForPlayerDestroyedEvent
private

このクラス詳解は次のファイルから抽出されました:
  • C:/git/Engine/Plugins/Runtime/CriWare/CriWareMana/Source/CriWareMana/Private/ManaPlayer/NativeManaPlayer.h
  • C:/git/Engine/Plugins/Runtime/CriWare/CriWareMana/Source/CriWareMana/Private/ManaPlayer/NativeManaPlayer.cpp