#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
|