|
vdr-plugin-softhddevice-drm-gles 1.4.0
|
#include <softhddevice.h>

Public Member Functions | |
| cSoftHdDevice (cSoftHdConfig *) | |
| cSoftHdDevice constructor More... | |
| virtual | ~cSoftHdDevice (void) |
| cSoftHdDevice destructor More... | |
| virtual cString | DeviceName (void) const |
| virtual bool | HasDecoder (void) const |
| Tells whether this device has an MPEG decoder. More... | |
| virtual cSpuDecoder * | GetSpuDecoder (void) |
| Get the device SPU decoder. More... | |
| virtual bool | CanReplay (void) const |
| Returns true if this device can currently start a replay session. More... | |
| virtual bool | SetPlayMode (ePlayMode) |
| Sets the device into the given play mode. More... | |
| virtual int | PlayVideo (const uchar *, int) |
| Play a video packet of the main videostream. More... | |
| virtual int | PlayAudio (const uchar *, int, uchar) |
| Play an audio packet. More... | |
| virtual int64_t | GetSTC (void) |
| Gets the current System Time Counter, which can be used to synchronize audio, video and subtitles. More... | |
| virtual cRect | CanScaleVideo (const cRect &, int taCenter) |
| Ask the output, if it can scale video. More... | |
| virtual void | ScaleVideo (const cRect &=cRect::Null) |
| Scale the currently shown video. More... | |
| virtual void | TrickSpeed (int, bool) |
| Set trick play speed. More... | |
| virtual void | Clear (void) |
| Clears all video and audio data from the device. More... | |
| virtual void | Play (void) |
| Sets the device into play mode (after a previous trick mode, or pause) More... | |
| virtual void | Freeze (void) |
| Puts the device into "freeze frame" mode. More... | |
| virtual void | StillPicture (const uchar *, int) |
| Display the given I-frame as a still picture. More... | |
| virtual bool | Poll (cPoller &, int=0) |
| Returns true if the device itself or any of the file handles in Poller is ready for further action. More... | |
| virtual bool | Flush (int=0) |
| Flush the device output buffers. More... | |
| virtual uchar * | GrabImage (int &, bool, int, int, int) |
| Grabs the currently visible screen image. More... | |
| virtual void | SetVideoDisplayFormat (eVideoDisplayFormat) |
| Sets the video display format. More... | |
| virtual void | SetVideoFormat (bool) |
| Set the video format. More... | |
| virtual void | GetVideoSize (int &, int &, double &) |
| Get the video size. More... | |
| virtual void | GetOsdSize (int &, int &, double &) |
| Returns the width, height and aspect ratio the OSD. More... | |
| virtual void | SetAudioTrackDevice (eTrackType) |
| virtual int | GetAudioChannelDevice (void) |
| virtual void | SetAudioChannelDevice (int) |
| virtual void | SetVolumeDevice (int) |
| Sets the audio volume on this device (Volume = 0...255). More... | |
| virtual void | SetDigitalAudioDevice (bool) |
| const char * | CommandLineHelp (void) |
| Return command line help string. More... | |
| int | ProcessArgs (int, char *[]) |
| Process the command line arguments. More... | |
| int | Start (void) |
| Called by VDR when the plugin is started. More... | |
| void | Stop (void) |
| Called by VDR when the plugin is stopped. More... | |
| cSoftHdConfig * | Config (void) |
| cVideoStream * | VideoStream (void) |
| cVideoRender * | Render (void) |
| cSoftHdAudio * | Audio (void) |
| void | SetDisableDeint (void) |
| Disables deinterlacer (called from setup menu or conf) More... | |
| void | OsdClose (void) |
| Close the OSD. More... | |
| void | OsdDrawARGB (int, int, int, int, int, const uint8_t *, int, int) |
| Draw an OSD pixmap. More... | |
| void | SetScreenSize (int, int, uint32_t) |
| Set the screen size. More... | |
| int | GetVideoAudioDelayMs (void) |
| void | SetPassthrough (int) |
| Set the passthrough mask (called from setup menu or conf) More... | |
| void | ResetChannelId (void) |
| Reset the channel ID (restarts audio) More... | |
| void | GetStats (int *, int *, int *) |
| Get statistics from the renderer. More... | |
| void | SetAudioCodec (enum AVCodecID, AVCodecParameters *, AVRational) |
| Open an audio codec. More... | |
| void | SetVideoCodec (enum AVCodecID, AVCodecParameters *, AVRational) |
| Open a video codec. More... | |
| int | PlayAudioPkts (AVPacket *) |
| Play an audio packet. More... | |
| int | PlayVideoPkts (AVPacket *) |
| Play a video packet. More... | |
| void | Detach (void) |
| Detach the device. More... | |
| void | Attach (void) |
| Attach the device again. More... | |
| bool | IsDetached (void) const |
| Returns true, if the device is detached. More... | |
| void | ResetOsdProvider (void) |
| bool | IsOsdProviderSet (void) const |
| bool | IsBufferingThresholdReached (void) |
| Check if the buffering threshold has been reached. More... | |
| void | PipEnable (void) |
| Start picture-in-picture. More... | |
| void | PipDisable (void) |
| Stop picture-in-picture. More... | |
| void | PipToggle (void) |
| Toggle picture-in-picture. More... | |
| void | PipChannelChange (int) |
| Change the pip channel. More... | |
| void | PipChannelSwap (void) |
| Swap the pip channel with main live channel. More... | |
| bool | PipIsEnabled (void) |
| Returns true, if picture-in-picture is running. More... | |
| int | PlayPipVideo (const uchar *, int) |
| Play a video packet of the pip videostream. More... | |
| void | PipSetSize (void) |
| Set size and position for the pip window. More... | |
| void | PipSwapPosition (void) |
| Swap pip between normal and alternative position. More... | |
| virtual void | OnEventReceived (const Event &)=0 |
Protected Member Functions | |
| virtual void | MakePrimaryDevice (bool) |
| Informs a device that it will be the primary device. More... | |
Private Member Functions | |
| int | PlayVideoInternal (cVideoStream *, cReassemblyBufferVideo *, const uchar *, int) |
| Play a video packet. More... | |
| void | ClearAudio (void) |
| Clear all audio data from the decoder and ringbuffer. More... | |
| void | OnEventReceived (const Event &) |
| Event handler for playback state transitions. More... | |
| void | HandleStillPicture (const uchar *data, int size) |
| The still picture data received from VDR can contain multiple PES packets. More... | |
| int64_t | GetFirstAudioPtsMsToPlay () |
| Calculate the first audio PTS that should be played during synchronized playback. More... | |
| int64_t | GetFirstVideoPtsMsToPlay () |
| int | GetBufferFillLevelThresholdMs () |
| Returns the buffer fill level threshold in milliseconds. More... | |
| void | SetState (State) |
| Sets the device into the given state. More... | |
| void | OnEnteringState (State) |
| Actions to be performed when entering a state. More... | |
| void | OnLeavingState (State) |
| Actions to be performed when leaving a state. More... | |
| void | SetEnablePip (bool) |
| Enable/ disable picture-in-picture. More... | |
| void | TogglePip (void) |
| Toggle picture-in-picture. More... | |
| void | ChangePipChannel (int) |
| Change the pip channel. More... | |
| void | ResetPipChannel (void) |
| Resets the pip channel to the current live stream channel. More... | |
| void | DelPip (void) |
| Delete the pip receiver, clear decoder and display buffers and disable rendering the pip window. More... | |
| void | NewPip (int) |
| Create a new pip receiver and render the pip stream. More... | |
| void | HandlePip (enum PipState) |
| Handle the pip event. More... | |
| void | SetPipSize (void) |
| Set size and position for the pip window. More... | |
| void | SwapPipPosition (void) |
| Swap pip between normal and alternative position. More... | |
Private Attributes | |
| std::atomic< State > | m_state = DETACHED |
| current plugin state, normal plugin start sets detached state More... | |
| std::mutex | m_eventMutex |
| mutex to protect event queue More... | |
| bool | m_needsMakePrimary = false |
| cDvbSpuDecoder * | m_pSpuDecoder |
| pointer to spu decoder More... | |
| cSoftHdConfig * | m_pConfig |
| pointer to cSoftHdConfig object More... | |
| cVideoRender * | m_pRender |
| pointer to cVideoRender object More... | |
| cVideoStream * | m_pVideoStream |
| pointer to main video stream More... | |
| cSoftHdAudio * | m_pAudio |
| pointer to cSoftHdAudio object More... | |
| cAudioDecoder * | m_pAudioDecoder |
| pointer to cAudioDecoder object More... | |
| cSoftOsdProvider * | m_pOsdProvider |
| pointer to cSoftOsdProvider object More... | |
| cReassemblyBufferVideo | m_videoReassemblyBuffer |
| video pes reassembly buffer More... | |
| cReassemblyBufferAudio | m_audioReassemblyBuffer |
| audio pes reassembly buffer More... | |
| std::atomic< PlaybackMode > | m_playbackMode = NONE |
| current playback mode More... | |
| int | m_audioChannelID |
| current audio channel ID More... | |
| bool | m_grabActive |
| simple lock variable skips a new grab request if the last one is still active More... | |
| bool | m_pipActive |
| true, if pip is active More... | |
| int | m_pipChannelNum |
| current pip channel number More... | |
| const cChannel * | m_pPipChannel |
| current pip channel More... | |
| cPipReceiver * | m_pPipReceiver |
| cReceiver for pip stream More... | |
| cVideoStream * | m_pPipStream |
| pointer to pip video stream More... | |
| cReassemblyBufferVideo | m_pipReassemblyBuffer |
| pip pes reassembly buffer More... | |
| std::mutex | m_mutex |
| mutex to lock the state machine More... | |
| std::mutex | m_sizeMutex |
| mutex to lock screen size (which is accessed by different threads) More... | |
| std::atomic< bool > | m_receivedAudio = false |
| flag if audio packets have been received More... | |
| std::atomic< bool > | m_receivedVideo = false |
| flag if video packets have been received More... | |
| bool | m_pipUseAlt |
| use alternative pip position More... | |
| int | m_screenWidth |
| int | m_screenHeight |
| uint32_t | m_screenRefreshRate |
Static Private Attributes | |
| static constexpr int | MIN_BUFFER_FILL_LEVEL_THRESHOLD_MS = 450 |
| min buffering threshold in ms More... | |
Definition at line 110 of file softhddevice.h.
| cSoftHdDevice::cSoftHdDevice | ( | cSoftHdConfig * | config | ) |
cSoftHdDevice constructor
Initializes some member variables
| config | pointer to cSoftHdConfig class |
Definition at line 143 of file softhddevice.cpp.
References cSoftHdConfig::ConfigPipUseAlt, m_audioChannelID, m_pAudioDecoder, m_pConfig, m_pipActive, m_pipUseAlt, m_pOsdProvider, and m_pSpuDecoder.
|
virtual |
cSoftHdDevice destructor
only deletes spu decoder, which was created in constructor
Definition at line 161 of file softhddevice.cpp.
References LOGDEBUG, and m_pSpuDecoder.
| void cSoftHdDevice::Attach | ( | void | ) |
Attach the device again.
Kind of a plugin restart. Inits and starts all necessary resources. Only valid after a detach.
Definition at line 1768 of file softhddevice.cpp.
References m_needsMakePrimary, MakePrimaryDevice(), and OnEventReceived().
Referenced by cPluginSoftHdDevice::SVDRPCommand().
|
inline |
Definition at line 177 of file softhddevice.h.
References m_pAudio.
Referenced by cMenuSetupSoft::cMenuSetupSoft(), cSoftHdPlayer::cSoftHdPlayer(), and cVideoRender::cVideoRender().
|
virtual |
Returns true if this device can currently start a replay session.
Definition at line 243 of file softhddevice.cpp.
References IsDetached(), and LOGDEBUG.
|
virtual |
Ask the output, if it can scale video.
| rect | requested video window rectangle |
Definition at line 1443 of file softhddevice.cpp.
|
private |
Change the pip channel.
| direction | 1: channel up, -1: channel down |
Definition at line 1962 of file softhddevice.cpp.
References DelPip(), m_pipActive, m_pPipChannel, and NewPip().
Referenced by HandlePip().
|
virtual |
Clears all video and audio data from the device.
This is called by VDR via DeviceClear() in the Empty() call.
Empty() does clear all VDR internal packets.
Definition at line 723 of file softhddevice.cpp.
References AUDIO_AND_VIDEO, BUFFERING, cVideoStream::CancelFilterThread(), ClearAudio(), cVideoRender::ClearDecoderToDisplayQueue(), cVideoStream::ClearVdrCoreToDecoderQueue(), cVideoStream::DecodingThreadHalt(), cVideoStream::DecodingThreadResume(), cVideoRender::DisplayThreadHalt(), cVideoRender::DisplayThreadResume(), cVideoStream::FlushDecoder(), IsDetached(), LOGDEBUG, m_pAudio, m_playbackMode, m_pRender, m_pVideoStream, m_videoReassemblyBuffer, cReassemblyBuffer::Reset(), cVideoRender::Reset(), cVideoRender::SetDisplayOneFrameThenPause(), cSoftHdAudio::SetPaused(), SetState(), and VIDEO_ONLY.
Referenced by cSoftHdPlayer::Player().
|
private |
Clear all audio data from the decoder and ringbuffer.
Definition at line 190 of file softhddevice.cpp.
References cSoftHdAudio::FlushBuffers(), cAudioDecoder::FlushBuffers(), LOGDEBUG, m_audioReassemblyBuffer, m_pAudio, m_pAudioDecoder, and cReassemblyBuffer::Reset().
Referenced by Clear(), and OnEnteringState().
| const char * cSoftHdDevice::CommandLineHelp | ( | void | ) |
Return command line help string.
Definition at line 1471 of file softhddevice.cpp.
Referenced by cPluginSoftHdDevice::CommandLineHelp().
|
inline |
Definition at line 174 of file softhddevice.h.
References m_pConfig.
Referenced by cMenuSetupSoft::cMenuSetupSoft(), cSoftHdAudio::cSoftHdAudio(), and cVideoRender::cVideoRender().
|
private |
Delete the pip receiver, clear decoder and display buffers and disable rendering the pip window.
We do not need to halt main stream decoder and display thread for this, so only halt the pip decoding thread here - not in OnEventReceived().
The last viewed pip channel is remembered and will be used when opening a new pip window.
Definition at line 2041 of file softhddevice.cpp.
References cVideoStream::CancelFilterThread(), cVideoRender::ClearPipDecoderToDisplayQueue(), cVideoStream::ClearVdrCoreToDecoderQueue(), cVideoStream::CloseDecoder(), cVideoStream::DecodingThreadHalt(), cVideoStream::DecodingThreadResume(), LOGDEBUG, m_pipReassemblyBuffer, m_pPipChannel, m_pPipReceiver, m_pPipStream, m_pRender, and cReassemblyBuffer::Reset().
Referenced by ChangePipChannel(), NewPip(), ResetPipChannel(), and SetEnablePip().
| void cSoftHdDevice::Detach | ( | void | ) |
Detach the device.
Clears audio and video, stops all threads and releases drm/alsa. A detached state can only be exited (restarted) with an AttachEvent.
Definition at line 1747 of file softhddevice.cpp.
References LOGDEBUG, m_needsMakePrimary, MakePrimaryDevice(), and OnEventReceived().
Referenced by cPluginSoftHdDevice::SVDRPCommand().
|
inlinevirtual |
Definition at line 123 of file softhddevice.h.
|
virtual |
Flush the device output buffers.
| timeout_ms | timeout in ms to become ready |
Definition at line 855 of file softhddevice.cpp.
References cVideoStream::GetAvPacketsFilled(), IsDetached(), LOGDEBUG, and m_pVideoStream.
|
virtual |
Puts the device into "freeze frame" mode.
Definition at line 771 of file softhddevice.cpp.
References LOGDEBUG, and OnEventReceived().
Referenced by cSoftHdControl::ProcessKey().
|
virtual |
Definition at line 1076 of file softhddevice.cpp.
|
private |
Returns the buffer fill level threshold in milliseconds.
Combines the minimum threshold with the user-configured additional buffer length.
Definition at line 1791 of file softhddevice.cpp.
References cSoftHdConfig::ConfigAdditionalBufferLengthMs, m_pConfig, and MIN_BUFFER_FILL_LEVEL_THRESHOLD_MS.
Referenced by IsBufferingThresholdReached().
|
private |
Calculate the first audio PTS that should be played during synchronized playback.
This method determines the starting audio presentation timestamp when transitioning from BUFFERING to PLAY state. It synchronizes audio with video by taking the maximum of both output PTSes, then adjusts for user-configured audio/video delay.
Definition at line 1240 of file softhddevice.cpp.
References cSoftHdConfig::ConfigVideoAudioDelayMs, cSoftHdAudio::GetOutputPtsMs(), cVideoRender::GetOutputPtsMs(), m_pAudio, m_pConfig, and m_pRender.
Referenced by IsBufferingThresholdReached(), and OnEventReceived().
|
private |
Definition at line 1253 of file softhddevice.cpp.
References cSoftHdConfig::ConfigVideoAudioDelayMs, cSoftHdAudio::GetOutputPtsMs(), cVideoRender::GetOutputPtsMs(), m_pAudio, m_pConfig, and m_pRender.
Referenced by IsBufferingThresholdReached(), and OnEventReceived().
|
virtual |
Returns the width, height and aspect ratio the OSD.
FIXME: Called every second, for nothing (no OSD displayed)?
Definition at line 929 of file softhddevice.cpp.
References IsDetached(), m_screenHeight, m_screenWidth, and m_sizeMutex.
Referenced by cOglOsd::cOglOsd(), cSoftOsd::Flush(), and GrabImage().
|
virtual |
Get the device SPU decoder.
Definition at line 219 of file softhddevice.cpp.
References LOGDEBUG, and m_pSpuDecoder.
| void cSoftHdDevice::GetStats | ( | int * | duped, |
| int * | dropped, | ||
| int * | counter | ||
| ) |
Get statistics from the renderer.
| [out] | duped | duped frames |
| [out] | dropped | dropped frames |
| [out] | count | number of total rendered frames |
Definition at line 1662 of file softhddevice.cpp.
References cVideoRender::GetStats(), and m_pRender.
Referenced by cMenuSetupSoft::Create().
|
virtual |
Gets the current System Time Counter, which can be used to synchronize audio, video and subtitles.
Definition at line 684 of file softhddevice.cpp.
References AUDIO_AND_VIDEO, AUDIO_ONLY, AV_NOPTS_VALUE, cSoftHdAudio::GetHardwareOutputPtsTimebaseUnits(), cVideoRender::GetVideoClock(), m_pAudio, m_playbackMode, m_pRender, NONE, and VIDEO_ONLY.
|
inline |
Definition at line 195 of file softhddevice.h.
References cSoftHdConfig::ConfigVideoAudioDelayMs, and m_pConfig.
Referenced by cVideoRender::DisplayFrame(), and cVideoRender::LogDroppedDuped().
|
virtual |
Get the video size.
Returns the width, height and aspect ratio of the currently displayed video material
Definition at line 910 of file softhddevice.cpp.
References cVideoStream::GetVideoSize(), IsDetached(), and m_pVideoStream.
|
virtual |
Grabs the currently visible screen image.
| size | size of the returned data |
| jpeg | flag true, create JPEG data |
| quality | JPEG quality |
| width | number of horizontal pixels in the frame |
| height | number of vertical pixels in the frame |
This works as follows:
Definition at line 1282 of file softhddevice.cpp.
References AlphaBlend(), BlitVideo(), cVideoRender::ClearGrab(), cVideoRender::ConvertOsdBufToRgb(), cVideoRender::ConvertPipBufToRgb(), cVideoRender::ConvertVideoBufToRgb(), CreateJpeg(), cSoftHdGrab::GetData(), cVideoRender::GetGrab(), GetOsdSize(), cSoftHdGrab::GetSize(), IsDetached(), L_GRAB, LOGDEBUG2, LOGERROR, LOGWARNING, m_grabActive, m_pRender, ScaleRgb24(), and cVideoRender::TriggerGrab().
|
private |
Handle the pip event.
Definition at line 1881 of file softhddevice.cpp.
References ChangePipChannel(), PIPCHANDOWN, PIPCHANSWAP, PIPCHANUP, PIPSIZECHANGE, PIPSTART, PIPSTOP, PIPSWAPPOSITION, PIPTOGGLE, ResetPipChannel(), SetEnablePip(), SetPipSize(), SwapPipPosition(), and TogglePip().
Referenced by OnEventReceived().
|
private |
The still picture data received from VDR can contain multiple PES packets.
This sends each PES packet's raw data separately to PlayVideo(), and does a flush to display the frame immediately.
| data | pes data of one or more frames |
| size | length of data area |
Definition at line 804 of file softhddevice.cpp.
References cVideoStream::Flush(), cPes::GetPacketLength(), cPes::IsValid(), LOGWARNING, m_pVideoStream, m_videoReassemblyBuffer, PlayVideoInternal(), cReassemblyBufferVideo::PopAvPacket(), cVideoStream::PushAvPacket(), SetState(), and STILL_PICTURE.
Referenced by OnEventReceived().
|
virtual |
Tells whether this device has an MPEG decoder.
Definition at line 231 of file softhddevice.cpp.
References IsDetached().
| bool cSoftHdDevice::IsBufferingThresholdReached | ( | void | ) |
Check if the buffering threshold has been reached.
During the BUFFERING state, this method determines when sufficient audio/video data has been buffered to start playback.
Definition at line 1189 of file softhddevice.cpp.
References AV_NOPTS_VALUE, BUFFERING, GetBufferFillLevelThresholdMs(), GetFirstAudioPtsMsToPlay(), GetFirstVideoPtsMsToPlay(), cSoftHdAudio::GetInputPtsMs(), cVideoStream::GetInputPtsMs(), cSoftHdAudio::GetOutputPtsMs(), cVideoRender::GetOutputPtsMs(), cVideoStream::HasInputPts(), cSoftHdAudio::HasPts(), cVideoRender::IsOutputBufferFull(), L_AV_SYNC, LOGDEBUG, LOGDEBUG2, m_pAudio, m_pRender, m_pVideoStream, m_receivedAudio, m_receivedVideo, m_state, and Timestamp2String().
Referenced by cVideoRender::DisplayFrame(), and PlayAudio().
| bool cSoftHdDevice::IsDetached | ( | void | ) | const |
Returns true, if the device is detached.
Definition at line 1781 of file softhddevice.cpp.
References DETACHED, m_mutex, and m_state.
Referenced by CanReplay(), Clear(), cSoftOsdProvider::CreateOsd(), Flush(), GetOsdSize(), GetVideoSize(), GrabImage(), HasDecoder(), OsdClose(), OsdDrawARGB(), ScaleVideo(), SetVolumeDevice(), and cPluginSoftHdDevice::SVDRPCommand().
|
inline |
Definition at line 213 of file softhddevice.h.
References m_pOsdProvider.
Referenced by cSoftOsdProvider::~cSoftOsdProvider().
|
protectedvirtual |
Informs a device that it will be the primary device.
| on | flag if becoming or loosing primary |
Definition at line 203 of file softhddevice.cpp.
References LOGDEBUG, and m_pOsdProvider.
|
private |
Create a new pip receiver and render the pip stream.
| channelNum | number of the channel to be switched to 0 switches to the current main stream channel |
Definition at line 2067 of file softhddevice.cpp.
References DelPip(), LOGDEBUG, m_pipChannelNum, m_pPipChannel, and m_pPipReceiver.
Referenced by ChangePipChannel(), ResetPipChannel(), and SetEnablePip().
|
private |
Actions to be performed when entering a state.
These are only executed when the state actually changes. E.g. a state transition PLAY -> PLAY does not trigger this.
| state | state being entered |
Definition at line 519 of file softhddevice.cpp.
References AUDIO_ONLY, BUFFERING, cVideoStream::CancelFilterThread(), ClearAudio(), cVideoRender::ClearDecoderToDisplayQueue(), cVideoStream::ClearVdrCoreToDecoderQueue(), cVideoStream::CloseDecoder(), cVideoStream::DecodingThreadResume(), DETACHED, cVideoRender::DisplayBlackFrame(), cVideoRender::DisplayThreadResume(), cSoftHdAudio::Exit(), cVideoRender::Exit(), cVideoStream::Exit(), m_pAudio, m_pAudioDecoder, m_playbackMode, m_pOsdProvider, m_pPipStream, m_pRender, m_pVideoStream, m_videoReassemblyBuffer, NONE, PLAY, cReassemblyBuffer::Reset(), cVideoRender::Reset(), cVideoRender::ResetBufferReuseStrategy(), cVideoRender::ResetDecodingStrategy(), cVideoStream::SetDeinterlacerDeactivated(), cSoftHdAudio::SetPaused(), cVideoRender::SetPlaybackPaused(), STILL_PICTURE, STOP, and TRICK_SPEED.
Referenced by SetState().
|
privatevirtual |
Event handler for playback state transitions.
Processes events (Play, Pause, Stop, TrickSpeed, StillPicture) and performs the appropriate state transitions based on the current state. The method halts both display and decoding threads before processing the event and resumes them afterwards to ensure thread-safe state transitions.
| event | The event to process (variant type containing specific event data) |
Implements IEventReceiver.
Definition at line 262 of file softhddevice.cpp.
References AUDIO_AND_VIDEO, AUDIO_ONLY, BUFFERING, cSoftHdConfig::ConfigVideoAudioDelayMs, cVideoStream::DecodingThreadHalt(), cVideoStream::DecodingThreadResume(), DETACHED, cVideoRender::DisplayThreadHalt(), cVideoRender::DisplayThreadResume(), cSoftHdAudio::DropSamplesOlderThanPtsMs(), EventToString(), GetFirstAudioPtsMsToPlay(), GetFirstVideoPtsMsToPlay(), cSoftHdAudio::GetOutputPtsMs(), cVideoRender::GetOutputPtsMs(), HandlePip(), HandleStillPicture(), cVideoStream::HasInputPts(), cSoftHdAudio::HasPts(), cSoftHdAudio::LazyInit(), LOGDEBUG, LOGFATAL, LOGWARNING, m_mutex, m_pAudio, m_pConfig, m_playbackMode, m_pRender, m_pVideoStream, m_state, NONE, PIPSTOP, PLAY, cVideoStream::ResetFilterThreadNeededCheck(), cVideoRender::ResetFrameCounter(), cVideoRender::SchedulePlaybackStartAtPtsMs(), cSoftHdAudio::SetPaused(), cVideoRender::SetPlaybackPaused(), cVideoRender::SetScheduleAudioResume(), SetState(), cVideoRender::SetTrickSpeed(), StateToString(), STILL_PICTURE, STOP, TRICK_SPEED, and VIDEO_ONLY.
Referenced by Attach(), Detach(), Freeze(), PipChannelChange(), PipChannelSwap(), PipDisable(), PipEnable(), PipSetSize(), PipSwapPosition(), PipToggle(), Play(), PlayAudio(), SetPlayMode(), Start(), StillPicture(), Stop(), and TrickSpeed().
|
private |
Actions to be performed when leaving a state.
These are only executed when the state actually changes. E.g. a state transition PLAY -> PLAY does not trigger this.
| state | state being left |
Definition at line 591 of file softhddevice.cpp.
References AV_NOPTS_VALUE, BUFFERING, cVideoStream::CancelFilterThread(), DETACHED, cVideoRender::GetMainOutputBuffer(), cVideoRender::GetPipOutputBuffer(), cVideoRender::Init(), m_pAudio, m_pAudioDecoder, m_pConfig, m_pPipStream, m_pRender, m_pVideoStream, m_receivedAudio, m_receivedVideo, PLAY, cVideoRender::PushMainFrame(), cVideoRender::PushPipFrame(), cVideoRender::ResetBufferReuseStrategy(), cVideoStream::ResetFilterThreadNeededCheck(), cVideoRender::ResetFrameCounter(), cVideoStream::ResetTrickSpeedFramesSentCounter(), cVideoRender::SchedulePlaybackStartAtPtsMs(), cVideoStream::SetDeinterlacerDeactivated(), cVideoRender::SetDisplayOneFrameThenPause(), cSoftHdAudio::SetPaused(), cVideoRender::SetPlaybackPaused(), cVideoRender::SetTrickSpeed(), cVideoStream::StartDecoder(), STILL_PICTURE, STOP, and TRICK_SPEED.
Referenced by SetState().
| void cSoftHdDevice::OsdClose | ( | void | ) |
Close the OSD.
Definition at line 1550 of file softhddevice.cpp.
References IsDetached(), m_pRender, and cVideoRender::OsdClear().
Referenced by cOglCmdCopyBufferToOutputFb::Execute(), cSoftOsd::SetActive(), and cSoftOsd::SetAreas().
| void cSoftHdDevice::OsdDrawARGB | ( | int | xi, |
| int | yi, | ||
| int | height, | ||
| int | width, | ||
| int | pitch, | ||
| const uint8_t * | argb, | ||
| int | x, | ||
| int | y | ||
| ) |
Draw an OSD pixmap.
| xi | x-coordinate in argb image |
| yi | y-coordinate in argb image |
| height | height in pixel in argb image |
| width | width in pixel in argb image |
| pitch | pitch of argb image |
| argb | 32bit ARGB image data |
| x | x-coordinate on screen of argb image |
| y | y-coordinate on screen of argb image |
Definition at line 1570 of file softhddevice.cpp.
References IsDetached(), m_pRender, and cVideoRender::OsdDrawARGB().
Referenced by cOglCmdCopyBufferToOutputFb::Execute(), and cSoftOsd::Flush().
| void cSoftHdDevice::PipChannelChange | ( | int | direction | ) |
Change the pip channel.
| direction | 1: channel up, -1: channel down |
Definition at line 1833 of file softhddevice.cpp.
References OnEventReceived(), PIPCHANDOWN, and PIPCHANUP.
Referenced by cSoftHdMenu::HandleHotKey(), cSoftHdMenu::ProcessKey(), and cPluginSoftHdDevice::SVDRPCommand().
| void cSoftHdDevice::PipChannelSwap | ( | void | ) |
Swap the pip channel with main live channel.
The channel switch of the main stream must be done out of OnEventReceived() because it triggers a SetPlayMode() which end in a deadlock otherwise.
Definition at line 1847 of file softhddevice.cpp.
References LOGDEBUG, m_pPipChannel, OnEventReceived(), and PIPCHANSWAP.
Referenced by cSoftHdMenu::HandleHotKey(), cSoftHdMenu::ProcessKey(), and cPluginSoftHdDevice::SVDRPCommand().
| void cSoftHdDevice::PipDisable | ( | void | ) |
Stop picture-in-picture.
Definition at line 1806 of file softhddevice.cpp.
References OnEventReceived(), and PIPSTOP.
Referenced by cPluginSoftHdDevice::SVDRPCommand().
| void cSoftHdDevice::PipEnable | ( | void | ) |
Start picture-in-picture.
Definition at line 1798 of file softhddevice.cpp.
References OnEventReceived(), and PIPSTART.
Referenced by cPluginSoftHdDevice::SVDRPCommand().
| bool cSoftHdDevice::PipIsEnabled | ( | void | ) |
Returns true, if picture-in-picture is running.
Definition at line 1822 of file softhddevice.cpp.
References m_mutex, and m_pipActive.
Referenced by cPluginSoftHdDevice::SVDRPCommand().
| void cSoftHdDevice::PipSetSize | ( | void | ) |
Set size and position for the pip window.
Definition at line 1865 of file softhddevice.cpp.
References OnEventReceived(), and PIPSIZECHANGE.
Referenced by cMenuSetupSoft::Store().
| void cSoftHdDevice::PipSwapPosition | ( | void | ) |
Swap pip between normal and alternative position.
Definition at line 1873 of file softhddevice.cpp.
References OnEventReceived(), and PIPSWAPPOSITION.
Referenced by cSoftHdMenu::HandleHotKey(), cSoftHdMenu::ProcessKey(), and cPluginSoftHdDevice::SVDRPCommand().
| void cSoftHdDevice::PipToggle | ( | void | ) |
Toggle picture-in-picture.
Definition at line 1814 of file softhddevice.cpp.
References OnEventReceived(), and PIPTOGGLE.
Referenced by cSoftHdMenu::HandleHotKey(), and cSoftHdMenu::ProcessKey().
|
virtual |
Sets the device into play mode (after a previous trick mode, or pause)
This is called by VDR via DevicePlay() in the Play() and Goto() call
Definition at line 761 of file softhddevice.cpp.
References OnEventReceived().
Referenced by cSoftHdControl::ProcessKey().
|
virtual |
Play an audio packet.
| data | data of exactly one complete PES packet |
| size | size of PES packet |
| id | PES packet type |
The caller must ensure, that PlayAudio() is not called in detached state. (CanReplay() and HasDecoder() return false in this state and we are not the primary device.)
Definition at line 1007 of file softhddevice.cpp.
References cAudioDecoder::Close(), cAudioDecoder::Decode(), cReassemblyBuffer::GetCodec(), cAudioDecoder::GetCodecId(), cPes::GetPayload(), cPes::GetPayloadSize(), cPes::GetPts(), cSoftHdAudio::IsBufferFull(), IsBufferingThresholdReached(), cPes::IsValid(), LOGDEBUG, m_audioChannelID, m_audioReassemblyBuffer, m_pAudio, m_pAudioDecoder, m_receivedAudio, OnEventReceived(), cAudioDecoder::Open(), cReassemblyBufferAudio::PopAvPacket(), cReassemblyBuffer::Push(), and cReassemblyBuffer::Reset().
| int cSoftHdDevice::PlayAudioPkts | ( | AVPacket * | pkt | ) |
Play an audio packet.
| pkt | AVPacket to play |
| 0 | packet could not be player, free audio buffer too small |
| 1 | packet was sent to be decoded |
Definition at line 1708 of file softhddevice.cpp.
References cAudioDecoder::Decode(), cSoftHdAudio::IsBufferFull(), cSoftHdAudio::LazyInit(), m_pAudio, and m_pAudioDecoder.
Referenced by cSoftHdPlayer::Player().
| int cSoftHdDevice::PlayPipVideo | ( | const uchar * | data, |
| int | size | ||
| ) |
Play a video packet of the pip videostream.
| data | A complete PES packet with optionally fragmented payload |
| size | the length of the PES packet including header |
The caller must ensure, that PlayPipVideo() is not called in detached state. (CanReplay() and HasDecoder() return false in this state and we are not the primary device.)
Definition at line 1124 of file softhddevice.cpp.
References m_pipReassemblyBuffer, m_pPipStream, and PlayVideoInternal().
Referenced by cPipReceiver::PlayTs().
|
virtual |
Play a video packet of the main videostream.
| data | A complete PES packet with optionally fragmented payload |
| size | the length of the PES packet including header |
This is called directly from VDR
The caller must ensure, that PlayVideo() is not called in detached state. (CanReplay() and HasDecoder() return false in this state and we are not the primary device.)
Definition at line 1108 of file softhddevice.cpp.
References m_pVideoStream, m_videoReassemblyBuffer, and PlayVideoInternal().
|
private |
Play a video packet.
| data | A complete PES packet with optionally fragmented payload |
| size | the length of the PES packet including header |
Definition at line 1136 of file softhddevice.cpp.
References cReassemblyBuffer::GetCodec(), cVideoStream::GetCodecId(), cPes::GetPayload(), cPes::GetPayloadSize(), cPes::GetPts(), cReassemblyBufferVideo::HasLeadingZero(), cPes::HasPts(), cReassemblyBuffer::IsEmpty(), cVideoStream::IsInputBufferFull(), cPes::IsValid(), m_receivedVideo, cVideoStream::Open(), cReassemblyBufferVideo::ParseCodecHeader(), cReassemblyBufferVideo::PopAvPacket(), PrintStreamData(), cReassemblyBuffer::Push(), cVideoStream::PushAvPacket(), and cReassemblyBuffer::Reset().
Referenced by HandleStillPicture(), PlayPipVideo(), and PlayVideo().
| int cSoftHdDevice::PlayVideoPkts | ( | AVPacket * | pkt | ) |
Play a video packet.
| pkt | AVPacket to play |
| 0 | packet could not be player, free audio buffer too small |
| 1 | packet was sent to be decoded |
Definition at line 1728 of file softhddevice.cpp.
References cVideoStream::GetAvPacketsFilled(), cSoftHdAudio::LazyInit(), m_pAudio, m_pVideoStream, cVideoStream::PushAvPacket(), and VIDEO_PACKET_MAX.
Referenced by cSoftHdPlayer::Player().
|
virtual |
Returns true if the device itself or any of the file handles in Poller is ready for further action.
If TimeoutMs is not zero, the device will wait up to the given number of milliseconds before returning in case it can't accept any data.
| poller | file handles (unused) |
| timeoutMs | timeout in ms to become ready |
| true | if ready |
| false | if busy |
Definition at line 838 of file softhddevice.cpp.
References cSoftHdAudio::IsBufferFull(), cVideoStream::IsInputBufferFull(), m_pAudio, and m_pVideoStream.
| int cSoftHdDevice::ProcessArgs | ( | int | argc, |
| char * | argv[] | ||
| ) |
Process the command line arguments.
| argc | number of arguments |
| argv | arguments vector |
Definition at line 1490 of file softhddevice.cpp.
References _, cSoftHdConfig::ConfigAudioMixerChannel, cSoftHdConfig::ConfigAudioPassthroughDevice, cSoftHdConfig::ConfigAudioPCMDevice, cSoftHdConfig::ConfigDisplayResolution, and m_pConfig.
Referenced by cPluginSoftHdDevice::ProcessArgs().
|
inline |
Definition at line 176 of file softhddevice.h.
References m_pRender.
Referenced by cOglOsd::cOglOsd(), and cOglThread::cOglThread().
| void cSoftHdDevice::ResetChannelId | ( | void | ) |
Reset the channel ID (restarts audio)
Definition at line 1649 of file softhddevice.cpp.
References LOGDEBUG, and m_audioChannelID.
Referenced by cMenuSetupSoft::Store().
|
inline |
Definition at line 212 of file softhddevice.h.
References m_pOsdProvider.
Referenced by cSoftOsdProvider::~cSoftOsdProvider().
|
private |
Resets the pip channel to the current live stream channel.
Definition at line 2002 of file softhddevice.cpp.
References DelPip(), m_pipActive, and NewPip().
Referenced by HandlePip().
|
virtual |
Scale the currently shown video.
| x | video window x coordinate OSD relative |
| y | video window x coordinate OSD relative |
| width | video window width OSD relative |
| height | video window height OSD relative |
Definition at line 1456 of file softhddevice.cpp.
References IsDetached(), L_OSD, LOGDEBUG2, m_pRender, and cVideoRender::SetVideoOutputPosition().
|
virtual |
Definition at line 1070 of file softhddevice.cpp.
| void cSoftHdDevice::SetAudioCodec | ( | enum AVCodecID | codecId, |
| AVCodecParameters * | par, | ||
| AVRational | timebase | ||
| ) |
Open an audio codec.
| codecId | audio codec id |
| par | audio codec parameters |
| timebase | timebase |
Definition at line 1683 of file softhddevice.cpp.
References m_pAudioDecoder, and cAudioDecoder::Open().
Referenced by cSoftHdPlayer::Player().
|
virtual |
Definition at line 1060 of file softhddevice.cpp.
|
virtual |
Definition at line 1065 of file softhddevice.cpp.
| void cSoftHdDevice::SetDisableDeint | ( | void | ) |
Disables deinterlacer (called from setup menu or conf)
Definition at line 1630 of file softhddevice.cpp.
References cSoftHdConfig::ConfigDisableDeint, cVideoStream::DisableDeint(), m_pConfig, and m_pVideoStream.
Referenced by cMenuSetupSoft::Store().
|
private |
Enable/ disable picture-in-picture.
| on | true, if pip should be enabled |
Definition at line 1920 of file softhddevice.cpp.
References DelPip(), LOGDEBUG, m_pipActive, m_pipChannelNum, m_pRender, NewPip(), and cVideoRender::SetPipActive().
Referenced by HandlePip(), and TogglePip().
| void cSoftHdDevice::SetPassthrough | ( | int | mask | ) |
Set the passthrough mask (called from setup menu or conf)
Definition at line 1639 of file softhddevice.cpp.
References m_pAudio, m_pAudioDecoder, cSoftHdAudio::SetPassthrough(), and cAudioDecoder::SetPassthrough().
Referenced by cMenuSetupSoft::Store().
|
private |
Set size and position for the pip window.
Definition at line 2016 of file softhddevice.cpp.
References m_pipUseAlt, m_pRender, and cVideoRender::SetPipSize().
Referenced by HandlePip().
|
virtual |
Sets the device into the given play mode.
| play_mode | new play mode (Audio/Video/External...) |
Definition at line 657 of file softhddevice.cpp.
References LOGDEBUG, LOGERROR, and OnEventReceived().
| void cSoftHdDevice::SetScreenSize | ( | int | width, |
| int | height, | ||
| uint32_t | refreshRate | ||
| ) |
Set the screen size.
| width | screen width |
| height | screen height |
| refreshRate | screen refresh rate (currently unused) |
Definition at line 951 of file softhddevice.cpp.
References m_screenHeight, m_screenRefreshRate, m_screenWidth, and m_sizeMutex.
Referenced by cVideoRender::SetScreenSize().
|
private |
Sets the device into the given state.
| newState | new state |
Definition at line 640 of file softhddevice.cpp.
References LOGDEBUG, m_state, OnEnteringState(), OnLeavingState(), and StateToString().
Referenced by Clear(), HandleStillPicture(), and OnEventReceived().
| void cSoftHdDevice::SetVideoCodec | ( | enum AVCodecID | codecId, |
| AVCodecParameters * | par, | ||
| AVRational | timebase | ||
| ) |
Open a video codec.
| codecId | video codec id |
| par | video codec parameters |
| timebase | timebase |
Definition at line 1695 of file softhddevice.cpp.
References m_pVideoStream, and cVideoStream::Open().
Referenced by cSoftHdPlayer::Player().
|
virtual |
Sets the video display format.
| videoDisplayFormat | video display format Set it to the given one (only useful if this device has an MPEG decoder). |
Definition at line 877 of file softhddevice.cpp.
References LOGDEBUG.
Referenced by SetVideoFormat().
|
virtual |
Set the video format.
Sets the output video format to either 16:9 or 4:3 (only useful if this device has an MPEG decoder).
Should call SetVideoDisplayFormat
| videoFormat16_9 | flag true 16:9. |
Definition at line 894 of file softhddevice.cpp.
References LOGDEBUG, and SetVideoDisplayFormat().
|
virtual |
Sets the audio volume on this device (Volume = 0...255).
| volume | device volume |
Definition at line 1087 of file softhddevice.cpp.
References IsDetached(), LOGDEBUG, m_pAudio, and cSoftHdAudio::SetVolume().
| int cSoftHdDevice::Start | ( | void | ) |
Called by VDR when the plugin is started.
Definition at line 170 of file softhddevice.cpp.
References LOGDEBUG, and OnEventReceived().
Referenced by cPluginSoftHdDevice::Start().
|
virtual |
Display the given I-frame as a still picture.
| data | pes or ts data of a frame |
| length | length of data area |
Definition at line 785 of file softhddevice.cpp.
References LOGDEBUG, and OnEventReceived().
| void cSoftHdDevice::Stop | ( | void | ) |
Called by VDR when the plugin is stopped.
Definition at line 181 of file softhddevice.cpp.
References LOGDEBUG, and OnEventReceived().
Referenced by cPluginSoftHdDevice::Stop().
|
private |
Swap pip between normal and alternative position.
Definition at line 2026 of file softhddevice.cpp.
References m_pipUseAlt, m_pRender, and cVideoRender::SetPipSize().
Referenced by HandlePip().
|
private |
Toggle picture-in-picture.
Definition at line 1950 of file softhddevice.cpp.
References m_pipActive, and SetEnablePip().
Referenced by HandlePip().
|
virtual |
Set trick play speed.
Every single frame shall then be displayed the given number of times.
| speed | trick speed |
| forward | flag forward direction |
Definition at line 708 of file softhddevice.cpp.
References LOGDEBUG, and OnEventReceived().
|
inline |
Definition at line 175 of file softhddevice.h.
References m_pVideoStream.
Referenced by cVideoRender::DisplayFrame(), cVideoRender::GetTrickSpeed(), and cVideoRender::LogDroppedDuped().
|
private |
current audio channel ID
Definition at line 245 of file softhddevice.h.
Referenced by cSoftHdDevice(), PlayAudio(), and ResetChannelId().
|
private |
audio pes reassembly buffer
Definition at line 242 of file softhddevice.h.
Referenced by ClearAudio(), and PlayAudio().
|
private |
mutex to protect event queue
Definition at line 232 of file softhddevice.h.
|
private |
simple lock variable skips a new grab request if the last one is still active
Definition at line 246 of file softhddevice.h.
Referenced by GrabImage().
|
mutableprivate |
mutex to lock the state machine
Definition at line 255 of file softhddevice.h.
Referenced by IsDetached(), OnEventReceived(), and PipIsEnabled().
|
private |
Definition at line 233 of file softhddevice.h.
|
private |
pointer to cSoftHdAudio object
Definition at line 238 of file softhddevice.h.
Referenced by Audio(), Clear(), ClearAudio(), GetFirstAudioPtsMsToPlay(), GetFirstVideoPtsMsToPlay(), GetSTC(), IsBufferingThresholdReached(), OnEnteringState(), OnEventReceived(), OnLeavingState(), PlayAudio(), PlayAudioPkts(), PlayVideoPkts(), Poll(), SetPassthrough(), and SetVolumeDevice().
|
private |
pointer to cAudioDecoder object
Definition at line 239 of file softhddevice.h.
Referenced by ClearAudio(), cSoftHdDevice(), OnEnteringState(), OnLeavingState(), PlayAudio(), PlayAudioPkts(), SetAudioCodec(), and SetPassthrough().
|
private |
pointer to cSoftHdConfig object
Definition at line 235 of file softhddevice.h.
Referenced by Config(), cSoftHdDevice(), GetBufferFillLevelThresholdMs(), GetFirstAudioPtsMsToPlay(), GetFirstVideoPtsMsToPlay(), GetVideoAudioDelayMs(), OnEventReceived(), OnLeavingState(), ProcessArgs(), and SetDisableDeint().
|
private |
true, if pip is active
Definition at line 249 of file softhddevice.h.
Referenced by ChangePipChannel(), cSoftHdDevice(), PipIsEnabled(), ResetPipChannel(), SetEnablePip(), and TogglePip().
|
private |
current pip channel number
Definition at line 250 of file softhddevice.h.
Referenced by NewPip(), and SetEnablePip().
|
private |
pip pes reassembly buffer
Definition at line 254 of file softhddevice.h.
Referenced by DelPip(), and PlayPipVideo().
|
private |
use alternative pip position
Definition at line 259 of file softhddevice.h.
Referenced by cSoftHdDevice(), SetPipSize(), and SwapPipPosition().
|
private |
current playback mode
Definition at line 244 of file softhddevice.h.
Referenced by Clear(), GetSTC(), OnEnteringState(), and OnEventReceived().
|
private |
pointer to cSoftOsdProvider object
Definition at line 240 of file softhddevice.h.
Referenced by cSoftHdDevice(), IsOsdProviderSet(), MakePrimaryDevice(), OnEnteringState(), and ResetOsdProvider().
|
private |
current pip channel
Definition at line 251 of file softhddevice.h.
Referenced by ChangePipChannel(), DelPip(), NewPip(), and PipChannelSwap().
|
private |
cReceiver for pip stream
Definition at line 252 of file softhddevice.h.
|
private |
pointer to pip video stream
Definition at line 253 of file softhddevice.h.
Referenced by DelPip(), OnEnteringState(), OnLeavingState(), and PlayPipVideo().
|
private |
pointer to cVideoRender object
Definition at line 236 of file softhddevice.h.
Referenced by Clear(), DelPip(), GetFirstAudioPtsMsToPlay(), GetFirstVideoPtsMsToPlay(), GetStats(), GetSTC(), GrabImage(), IsBufferingThresholdReached(), OnEnteringState(), OnEventReceived(), OnLeavingState(), OsdClose(), OsdDrawARGB(), Render(), ScaleVideo(), SetEnablePip(), SetPipSize(), and SwapPipPosition().
|
private |
pointer to spu decoder
Definition at line 234 of file softhddevice.h.
Referenced by cSoftHdDevice(), GetSpuDecoder(), and ~cSoftHdDevice().
|
private |
pointer to main video stream
Definition at line 237 of file softhddevice.h.
Referenced by Clear(), Flush(), GetVideoSize(), HandleStillPicture(), IsBufferingThresholdReached(), OnEnteringState(), OnEventReceived(), OnLeavingState(), PlayVideo(), PlayVideoPkts(), Poll(), SetDisableDeint(), SetVideoCodec(), and VideoStream().
|
private |
flag if audio packets have been received
Definition at line 257 of file softhddevice.h.
Referenced by IsBufferingThresholdReached(), OnLeavingState(), and PlayAudio().
|
private |
flag if video packets have been received
Definition at line 258 of file softhddevice.h.
Referenced by IsBufferingThresholdReached(), OnLeavingState(), and PlayVideoInternal().
|
private |
Definition at line 262 of file softhddevice.h.
Referenced by GetOsdSize(), and SetScreenSize().
|
private |
Definition at line 263 of file softhddevice.h.
Referenced by SetScreenSize().
|
private |
Definition at line 261 of file softhddevice.h.
Referenced by GetOsdSize(), and SetScreenSize().
|
private |
mutex to lock screen size (which is accessed by different threads)
Definition at line 256 of file softhddevice.h.
Referenced by GetOsdSize(), and SetScreenSize().
current plugin state, normal plugin start sets detached state
Definition at line 231 of file softhddevice.h.
Referenced by IsBufferingThresholdReached(), IsDetached(), OnEventReceived(), and SetState().
|
private |
video pes reassembly buffer
Definition at line 241 of file softhddevice.h.
Referenced by Clear(), HandleStillPicture(), OnEnteringState(), and PlayVideo().
|
staticconstexprprivate |
min buffering threshold in ms
Definition at line 229 of file softhddevice.h.
Referenced by GetBufferFillLevelThresholdMs().