#ifndef _PL_H264Encoder_H_ #define _PL_H264Encoder_H_ #include "PipeLine.h" struct PL_H264Encoder_Config { size_t inBufferSize; bool resetPTS; uint16_t bytesBufferImageWidth; // only useful for PMT_BYTES / MBFT_YUV420 / MBFT_BGRA uint16_t bytesBufferImageHeight; size_t avc_bit_rate; uint16_t avc_fps; uint16_t avc_gop; uint16_t avc_max_b_frames; int avc_profile; // FF_PROFILE_H264_BASELINE / FF_PROFILE_H264_MAIN / FF_PROFILE_H264_HIGH std::string av_opt_preset; std::string av_opt_tune; std::string avc_profile_str; PL_H264Encoder_Config(); }; class PL_H264Encoder : public PipeLineElem { public: PL_H264Encoder(); virtual ~PL_H264Encoder(); virtual bool init(void* args); virtual void finit(); virtual bool pay(const PipeMaterial& pm); virtual bool gain(PipeMaterial& pm); private: void* internal; }; PipeLineElem* create_PL_H264Encoder(); #endif