video analysis2.0拆分,ffmpeg封装go接口库
zhangmeng
2020-10-09 a8b447be656145c9ba2a2d8319a10ae8f726de1f
csrc/ffmpeg/format/FormatIn.hpp
@@ -3,7 +3,6 @@
#include <stdint.h>
#include <memory>
#include <vector>
#include "PsToEs.hpp"
struct AVFormatContext;
@@ -14,6 +13,7 @@
struct AVFrame;
struct AVCodec;
struct AVIOContext;
struct AVBSFContext;
typedef int(* read_packet)(void *opaque,uint8_t *buf, int buf_size);
@@ -25,6 +25,7 @@
   {
   public:
      explicit FormatIn(bool hw=true);
      explicit FormatIn(const VideoProp &prop, bool hw=true);
      ~FormatIn();
      
   public:
@@ -47,16 +48,20 @@
      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_;
        AVBSFContext         *bsf_h264, *bsf_hevc;
      VideoProp          *prop_;
       bool             hw_accl_;
      double             fps_;
   private: