ffconv/ffcpp/Codec.h

42 lines
683 B
C++

#ifndef FFCONV_CODEC_H
#define FFCONV_CODEC_H
extern "C" {
#include <libavformat/avformat.h>
}
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);
};
}
#endif //FFCONV_CODEC_H