From ab3d17cd44625a762fc10f0f1fd8f2c46b980aff Mon Sep 17 00:00:00 2001 From: zhangmeng <775834166@qq.com> Date: 星期二, 26 四月 2022 11:42:19 +0800 Subject: [PATCH] capture use cpu and add arm version --- csrc/ffmpeg/format/FormatIn.hpp | 13 +++++++++++-- 1 files changed, 11 insertions(+), 2 deletions(-) diff --git a/csrc/ffmpeg/format/FormatIn.hpp b/csrc/ffmpeg/format/FormatIn.hpp index 4eb7847..2bdafd1 100644 --- a/csrc/ffmpeg/format/FormatIn.hpp +++ b/csrc/ffmpeg/format/FormatIn.hpp @@ -3,8 +3,9 @@ #include <stdint.h> #include <memory> -#include <vector> +#ifdef GB28181 #include "PsToEs.hpp" +#endif struct AVFormatContext; struct AVDictionary; @@ -25,11 +26,14 @@ { public: explicit FormatIn(bool hw=true); + explicit FormatIn(const VideoProp &prop, bool hw=true); ~FormatIn(); public: int openWithCustomIO(void *opaque, read_packet fn, AVDictionary **options=NULL); +#ifdef GB28181 int openGb28181(const char *filename, AVDictionary **options); +#endif int open(const char *filename, AVDictionary **options); bool findStreamInfo(AVDictionary **options); @@ -47,23 +51,28 @@ bool allocCodec(AVCodec *dec, AVStream *s, AVDictionary **options); public: AVStream *getStream(int type = -1); - std::vector<AVStream*> allStreams(); AVCodecContext *getCodecContext(int type = 0); AVFormatContext *getFromatContext(){return ctx_;} const double getFPS()const{return fps_;} + const bool IsHEVC()const; + const bool IsAVC1()const; private: AVFormatContext *ctx_; AVCodecContext *dec_ctx_; int vs_idx_; int as_idx_; + + VideoProp *prop_; bool hw_accl_; double fps_; private: AVIOContext *io_ctx_; uint8_t *read_io_buff_; const int read_io_buff_size_; +#ifdef GB28181 GB28181API *handle_gb28181; +#endif }; } -- Gitblit v1.8.0