AvTranscoder  0.9.4
C++APIforLibav/FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
VideoEncoder.hpp
Go to the documentation of this file.
1 #ifndef _AV_TRANSCODER_ENCODER_VIDEO_ENCODER_HPP_
2 #define _AV_TRANSCODER_ENCODER_VIDEO_ENCODER_HPP_
3 
4 #include "IEncoder.hpp"
7 
8 namespace avtranscoder
9 {
10 
11 class AvExport VideoEncoder : public IEncoder
12 {
13 public:
14  VideoEncoder(const std::string& videoCodecName);
15  ~VideoEncoder();
16 
17  void setupVideoEncoder(const VideoFrameDesc& frameDesc,
19  void setupEncoder(const ProfileLoader::Profile& profile = ProfileLoader::Profile());
20 
21  bool encodeFrame(const Frame& sourceFrame, CodedData& codedFrame);
22  bool encodeFrame(CodedData& codedFrame);
23 
24  ICodec& getCodec() { return _codec; }
25  VideoCodec& getVideoCodec() { return _codec; }
26 
27 private:
28  bool encode(const AVFrame* decodedData, AVPacket& encodedData);
29 
30 private:
32 };
33 }
34 
35 #endif
Description to create a video frame.
Definition: VideoFrame.hpp:21
std::map< std::string, std::string > Profile
VideoCodec & getVideoCodec()
This class describes decoded (raw) audio or video data.
Definition: Frame.hpp:16
This class describes coded data.
Definition: CodedData.hpp:18
ICodec & getCodec()
Get codec used for encoding.