19#include <libavcodec/avcodec.h>
20#include <libavfilter/avfilter.h>
23#include <vdr/thread.h>
bool IsFull(void)
Check if the queue is full.
cQueue< cDrmBuffer > * m_pDrmBufferQueue
pointer to renderer's DRM buffer queue
int m_numFramesToFilter
number of frames to be filtered
int GetNumFramesToFilter(void)
cVideoRender * m_pRender
pointer to renderer
AVFilterGraph * m_pFilterGraph
filter graph
cQueue< AVFrame > m_frames
queue for frames to be filtered
AVFilterContext * m_pBuffersinkCtx
buffer sink context
bool IsInputBufferFull(void)
std::function< void(AVFrame *)> m_frameOutput
function to output the frame
bool m_filterBug
flag for a ffmpeg bug
AVFilterContext * m_pBuffersrcCtx
buffer src context
void SetFilterOutputPixFormat(AVPixelFormat)
Setup the filter output pixel format.
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 Action(void)
Main filter thread loop.
void PushFrame(AVFrame *)
Puts a frame in the buffer to be filtered.
#define VIDEO_SURFACES_MAX
maximum video surfaces kept by the filter and render queues