video analysis2.0拆分,ffmpeg封装go接口库
zhangmeng
2019-10-30 b1ed46392ad11cb454d13fb58d331239252d1546
csrc/ffmpeg/format/FormatIn.cpp
@@ -38,29 +38,24 @@
   FormatIn::~FormatIn()
   {
      if(ctx_){
         if (!(ctx_->flags & AVFMT_FLAG_CUSTOM_IO)){
            avformat_close_input(&ctx_);
         }else{
            avformat_free_context(ctx_);
         }
      logIt("free format in");
      if(dec_ctx_){
         avcodec_close(dec_ctx_);
         avcodec_free_context(&dec_ctx_);
         dec_ctx_ = NULL;
      }
      if(ctx_){
         avformat_close_input(&ctx_);
         ctx_ = NULL;
         if(dec_ctx_){
            avcodec_close(dec_ctx_);
            dec_ctx_ = NULL;
         }
      }
      
      if (handle_gb28181){
         delete handle_gb28181;
      }
      if(read_io_buff_){
         av_free(read_io_buff_);
         read_io_buff_ = NULL;
      }
      if(io_ctx_){
         av_freep(&io_ctx_->buffer);
         avio_context_free(&io_ctx_);
         io_ctx_ = NULL;
      }
@@ -89,11 +84,11 @@
      ctx_->pb = io_ctx_;
      auto err = av_probe_input_buffer(ctx_->pb, &ctx_->iformat, NULL, NULL, 0, 0);
      if(err != 0){
         logIt("open with custom io prob input buffer error:%d err: %s\n", err, getAVErrorDesc(err).c_str());
         return -1;
      }
      // auto err = av_probe_input_buffer(ctx_->pb, &ctx_->iformat, NULL, NULL, 0, 0);
      // if(err != 0){
      //    logIt("open with custom io prob input buffer error:%d err: %s\n", err, getAVErrorDesc(err).c_str());
      //    return -1;
      // }
      return 0;
   }