avcpp  2.0
Wrapper for the FFmpeg that simplify usage from C++ projects.
Public Member Functions | Protected Member Functions | List of all members
av::CodecContextBase< Clazz, _direction, _type > Class Template Reference

#include <codeccontext.h>

Inheritance diagram for av::CodecContextBase< Clazz, _direction, _type >:
Inheritance graph
[legend]
Collaboration diagram for av::CodecContextBase< Clazz, _direction, _type >:
Collaboration graph
[legend]

Public Member Functions

 CodecContextBase ()
 
 CodecContextBase (const Codec &codec)
 
 CodecContextBase (CodecContextBase &&other)
 
void setCodec (const Codec &codec, OptionalErrorCode ec=throws())
 
void setCodec (const Codec &codec, bool resetDefaults, OptionalErrorCode ec=throws())
 
AVMediaType codecType () const noexcept
 
bool flush (OptionalErrorCode ec=throws())
 Puts the codec into draining mode. More...
 
- Public Member Functions inherited from av::CodecContext2
void open (OptionalErrorCode ec=throws())
 
void open (const Codec &codec, OptionalErrorCode ec=throws())
 
void open (class Dictionary &options, OptionalErrorCode ec=throws())
 
void open (class Dictionary &&options, OptionalErrorCode ec=throws())
 
void open (class Dictionary &options, const Codec &codec, OptionalErrorCode ec=throws())
 
void open (class Dictionary &&options, const Codec &codec, OptionalErrorCode ec=throws())
 
void close (OptionalErrorCode ec=throws())
 
bool isOpened () const noexcept
 
bool isValid () const noexcept
 
Rational timeBase () const noexcept
 
void setTimeBase (const Rational &value) noexcept
 
bool isEof () const noexcept
 Returns true if the codec has been flushed and all output is drained. More...
 
void flushBuffers () noexcept
 Resets the codec internal state and the end-of-stream flag. More...
 
Codec codec () const noexcept
 
void setOption (const std::string &key, const std::string &val, OptionalErrorCode ec=throws())
 
void setOption (const std::string &key, const std::string &val, int flags, OptionalErrorCode ec=throws())
 
int frameSize () const noexcept
 
int64_t frameNumber () const noexcept
 
bool isRefCountedFrames () const noexcept
 
void setRefCountedFrames (bool refcounted) const noexcept
 
int strict () const noexcept
 
void setStrict (int strict) noexcept
 
int64_t bitRate () const noexcept
 
std::pair< int64_t, int64_t > bitRateRange () const noexcept
 
void setBitRate (int64_t bitRate) noexcept
 
void setBitRateRange (const std::pair< int64_t, int64_t > &bitRateRange) noexcept
 
template<typename T >
std::pair< int, const std::error_category * > decodeCommon (T &outFrame, const class Packet &inPacket, size_t offset, int &frameFinished, int(*decodeProc)(AVCodecContext *, AVFrame *, int *, const AVPacket *))
 
template<typename T >
std::pair< int, const std::error_category * > encodeCommon (class Packet &outPacket, const T &inFrame, int &gotPacket, int(*encodeProc)(AVCodecContext *, AVPacket *, const AVFrame *, int *))
 
bool send (const Packet &packet, OptionalErrorCode ec=throws())
 
Packet receive (OptionalErrorCode ec=throws())
 
template<typename T >
std::pair< int, const std::error_category * > decodeCommon (T &outFrame, const Packet &inPacket, size_t offset, int &frameFinished, int(*decodeProc)(AVCodecContext *, AVFrame *, int *, const AVPacket *))
 
void copyContextFrom (const CodecContext2 &other, OptionalErrorCode ec=throws())
 Copy codec context from codec context associated with given stream or other codec context. More...
 
void setFlags (int flags) noexcept
 Access to CODEC_FLAG_* flags. More...
 
void addFlags (int flags) noexcept
 
void clearFlags (int flags) noexcept
 
int flags () noexcept
 
bool isFlags (int flags) noexcept
 
void setFlags2 (int flags) noexcept
 Access to CODEC_FLAG2_* flags. More...
 
void addFlags2 (int flags) noexcept
 
void clearFlags2 (int flags) noexcept
 
int flags2 () noexcept
 
bool isFlags2 (int flags) noexcept
 
- Public Member Functions inherited from FFWrapperPtr< AVCodecContext >
 FFWrapperPtr ()=default
 
 FFWrapperPtr (AVCodecContext *raw)
 
const AVCodecContext * raw () const
 
AVCodecContext * raw ()
 
void reset (AVCodecContext *raw=nullptr)
 
bool isNull () const
 
void _log (int level, const char *fmt) const
 
void _log (int level, const char *fmt, const Args &... args) const
 

Protected Member Functions

Clazz & moveOperator (Clazz &&rhs)
 
void setCodec (const class Codec &codec, bool resetDefaults, Direction direction, AVMediaType type, OptionalErrorCode ec=throws())
 
- Protected Member Functions inherited from av::CodecContext2
void swap (CodecContext2 &other)
 
 CodecContext2 ()
 
 CodecContext2 (const class Codec &codec, Direction direction, AVMediaType type)
 
 ~CodecContext2 ()
 
void setCodec (const class Codec &codec, bool resetDefaults, Direction direction, AVMediaType type, OptionalErrorCode ec=throws())
 
AVMediaType codecType (AVMediaType contextType) const noexcept
 
bool isValidForEncode (Direction direction, AVMediaType type) const noexcept
 
bool checkCodec (const Codec &codec, Direction direction, AVMediaType type, OptionalErrorCode ec)
 
void open (const Codec &codec, AVDictionary **options, OptionalErrorCode ec)
 
std::pair< int, const std::error_category * > decodeCommon (AVFrame *outFrame, const class Packet &inPacket, size_t offset, int &frameFinished, int(*decodeProc)(AVCodecContext *, AVFrame *, int *, const AVPacket *)) noexcept
 
std::pair< int, const std::error_category * > encodeCommon (class Packet &outPacket, const AVFrame *inFrame, int &gotPacket, int(*encodeProc)(AVCodecContext *, AVPacket *, const AVFrame *, int *)) noexcept
 
std::error_code sendCommon (const class Packet &pkt)
 
std::error_code receiveCommon (AVFrame *frame)
 
template<typename T >
std::error_code receiveCommon (T &frame)
 
std::error_code sendCommon (const AVFrame *frame)
 
std::error_code receiveCommon (class Packet &pkt)
 
template<typename T >
std::error_code sendCommon (const T &frame)
 
- Protected Member Functions inherited from av::noncopyable
 noncopyable ()=default
 
 noncopyable (const noncopyable &)=delete
 
void operator= (const noncopyable &)=delete
 

Additional Inherited Members

- Protected Types inherited from av::CodecContext2
using BaseWrapper = FFWrapperPtr< AVCodecContext >
 
- Protected Attributes inherited from FFWrapperPtr< AVCodecContext >
AVCodecContext * m_raw
 

Constructor & Destructor Documentation

◆ CodecContextBase() [1/3]

template<typename Clazz , Direction _direction, AVMediaType _type>
av::CodecContextBase< Clazz, _direction, _type >::CodecContextBase ( )
inline

◆ CodecContextBase() [2/3]

template<typename Clazz , Direction _direction, AVMediaType _type>
av::CodecContextBase< Clazz, _direction, _type >::CodecContextBase ( const Codec &  codec)
inlineexplicit

◆ CodecContextBase() [3/3]

template<typename Clazz , Direction _direction, AVMediaType _type>
av::CodecContextBase< Clazz, _direction, _type >::CodecContextBase ( CodecContextBase< Clazz, _direction, _type > &&  other)
inline

Member Function Documentation

◆ codecType()

template<typename Clazz , Direction _direction, AVMediaType _type>
AVMediaType av::CodecContextBase< Clazz, _direction, _type >::codecType ( ) const
inlinenoexcept

◆ flush()

template<typename Clazz , Direction _direction, AVMediaType _type>
bool av::CodecContextBase< Clazz, _direction, _type >::flush ( OptionalErrorCode  ec = throws())
inline

Puts the codec into draining mode.

After a successful flush() the caller must drain the output with repeated receive() calls until an empty result is returned. When the draining is complete, isEof() returns true.

Returns
true if draining was initiated (or the codec is already drained), false if the output queue is full and must be drained first.

◆ moveOperator()

template<typename Clazz , Direction _direction, AVMediaType _type>
Clazz& av::CodecContextBase< Clazz, _direction, _type >::moveOperator ( Clazz &&  rhs)
inlineprotected

◆ setCodec() [1/3]

template<typename Clazz , Direction _direction, AVMediaType _type>
void av::CodecContext2::setCodec
protected

◆ setCodec() [2/3]

template<typename Clazz , Direction _direction, AVMediaType _type>
void av::CodecContextBase< Clazz, _direction, _type >::setCodec ( const Codec &  codec,
bool  resetDefaults,
OptionalErrorCode  ec = throws() 
)
inline

◆ setCodec() [3/3]

template<typename Clazz , Direction _direction, AVMediaType _type>
void av::CodecContextBase< Clazz, _direction, _type >::setCodec ( const Codec &  codec,
OptionalErrorCode  ec = throws() 
)
inline

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