10 #include "r5codec_sample.h" 17 enum class CodecType : int {
28 enum class CodecDirection {
37 enum class CodecState {
46 enum class RateControl {
54 enum class CodecImplType {
70 int bitRate = 1500 * 1000;
76 RateControl rateControl = RateControl::Cbr;
108 virtual int32_t AddData(std::unique_ptr<uint8_t[]> inputBuffer, uint32_t inputBufferSize, uint32_t inputTimestamp) = 0;
117 virtual int32_t GetData(std::unique_ptr<uint8_t[]> &outputBuffer, uint32_t &outputBufferSize, uint32_t &outputTimestamp) = 0;
135 const std::string
Name()
const {
return mName; }
141 const std::string
FullName()
const {
return mFullName; }
147 virtual DataType GetDataType()
const = 0;
153 const CodecType
Type()
const {
return mType; }
159 const CodecDirection
Direction()
const {
return mDirection; }
166 bool isHardware()
const {
return mCodecImplType == CodecImplType::Hardware; }
170 CodecState mState = CodecState::Undefined;
173 std::string mFullName;
174 CodecType mType = CodecType::Undefined;
175 CodecDirection mDirection = CodecDirection::Undefined;
176 CodecImplType mCodecImplType = CodecImplType::Software;
182 typedef std::shared_ptr<Codec> CodecPtr;
Common interface to use in-built codecs.
Definition: r5codec.h:82
Set of encoder settings.
Definition: r5codec.h:62
const std::string Name() const
Get short name of codec.
Definition: r5codec.h:135
const CodecState GetCurrentState() const
Get the Current State of codec.
Definition: r5codec.h:123
const CodecType Type() const
Get codec type.
Definition: r5codec.h:153
const CodecDirection Direction() const
Get coding direction.
Definition: r5codec.h:159
const MediaTransform & GetMediaTransform() const
Get the Media Transform used for codec initialization.
Definition: r5codec.h:129
bool isHardware() const
Show if codec has hardware acceleration.
Definition: r5codec.h:166
const std::string FullName() const
Get full name of codec.
Definition: r5codec.h:141