From 278634c0d2eeba9e3fcc3b4cd56ddfb3323277d7 Mon Sep 17 00:00:00 2001
From: 554325746@qq.com <554325746@qq.com>
Date: 星期二, 10 三月 2020 10:08:20 +0800
Subject: [PATCH] compatible to local files
---
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