|
vdr-plugin-softhddevice-drm-gles 1.6.2
|
Video Renderer. More...
Classes | |
| struct | sRect |
| class | cBufferStrategy |
| DRM Buffer Getting-Strategy. More... | |
| class | cBufferStrategyUseOnce |
| DRM Buffer: Get a Buffer to Use Once. More... | |
| class | cBufferStrategyReuseHardware |
| DRM Buffer: Get a Hardware Buffer to Reuse. More... | |
| class | cBufferStrategyReuseSoftware |
| DRM Buffer: Get a Software Buffer to Reuse. More... | |
| class | cDecodingStrategy |
| Strategy to Prepare DRM Buffer for Decoding. More... | |
| class | cDecodingStrategySoftware |
| Prepare DRM Buffer for Software Decoding. More... | |
| class | cDecodingStrategyHardware |
| Prepare DRM Buffer for Hardware Decoding. More... | |
| class | cVideoRender |
| Video Renderer. More... | |
Macros | |
| #define | MIN(a, b) ((a) < (b) ? (a) : (b)) |
| #define | AV_SYNC_THRESHOLD_AUDIO_BEHIND_VIDEO_MS 35 |
| threshold in ms, when to duplicate video frames to keep audio and video in sync | |
| #define | AV_SYNC_THRESHOLD_AUDIO_AHEAD_VIDEO_MS 5 |
| threshold in ms, when to drop video frames to keep audio and video in sync | |
Enumerations | |
| enum | drmColorSpace { COLORSPACE_BT709_YCC = 2 , COLORSPACE_BT2020_RGB = 9 } |
| enum | drmColorEncoding { COLORENCODING_BT709 = 1 , COLORENCODING_BT2020 = 2 } |
| enum | drmColorRange { COLORRANGE_LIMITED = 0 , COLORRANGE_FULL = 1 } |
Video Renderer.
| #define AV_SYNC_THRESHOLD_AUDIO_AHEAD_VIDEO_MS 5 |
threshold in ms, when to drop video frames to keep audio and video in sync
Definition at line 60 of file videorender.h.
| #define AV_SYNC_THRESHOLD_AUDIO_BEHIND_VIDEO_MS 35 |
threshold in ms, when to duplicate video frames to keep audio and video in sync
Definition at line 59 of file videorender.h.
| Enumerator | |
|---|---|
| COLORENCODING_BT709 | |
| COLORENCODING_BT2020 | |
Definition at line 67 of file videorender.h.
| Enumerator | |
|---|---|
| COLORRANGE_LIMITED | |
| COLORRANGE_FULL | |
Definition at line 72 of file videorender.h.
| Enumerator | |
|---|---|
| COLORSPACE_BT709_YCC | |
| COLORSPACE_BT2020_RGB | |
Definition at line 62 of file videorender.h.
Thread loop, which tries to display frames and processes events.
Definition at line 626 of file videorender.cpp.
References cVideoRender::DisplayFrame(), LOGDEBUG, cVideoRender::m_mutex, and cVideoRender::ProcessEvents().
Definition at line 821 of file videorender.cpp.
References cDrmDevice::CanHandleHdr(), and cVideoRender::m_pDrmDevice.
Referenced by cHdrMetadata::Build().
Clear (empty) the decoder to display queue.
Definition at line 100 of file videorender.cpp.
References cQueue< T >::Clear(), cDrmBufferPool::DestroyAllExcept(), cVideoRender::m_drmBufferPool, cVideoRender::m_drmBufferQueue, cVideoRender::m_pCurrentlyDisplayed, and cDrmBuffer::SetDestroyAfterUse().
Referenced by cSoftHdDevice::Clear(), and cSoftHdDevice::OnEnteringState().
Clear the grab drm buffers.
Definition at line 1165 of file videorender.cpp.
References cGrabBuffer::FreeDrmBuf(), cGrabBuffer::GetDrmBuf(), cVideoRender::m_grabOsd, cVideoRender::m_grabPip, and cVideoRender::m_grabVideo.
Referenced by cSoftHdGrab::Start().
Clear (empty) the decoder to display queue.
Definition at line 112 of file videorender.cpp.
References cQueue< T >::Clear(), cDrmBufferPool::DestroyAllExcept(), cVideoRender::m_pCurrentlyPipDisplayed, cVideoRender::m_pipDrmBufferPool, and cVideoRender::m_pipDrmBufferQueue.
Referenced by cSoftHdDevice::ResetPipStream().
|
private |
Commit the frame to the hardware.
| buf | video drm buffer |
| 0 | modesetting and commit was done, need to process outstanding DRM events |
| -1 | no modesetting and commit was done |
Definition at line 449 of file videorender.cpp.
References L_DRM, LOGDEBUG2, LOGERROR, cVideoRender::m_osdShown, cVideoRender::m_pCurrentlyDisplayed, cVideoRender::m_pCurrentlyPipDisplayed, cVideoRender::m_pDrmDevice, cDrmDevice::ModeAtomicAlloc(), cDrmDevice::ModeAtomicCommit(), cDrmDevice::ModeAtomicFree(), cDrmDevice::OsdPlane(), cDrmDevice::PipPlane(), cVideoRender::SetOsdBuffer(), cVideoRender::SetPipBuffer(), cVideoRender::SetVideoBuffer(), and cDrmDevice::VideoPlane().
Referenced by cVideoRender::PageFlip().
|
static |
Fits the video frame into a given area.
| frame | AVFrame with frame dimensions and aspect ratio information |
| dispX | x offset of video area |
| dispY | y offset of video area |
| dispWidth | width of video area |
| dispHeight | height of video area |
Definition at line 138 of file videorender.cpp.
Referenced by cVideoRender::SetPipBuffer(), and cVideoRender::SetVideoBuffer().
Copy current video, osd and pip buffers to dedicated grabbing buffers.
| grabPip | true, if the pip buffer should be grabbed |
Definition at line 1134 of file videorender.cpp.
References L_GRAB, LOGDEBUG2, cVideoRender::m_grabCond, cVideoRender::m_grabOsd, cVideoRender::m_grabPip, cVideoRender::m_grabVideo, cVideoRender::m_osdShown, cVideoRender::m_pBufOsd, cVideoRender::m_pCurrentlyDisplayed, cVideoRender::m_pCurrentlyPipDisplayed, cVideoRender::m_startgrab, and cGrabBuffer::SetDrmBuf().
Referenced by cVideoRender::DisplayFrame().
| cVideoRender::cVideoRender | ( | cSoftHdDevice * | device | ) |
Create the video renderer.
| device | pointer to cSoftHdDevice |
Definition at line 65 of file videorender.cpp.
References cSoftHdConfig::ConfigDisableOglOsd, cSoftHdConfig::ConfigPipUseAlt, cVideoRender::m_bo, cVideoRender::m_disableOglOsd, cVideoRender::m_pConfig, cVideoRender::m_pNextBo, cVideoRender::m_pOldBo, cVideoRender::m_timebase, and cVideoRender::SetPipSize().
Definition at line 793 of file videorender.cpp.
References cDrmBuffer::Destroy(), cDrmBuffer::frame, L_DRM, LOGDEBUG2, cVideoRender::m_bufBlack, cVideoRender::m_pCurrentlyDisplayed, and cVideoRender::PageFlip().
Referenced by cSoftHdDevice::OnEnteringState().
| bool cVideoRender::DisplayFrame | ( | ) |
Display the frame (video and/or osd)
Definition at line 663 of file videorender.cpp.
References AV_NOPTS_VALUE, AV_SYNC_THRESHOLD_AUDIO_AHEAD_VIDEO_MS, AV_SYNC_THRESHOLD_AUDIO_BEHIND_VIDEO_MS, cVideoRender::CreateGrabBuffers(), cSoftHdAudio::DropSamplesOlderThanPtsMs(), cDrmBuffer::frame, cVideoStream::GetAvPacketsFilled(), cSoftHdAudio::GetAvResyncBorderMs(), cSoftHdDevice::GetChannelSwitchFirstPacketTime(), cSoftHdDevice::GetChannelSwitchStartTime(), cVideoRender::GetFramePresentationCount(), cSoftHdAudio::GetHardwareOutputPtsMs(), cSoftHdDevice::GetVideoAudioDelayMs(), cSoftHdDevice::IsBufferingThresholdReached(), cDrmBuffer::IsDirty(), cQueue< T >::IsEmpty(), cSoftHdAudio::IsPaused(), cVideoRender::IsStillpicture(), cVideoRender::IsTrickSpeed(), cSoftHdDevice::IsVideoOnlyPlayback(), L_AV_SYNC, LOGDEBUG, LOGDEBUG2, cVideoRender::LogDroppedDuped(), cVideoRender::m_displayOneFrameThenPause, cVideoRender::m_drmBufferQueue, cVideoRender::m_eventQueue, cVideoRender::m_framePresentationCounter, cVideoRender::m_lastFrameWasDropped, cVideoRender::m_pAudio, cVideoRender::m_pBufOsd, cVideoRender::m_pCurrentlyDisplayed, cVideoRender::m_pCurrentlyPipDisplayed, cVideoRender::m_pDevice, cVideoRender::m_pipDrmBufferQueue, cVideoRender::m_resumeAudioScheduled, cVideoRender::m_schedulePlaybackStartAtPtsMs, cVideoRender::m_scheduleResyncAtPtsMs, cVideoRender::m_startCounter, cVideoRender::m_timebase, cVideoRender::m_videoIsScaled, cVideoRender::m_videoPlaybackPaused, cVideoRender::m_videoPlaybackPauseScheduledAt, cVideoRender::PageFlip(), cQueue< T >::Pop(), cDrmBuffer::PresentationFinished(), cVideoRender::PtsToMs(), cSoftHdAudio::SetPaused(), Timestamp2String(), VIDEO, and cSoftHdDevice::VideoStream().
Referenced by cVideoRender::Action().
Wrapper for drmHandleEvent()
Definition at line 816 of file videorender.cpp.
References cDrmDevice::HandleEvent(), and cVideoRender::m_pDrmDevice.
Exit and cleanup the renderer.
Definition at line 1312 of file videorender.cpp.
References cDrmDevice::Close(), cDrmBuffer::Destroy(), LOGDEBUG, cVideoRender::m_bufBlack, cVideoRender::m_disableOglOsd, cVideoRender::m_hasDoneHdrModeset, cVideoRender::m_pBufOsd, cVideoRender::m_pDrmDevice, cVideoRender::m_pNextBo, cVideoRender::m_pOldBo, cDrmDevice::OsdPlane(), cVideoRender::Reset(), cVideoRender::RestoreColorSpace(), cDrmDevice::RestoreCrtc(), cVideoRender::Stop(), and cDrmDevice::VideoPlane().
Referenced by cSoftHdDevice::OnEnteringState().
|
overridevirtual |
Implements cBufferStrategy.
Definition at line 1403 of file videorender.cpp.
|
overridevirtual |
Implements cBufferStrategy.
Definition at line 1416 of file videorender.cpp.
|
overridevirtual |
Implements cBufferStrategy.
Definition at line 1426 of file videorender.cpp.
Get frame flags.
| frame | AVFrame |
Definition at line 557 of file videorender.cpp.
Get the number of times the current frame shall be presented in trickspeed mode.
This is calculated based on the inter-frame gap (distance between each I-frame VDR sends us during trickspeed), the refresh rate of the output device, and the trickspeed speed.
| interFrameGapMs | inter-frame gap in ms |
| number | of times the current frame shall be presented |
Definition at line 1089 of file videorender.cpp.
References cVideoRender::IsTrickSpeed(), cVideoRender::m_refreshRateHz, and cVideoRender::m_trickspeedFactor.
Referenced by cVideoRender::DisplayFrame().
Get the output PTS in milliseconds.
Returns the presentation timestamp of the next frame to be displayed.
Definition at line 1032 of file videorender.cpp.
References AV_NOPTS_VALUE, cVideoRender::GetVideoClock(), cVideoRender::m_timebase, and cVideoRender::m_timebaseMutex.
Referenced by cSoftHdDevice::GetFirstAudioPtsMsToPlay(), cSoftHdDevice::GetFirstVideoPtsMsToPlay(), cSoftHdDevice::IsBufferingThresholdReached(), and cSoftHdDevice::OnEventReceived().
Get some rendering statistics.
| [out] | duped | number of duplicated frames |
| [out] | dropped | number of dropped frames |
| [out] | counter | number of decoded frames |
Definition at line 1182 of file videorender.cpp.
References cVideoRender::m_framesDropped, cVideoRender::m_framesDuped, and cVideoRender::m_startCounter.
Referenced by cSoftHdDevice::GetStats().
Initialize the renderer.
Definition at line 1209 of file videorender.cpp.
References cDrmDevice::CreateModeBlob(), cDrmDevice::CrtcId(), cDrmDevice::DisplayHeight(), cDrmDevice::DisplayWidth(), cDrmDevice::Fd(), cDrmBuffer::FillBlack(), cDrmDevice::HasPipPlane(), cDrmBuffer::Height(), cDrmBuffer::Id(), cDrmDevice::Init(), cDrmDevice::InitEvent(), L_DRM, LOGDEBUG2, LOGFATAL, cVideoRender::m_bufBlack, cVideoRender::m_disableOglOsd, cVideoRender::m_osdShown, cVideoRender::m_pBufOsd, cVideoRender::m_pDevice, cVideoRender::m_pDrmDevice, cDrmDevice::ModeAtomicAlloc(), cDrmDevice::ModeAtomicCommit(), cDrmDevice::ModeAtomicFree(), cDrmDevice::OsdPlane(), cDrmDevice::SaveCrtc(), cDrmDevice::SetConnectorCrtcId(), cDrmDevice::SetCrtcActive(), cDrmDevice::SetCrtcModeId(), cSoftHdDevice::SetDrmCanDisplayPip(), cDrmBuffer::Setup(), cDrmDevice::UseZpos(), cDrmDevice::VideoPlane(), cDrmBuffer::Width(), cDrmDevice::ZposOverlay(), and cDrmDevice::ZposPrimary().
Referenced by cSoftHdDevice::OnLeavingState().
Check, if the main render output buffer is full.
| true | render output buffer is full |
Definition at line 954 of file videorender.cpp.
References cQueue< T >::IsFull(), and cVideoRender::m_drmBufferQueue.
Referenced by cSoftHdDevice::IsBufferingThresholdReached().
|
private |
Log A/V sync debug message.
| audioPtsMs | audio pts |
| videoPtsMs | video pts |
| audioBehindVideoByMs | audio is behind video by this many ms |
Definition at line 528 of file videorender.cpp.
References cVideoStream::GetAvPacketsFilled(), cSoftHdAudio::GetHardwareOutputDelayMs(), cSoftHdAudio::GetUsedBytes(), cSoftHdDevice::GetVideoAudioDelayMs(), L_AV_SYNC, LOGDEBUG2, cVideoRender::m_drmBufferQueue, cVideoRender::m_framesDropped, cVideoRender::m_framesDuped, cVideoRender::m_pAudio, cVideoRender::m_pDevice, cQueue< T >::Size(), Timestamp2String(), and cSoftHdDevice::VideoStream().
Referenced by cVideoRender::DisplayFrame().
Clear the OSD (draw an empty/ transparent OSD)
Definition at line 833 of file videorender.cpp.
References EGL_CHECK, cDrmDevice::EglDisplay(), cDrmDevice::EglSurface(), cDrmDevice::GbmSurface(), cDrmDevice::GetBufFromBo(), cDrmBuffer::Height(), L_OPENGL, LOGDEBUG2, LOGERROR, cVideoRender::m_bo, cVideoRender::m_disableOglOsd, cVideoRender::m_osdShown, cVideoRender::m_pBufOsd, cVideoRender::m_pDrmDevice, cVideoRender::m_pNextBo, cVideoRender::m_pOldBo, cDrmBuffer::MarkDirty(), cDrmBuffer::Pitch(), and cDrmBuffer::Plane().
Referenced by cSoftHdDevice::OsdClose().
| void cVideoRender::OsdDrawARGB | ( | int | xi, |
| int | yi, | ||
| int | width, | ||
| int | height, | ||
| int | pitch, | ||
| const uint8_t * | argb, | ||
| int | x, | ||
| int | y | ||
| ) |
Draw an OSD ARGB image.
| 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 887 of file videorender.cpp.
References EGL_CHECK, cDrmDevice::EglDisplay(), cDrmDevice::EglSurface(), cDrmDevice::GbmSurface(), cDrmDevice::GetBufFromBo(), L_OPENGL, L_OSD, LOGDEBUG2, LOGERROR, cVideoRender::m_bo, cVideoRender::m_disableOglOsd, cVideoRender::m_osdShown, cVideoRender::m_pBufOsd, cVideoRender::m_pDrmDevice, cVideoRender::m_pNextBo, cVideoRender::m_pOldBo, cDrmBuffer::MarkDirty(), MIN, cDrmBuffer::Pitch(), and cDrmBuffer::Plane().
Referenced by cSoftHdDevice::OsdDrawARGB().
|
private |
Do the pageflip.
| buf | drm buffer |
| pipBuf | drm pip buffer |
Definition at line 593 of file videorender.cpp.
References AV_NOPTS_VALUE, cVideoRender::CommitBuffer(), cDrmDevice::HandleEvent(), L_PACKET, LOGDEBUG2, LOGERROR, cVideoRender::m_pDrmDevice, cVideoRender::SetVideoClock(), and Timestamp2String().
Referenced by cVideoRender::DisplayBlackFrame(), and cVideoRender::DisplayFrame().
|
overridevirtual |
Implements cDecodingStrategy.
Definition at line 1439 of file videorender.cpp.
References LOGFATAL, and ReleaseFrame().
|
overridevirtual |
Implements cDecodingStrategy.
Definition at line 1478 of file videorender.cpp.
Process queued events and forward to event receiver.
Definition at line 1374 of file videorender.cpp.
References cVideoRender::m_eventQueue, cVideoRender::m_pEventReceiver, and IEventReceiver::OnEventReceived().
Referenced by cVideoRender::Action().
Definition at line 806 of file videorender.cpp.
References cVideoRender::m_timebase, and cVideoRender::m_timebaseMutex.
Referenced by cVideoRender::DisplayFrame().
|
private |
Push the frame into the render ringbuffer.
Definition at line 978 of file videorender.cpp.
References AV_NOPTS_VALUE, cDrmDevice::Fd(), cVideoRender::GetVideoClock(), LOGFATAL, cVideoRender::m_pDrmDevice, and cVideoRender::SetVideoClock().
Referenced by cVideoRender::PushMainFrame(), and cVideoRender::PushPipFrame().
Push a main frame into the render ringbuffer.
Definition at line 962 of file videorender.cpp.
References cVideoRender::IsTrickSpeed(), cVideoRender::m_bufferReuseStrategy, cVideoRender::m_decodingStrategy, cVideoRender::m_drmBufferPool, cVideoRender::m_drmBufferQueue, and cVideoRender::PushFrame().
Referenced by cSoftHdDevice::OnLeavingState().
Push a PiP frame into the render ringbuffer.
Definition at line 970 of file videorender.cpp.
References cVideoRender::m_pipBufferReuseStrategy, cVideoRender::m_pipDecodingStrategy, cVideoRender::m_pipDrmBufferPool, cVideoRender::m_pipDrmBufferQueue, and cVideoRender::PushFrame().
Referenced by cSoftHdDevice::OnLeavingState().
Callback free primedata if av_buffer is unreferenced.
Definition at line 942 of file videorender.cpp.
Referenced by cDecodingStrategySoftware::PrepareDrmBuffer().
Reset the renderer.
Definition at line 1054 of file videorender.cpp.
References AV_NOPTS_VALUE, cVideoRender::m_decodingStrategy, cVideoRender::m_framesDropped, cVideoRender::m_framesDuped, cVideoRender::m_numWrongProgressive, cVideoRender::m_startCounter, and cVideoRender::SetVideoClock().
Referenced by cSoftHdDevice::Clear(), cVideoRender::Exit(), and cSoftHdDevice::OnEnteringState().
Send start condition to video thread.
Definition at line 1045 of file videorender.cpp.
References cVideoRender::IsTrickSpeed(), LOGDEBUG, and cVideoRender::m_startCounter.
Referenced by cSoftHdDevice::OnEventReceived(), and cSoftHdDevice::OnLeavingState().
Restore color space, color encoding and color range to BT709 and the original color range.
Definition at line 251 of file videorender.cpp.
References COLORENCODING_BT709, COLORRANGE_LIMITED, COLORSPACE_BT709_YCC, cDrmDevice::CreateModeBlob(), cDrmDevice::DestroyModeBlob(), LOGFATAL, cVideoRender::m_colorRangeStored, cVideoRender::m_hasDoneHdrModeset, cVideoRender::m_originalColorRange, cVideoRender::m_pDrmDevice, cDrmDevice::ModeAtomicAlloc(), cDrmDevice::ModeAtomicCommit(), cDrmDevice::ModeAtomicFree(), cDrmDevice::SetConnectorColorspace(), cDrmDevice::SetConnectorCrtcId(), cDrmDevice::SetConnectorHdrOutputMetadata(), cDrmDevice::SetCrtcActive(), cDrmDevice::SetCrtcModeId(), cDrmDevice::SetVideoPlaneColorEncoding(), and cDrmDevice::SetVideoPlaneColorRange().
Referenced by cVideoRender::Exit().
|
private |
Set kms color space, color encoding and color range.
depending on the hdr data
| colorRange | color range to set |
Definition at line 209 of file videorender.cpp.
References COLORENCODING_BT2020, COLORENCODING_BT709, COLORRANGE_FULL, COLORSPACE_BT2020_RGB, COLORSPACE_BT709_YCC, cDrmDevice::ConnectorId(), cDrmDevice::CreateModeBlob(), cDrmDevice::DestroyModeBlob(), cHdrMetadata::GetColorPrimaries(), cDrmPlane::GetId(), L_DRM, LOGDEBUG2, LOGFATAL, cVideoRender::m_hasDoneHdrModeset, cVideoRender::m_pDrmDevice, cVideoRender::m_pHdrMetadata, cDrmDevice::ModeAtomicAlloc(), cDrmDevice::ModeAtomicCommit(), cDrmDevice::ModeAtomicFree(), cDrmDevice::SetConnectorColorspace(), cDrmDevice::SetConnectorCrtcId(), cDrmDevice::SetCrtcActive(), cDrmDevice::SetCrtcModeId(), cDrmDevice::SetVideoPlaneColorEncoding(), cDrmDevice::SetVideoPlaneColorRange(), and cDrmDevice::VideoPlane().
Referenced by cVideoRender::SetVideoBuffer().
Set frame flags.
| frame | AVFrame |
| flags | FRAME_FLAG_TRICKSPEED and/or FRAME_FLAG_STILLPICTURE |
Definition at line 572 of file videorender.cpp.
References LOGFATAL.
|
private |
Create an hdr blob and set it for the connector.
| hdrData | hdr metadata |
Definition at line 181 of file videorender.cpp.
References cDrmDevice::CreateHdrBlob(), cDrmDevice::DestroyHdrBlob(), cDrmDevice::GetVideoPlaneColorRange(), LOGERROR, cVideoRender::m_colorRangeStored, cVideoRender::m_originalColorRange, cVideoRender::m_pDrmDevice, and cDrmDevice::SetConnectorHdrBlobProperty().
Referenced by cVideoRender::SetVideoBuffer().
|
private |
Modesetting for osd.
| 1 | osd is not dirty, do nothing |
| 0 | osd modesetting was done |
Definition at line 346 of file videorender.cpp.
References cDrmDevice::CrtcId(), cDrmBuffer::Height(), cDrmBuffer::Id(), cDrmBuffer::IsDirty(), L_DRM, LOGDEBUG2, cVideoRender::m_osdShown, cVideoRender::m_pBufOsd, cVideoRender::m_pDrmDevice, cDrmBuffer::MarkClean(), cDrmDevice::OsdPlane(), cDrmBuffer::SetSizeOnScreen(), cDrmDevice::UseZpos(), cDrmDevice::VideoPlane(), cDrmBuffer::Width(), cDrmDevice::ZposOverlay(), and cDrmDevice::ZposPrimary().
Referenced by cVideoRender::CommitBuffer().
|
private |
Modesetting for pip.
| [in] | buf | drm video buffer to display |
| 1 | no modesetting was done |
| 0 | modesetting was done |
Definition at line 388 of file videorender.cpp.
References ComputeFittedRect(), cDrmDevice::CrtcId(), cDrmDevice::DisplayHeight(), cDrmDevice::DisplayWidth(), cVideoRender::m_pDrmDevice, cVideoRender::m_pipActive, cVideoRender::m_pipLeftPercent, cVideoRender::m_pipScalePercent, cVideoRender::m_pipTopPercent, cVideoRender::m_videoIsScaled, cVideoRender::m_videoRect, and cDrmDevice::PipPlane().
Referenced by cVideoRender::CommitBuffer().
Set the size and position of the pip window.
| useAlt | true, if the alternative position and size (see setup menu) should be used |
Definition at line 1387 of file videorender.cpp.
References cSoftHdConfig::ConfigPipAltLeftPercent, cSoftHdConfig::ConfigPipAltScalePercent, cSoftHdConfig::ConfigPipAltTopPercent, cSoftHdConfig::ConfigPipLeftPercent, cSoftHdConfig::ConfigPipScalePercent, cSoftHdConfig::ConfigPipTopPercent, cVideoRender::m_pConfig, cVideoRender::m_pipLeftPercent, cVideoRender::m_pipScalePercent, and cVideoRender::m_pipTopPercent.
Referenced by cVideoRender::cVideoRender(), and cSoftHdDevice::SetRenderPipSize().
Wrapper to set the screen size in the device.
| width | screen width |
| height | screen height |
| refreshRateHz | screen refresh rate in Hz |
Definition at line 1200 of file videorender.cpp.
References cVideoRender::m_pDevice, cVideoRender::m_refreshRateHz, and cSoftHdDevice::SetScreenSize().
Referenced by cDrmDevice::Init().
Set the trickspeed parameters.
| speed | trick speed value from VDR (0 = normal) |
| active | true if trickspeed is active |
| forward | true if forward trick speed, false if backward |
Definition at line 1073 of file videorender.cpp.
References L_TRICK, LOGDEBUG2, cVideoRender::m_forwardTrickspeed, cVideoRender::m_framePresentationCounter, cVideoRender::m_trickspeed, and cVideoRender::m_trickspeedFactor.
Referenced by cSoftHdDevice::OnEventReceived(), and cSoftHdDevice::OnLeavingState().
|
private |
Modesetting for video.
| [in] | buf | drm video buffer to display |
| 1 | no modesetting was done |
| 0 | modesetting was done |
Definition at line 293 of file videorender.cpp.
References cHdrMetadata::Build(), COLORRANGE_LIMITED, ComputeFittedRect(), cDrmDevice::CrtcId(), cDrmDevice::DisplayHeight(), cDrmDevice::DisplayWidth(), cVideoRender::m_enableHdr, cVideoRender::m_pDrmDevice, cVideoRender::m_pHdrMetadata, cVideoRender::m_videoIsScaled, cVideoRender::m_videoRect, cVideoRender::SetColorSpace(), cVideoRender::SetHdrBlob(), and cDrmDevice::VideoPlane().
Referenced by cVideoRender::CommitBuffer().
Set size and position of the video on the screen.
| rect | a cRect, where the video should be rendered in |
Definition at line 1359 of file videorender.cpp.
References LOGDEBUG, cVideoRender::m_videoIsScaled, and cVideoRender::m_videoRect.
Referenced by cSoftHdDevice::ScaleVideo().
Stop the thread.
Definition at line 649 of file videorender.cpp.
References LOGDEBUG.
Referenced by cVideoRender::Exit(), and cVideoRender::~cVideoRender().
Trigger a screen grab.
| 0 | on success, grab was triggered |
| 1 | on timeout, grab was not triggered |
Definition at line 1112 of file videorender.cpp.
References LOGWARNING, cVideoRender::m_grabCond, and cVideoRender::m_startgrab.
Referenced by cSoftHdGrab::Start().
| cVideoRender::~cVideoRender | ( | void | ) |
Destroy the video renderer.
Definition at line 88 of file videorender.cpp.
References L_DRM, LOGDEBUG2, cVideoRender::m_pDrmDevice, and cVideoRender::Stop().