调整各数据位置

This commit is contained in:
2025-03-29 20:08:29 +08:00
parent d3105e9957
commit fdad2677a7
4 changed files with 13 additions and 16 deletions

View File

@@ -25,7 +25,7 @@ public:
} }
virtual ~FrameRecviver()=default; virtual ~FrameRecviver()=default;
virtual void SetFrameRate(const AVRational &fr){frame_rate=fr;} virtual void OnFrameRate(const AVRational &fr){frame_rate=fr;}
virtual bool OnFrame(const AVFrame *frame)=0; virtual bool OnFrame(const AVFrame *frame)=0;

View File

@@ -169,7 +169,7 @@ public:
frame=av_frame_alloc(); frame=av_frame_alloc();
frame_recviver->SetFrameRate(video_stream->avg_frame_rate); frame_recviver->OnFrameRate(video_stream->avg_frame_rate);
return(true); return(true);
} }

View File

@@ -71,9 +71,13 @@ namespace
class FFMPEGVideoEncoder:public VideoEncoder class FFMPEGVideoEncoder:public VideoEncoder
{ {
AVFormatContext* fmt_ctx;
AVCodecContext* codec_ctx;
const AVCodec *codec; const AVCodec *codec;
AVFrame *frame; AVFrame *frame;
uint bit_rate;
AVStream *video_stream=nullptr; AVStream *video_stream=nullptr;
uint pts; uint pts;
@@ -89,10 +93,12 @@ class FFMPEGVideoEncoder:public VideoEncoder
public: public:
FFMPEGVideoEncoder(const char *fn,const AVCodec *eco,const uint br):VideoEncoder(fn,br) FFMPEGVideoEncoder(const char *fn,const AVCodec *eco,const uint br):VideoEncoder(fn)
{ {
codec=eco; codec=eco;
bit_rate=br;
frame=av_frame_alloc(); frame=av_frame_alloc();
codec_ctx=avcodec_alloc_context3(codec); codec_ctx=avcodec_alloc_context3(codec);

View File

@@ -19,33 +19,24 @@ class VideoEncoder
{ {
protected: protected:
AVFormatContext* fmt_ctx;
AVCodecContext* codec_ctx;
Size2u frame_size;
AVRational frame_rate; AVRational frame_rate;
uint bit_rate; Size2u frame_size;
char filename[_MAX_PATH]; char filename[_MAX_PATH];
public: public:
VideoEncoder(const char *fn,const uint br) VideoEncoder(const char *fn)
{ {
strcpy_s(filename,_MAX_PATH,fn); strcpy_s(filename,_MAX_PATH,fn);
bit_rate=br;
} }
AVFormatContext *GetFrmCtx(){return fmt_ctx;}
AVCodecContext *GetCodecCtx(){return codec_ctx;}
virtual ~VideoEncoder()=default; virtual ~VideoEncoder()=default;
virtual void SetFrameRateSize(const AVRational &fr,const Size2u &size) virtual void SetFrameRateSize(const AVRational &fr,const Size2u &size)
{ {
frame_size=size;
frame_rate=fr; frame_rate=fr;
frame_size=size;
} }
virtual bool Init(int pass)=0; virtual bool Init(int pass)=0;