1 #ifndef _AV_TRANSCODER_OPTION_HPP
2 #define _AV_TRANSCODER_OPTION_HPP
7 #include <libavutil/opt.h>
39 Option(AVOption& avOption,
void* avContext);
44 std::string
getName()
const {
return std::string(_avOption->name ? _avOption->name :
""); }
45 std::string
getHelp()
const {
return std::string(_avOption->help ? _avOption->help :
""); }
46 std::string
getUnit()
const {
return std::string(_avOption->unit ? _avOption->unit :
""); }
48 double getMin()
const {
return _avOption->min; }
49 double getMax()
const {
return _avOption->max; }
52 int getFlags()
const {
return _avOption->flags; }
53 bool isEncodingOpt()
const {
return (_avOption->flags & AV_OPT_FLAG_ENCODING_PARAM) == AV_OPT_FLAG_ENCODING_PARAM; }
54 bool isDecodingOpt()
const {
return (_avOption->flags & AV_OPT_FLAG_DECODING_PARAM) == AV_OPT_FLAG_DECODING_PARAM; }
55 bool isAudioOpt()
const {
return (_avOption->flags & AV_OPT_FLAG_AUDIO_PARAM) == AV_OPT_FLAG_AUDIO_PARAM; }
56 bool isVideoOpt()
const {
return (_avOption->flags & AV_OPT_FLAG_VIDEO_PARAM) == AV_OPT_FLAG_VIDEO_PARAM; }
57 bool isSubtitleOpt()
const {
return (_avOption->flags & AV_OPT_FLAG_SUBTITLE_PARAM) == AV_OPT_FLAG_SUBTITLE_PARAM; }
60 bool getDefaultBool()
const;
61 int getDefaultInt()
const;
62 double getDefaultDouble()
const;
63 std::string getDefaultString()
const;
64 std::pair<int, int> getDefaultRatio()
const;
69 double getDouble()
const;
70 std::string getString()
const;
71 std::pair<int, int> getRatio()
const;
74 void setFlag(
const std::string& flag,
const bool enable);
75 void setBool(
const bool value);
76 void setInt(
const int value);
77 void setDouble(
const double value);
78 void setString(
const std::string& value);
79 void setRatio(
const int num,
const int den);
82 bool hasChild()
const {
return _childOptions.size(); }
83 const std::vector<Option>&
getChilds()
const {
return _childOptions; }
88 void appendChild(
const Option& child);
91 EOptionBaseType getTypeFromAVOption(
const std::string& unit,
const AVOptionType avType);
97 void checkFFmpegGetOption(
const int ffmpegReturnCode)
const;
98 void checkFFmpegSetOption(
const int ffmpegReturnCode,
const std::string& optionValue);
128 void AvExport
loadOptions(OptionMap& outOptions,
void* av_class,
int req_flags = 0);
129 void AvExport
loadOptions(OptionArray& outOptions,
void* av_class,
int req_flags = 0);
const Option & getChildAtIndex(const size_t index) const
void loadOptions(OptionMap &outOptions, void *av_class, int req_flags)
bool isEncodingOpt() const
std::map< std::string, Option > OptionMap
Key: option name / value: option.
std::vector< Option > OptionArray
bool isSubtitleOpt() const
AVOption * _avOption
Has link (no ownership)
size_t _defaultChildIndex
int getDefaultChildIndex() const
std::string getName() const
void setDefaultChildIndex(size_t index)
Wrapper of AVOption. Get its type to know what the option is about: Int, Double, Ratio, Choice... Parse its array of options to get the potential childs (Choice and Group).
std::vector< Option > _childOptions
void * _avContext
Pointer to the corresponding context. Need it to set and get the option values.
std::string getHelp() const
std::string getUnit() const
const std::vector< Option > & getChilds() const
bool isDecodingOpt() const