#ifndef FFCONV_CODEC_H #define FFCONV_CODEC_H extern "C" { #include } namespace ffcpp { enum class CodecType { Encoder, Decoder }; class Codec { private: AVCodecContext* _codecCtx; AVCodec* _codec; public: Codec(); Codec(AVCodecContext* ctx, CodecType type); Codec(AVCodecContext* ctx, AVCodec* codec); ~Codec(); operator AVCodecContext*() const; int width() const; int height() const; AVRational timeBase() const; int capabilities() const; AVPixelFormat pixelFormat() const; void setWidth(int width); void setHeight(int height); void setPixelFormat(AVPixelFormat pixelFormat); public: Codec(Codec&& c); Codec& operator=(Codec&& c); }; } #endif //FFCONV_CODEC_H