|
vdr-plugin-softhddevice-drm-gles 1.6.7
|
Output Device Implementation. More...
#include <softhddevice.h>
Public Member Functions | |
| cSoftHdDevice (cSoftHdConfig *) | |
| Create the device. | |
| virtual | ~cSoftHdDevice (void) |
| Destroy the device. | |
| virtual cString | DeviceName (void) const |
| virtual bool | HasDecoder (void) const |
| Tells whether this device has an MPEG decoder. | |
| virtual cSpuDecoder * | GetSpuDecoder (void) |
| Get the device SPU decoder. | |
| virtual bool | CanReplay (void) const |
| Return true if this device can currently start a replay session. | |
| virtual bool | SetPlayMode (ePlayMode) |
| Sets the device into the given play mode. | |
| virtual int | PlayVideo (const uchar *, int) |
| Play a video packet of the main videostream. | |
| virtual int | PlayAudio (const uchar *, int, uchar) |
| Play an audio packet. | |
| virtual int64_t | GetSTC (void) |
| Gets the current System Time Counter, which can be used to synchronize audio, video and subtitles. | |
| virtual cRect | CanScaleVideo (const cRect &, int taCenter) |
| Ask the output, if it can scale video. | |
| virtual void | ScaleVideo (const cRect &=cRect::Null) |
| Scale the currently shown video. | |
| virtual void | TrickSpeed (int, bool) |
| Sets the device into a mode where replay is done slower. | |
| virtual void | Clear (void) |
| Clears all video and audio data from the device. | |
| virtual void | Play (void) |
| Sets the device into play mode (after a previous trick mode, or pause) | |
| virtual void | Freeze (void) |
| Puts the device into "freeze frame" mode. | |
| virtual void | StillPicture (const uchar *, int) |
| Display the given I-frame as a still picture. | |
| virtual bool | Poll (cPoller &, int=0) |
| Return true if the device itself or any of the file handles in poller is ready for further action. | |
| virtual bool | Flush (int=0) |
| Flush the device output buffers. | |
| virtual uchar * | GrabImage (int &, bool, int, int, int) |
| Grabs the currently visible screen image. | |
| virtual void | SetVideoDisplayFormat (eVideoDisplayFormat) |
| Sets the video display format. | |
| virtual void | SetVideoFormat (bool) |
| Set the video format. | |
| virtual void | GetVideoSize (int &, int &, double &) |
| Get the video size. | |
| virtual void | GetOsdSize (int &, int &, double &) |
| Returns the width, height and aspect ratio the OSD should have. | |
| 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). | |
| virtual void | SetDigitalAudioDevice (bool) |
| bool | Initialize (void) |
| Initialize the device. | |
| int | Start (void) |
| Called by VDR when the plugin is started. | |
| void | Stop (void) |
| Called by VDR when the plugin is stopped. | |
| cSoftHdConfig * | Config (void) |
| cVideoStream * | VideoStream (void) |
| cVideoRender * | Render (void) |
| cSoftHdAudio * | Audio (void) |
| void | SetDisableDeint (void) |
| Disables deinterlacer (called from setup menu or conf) | |
| void | SetDecoderNeedsIFrame (void) |
| Forces the h264 decoder to wait for an I-Frame to start. | |
| void | SetParseH264Dimensions (void) |
| Parse the h264 stream width and height before starting the decoder. | |
| void | SetDecoderFallbackToSw (bool) |
| Force the decoder to fallback to software if the hardware decoder fails after the configured amount of packets were sent and no frame was received. | |
| void | SetEnableHdr (bool) |
| Enable HDR display mode. | |
| void | SetDisplayMode (int) |
| Trigger a display mode change event if the mode changed. | |
| int | MaxSizeGPUImageCache (void) |
| Get the maximum GPU image cache size. | |
| int | OglOsdIsDisabled (void) |
| Is the OpenGL/ES osd disabled? | |
| void | SetDisableOglOsd (void) |
| Disables OpenGL/ES Osd (called from setup menu or conf) | |
| void | SetEnableOglOsd (void) |
| Enables OpenGL/ES Osd. | |
| void | OsdClose (void) |
| Close the OSD. | |
| void | OsdDrawARGB (int, int, int, int, int, const uint8_t *, int, int) |
| Draw an OSD pixmap. | |
| void | SetOsdSize (int, int) |
| Set the OSD size. | |
| void | SetScreenSize (int, int) |
| Set the screen size. | |
| int | GetVideoAudioDelayMs (void) |
| int | GetMinBufferFillLevelThresholdMs (void) |
| void | SetPassthroughMask (int) |
| Set the passthrough mask (called from setup menu or conf) | |
| void | ResetChannelId (void) |
| Reset the channel ID (restarts audio) | |
| void | GetStats (int *, int *, int *) |
| Get statistics from the renderer. | |
| std::chrono::steady_clock::time_point | GetChannelSwitchStartTime (void) |
| std::chrono::steady_clock::time_point | GetChannelSwitchFirstPacketTime (void) |
| void | SetAudioCodec (enum AVCodecID, AVCodecParameters *, AVRational) |
| Open an audio codec. | |
| void | SetVideoCodec (enum AVCodecID, AVCodecParameters *, AVRational) |
| Open a video codec. | |
| int | PlayAudioPkts (AVPacket *) |
| Play an audio packet. | |
| int | PlayVideoPkts (AVPacket *) |
| Play a video packet. | |
| void | Detach (void) |
| Detach the device. | |
| void | Attach (void) |
| Attach the device again. | |
| bool | IsDetached (void) const |
| Returns true, if the device is detached. | |
| void | ResetOsdProvider (void) |
| bool | IsOsdProviderSet (void) const |
| void | SetStartDetached (void) |
| bool | IsBufferingThresholdReached (void) |
| Check if the buffering threshold has been reached. | |
| bool | IsVideoOnlyPlayback (void) |
| void | SetDisablePip (void) |
| bool | PipIsEnabled (void) |
| Returns true, if pip is currently enabled. | |
| void | PipEnable (void) |
| void | PipDisable (void) |
| void | PipToggle (void) |
| void | PipChannelChange (int) |
| void | PipChannelSwap (bool) |
| void | PipSwapPosition (void) |
| void | PipSetSize (void) |
| void | SetRenderPipSize (void) |
| void | SetRenderPipActive (bool) |
| int | PlayPipVideo (const uchar *, int) |
| Play a video packet of the pip videostream. | |
| void | SetDrmCanDisplayPip (bool canDisplay) |
| bool | UsePip (void) |
| void | ResetPipStream (void) |
| Resets pip stream and render pipeline. | |
| void | ToggleRenderPipPosition (void) |
Protected Member Functions | |
| virtual void | MakePrimaryDevice (bool) |
| Informs a device that it will be the primary device. | |
| virtual void | ChannelSwitch (const cDevice *, int, bool) |
| Monitor a channel switch triggered by VDR (cStatus::ChannelSwitch()) | |
Private Member Functions | |
| int | PlayVideoInternal (cVideoStream *, cReassemblyBufferVideo *, const uchar *, int, bool, bool) |
| Play a video packet. | |
| void | FlushAudio (void) |
| Clear all audio data from the decoder and ringbuffer. | |
| void | OnEventReceived (const Event &) |
| Event handler for playback state transitions. | |
| void | HandleStillPicture (const uchar *data, int size) |
| The still picture data received from VDR can contain multiple PES packets. | |
| void | HandleDisplayModeChange (const sDrmMode &) |
| Set the display mode. | |
| int64_t | GetFirstAudioPtsMsToPlay () |
| Calculate the first audio PTS that should be played during synchronized playback. | |
| int64_t | GetFirstVideoPtsMsToPlay () |
| int | GetBufferFillLevelThresholdMs () |
| Returns the buffer fill level threshold in milliseconds. | |
| void | SetState (State) |
| Sets the device into the given state. | |
| void | OnEnteringState (State) |
| Actions to be performed when entering a state. | |
| void | OnLeavingState (State) |
| Actions to be performed when leaving a state. | |
Private Attributes | |
| std::atomic< State > | m_state = DETACHED |
| current plugin state, normal plugin start sets detached state | |
| std::mutex | m_eventMutex |
| mutex to protect event queue | |
| bool | m_needsMakePrimary = false |
| true, if device should be made a primary device after attach | |
| cDvbSpuDecoder * | m_pSpuDecoder |
| pointer to spu decoder | |
| cSoftHdConfig * | m_pConfig |
| pointer to cSoftHdConfig object | |
| cVideoRender * | m_pRender |
| pointer to cVideoRender object | |
| cVideoStream * | m_pVideoStream |
| pointer to main video stream | |
| cSoftHdAudio * | m_pAudio |
| pointer to cSoftHdAudio object | |
| cAudioDecoder * | m_pAudioDecoder = nullptr |
| pointer to cAudioDecoder object | |
| cSoftOsdProvider * | m_pOsdProvider = nullptr |
| pointer to cSoftOsdProvider object | |
| cHardwareDevice * | m_pHardwareDevice |
| pointer to hardware device description | |
| cEventHandler * | m_pEventHandler |
| event handler thread | |
| cReassemblyBufferVideo | m_videoReassemblyBuffer |
| video pes reassembly buffer | |
| cReassemblyBufferAudio | m_audioReassemblyBuffer |
| audio pes reassembly buffer | |
| cJitterTracker | m_audioJitterTracker {"audio"} |
| audio jitter tracker | |
| cJitterTracker | m_videoJitterTracker {"video"} |
| video jitter tracker | |
| std::chrono::steady_clock::time_point | m_channelSwitchStartTime |
| timestamp, when VDR triggered a channel switch | |
| std::chrono::steady_clock::time_point | m_dataReceivedTime |
| timestamp, when the first audio or video data after a channel switch arrives in Play*() | |
| std::atomic< PlaybackMode > | m_playbackMode = NONE |
| current playback mode | |
| int | m_audioChannelID = -1 |
| current audio channel ID | |
| cSoftHdGrab * | m_pGrab |
| pointer to grabber object | |
| cVideoStream * | m_pPipStream |
| pointer to pip video stream | |
| cReassemblyBufferVideo | m_pipReassemblyBuffer |
| pip pes reassembly buffer | |
| cPipHandler * | m_pPipHandler = nullptr |
| pointer to pip handler | |
| std::mutex | m_mutex |
| mutex to lock the state machine | |
| std::mutex | m_sizeMutex |
| mutex to lock screen size (which is accessed by different threads) | |
| std::atomic< bool > | m_receivedAudio = false |
| flag if audio packets have been received | |
| std::atomic< bool > | m_receivedVideo = false |
| flag if video packets have been received | |
| std::atomic< bool > | m_receivedValidAudio = false |
| flag if valid audio packets have been received | |
| std::atomic< bool > | m_receivedValidVideo = false |
| flag if valid video packets have been received | |
| bool | m_pipUseAlt |
| use alternative pip position | |
| bool | m_drmCanDisplayPip = true |
| true, if the drm device is able to display a pip video | |
| bool | m_disablePip = false |
| true, if pip was disabled by the user | |
| int | m_volume = 0 |
| track the volume in the device (for attach) | |
| int | m_osdWidth |
| int | m_osdHeight |
| int | m_screenWidth |
| int | m_screenHeight |
| bool | m_forceDetached = false |
| start the plugin in detached state | |
| bool | m_externalPlayerActive = false |
| true, if we detached for an external player | |
Static Private Attributes | |
| static constexpr int | MIN_BUFFER_FILL_LEVEL_THRESHOLD_MS = 450 |
| min buffering threshold in ms | |
Output Device Implementation.
Definition at line 138 of file softhddevice.h.
| cSoftHdDevice::cSoftHdDevice | ( | cSoftHdConfig * | config | ) |
Create the device.
Initializes some member variables
| config | pointer to cSoftHdConfig class |
Definition at line 54 of file softhddevice.cpp.
References m_channelSwitchStartTime, m_dataReceivedTime, and m_pEventHandler.
|
virtual |
Destroy the device.
Only deletes spu decoder, which was created in constructor
Definition at line 71 of file softhddevice.cpp.
References LOGDEBUG, m_pEventHandler, m_pHardwareDevice, and m_pSpuDecoder.
Attach the device again.
Kind of a plugin restart. Inits and starts all necessary resources. Only valid after a detach.
Definition at line 1764 of file softhddevice.cpp.
References m_forceDetached, m_needsMakePrimary, MakePrimaryDevice(), and OnEventReceived().
Referenced by cSoftHdMenu::HandleHotKey(), and cPluginSoftHdDevice::SVDRPCommand().
|
inline |
Definition at line 204 of file softhddevice.h.
References m_pAudio.
Return true if this device can currently start a replay session.
Definition at line 186 of file softhddevice.cpp.
References IsDetached(), and LOGDEBUG.
Ask the output, if it can scale video.
| rect | requested video window rectangle |
Definition at line 1469 of file softhddevice.cpp.
References L_DRM, LOGDEBUG2, m_osdHeight, m_osdWidth, m_screenHeight, and m_screenWidth.
|
protectedvirtual |
Monitor a channel switch triggered by VDR (cStatus::ChannelSwitch())
Save the timestamp when a channel switch is initiated (channelNum == 0) for later time measurement.
Definition at line 144 of file softhddevice.cpp.
References m_channelSwitchStartTime.
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 774 of file softhddevice.cpp.
References AUDIO_AND_VIDEO, BUFFERING, cVideoStream::CancelFilterThread(), cVideoRender::ClearDecoderToDisplayQueue(), cVideoStream::ClearVdrCoreToDecoderQueue(), FlushAudio(), cVideoStream::FlushDecoder(), cVideoRender::Halt(), cVideoStream::Halt(), IsDetached(), LOGDEBUG, m_pAudio, m_playbackMode, m_pRender, m_pVideoStream, m_videoReassemblyBuffer, cVideoRender::Reset(), cReassemblyBuffer::Reset(), cVideoRender::Resume(), cVideoStream::Resume(), cVideoRender::SetDisplayOneFrameThenPause(), cSoftHdAudio::SetPaused(), SetState(), and VIDEO_ONLY.
Referenced by cSoftHdPlayer::Play().
|
inline |
Definition at line 201 of file softhddevice.h.
References m_pConfig.
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 1742 of file softhddevice.cpp.
References cPipHandler::Disable(), LOGDEBUG, m_needsMakePrimary, m_pPipHandler, MakePrimaryDevice(), and OnEventReceived().
Referenced by cSoftHdMenu::HandleHotKey(), cSoftHdMenu::ProcessKey(), and cPluginSoftHdDevice::SVDRPCommand().
Definition at line 151 of file softhddevice.h.
Flush the device output buffers.
| timeoutMs | timeout in ms to become ready |
Definition at line 912 of file softhddevice.cpp.
References cVideoStream::GetAvPacketsFilled(), IsDetached(), LOGDEBUG, and m_pVideoStream.
Clear all audio data from the decoder and ringbuffer.
Definition at line 115 of file softhddevice.cpp.
References cSoftHdAudio::FlushBuffers(), cAudioDecoder::FlushBuffers(), LOGDEBUG, m_audioReassemblyBuffer, m_pAudio, m_pAudioDecoder, and cReassemblyBuffer::Reset().
Referenced by Clear(), and OnEnteringState().
Puts the device into "freeze frame" mode.
Definition at line 821 of file softhddevice.cpp.
References LOGDEBUG, and OnEventReceived().
Referenced by cSoftHdControl::ProcessKey().
Definition at line 1170 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 1316 of file softhddevice.cpp.
References cSoftHdConfig::ConfigAdditionalBufferLengthMs, m_pConfig, and MIN_BUFFER_FILL_LEVEL_THRESHOLD_MS.
Referenced by IsBufferingThresholdReached().
|
inline |
Definition at line 234 of file softhddevice.h.
References m_dataReceivedTime.
Referenced by cVideoRender::DisplayFrame().
|
inline |
Definition at line 233 of file softhddevice.h.
References m_channelSwitchStartTime.
Referenced by cVideoRender::DisplayFrame().
|
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 1399 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 1412 of file softhddevice.cpp.
References cSoftHdConfig::ConfigVideoAudioDelayMs, cSoftHdAudio::GetOutputPtsMs(), cVideoRender::GetOutputPtsMs(), m_pAudio, m_pConfig, and m_pRender.
Referenced by IsBufferingThresholdReached(), and OnEventReceived().
Definition at line 227 of file softhddevice.h.
References MIN_BUFFER_FILL_LEVEL_THRESHOLD_MS.
Referenced by cMenuSetupSoft::Create().
Returns the width, height and aspect ratio the OSD should have.
| [out] | width | osd width |
| [out] | height | osd height |
| [out] | aspectRatio | osd aspect ratio |
Definition at line 994 of file softhddevice.cpp.
References IsDetached(), m_osdHeight, m_osdWidth, and m_sizeMutex.
Referenced by cOglOsd::cOglOsd(), and cSoftOsd::Flush().
|
virtual |
Get the device SPU decoder.
Definition at line 162 of file softhddevice.cpp.
References LOGDEBUG, and m_pSpuDecoder.
Get statistics from the renderer.
| [out] | duped | duped frames |
| [out] | dropped | dropped frames |
| [out] | count | number of total rendered frames |
Definition at line 1655 of file softhddevice.cpp.
References cVideoRender::GetStats(), and m_pRender.
Referenced by cMenuSetupSoft::Create().
Gets the current System Time Counter, which can be used to synchronize audio, video and subtitles.
Definition at line 671 of file softhddevice.cpp.
References AUDIO_AND_VIDEO, AUDIO_ONLY, AV_NOPTS_VALUE, cSoftHdAudio::GetHardwareOutputPtsTimebaseUnits(), cVideoRender::GetVideoClock(), IsDetached(), m_pAudio, m_playbackMode, m_pRender, NONE, and VIDEO_ONLY.
Definition at line 226 of file softhddevice.h.
References cSoftHdConfig::ConfigVideoAudioDelayMs, and m_pConfig.
Referenced by cVideoRender::FrameDropNecessary(), and cVideoRender::LogDroppedDuped().
Get the video size.
Return the width, height and aspect ratio of the currently displayed video material
| [out] | width | video width |
| [out] | height | video height |
| [out] | aspectRatio | video aspect ratio |
Definition at line 971 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 |
Definition at line 1431 of file softhddevice.cpp.
References cSoftHdGrab::Finish(), cSoftHdGrab::Image(), cSoftHdGrab::IsActive(), IsDetached(), L_GRAB, LOGDEBUG2, LOGWARNING, m_pGrab, m_screenHeight, m_screenWidth, cSoftHdGrab::ProcessGrab(), cSoftHdGrab::Size(), and cSoftHdGrab::Start().
Set the display mode.
| mode | drm mode |
Definition at line 1886 of file softhddevice.cpp.
References sDrmMode::height, sDrmMode::interlaced, LOGDEBUG, m_pConfig, m_pRender, sDrmMode::refreshRateHz, cVideoRender::ReInitDisplayMode(), cSoftHdConfig::RequestedDrmMode, and sDrmMode::width.
Referenced by OnEventReceived().
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 854 of file softhddevice.cpp.
References cVideoStream::Flush(), LOGWARNING, m_pRender, m_pVideoStream, m_videoReassemblyBuffer, PlayVideoInternal(), cReassemblyBufferVideo::PopAvPacket(), cVideoStream::PushAvPacket(), cVideoStream::ResetInputPts(), cVideoStream::SetDeinterlacerDeactivated(), cVideoRender::SetPlaybackPaused(), and cVideoRender::SetStillpicture().
Referenced by OnEventReceived().
Tells whether this device has an MPEG decoder.
Definition at line 174 of file softhddevice.cpp.
References IsDetached().
Initialize the device.
Definition at line 83 of file softhddevice.cpp.
References LOGDEBUG, and m_pHardwareDevice.
Referenced by cPluginSoftHdDevice::Initialize().
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.
ThresholdReached (Sync-Ability) is signalled 1) in audio only mode: -> PlayAudio() was called -> audio input has a valid pts -> enough audio data is buffered 2) in video only mode: -> PlayVideo() was called -> video input has a valid pts -> enough video data is buffered (which implies "a video frame reached the renderer") 3) in audio/video mode: -> audio input has a valid pts -> video input has a valid pts -> video and audio has enough data buffered (calculated from the first output pts to play) -> the render output buffer queue is completely filled once (which implies "a video frame reached the renderer")
| true | if playback should start (audio or video only or buffering threshold reached) |
| false | if playback should not start |
Definition at line 1346 of file softhddevice.cpp.
References AV_NOPTS_VALUE, BUFFERING, GetBufferFillLevelThresholdMs(), GetFirstAudioPtsMsToPlay(), GetFirstVideoPtsMsToPlay(), cSoftHdAudio::GetInputPtsMs(), cVideoStream::GetInputPtsMs(), cSoftHdAudio::GetOutputPtsMs(), cVideoRender::GetOutputPtsMs(), cSoftHdAudio::HasInputPts(), cVideoStream::HasInputPts(), 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().
Returns true, if the device is detached.
Definition at line 1779 of file softhddevice.cpp.
References DETACHED, m_mutex, and m_state.
Referenced by CanReplay(), Clear(), cSoftOsdProvider::CreateOsd(), Flush(), GetOsdSize(), GetSTC(), GetVideoSize(), GrabImage(), HasDecoder(), OsdClose(), OsdDrawARGB(), PlayAudio(), PlayVideo(), Poll(), ScaleVideo(), SetVolumeDevice(), and cPluginSoftHdDevice::SVDRPCommand().
Definition at line 247 of file softhddevice.h.
References m_pOsdProvider.
Referenced by cSoftOsdProvider::~cSoftOsdProvider().
Definition at line 251 of file softhddevice.h.
References m_playbackMode, and VIDEO_ONLY.
Referenced by cVideoRender::DisplayFrame().
Informs a device that it will be the primary device.
| on | flag if becoming or loosing primary |
Definition at line 128 of file softhddevice.cpp.
References LOGDEBUG, and m_pOsdProvider.
Get the maximum GPU image cache size.
Definition at line 1552 of file softhddevice.cpp.
References cSoftHdConfig::ConfigMaxSizeGPUImageCache, and m_pConfig.
Referenced by cSoftOsdProvider::StartOpenGlThread().
Is the OpenGL/ES osd disabled?
Definition at line 1560 of file softhddevice.cpp.
References cSoftHdConfig::ConfigDisableOglOsd, and m_pConfig.
Referenced by cSoftOsdProvider::CreateOsd(), cSoftOsdProvider::OsdSizeChanged(), cSoftOsdProvider::StartOpenGlThread(), and cSoftOsdProvider::~cSoftOsdProvider().
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 477 of file softhddevice.cpp.
References AUDIO_ONLY, BUFFERING, cVideoStream::CancelFilterThread(), cVideoRender::ClearDecoderToDisplayQueue(), cVideoStream::ClearVdrCoreToDecoderQueue(), cVideoStream::CloseDecoder(), DETACHED, cVideoRender::DisplayBlackFrame(), cSoftHdAudio::Exit(), cVideoRender::Exit(), cVideoStream::Exit(), FlushAudio(), m_audioJitterTracker, m_pAudio, m_pAudioDecoder, m_pGrab, m_playbackMode, m_pOsdProvider, m_pPipHandler, m_pPipStream, m_pRender, m_pVideoStream, m_videoJitterTracker, m_videoReassemblyBuffer, NONE, PLAY, cSoftOsdProvider::RequestStopOpenGlThread(), cVideoRender::Reset(), cJitterTracker::Reset(), cReassemblyBuffer::Reset(), cVideoRender::ResetBufferReuseStrategy(), cVideoRender::ResetDecodingStrategy(), cSoftHdAudio::ResetHwDelayBaseline(), cVideoRender::Resume(), cVideoStream::Resume(), cVideoStream::SetDeinterlacerDeactivated(), cSoftHdAudio::SetPaused(), cVideoRender::SetPlaybackPaused(), cVideoRender::SetStillpicture(), STOP, cSoftOsdProvider::StopOpenGlThread(), TRICK_SPEED, cSoftOsdProvider::UnlockOpenGlThread(), and VIDEO_ONLY.
Referenced by SetState().
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 205 of file softhddevice.cpp.
References AUDIO_AND_VIDEO, AUDIO_ONLY, BUFFERING, cSoftHdConfig::ConfigVideoAudioDelayMs, DETACHED, cSoftHdAudio::DropSamplesOlderThanPtsMs(), EventToString(), GetFirstAudioPtsMsToPlay(), GetFirstVideoPtsMsToPlay(), cSoftHdAudio::GetOutputPtsMs(), cVideoRender::GetOutputPtsMs(), cVideoRender::Halt(), cVideoStream::Halt(), HandleDisplayModeChange(), HandleStillPicture(), cSoftHdAudio::HasInputPts(), cVideoStream::HasInputPts(), cSoftHdAudio::LazyInit(), cSoftOsdProvider::LockOpenGlThread(), LOGDEBUG, LOGFATAL, LOGWARNING, m_forceDetached, m_mutex, m_pAudio, m_pConfig, m_playbackMode, m_pOsdProvider, m_pRender, m_pVideoStream, m_state, m_volume, NONE, PLAY, cVideoStream::ResetFilterThreadNeededCheck(), cVideoRender::ResetFrameCounter(), cSoftHdAudio::ResetHwDelayBaseline(), cVideoRender::Resume(), cVideoStream::Resume(), cVideoRender::SchedulePlaybackStartAtPtsMs(), cVideoRender::ScheduleResyncAtPtsMs(), cVideoRender::ScheduleVideoPlaybackPauseAt(), cSoftHdAudio::SetHwDelayBaseline(), cSoftHdAudio::SetPaused(), cVideoRender::SetPlaybackPaused(), cVideoRender::SetScheduleAudioResume(), SetState(), cVideoRender::SetStillpicture(), cVideoRender::SetTrickSpeed(), cSoftHdAudio::SetVolume(), StateToString(), STOP, TRICK_SPEED, cSoftOsdProvider::UnlockOpenGlThread(), and VIDEO_ONLY.
Referenced by Attach(), Detach(), Freeze(), Play(), PlayAudio(), SetPlayMode(), Start(), StillPicture(), Stop(), and TrickSpeed().
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 562 of file softhddevice.cpp.
References AV_NOPTS_VALUE, BUFFERING, cVideoStream::CancelFilterThread(), DETACHED, cVideoRender::GetMainOutputBuffer(), cVideoRender::GetPipOutputBuffer(), cHardwareDevice::GetQuirks(), cVideoRender::Init(), m_pAudio, m_pAudioDecoder, m_pConfig, m_pGrab, m_pHardwareDevice, m_pPipHandler, m_pPipStream, m_pRender, m_pVideoStream, m_receivedAudio, m_receivedValidAudio, m_receivedValidVideo, m_receivedVideo, PLAY, cVideoRender::PushMainFrame(), cVideoRender::PushPipFrame(), cVideoRender::ResetBufferReuseStrategy(), cVideoStream::ResetFilterThreadNeededCheck(), cVideoRender::ResetFrameCounter(), cSoftHdAudio::ResetHwDelayBaseline(), cVideoStream::ResetTrickSpeedFramesSentCounter(), cVideoRender::SchedulePlaybackStartAtPtsMs(), cVideoStream::SetDeinterlacerDeactivated(), cVideoRender::SetDisplayOneFrameThenPause(), cSoftHdAudio::SetHwDelayBaseline(), cSoftHdAudio::SetPaused(), cVideoRender::SetPlaybackPaused(), cVideoRender::SetTrickSpeed(), cVideoStream::StartDecoder(), STOP, and TRICK_SPEED.
Referenced by SetState().
Close the OSD.
Definition at line 1519 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 1539 of file softhddevice.cpp.
References IsDetached(), m_pRender, and cVideoRender::OsdDrawARGB().
Referenced by cOglCmdCopyBufferToOutputFb::Execute(), and cSoftOsd::Flush().
Definition at line 1844 of file softhddevice.cpp.
References cPipHandler::ChannelChange(), and m_pPipHandler.
Referenced by cSoftHdMenu::HandleHotKey(), cSoftHdMenu::ProcessKey(), and cPluginSoftHdDevice::SVDRPCommand().
Definition at line 1845 of file softhddevice.cpp.
References cPipHandler::ChannelSwap(), and m_pPipHandler.
Referenced by cSoftHdMenu::HandleHotKey(), cSoftHdMenu::ProcessKey(), and cPluginSoftHdDevice::SVDRPCommand().
Definition at line 1842 of file softhddevice.cpp.
References cPipHandler::Disable(), and m_pPipHandler.
Referenced by cPluginSoftHdDevice::SVDRPCommand().
Definition at line 1841 of file softhddevice.cpp.
References cPipHandler::Enable(), and m_pPipHandler.
Referenced by cPluginSoftHdDevice::SVDRPCommand().
Returns true, if pip is currently enabled.
Definition at line 1816 of file softhddevice.cpp.
References cPipHandler::IsEnabled(), m_mutex, and m_pPipHandler.
Referenced by cPluginSoftHdDevice::SVDRPCommand().
Definition at line 1847 of file softhddevice.cpp.
References m_pPipHandler, and cPipHandler::SetSize().
Referenced by cMenuSetupSoft::Store().
Definition at line 1846 of file softhddevice.cpp.
References m_pPipHandler, and cPipHandler::SwapPosition().
Referenced by cSoftHdMenu::HandleHotKey(), cSoftHdMenu::ProcessKey(), and cPluginSoftHdDevice::SVDRPCommand().
Definition at line 1843 of file softhddevice.cpp.
References m_pPipHandler, and cPipHandler::Toggle().
Referenced by cSoftHdMenu::HandleHotKey(), and cSoftHdMenu::ProcessKey().
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 811 of file softhddevice.cpp.
References OnEventReceived().
Referenced by cSoftHdControl::ProcessKey().
Play an audio packet.
This is the main function, which is called by VDR to play audio data
| 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 1087 of file softhddevice.cpp.
References cSoftHdAudio::ClockDriftCompensation(), cAudioDecoder::Close(), cAudioDecoder::Decode(), cReassemblyBuffer::GetCodec(), cAudioDecoder::GetCodecId(), cJitterTracker::GetLongTermMaxJitterMs(), cJitterTracker::GetShortTermMaxJitterMs(), cSoftHdAudio::IsBufferFull(), IsBufferingThresholdReached(), IsDetached(), LOGDEBUG, m_audioChannelID, m_audioJitterTracker, m_audioReassemblyBuffer, m_channelSwitchStartTime, m_dataReceivedTime, m_pAudio, m_pAudioDecoder, m_pConfig, m_receivedAudio, m_receivedValidAudio, m_receivedValidVideo, OnEventReceived(), cAudioDecoder::Open(), cJitterTracker::PacketReceived(), cReassemblyBufferAudio::PopAvPacket(), cReassemblyBuffer::Push(), cReassemblyBuffer::Reset(), cSoftHdConfig::StatMaxLongTermAudioJitterMs, and cSoftHdConfig::StatMaxShortTermAudioJitterMs.
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 1701 of file softhddevice.cpp.
References cAudioDecoder::Decode(), cSoftHdAudio::IsBufferFull(), cSoftHdAudio::LazyInit(), m_pAudio, and m_pAudioDecoder.
Referenced by cSoftHdPlayer::Play().
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 1226 of file softhddevice.cpp.
References cVideoStream::IsInputBufferFull(), m_pipReassemblyBuffer, m_pPipStream, and PlayVideoInternal().
Referenced by cPipReceiver::PlayTs().
Play a video packet of the main videostream.
This is the main function, which is called by VDR to play video data
| 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 1205 of file softhddevice.cpp.
References IsDetached(), m_pVideoStream, m_receivedVideo, m_videoReassemblyBuffer, and PlayVideoInternal().
|
private |
Play a video packet.
| stream | video stream to play to |
| buffer | reassembly buffer for this stream |
| data | A complete PES packet with optionally fragmented payload |
| size | the length of the PES packet including header |
| trackJitter | whether to track jitter for this packet |
| mainStream | this is a packet of the main stream |
Definition at line 1250 of file softhddevice.cpp.
References cReassemblyBuffer::GetCodec(), cJitterTracker::GetLongTermMaxJitterMs(), cJitterTracker::GetShortTermMaxJitterMs(), cReassemblyBufferVideo::HasLeadingZero(), cReassemblyBuffer::IsEmpty(), LOGDEBUG, m_channelSwitchStartTime, m_dataReceivedTime, m_pConfig, m_receivedValidAudio, m_receivedValidVideo, m_videoJitterTracker, cJitterTracker::PacketReceived(), cReassemblyBufferVideo::ParseCodecHeader(), cReassemblyBufferVideo::PopAvPacket(), PrintStreamData(), cReassemblyBuffer::Push(), cReassemblyBuffer::Reset(), cSoftHdConfig::StatMaxLongTermVideoJitterMs, and cSoftHdConfig::StatMaxShortTermVideoJitterMs.
Referenced by HandleStillPicture(), PlayPipVideo(), and PlayVideo().
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 1720 of file softhddevice.cpp.
References cVideoStream::GetAvPacketsFilled(), cVideoStream::GetVideoPacketMax(), cSoftHdAudio::LazyInit(), m_pAudio, m_pVideoStream, and cVideoStream::PushAvPacket().
Referenced by cSoftHdPlayer::Play().
Return 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 893 of file softhddevice.cpp.
References cSoftHdAudio::IsBufferFull(), IsDetached(), cVideoStream::IsInputBufferFull(), m_pAudio, and m_pVideoStream.
|
inline |
Definition at line 203 of file softhddevice.h.
References m_pRender.
Reset the channel ID (restarts audio)
Definition at line 1642 of file softhddevice.cpp.
References LOGDEBUG, and m_audioChannelID.
Referenced by cMenuSetupSoft::Store().
Definition at line 246 of file softhddevice.h.
References m_pOsdProvider.
Referenced by cSoftOsdProvider::~cSoftOsdProvider().
Resets pip stream and render pipeline.
Definition at line 1792 of file softhddevice.cpp.
References cVideoStream::CancelFilterThread(), cVideoRender::ClearPipDecoderToDisplayQueue(), cVideoStream::ClearVdrCoreToDecoderQueue(), cVideoStream::CloseDecoder(), cVideoRender::Halt(), cVideoStream::Halt(), m_mutex, m_pipReassemblyBuffer, m_pPipStream, m_pRender, cReassemblyBuffer::Reset(), cVideoRender::ResetPipBufferReuseStrategy(), cVideoRender::ResetPipDecodingStrategy(), cVideoRender::Resume(), and cVideoStream::Resume().
Referenced by cPipReceiver::Receive(), and cPipHandler::Stop().
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 1504 of file softhddevice.cpp.
References IsDetached(), L_OSD, LOGDEBUG2, m_pRender, and cVideoRender::SetVideoOutputPosition().
Definition at line 1164 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 1676 of file softhddevice.cpp.
References m_pAudioDecoder, and cAudioDecoder::Open().
Referenced by cSoftHdPlayer::Play().
|
virtual |
Definition at line 1154 of file softhddevice.cpp.
Force the decoder to fallback to software if the hardware decoder fails after the configured amount of packets were sent and no frame was received.
Definition at line 1618 of file softhddevice.cpp.
References cSoftHdConfig::ConfigDecoderFallbackToSwNumPkts, m_pConfig, m_pVideoStream, and cVideoStream::SetDecoderFallbackToSwNumPkts().
Referenced by cMenuSetupSoft::Store().
Forces the h264 decoder to wait for an I-Frame to start.
Definition at line 1599 of file softhddevice.cpp.
References cSoftHdConfig::ConfigDecoderNeedsIFrame, m_pConfig, m_pVideoStream, and cVideoStream::SetStartDecodingWithIFrame().
Referenced by cMenuSetupSoft::Store().
Definition at line 1159 of file softhddevice.cpp.
Disables deinterlacer (called from setup menu or conf)
Definition at line 1590 of file softhddevice.cpp.
References cSoftHdConfig::ConfigDisableDeint, cVideoStream::DisableDeint(), m_pConfig, and m_pVideoStream.
Referenced by cMenuSetupSoft::Store().
Disables OpenGL/ES Osd (called from setup menu or conf)
Definition at line 1568 of file softhddevice.cpp.
References cSoftHdConfig::ConfigDisableOglOsd, cVideoRender::DisableOglOsd(), m_pConfig, and m_pRender.
Referenced by cSoftOsdProvider::CreateOsd(), and cPluginSoftHdDevice::ProcessArgs().
Definition at line 254 of file softhddevice.h.
References m_disablePip.
Referenced by cPluginSoftHdDevice::ProcessArgs().
Trigger a display mode change event if the mode changed.
| idx | setup menu array index of the mode |
Definition at line 1857 of file softhddevice.cpp.
References cEventHandler::AddEvent(), cSoftHdConfig::AutoDetectedDrmMode, cVideoRender::CanHandleMode(), cSoftHdConfig::CollectedDrmModes, cSoftHdConfig::CompareCurrentMode(), CONFIG_DISPLAY_MODE_DEFAULT, CONFIG_DISPLAY_MODE_FOLLOW_VIDEO, CONFIG_DISPLAY_MODE_FOLLOW_VIDEO_INTERLACED, CONFIG_DISPLAY_MODE_MANUAL, cSoftHdConfig::CurrentVideoDrmMode, sDrmMode::height, sDrmMode::interlaced, LOGDEBUG, m_pConfig, m_pEventHandler, m_pRender, sDrmMode::refreshRateHz, and sDrmMode::width.
Referenced by cVideoRender::SetDisplayMode(), and cMenuSetupSoft::Store().
Definition at line 268 of file softhddevice.h.
References m_drmCanDisplayPip.
Referenced by cVideoRender::Init().
Enable HDR display mode.
Definition at line 1850 of file softhddevice.cpp.
References m_pRender, and cVideoRender::SetEnableHdr().
Referenced by cMenuSetupSoft::Store().
Enables OpenGL/ES Osd.
Definition at line 1578 of file softhddevice.cpp.
References cSoftHdConfig::ConfigDisableOglOsd, cVideoRender::EnableOglOsd(), m_pConfig, and m_pRender.
Set the OSD size.
| width | osd width |
| height | osd height |
Definition at line 1015 of file softhddevice.cpp.
References m_osdHeight, m_osdWidth, and m_sizeMutex.
Referenced by cVideoRender::SetOsdSize().
Parse the h264 stream width and height before starting the decoder.
Definition at line 1608 of file softhddevice.cpp.
References cSoftHdConfig::ConfigParseH264Dimensions, m_pConfig, m_pVideoStream, and cVideoStream::SetParseH264Dimensions().
Referenced by cMenuSetupSoft::Store().
Set the passthrough mask (called from setup menu or conf)
Definition at line 1632 of file softhddevice.cpp.
References m_pAudio, m_pAudioDecoder, cSoftHdAudio::SetPassthroughMask(), and cAudioDecoder::SetPassthroughMask().
Referenced by cMenuSetupSoft::Store().
Sets the device into the given play mode.
| play_mode | new play mode (Audio/Video/External...) |
Definition at line 630 of file softhddevice.cpp.
References cPipHandler::Disable(), LOGDEBUG, LOGERROR, m_externalPlayerActive, m_pPipHandler, and OnEventReceived().
Definition at line 1833 of file softhddevice.cpp.
References cVideoRender::Halt(), m_mutex, m_pRender, cVideoRender::Resume(), and cVideoRender::SetPipActive().
Referenced by cPipHandler::HandleEnable().
Definition at line 1825 of file softhddevice.cpp.
References cVideoRender::Halt(), m_mutex, m_pipUseAlt, m_pRender, cVideoRender::Resume(), and cVideoRender::SetPipSize().
Referenced by cPipHandler::SetSize(), and cPipHandler::SwapPosition().
Set the screen size.
| width | screen width |
| height | screen height |
Definition at line 1028 of file softhddevice.cpp.
References m_screenHeight, m_screenWidth, and m_sizeMutex.
Referenced by cVideoRender::SetScreenSize().
Definition at line 248 of file softhddevice.h.
References m_forceDetached.
Referenced by cPluginSoftHdDevice::ProcessArgs().
Sets the device into the given state.
| newState | new state |
Definition at line 613 of file softhddevice.cpp.
References LOGDEBUG, m_state, OnEnteringState(), OnLeavingState(), and StateToString().
Referenced by Clear(), 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 1688 of file softhddevice.cpp.
References m_pVideoStream, and cVideoStream::Open().
Referenced by cSoftHdPlayer::Play().
|
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 934 of file softhddevice.cpp.
References LOGDEBUG.
Referenced by SetVideoFormat().
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 951 of file softhddevice.cpp.
References LOGDEBUG, and SetVideoDisplayFormat().
Sets the audio volume on this device (Volume = 0...255).
| volume | device volume |
Definition at line 1181 of file softhddevice.cpp.
References IsDetached(), LOGDEBUG, m_pAudio, m_volume, and cSoftHdAudio::SetVolume().
Called by VDR when the plugin is started.
Definition at line 94 of file softhddevice.cpp.
References LOGDEBUG, and OnEventReceived().
Referenced by cPluginSoftHdDevice::Start().
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 835 of file softhddevice.cpp.
References LOGDEBUG, and OnEventReceived().
Called by VDR when the plugin is stopped.
Definition at line 105 of file softhddevice.cpp.
References cPipHandler::Disable(), LOGDEBUG, m_pPipHandler, and OnEventReceived().
Referenced by cPluginSoftHdDevice::Stop().
Definition at line 271 of file softhddevice.h.
References m_pipUseAlt.
Referenced by cPipHandler::SwapPosition().
Sets the device into a mode where replay is done slower.
Every single frame shall then be displayed the given number of times. Forward is true if replay is done in the normal (forward) direction, false if it is done reverse. The cDvbPlayer uses the following values for the various speeds: 1x 2x 3x Fast Forward 6 3 1 Fast Reverse 6 3 1 Slow Forward 8 4 2 Slow Reverse 63 48 24
Definition at line 701 of file softhddevice.cpp.
References LOGDEBUG, and OnEventReceived().
Definition at line 269 of file softhddevice.h.
References m_disablePip, m_drmCanDisplayPip, and m_pPipHandler.
Referenced by cMenuSetupSoft::Create(), cSoftHdMenu::MainMenu(), cSoftHdMenu::ProcessKey(), cMenuSetupSoft::Store(), and cPluginSoftHdDevice::SVDRPCommand().
|
inline |
Definition at line 202 of file softhddevice.h.
References m_pVideoStream.
Referenced by cVideoRender::DisplayFrame(), and cVideoRender::LogDroppedDuped().
|
private |
current audio channel ID
Definition at line 296 of file softhddevice.h.
Referenced by PlayAudio(), and ResetChannelId().
|
private |
audio jitter tracker
Definition at line 290 of file softhddevice.h.
Referenced by OnEnteringState(), and PlayAudio().
|
private |
audio pes reassembly buffer
Definition at line 289 of file softhddevice.h.
Referenced by FlushAudio(), and PlayAudio().
|
private |
timestamp, when VDR triggered a channel switch
Definition at line 292 of file softhddevice.h.
Referenced by ChannelSwitch(), cSoftHdDevice(), GetChannelSwitchStartTime(), PlayAudio(), and PlayVideoInternal().
|
private |
timestamp, when the first audio or video data after a channel switch arrives in Play*()
Definition at line 293 of file softhddevice.h.
Referenced by cSoftHdDevice(), GetChannelSwitchFirstPacketTime(), PlayAudio(), and PlayVideoInternal().
true, if pip was disabled by the user
Definition at line 310 of file softhddevice.h.
Referenced by SetDisablePip(), and UsePip().
true, if the drm device is able to display a pip video
Definition at line 309 of file softhddevice.h.
Referenced by SetDrmCanDisplayPip(), and UsePip().
|
private |
mutex to protect event queue
Definition at line 277 of file softhddevice.h.
true, if we detached for an external player
Definition at line 319 of file softhddevice.h.
Referenced by SetPlayMode().
start the plugin in detached state
Definition at line 318 of file softhddevice.h.
Referenced by Attach(), OnEventReceived(), and SetStartDetached().
|
mutableprivate |
mutex to lock the state machine
Definition at line 302 of file softhddevice.h.
Referenced by IsDetached(), OnEventReceived(), PipIsEnabled(), ResetPipStream(), SetRenderPipActive(), and SetRenderPipSize().
true, if device should be made a primary device after attach
Definition at line 278 of file softhddevice.h.
|
private |
Definition at line 314 of file softhddevice.h.
Referenced by CanScaleVideo(), GetOsdSize(), and SetOsdSize().
|
private |
Definition at line 313 of file softhddevice.h.
Referenced by CanScaleVideo(), GetOsdSize(), and SetOsdSize().
|
private |
pointer to cSoftHdAudio object
Definition at line 283 of file softhddevice.h.
Referenced by Audio(), Clear(), FlushAudio(), GetFirstAudioPtsMsToPlay(), GetFirstVideoPtsMsToPlay(), GetSTC(), IsBufferingThresholdReached(), OnEnteringState(), OnEventReceived(), OnLeavingState(), PlayAudio(), PlayAudioPkts(), PlayVideoPkts(), Poll(), SetPassthroughMask(), and SetVolumeDevice().
|
private |
pointer to cAudioDecoder object
Definition at line 284 of file softhddevice.h.
Referenced by FlushAudio(), OnEnteringState(), OnLeavingState(), PlayAudio(), PlayAudioPkts(), SetAudioCodec(), and SetPassthroughMask().
|
private |
pointer to cSoftHdConfig object
Definition at line 280 of file softhddevice.h.
Referenced by Config(), GetBufferFillLevelThresholdMs(), GetFirstAudioPtsMsToPlay(), GetFirstVideoPtsMsToPlay(), GetVideoAudioDelayMs(), HandleDisplayModeChange(), MaxSizeGPUImageCache(), OglOsdIsDisabled(), OnEventReceived(), OnLeavingState(), PlayAudio(), PlayVideoInternal(), SetDecoderFallbackToSw(), SetDecoderNeedsIFrame(), SetDisableDeint(), SetDisableOglOsd(), SetDisplayMode(), SetEnableOglOsd(), and SetParseH264Dimensions().
|
private |
event handler thread
Definition at line 287 of file softhddevice.h.
Referenced by cSoftHdDevice(), SetDisplayMode(), and ~cSoftHdDevice().
|
private |
pointer to grabber object
Definition at line 297 of file softhddevice.h.
Referenced by GrabImage(), OnEnteringState(), and OnLeavingState().
|
private |
pointer to hardware device description
Definition at line 286 of file softhddevice.h.
Referenced by Initialize(), OnLeavingState(), and ~cSoftHdDevice().
|
private |
pip pes reassembly buffer
Definition at line 300 of file softhddevice.h.
Referenced by PlayPipVideo(), and ResetPipStream().
|
private |
use alternative pip position
Definition at line 308 of file softhddevice.h.
Referenced by SetRenderPipSize(), and ToggleRenderPipPosition().
|
private |
current playback mode
Definition at line 295 of file softhddevice.h.
Referenced by Clear(), GetSTC(), IsVideoOnlyPlayback(), OnEnteringState(), and OnEventReceived().
|
private |
pointer to cSoftOsdProvider object
Definition at line 285 of file softhddevice.h.
Referenced by IsOsdProviderSet(), MakePrimaryDevice(), OnEnteringState(), OnEventReceived(), and ResetOsdProvider().
|
private |
pointer to pip handler
Definition at line 301 of file softhddevice.h.
Referenced by Detach(), OnEnteringState(), OnLeavingState(), PipChannelChange(), PipChannelSwap(), PipDisable(), PipEnable(), PipIsEnabled(), PipSetSize(), PipSwapPosition(), PipToggle(), SetPlayMode(), Stop(), and UsePip().
|
private |
pointer to pip video stream
Definition at line 299 of file softhddevice.h.
Referenced by OnEnteringState(), OnLeavingState(), PlayPipVideo(), and ResetPipStream().
|
private |
pointer to cVideoRender object
Definition at line 281 of file softhddevice.h.
Referenced by Clear(), GetFirstAudioPtsMsToPlay(), GetFirstVideoPtsMsToPlay(), GetStats(), GetSTC(), HandleDisplayModeChange(), HandleStillPicture(), IsBufferingThresholdReached(), OnEnteringState(), OnEventReceived(), OnLeavingState(), OsdClose(), OsdDrawARGB(), Render(), ResetPipStream(), ScaleVideo(), SetDisableOglOsd(), SetDisplayMode(), SetEnableHdr(), SetEnableOglOsd(), SetRenderPipActive(), and SetRenderPipSize().
|
private |
pointer to spu decoder
Definition at line 279 of file softhddevice.h.
Referenced by GetSpuDecoder(), and ~cSoftHdDevice().
|
private |
pointer to main video stream
Definition at line 282 of file softhddevice.h.
Referenced by Clear(), Flush(), GetVideoSize(), HandleStillPicture(), IsBufferingThresholdReached(), OnEnteringState(), OnEventReceived(), OnLeavingState(), PlayVideo(), PlayVideoPkts(), Poll(), SetDecoderFallbackToSw(), SetDecoderNeedsIFrame(), SetDisableDeint(), SetParseH264Dimensions(), SetVideoCodec(), and VideoStream().
flag if audio packets have been received
Definition at line 304 of file softhddevice.h.
Referenced by IsBufferingThresholdReached(), OnLeavingState(), and PlayAudio().
flag if valid audio packets have been received
Definition at line 306 of file softhddevice.h.
Referenced by OnLeavingState(), PlayAudio(), and PlayVideoInternal().
flag if valid video packets have been received
Definition at line 307 of file softhddevice.h.
Referenced by OnLeavingState(), PlayAudio(), and PlayVideoInternal().
flag if video packets have been received
Definition at line 305 of file softhddevice.h.
Referenced by IsBufferingThresholdReached(), OnLeavingState(), and PlayVideo().
|
private |
Definition at line 316 of file softhddevice.h.
Referenced by CanScaleVideo(), GrabImage(), and SetScreenSize().
|
private |
Definition at line 315 of file softhddevice.h.
Referenced by CanScaleVideo(), GrabImage(), and SetScreenSize().
|
private |
mutex to lock screen size (which is accessed by different threads)
Definition at line 303 of file softhddevice.h.
Referenced by GetOsdSize(), SetOsdSize(), and SetScreenSize().
current plugin state, normal plugin start sets detached state
Definition at line 276 of file softhddevice.h.
Referenced by IsBufferingThresholdReached(), IsDetached(), OnEventReceived(), and SetState().
|
private |
video jitter tracker
Definition at line 291 of file softhddevice.h.
Referenced by OnEnteringState(), and PlayVideoInternal().
|
private |
video pes reassembly buffer
Definition at line 288 of file softhddevice.h.
Referenced by Clear(), HandleStillPicture(), OnEnteringState(), and PlayVideo().
|
private |
track the volume in the device (for attach)
Definition at line 311 of file softhddevice.h.
Referenced by OnEventReceived(), and SetVolumeDevice().
min buffering threshold in ms
Definition at line 274 of file softhddevice.h.
Referenced by GetBufferFillLevelThresholdMs(), and GetMinBufferFillLevelThresholdMs().