From 6de0bbb3eb860934bbe1c5e53a7ff02b8c0844f5 Mon Sep 17 00:00:00 2001 From: zhangmeng <775834166@qq.com> Date: 星期六, 19 十月 2019 10:44:37 +0800 Subject: [PATCH] udpate --- csrc/buz/recorder.hpp | 30 ++++++++++++++++++++---------- 1 files changed, 20 insertions(+), 10 deletions(-) diff --git a/csrc/buz/recorder.hpp b/csrc/buz/recorder.hpp index 8c3b550..9c88bbb 100644 --- a/csrc/buz/recorder.hpp +++ b/csrc/buz/recorder.hpp @@ -13,21 +13,17 @@ #include "../common/callback.hpp" +#include "../common.hpp" + +struct AVPacket; + namespace ffwrapper{ class FormatIn; class FormatOut; - - class CodedData; } namespace cffmpeg_wrap{ namespace buz{ - // 缂撳瓨鐨勮棰戝抚,绛夊緟fire瑙﹀彂寮�濮嬪綍鍍� - typedef struct _cache_pkt{ - std::shared_ptr<ffwrapper::CodedData> data; - int64_t id; - }CPacket; - class Recorder{ public: @@ -35,7 +31,7 @@ ~Recorder(); public: - int Run(const char* output, const int mind, const int maxd); + int Run(const char* output, const int mind, const int maxd, const bool audio); int PushPacket(const CPacket &pkt); int PushPackets(std::list<CPacket> &lst); int FireRecorder(const int64_t &id); @@ -49,11 +45,20 @@ private: void run_thread(); - int init_writer(); + int init_writer(const bool audio); int write_correctly(const CPacket &pkt); void end_writer(); void maybe_dump_gop(); + + int init_write_h264(const bool audio); + int write_h264(const CPacket &pkt); + int end_write_h264(); + + int init_write_hevc(const bool audio); + int write_hevc(const CPacket &pkt); + int end_write_hevc(); + int mux_hevc(FILE *fp, const char *outfile); private: ffwrapper::FormatIn *in_; ffwrapper::FormatOut *out_; @@ -62,6 +67,7 @@ int minduration; int end_frame; int cur_frame; + int cur_frame_a; std::list<CPacket> list_pkt_; @@ -80,6 +86,10 @@ FUNC_REC_INFO func_rec_info_; bool error_occured_; + + bool audio_; + + FILE *fp_; }; } } -- Gitblit v1.8.0