|
vdr-plugin-softhddevice-drm-gles 1.4.0
|
Filter thread class. More...
#include <threads.h>

Public Member Functions | |
| cFilterThread (cVideoRender *, cQueue< cDrmBuffer > *, const char *, std::function< void(AVFrame *)>) | |
| virtual | ~cFilterThread (void) |
| void | InitAndStart (const AVCodecContext *, AVFrame *, bool) |
| Init and start the video filter thread. More... | |
| void | Stop (void) |
| void | PushFrame (AVFrame *) |
| Put a frame in the buffer to be filtered. More... | |
| bool | IsInputBufferFull (void) |
| int | GetNumFramesToFilter (void) |
Private Member Functions | |
| void | Action (void) |
Private Attributes | |
| cVideoRender * | m_pRender |
| AVFilterGraph * | m_pFilterGraph |
| AVFilterContext * | m_pBuffersrcCtx |
| AVFilterContext * | m_pBuffersinkCtx |
| bool | m_filterBug |
| flag for a ffmpeg bug More... | |
| cQueue< AVFrame > | m_frames {VIDEO_SURFACES_MAX} |
| queue for frames to be filtered More... | |
| std::function< void(AVFrame *)> | m_frameOutput |
| function to output the frame More... | |
| cQueue< cDrmBuffer > * | m_pDrmBufferQueue |
| pointer to renderer's DRM buffer queue More... | |
| int | m_numFramesToFilter = 0 |
| number of frames to be filtered More... | |
| cFilterThread::cFilterThread | ( | cVideoRender * | videoRender, |
| cQueue< cDrmBuffer > * | drmBufferQueue, | ||
| const char * | name, | ||
| std::function< void(AVFrame *)> | frameOutput | ||
| ) |
Definition at line 167 of file threads.cpp.
References m_frameOutput, m_pDrmBufferQueue, and m_pRender.
|
virtual |
Definition at line 174 of file threads.cpp.
|
private |
Definition at line 286 of file threads.cpp.
References cQueue< T >::IsEmpty(), cQueue< T >::IsFull(), isInterlacedFrame(), LOGDEBUG, LOGERROR, LOGFATAL, LOGWARNING, m_filterBug, m_frameOutput, m_frames, m_numFramesToFilter, m_pBuffersinkCtx, m_pBuffersrcCtx, m_pDrmBufferQueue, and cQueue< T >::Pop().
|
inline |
Definition at line 108 of file threads.h.
References m_numFramesToFilter.
Referenced by cVideoStream::RenderFrame().
| void cFilterThread::InitAndStart | ( | const AVCodecContext * | videoCtx, |
| AVFrame * | frame, | ||
| bool | enableDeinterlacer | ||
| ) |
Init and start the video filter thread.
| videoCtx | codec context |
| frame | AVFrame to take init parameters from |
| enableDeinterlacer | true, if the deinterlacer should be used |
Definition at line 185 of file threads.cpp.
References L_CODEC, LOGDEBUG2, LOGFATAL, m_filterBug, m_numFramesToFilter, m_pBuffersinkCtx, m_pBuffersrcCtx, and m_pFilterGraph.
Referenced by cVideoStream::RenderFrame().
|
inline |
Definition at line 107 of file threads.h.
References cQueue< T >::IsFull(), and m_frames.
Referenced by cVideoStream::DecodeInput().
| void cFilterThread::PushFrame | ( | AVFrame * | frame | ) |
Put a frame in the buffer to be filtered.
Definition at line 344 of file threads.cpp.
References m_frames, and cQueue< T >::Push().
Referenced by cVideoStream::RenderFrame().
| void cFilterThread::Stop | ( | void | ) |
Definition at line 349 of file threads.cpp.
References cQueue< T >::IsEmpty(), LOGDEBUG, m_filterBug, m_frames, m_numFramesToFilter, m_pFilterGraph, and cQueue< T >::Pop().
Referenced by cVideoStream::CancelFilterThread().
|
private |
flag for a ffmpeg bug
Definition at line 117 of file threads.h.
Referenced by Action(), InitAndStart(), and Stop().
|
private |
function to output the frame
Definition at line 119 of file threads.h.
Referenced by Action(), and cFilterThread().
|
private |
queue for frames to be filtered
Definition at line 118 of file threads.h.
Referenced by Action(), IsInputBufferFull(), PushFrame(), and Stop().
|
private |
number of frames to be filtered
Definition at line 121 of file threads.h.
Referenced by Action(), GetNumFramesToFilter(), InitAndStart(), and Stop().
|
private |
Definition at line 115 of file threads.h.
Referenced by Action(), and InitAndStart().
|
private |
Definition at line 114 of file threads.h.
Referenced by Action(), and InitAndStart().
|
private |
pointer to renderer's DRM buffer queue
Definition at line 120 of file threads.h.
Referenced by Action(), and cFilterThread().
|
private |
Definition at line 113 of file threads.h.
Referenced by InitAndStart(), and Stop().
|
private |
Definition at line 111 of file threads.h.
Referenced by cFilterThread().