AvTranscoder
0.9.4
C++APIforLibav/FFmpeg
|
Manager of filters. More...
#include <FilterGraph.hpp>
Public Member Functions | |
FilterGraph (const ICodec &codec) | |
~FilterGraph () | |
Filter & | addFilter (const std::string &filterName, const std::string &filterOptions="", const std::string &instanceName="") |
Add a filter. More... | |
void | process (Frame &frame) |
Pull filtered data from the filter graph, and put result to the given frame. More... | |
Private Member Functions | |
FilterGraph (const FilterGraph &otherFilterGraph) | |
FilterGraph & | operator= (const FilterGraph &otherFilterGraph) |
bool | hasFilters () const |
void | init (const Frame &frame) |
Initialize the graph of filters to process. More... | |
void | pushFilter (Filter &filter) |
Push the given Filter to the graph. More... | |
void | pushInBuffer (const Frame &frame) |
Push the input and output buffer at the beginning and the end of the graph. More... | |
void | pushOutBuffer (const Frame &frame) |
Private Attributes | |
AVFilterGraph * | _graph |
The graph which holds the filters. More... | |
std::vector< Filter * > | _filters |
List of filters to process. More... | |
const ICodec & | _codec |
Codec of the stream on which the filters will be applied. More... | |
bool | _isInit |
Is the FilterGraph initialized. More... | |
Manager of filters.
Definition at line 21 of file FilterGraph.hpp.
|
private |
avtranscoder::FilterGraph::FilterGraph | ( | const ICodec & | codec | ) |
Definition at line 19 of file FilterGraph.cpp.
References _graph.
avtranscoder::FilterGraph::~FilterGraph | ( | ) |
Definition at line 29 of file FilterGraph.cpp.
Filter & avtranscoder::FilterGraph::addFilter | ( | const std::string & | filterName, |
const std::string & | filterOptions = "" , |
||
const std::string & | instanceName = "" |
||
) |
Add a filter.
filterName | the method gets the filter definition from this name. |
filterArgs | options to initialize the filter with. This must be a ':'-separated list of options in the 'key=value' form. |
instanceName | name of the instance filter in the graph (if empty, same as filterName). |
runtime | exception if the filter is not found |
Definition at line 71 of file FilterGraph.cpp.
References _filters, and LOG_INFO.
Referenced by pushOutBuffer().
|
inlineprivate |
Definition at line 56 of file FilterGraph.hpp.
Referenced by process().
|
private |
Initialize the graph of filters to process.
Definition at line 80 of file FilterGraph.cpp.
References _filters, _graph, _isInit, avtranscoder::getDescriptionFromErrorCode(), LOG_INFO, pushFilter(), pushInBuffer(), and pushOutBuffer().
Referenced by process().
|
private |
void avtranscoder::FilterGraph::process | ( | Frame & | frame | ) |
Pull filtered data from the filter graph, and put result to the given frame.
frame | both input and output data of the method. |
Definition at line 38 of file FilterGraph.cpp.
References _filters, _isInit, avtranscoder::Frame::getAVFrame(), avtranscoder::getDescriptionFromErrorCode(), hasFilters(), init(), and LOG_DEBUG.
Referenced by avtranscoder::StreamTranscoder::processTranscode().
|
private |
Push the given Filter to the graph.
Definition at line 113 of file FilterGraph.cpp.
References _graph, avtranscoder::Filter::getAVFilter(), avtranscoder::getDescriptionFromErrorCode(), avtranscoder::Filter::getInstanceName(), avtranscoder::Filter::getName(), avtranscoder::Filter::getOptions(), and avtranscoder::Filter::setAVFilterContext().
Referenced by init(), pushInBuffer(), and pushOutBuffer().
|
private |
Push the input and output buffer at the beginning and the end of the graph.
Definition at line 131 of file FilterGraph.cpp.
References _codec, _filters, avtranscoder::ICodec::getAVCodecContext(), avtranscoder::AudioFrame::getChannelLayout(), avtranscoder::VideoFrame::getHeight(), avtranscoder::VideoFrame::getPixelFormat(), avtranscoder::getPixelFormatName(), avtranscoder::AudioFrame::getSampleFormat(), avtranscoder::getSampleFormatName(), avtranscoder::AudioFrame::getSampleRate(), avtranscoder::VideoFrame::getWidth(), avtranscoder::Frame::isAudioFrame(), avtranscoder::Frame::isVideoFrame(), LOG_INFO, and pushFilter().
Referenced by init().
|
private |
Definition at line 169 of file FilterGraph.cpp.
References addFilter(), avtranscoder::Frame::isAudioFrame(), avtranscoder::Frame::isVideoFrame(), and pushFilter().
Referenced by init().
|
private |
Codec of the stream on which the filters will be applied.
Definition at line 80 of file FilterGraph.hpp.
Referenced by pushInBuffer().
|
private |
List of filters to process.
Definition at line 79 of file FilterGraph.hpp.
Referenced by addFilter(), init(), process(), pushInBuffer(), and ~FilterGraph().
|
private |
The graph which holds the filters.
Definition at line 78 of file FilterGraph.hpp.
Referenced by FilterGraph(), init(), pushFilter(), and ~FilterGraph().
|
private |