You.i Engine
YiCastLabsVideoPlayer.h
Go to the documentation of this file.
1 #ifndef _YI_CASTLABS_VIDEO_PLAYER_H_
2 #define _YI_CASTLABS_VIDEO_PLAYER_H_
3 
5 #include "signal/YiSignal.h"
6 
7 class CYICastLabsVideoPlayerPriv;
8 
15 {
17 
18 public:
22  struct Metadata
23  {
27  uint64_t uDurationUs;
28  };
29 
31  virtual ~CYICastLabsVideoPlayer();
32 
40  void SetMaxResolution(const glm::ivec2 &rMaxResolution);
41 
48  void SetMinimumBufferTime(uint64_t uMinimumBufferTimeMs);
49 
57  void SetMaximumBufferTime(uint64_t uMaximumBufferTimeMs);
58 
63  void SetLiveDelayTime(uint64_t uLiveDelayTimeMs);
64 
68  void SetLoggingEnabled(bool bEnabled);
69 
73  bool IsLoggingEnabled() const;
74 
75  virtual CYIString GetName_() const override;
76  virtual Statistics GetStatistics_() const override;
77 
82 
83 private:
84  virtual std::unique_ptr<CYIVideoSurface> CreateSurface_() override;
85  virtual bool SupportsFormat_(STREAMING_FORMAT eFormat, DRM_SCHEME eDRMScheme) const override;
86  virtual void Prepare_(const CYIUrl &videoURI, STREAMING_FORMAT eFormatHint) override;
87  virtual void Play_() override;
88  virtual void Pause_() override;
89  virtual void Stop_() override;
90  virtual uint64_t GetDurationMs_() const override;
91  virtual uint64_t GetCurrentTimeMs_() const override;
92  virtual void Seek_(uint64_t uSeekPositionMs) override;
93  virtual void SetMaxBitrate_(uint64_t uMaxBitrate) override;
94  virtual void SetUserAgent_(const CYIString &userAgent) override;
95 
96  virtual bool IsMuted_() const override;
97  virtual void Mute_(bool bMute) override;
98  virtual bool SelectAudioTrack_(uint32_t uID) override;
99  virtual std::vector<AudioTrackInfo> GetAudioTracks_() const override;
100  virtual AudioTrackInfo GetActiveAudioTrack_() const override;
101 
102  virtual void DisableClosedCaptions_() override;
103  virtual bool SelectClosedCaptionsTrack_(uint32_t uID) override;
104  virtual std::vector<CYIAbstractVideoPlayer::ClosedCaptionsTrackInfo> GetClosedCaptionsTracks_() const override;
105  virtual CYIAbstractVideoPlayer::ClosedCaptionsTrackInfo GetActiveClosedCaptionsTrack_() const override;
106 
108 
110 };
111 
116 #endif
uint64_t uPresentationTimeUs
Definition: YiCastLabsVideoPlayer.h:26
void SetLiveDelayTime(uint64_t uLiveDelayTimeMs)
Definition: YiAbstractVideoPlayer.h:189
void SetLoggingEnabled(bool bEnabled)
CYISignal< Metadata > MetadataReceived
Definition: YiCastLabsVideoPlayer.h:81
Container class for Unicode strings. Conceptually, a CYIString object is a sequence of Unicode charac...
Definition: YiString.h:35
CYIString scheme
Definition: YiCastLabsVideoPlayer.h:25
void SetMaxResolution(const glm::ivec2 &rMaxResolution)
#define YI_TYPE_BASES(...)
Definition: YiRtti.h:350
DRM_SCHEME
Definition: YiAbstractVideoPlayer.h:112
virtual CYIString GetName_() const override
Definition: YiCastLabsVideoPlayer.h:14
An abstract video player that provides a basic interface that all subclasses must implement...
Definition: YiAbstractVideoPlayer.h:55
CYIString message
Definition: YiCastLabsVideoPlayer.h:24
void SetMinimumBufferTime(uint64_t uMinimumBufferTimeMs)
Definition: YiCastLabsVideoPlayer.h:22
A class used to encapsulate an URL.
Definition: YiUrl.h:24
Definition: YiAbstractVideoPlayer.h:238
void SetMaximumBufferTime(uint64_t uMaximumBufferTimeMs)
STREAMING_FORMAT
Definition: YiAbstractVideoPlayer.h:99
bool IsLoggingEnabled() const
virtual Statistics GetStatistics_() const override
Signals and slots are a thread-safe and flexible communication framework that will allow various obje...
Definition: YiSignal.h:164
friend class CYICastLabsVideoPlayerPriv
Definition: YiCastLabsVideoPlayer.h:16
Definition: YiAbstractVideoPlayer.h:203
uint64_t uDurationUs
Definition: YiCastLabsVideoPlayer.h:27
virtual ~CYICastLabsVideoPlayer()