vdr-plugin-softhddevice-drm-gles 1.6.2
cVideoFilter Class Reference

Video Filter. More...

#include <videofilter.h>

Public Member Functions

 cVideoFilter (cVideoRender *, cQueue< cDrmBuffer > *, const char *, std::function< void(AVFrame *)>)
 
void InitAndStart (const AVCodecContext *, AVFrame *, bool)
 Init and start the video filter thread.
 
void Stop (void)
 Stops the filter thread and does a cleanup.
 
void PushFrame (AVFrame *)
 Puts a frame in the buffer to be filtered.
 
bool IsInputBufferFull (void)
 
int GetNumFramesToFilter (void)
 

Private Member Functions

void Action (void)
 Main filter thread loop.
 
void SetFilterOutputPixFormat (AVPixelFormat)
 Setup the filter output pixel format.
 

Private Attributes

cVideoRenderm_pRender
 pointer to renderer
 
AVFilterGraphm_pFilterGraph
 filter graph
 
AVFilterContextm_pBuffersrcCtx
 buffer src context
 
AVFilterContextm_pBuffersinkCtx
 buffer sink context
 
bool m_filterBug
 flag for a ffmpeg bug
 
cQueue< AVFramem_frames {VIDEO_SURFACES_MAX}
 queue for frames to be filtered
 
std::function< void(AVFrame *)> m_frameOutput
 function to output the frame
 
cQueue< cDrmBuffer > * m_pDrmBufferQueue
 pointer to renderer's DRM buffer queue
 
int m_numFramesToFilter = 0
 number of frames to be filtered
 

Detailed Description

Video Filter.

Definition at line 39 of file videofilter.h.

Member Function Documentation

◆ GetNumFramesToFilter()

int cVideoFilter::GetNumFramesToFilter ( void  )
inline

Definition at line 46 of file videofilter.h.

References m_numFramesToFilter.

Referenced by cVideoStream::RenderFrame().

◆ IsInputBufferFull()

bool cVideoFilter::IsInputBufferFull ( void  )
inline

Definition at line 45 of file videofilter.h.

References cQueue< T >::IsFull(), and m_frames.

Referenced by cVideoStream::DecodeInput().

Member Data Documentation

◆ m_filterBug

bool cVideoFilter::m_filterBug
private

flag for a ffmpeg bug

Definition at line 55 of file videofilter.h.

Referenced by Action(), InitAndStart(), and Stop().

◆ m_frameOutput

std::function<void(AVFrame *)> cVideoFilter::m_frameOutput
private

function to output the frame

Definition at line 57 of file videofilter.h.

Referenced by Action().

◆ m_frames

cQueue<AVFrame> cVideoFilter::m_frames {VIDEO_SURFACES_MAX}
private

queue for frames to be filtered

Definition at line 56 of file videofilter.h.

Referenced by Action(), IsInputBufferFull(), PushFrame(), and Stop().

◆ m_numFramesToFilter

int cVideoFilter::m_numFramesToFilter = 0
private

number of frames to be filtered

Definition at line 59 of file videofilter.h.

Referenced by Action(), GetNumFramesToFilter(), InitAndStart(), and Stop().

◆ m_pBuffersinkCtx

AVFilterContext* cVideoFilter::m_pBuffersinkCtx
private

buffer sink context

Definition at line 53 of file videofilter.h.

Referenced by Action(), InitAndStart(), and SetFilterOutputPixFormat().

◆ m_pBuffersrcCtx

AVFilterContext* cVideoFilter::m_pBuffersrcCtx
private

buffer src context

Definition at line 52 of file videofilter.h.

Referenced by Action(), and InitAndStart().

◆ m_pDrmBufferQueue

cQueue<cDrmBuffer>* cVideoFilter::m_pDrmBufferQueue
private

pointer to renderer's DRM buffer queue

Definition at line 58 of file videofilter.h.

Referenced by Action().

◆ m_pFilterGraph

AVFilterGraph* cVideoFilter::m_pFilterGraph
private

filter graph

Definition at line 51 of file videofilter.h.

Referenced by InitAndStart(), and Stop().

◆ m_pRender

cVideoRender* cVideoFilter::m_pRender
private

pointer to renderer

Definition at line 49 of file videofilter.h.


The documentation for this class was generated from the following files: