UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MediaSampleSink.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
6#include "Misc/Timespan.h"
9#include "IMediaTimeSource.h"
10#include "IMediaTracks.h"
11
12class UMediaPlayer;
13
26
28{
29 union {
30 struct
31 {
34 struct
35 {
38 struct
39 {
42 struct
43 {
46 struct
47 {
50 struct
51 {
54 struct
55 {
58 struct
59 {
62 };
63};
64
72template<typename SampleType>
74{
75public:
76
85
92 virtual int32 Num() const = 0;
93
101 virtual bool CanAcceptSamples(int32 NumSamples) const
102 {
103 return true;
104 }
105
112 virtual void RequestFlush() = 0;
113
118 virtual uint32 GetFlushCount() const = 0;
119
124 {
125 MediaSampleSinkEvent.Broadcast(Event, Data);
126 }
127
136
137public:
138
140 virtual ~TMediaSampleSink() { }
141
142private:
143 FOnMediaSampleSinkEvent MediaSampleSinkEvent;
144};
145
146
148class FMediaAudioSampleSink : public TMediaSampleSink<class IMediaAudioSample>
149{
150public:
155 virtual void InvalidateAudioTime() = 0;
156};
157
160
163
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
TMediaSampleSink< class IMediaTextureSample > FMediaTextureSampleSink
Definition MediaSampleSink.h:165
TMediaSampleSink< class IMediaBinarySample > FMediaBinarySampleSink
Definition MediaSampleSink.h:159
TMediaSampleSink< class IMediaOverlaySample > FMediaOverlaySampleSink
Definition MediaSampleSink.h:162
EMediaSampleSinkEvent
Definition MediaSampleSink.h:16
@ PlaybackRateChanged
Rate of playback changed.
@ Detached
Detached from a UMediaPlayer.
@ Attached
Attached to a UMediaPlayer.
@ PlaybackEndReached
End of playback has been reached.
@ FlushWasRequested
Flush has been requested.
@ PlayerPluginChange
Player plugin used changed.
@ SampleDataUpdate
Sample data was updated.
@ MediaClosed
Media has been closed.
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition MediaSampleSink.h:149
virtual FMediaTimeStampSample GetAudioTime() const =0
virtual void InvalidateAudioTime()=0
Definition IMediaTimeSource.h:197
Definition MediaSampleSink.h:74
virtual int32 Num() const =0
virtual bool Enqueue(const TSharedRef< SampleType, ESPMode::ThreadSafe > &Sample)=0
virtual uint32 GetFlushCount() const =0
virtual ~TMediaSampleSink()
Definition MediaSampleSink.h:140
virtual bool CanAcceptSamples(int32 NumSamples) const
Definition MediaSampleSink.h:101
virtual void RequestFlush()=0
void ReceiveEvent(EMediaSampleSinkEvent Event, const FMediaSampleSinkEventData &Data)
Definition MediaSampleSink.h:123
DECLARE_EVENT_TwoParams(TMediaSampleSink< SampleType >, FOnMediaSampleSinkEvent, EMediaSampleSinkEvent, const FMediaSampleSinkEventData &) FOnMediaSampleSinkEvent &OnMediaSampleSinkEvent()
Definition MediaSampleSink.h:131
Definition SharedPointer.h:153
Definition MediaPlayer.h:176
Definition MediaSampleSink.h:28
struct FMediaSampleSinkEventData::@1458::@1467 PlaybackRateChanged
struct FMediaSampleSinkEventData::@1458::@1463 SampleDataUpdate
struct FMediaSampleSinkEventData::@1458::@1465 MediaClosed
uint32 Dummy
Definition MediaSampleSink.h:44
struct FMediaSampleSinkEventData::@1458::@1461 Detached
UMediaPlayer * MediaPlayer
Definition MediaSampleSink.h:32
float PlaybackRate
Definition MediaSampleSink.h:60
struct FMediaSampleSinkEventData::@1458::@1464 FlushWasRequested
struct FMediaSampleSinkEventData::@1458::@1460 Attached
struct FMediaSampleSinkEventData::@1458::@1462 PlayerPluginChange
struct FMediaSampleSinkEventData::@1458::@1466 PlaybackEndReached