From 68a19a73681301c6712e10d55bc64324716dbd24 Mon Sep 17 00:00:00 2001 From: zhangmeng <775834166@qq.com> Date: 星期三, 09 十月 2019 15:38:47 +0800 Subject: [PATCH] split scale --- csrc/ffmpeg/format/FormatOut.hpp | 28 ++++++++++++---------------- 1 files changed, 12 insertions(+), 16 deletions(-) diff --git a/csrc/ffmpeg/format/FormatOut.hpp b/csrc/ffmpeg/format/FormatOut.hpp index 2fbe47b..9aa9b15 100644 --- a/csrc/ffmpeg/format/FormatOut.hpp +++ b/csrc/ffmpeg/format/FormatOut.hpp @@ -4,7 +4,6 @@ #include <stdlib.h> #include <memory> #include <string> -#include <vector> struct AVFormatContext; struct AVStream; @@ -15,8 +14,6 @@ namespace ffwrapper{ class VideoProp; - class CodedData; - class FrameData; class FormatOut { @@ -34,28 +31,25 @@ bool open(const char *filename, const char *format_name); bool openCodec(VideoProp &prop); - int encode(AVPacket &pkt, AVFrame *frame); - int encode(std::shared_ptr<CodedData> &data, - std::shared_ptr<FrameData> &frame_data); - int encode(std::shared_ptr<CodedData> &data,AVFrame *frame); + int encode(AVPacket *pkt, AVFrame *frame); public: - bool copyCodecFromIn(std::vector<AVStream*> in); + bool addStream(AVStream *s); + bool copyCodecFromIn(AVStream *v, AVStream *a); bool openResource(const char *filename, const int flags); bool closeResource(); - bool JustWriter(std::vector<AVStream*> in, const char *filename); + bool JustWriter(AVStream *v, AVStream *a, const char *filename); bool EncodeWriter(const char *filename); - bool writeFrame(AVPacket &pkt, const int64_t &frame_cnt, bool interleaved = true); - void adjustPTS(AVPacket &pkt, const int64_t &frame_cnt); - void adjustVideoPTS(AVPacket &pkt, const int64_t &frame_cnt); + bool writeFrame(AVPacket *pkt, const int64_t &frame_cnt, bool interleaved = true); + void adjustPTS(AVPacket *pkt, const int64_t &frame_cnt); bool endWriter(); bool writeHeader(AVDictionary **options = NULL); - bool writeFrame2(AVPacket &pkt, bool interleaved); + bool writeFrame2(AVPacket *pkt, bool interleaved); bool writeTrailer(); public: - AVStream *getStream(){return v_s_;} + AVStream *getStream(); const AVCodecContext *getCodecContext() const; const double getFPS()const{return fps_;} @@ -67,7 +61,8 @@ void configEncoder(VideoProp &prop); private: AVFormatContext *ctx_; - AVStream *v_s_; + int v_idx_; + int a_idx_; AVCodecContext *enc_ctx_; int64_t sync_opts_; @@ -78,7 +73,8 @@ std::string format_name_; // rec - std::vector<AVStream*> streams_; + AVStream *in_v_stream_; + AVStream *in_a_stream_; }; } #endif \ No newline at end of file -- Gitblit v1.8.0