![]() |
Kodi Documentation 22.0
Kodi is an open source media player and entertainment hub.
|
WebOS media pipeline for audio/video playback. More...
#include <MediaPipelineWebOS.h>
Public Member Functions | |
CMediaPipelineWebOS (CProcessInfo &processInfo, CRenderManager &renderManager, CDVDClock &clock, CDVDMessageQueue &parent, CDVDOverlayContainer &overlay, bool hasAudio) | |
Construct the WebOS media pipeline. | |
~CMediaPipelineWebOS () override | |
Destructor, cleans up and unloads streams. | |
void | FlushVideoMessages () |
Flush all pending video messages. | |
void | FlushAudioMessages () |
Flush all pending audio messages. | |
bool | OpenAudioStream (CDVDStreamInfo &audioHint) |
Open an audio stream using provided hints. | |
bool | OpenVideoStream (CDVDStreamInfo hint) |
Open a video stream using provided hints. | |
void | CloseAudioStream (bool waitForBuffers) |
Close the audio stream. | |
void | CloseVideoStream (bool waitForBuffers) |
Close the video stream. | |
void | Flush (bool sync) |
Flush both audio and video pipelines. | |
bool | AcceptsAudioData () const |
Check if pipeline can accept more audio data. | |
bool | AcceptsVideoData () const |
Check if pipeline can accept more video data. | |
bool | HasAudioData () const |
Check if there is buffered audio data. | |
bool | HasVideoData () const |
Check if there is buffered video data. | |
bool | IsAudioInited () const |
Check if audio subsystem is initialized. | |
bool | IsVideoInited () const |
Check if video subsystem is initialized. | |
int | GetAudioLevel () const |
Get current audio buffer level. | |
bool | IsStalled () const |
Check if playback is stalled. | |
void | SendAudioMessage (const std::shared_ptr< CDVDMsg > &msg, int priority) |
Send a message to the audio queue. | |
void | SendVideoMessage (const std::shared_ptr< CDVDMsg > &msg, int priority) |
Send a message to the video queue. | |
void | SetSpeed (int speed) |
Set playback speed. | |
double | GetCurrentPts () const |
Get current presentation timestamp in seconds. | |
int | GetAudioChannels () const |
Get number of audio channels configured. | |
void | EnableSubtitle (bool enable) |
Enable or disable subtitle rendering. | |
bool | IsSubtitleEnabled () const |
Check if subtitles are enabled. | |
double | GetSubtitleDelay () const |
Get current subtitle display delay. | |
void | SetSubtitleDelay (double delay) |
Set subtitle display delay. | |
int | GetVideoBitrate () const |
std::string | GetAudioInfo () |
std::string | GetVideoInfo () |
void | GetVideoResolution (unsigned int &width, unsigned int &height) const |
Get the resolution of the video stream. | |
![]() | |
CThread (IRunnable *pRunnable, const char *ThreadName) | |
virtual | ~CThread () |
void | Create (bool bAutoDelete=false) |
template<typename Rep, typename Period> | |
void | Sleep (std::chrono::duration< Rep, Period > duration) |
bool | IsAutoDelete () const |
virtual void | StopThread (bool bWait=true) |
bool | IsRunning () const |
bool | IsCurrentThread () const |
bool | Join (std::chrono::milliseconds duration) |
bool | SetPriority (const ThreadPriority &priority) |
Set the threads priority. This uses the platforms native threading library to do so. | |
virtual void | OnException () |
Static Public Member Functions | |
static bool | Supports (AVCodecID codec, bool includeSecure=false) |
Check if a codec is supported by the pipeline. | |
![]() | |
static const std::thread::id | GetCurrentThreadId () |
static CThread * | GetCurrentThread () |
Protected Member Functions | |
void | Process () override |
Video processing thread loop. | |
void | ProcessAudio () |
Audio processing thread loop. | |
![]() | |
CThread (const char *ThreadName) | |
virtual void | OnStartup () |
virtual void | OnExit () |
WaitResponse | AbortableWait (CEvent &event, std::chrono::milliseconds duration=std::chrono::milliseconds(-1)) |
Additional Inherited Members | |
![]() | |
enum | WaitResponse { WAIT_INTERRUPTED = -1 , WAIT_SIGNALED = 0 , WAIT_TIMEDOUT = 1 } |
![]() | |
std::atomic< bool > | m_bStop |
WebOS media pipeline for audio/video playback.
|
explicit |
Construct the WebOS media pipeline.
processInfo | Reference to process information. |
renderManager | Reference to the render manager. |
clock | Reference to the clock for timing. |
parent | Parent message queue for control messages. |
overlay | Overlay container for subtitle rendering. |
hasAudio | True if audio stream is present, false otherwise. |
|
override |
Destructor, cleans up and unloads streams.
bool CMediaPipelineWebOS::AcceptsAudioData | ( | ) | const |
Check if pipeline can accept more audio data.
bool CMediaPipelineWebOS::AcceptsVideoData | ( | ) | const |
Check if pipeline can accept more video data.
Close the audio stream.
waitForBuffers | If true, wait until buffers are processed. |
Close the video stream.
waitForBuffers | If true, wait until buffers are processed. |
Enable or disable subtitle rendering.
enable | True to enable subtitles. |
Flush both audio and video pipelines.
sync | If true, flush synchronously. |
void CMediaPipelineWebOS::FlushAudioMessages | ( | ) |
Flush all pending audio messages.
void CMediaPipelineWebOS::FlushVideoMessages | ( | ) |
Flush all pending video messages.
|
inline |
Get number of audio channels configured.
std::string CMediaPipelineWebOS::GetAudioInfo | ( | ) |
int CMediaPipelineWebOS::GetAudioLevel | ( | ) | const |
Get current audio buffer level.
double CMediaPipelineWebOS::GetCurrentPts | ( | ) | const |
Get current presentation timestamp in seconds.
double CMediaPipelineWebOS::GetSubtitleDelay | ( | ) | const |
Get current subtitle display delay.
int CMediaPipelineWebOS::GetVideoBitrate | ( | ) | const |
std::string CMediaPipelineWebOS::GetVideoInfo | ( | ) |
Get the resolution of the video stream.
width | Stream width (output parameter) |
height | Stream height (output parameter) |
bool CMediaPipelineWebOS::HasAudioData | ( | ) | const |
Check if there is buffered audio data.
bool CMediaPipelineWebOS::HasVideoData | ( | ) | const |
Check if there is buffered video data.
bool CMediaPipelineWebOS::IsAudioInited | ( | ) | const |
Check if audio subsystem is initialized.
bool CMediaPipelineWebOS::IsStalled | ( | ) | const |
Check if playback is stalled.
bool CMediaPipelineWebOS::IsSubtitleEnabled | ( | ) | const |
Check if subtitles are enabled.
bool CMediaPipelineWebOS::IsVideoInited | ( | ) | const |
Check if video subsystem is initialized.
bool CMediaPipelineWebOS::OpenAudioStream | ( | CDVDStreamInfo & | audioHint | ) |
Open an audio stream using provided hints.
audioHint | Audio stream information. |
bool CMediaPipelineWebOS::OpenVideoStream | ( | CDVDStreamInfo | hint | ) |
Open a video stream using provided hints.
hint | Video stream information. |
Video processing thread loop.
Continuously reads messages and feeds video data to the pipeline.
Reimplemented from CThread.
|
protected |
Audio processing thread loop.
Continuously reads messages and feeds audio data to the pipeline.
Send a message to the audio queue.
msg | Message to send. |
priority | Message priority. |
Send a message to the video queue.
msg | Message to send. |
priority | Message priority. |
Set playback speed.
speed | Playback rate (per-mille units). |
void CMediaPipelineWebOS::SetSubtitleDelay | ( | double | delay | ) |
Set subtitle display delay.
delay | Delay in seconds. |
Check if a codec is supported by the pipeline.
codec | AVCodecID to check. |
includeSecure | If true, include secure codecs in the check. |