video analysis2.0拆分,ffmpeg封装go接口库
zhangmeng
2020-01-19 6f9d46539bce25828e3229db6cd9c0dbae1f3e11
csrc/ffmpeg/format/FormatIn.cpp
@@ -159,7 +159,7 @@
               }else if(in->avg_frame_rate.num >=1 && in->avg_frame_rate.den >= 1){
                   fps_ = av_q2d(in->avg_frame_rate);
               } 
            logIt("in stream video fps %f, time_base: %d : %d", fps_, in->time_base.num, in->time_base.den);
            logIt("in stream video fps %f, time_base: %d : %d, size: %dx%d", fps_, in->time_base.num, in->time_base.den, in->codecpar->width, in->codecpar->height);
         }
         if (type == AVMEDIA_TYPE_AUDIO){
            auto in = ctx_->streams[i];
@@ -194,17 +194,17 @@
      for (int i = 0; i < 2; ++i)
      {
         if(hw_accl_){
                idle_gpu = gpu::getGPU(100);
                idle_gpu = gpu::getGPUPrior(300, 1024, 0);
                if(idle_gpu < 0){
                    logIt("NO GPU RESOURCE TO DECODE");
                    hw_accl_ = false;
                    continue;
                }
            if(codecpar->codec_id == AV_CODEC_ID_H264){
                  dec = avcodec_find_decoder_by_name("h264_cuvid");
            }else if(codecpar->codec_id == AV_CODEC_ID_H265){
               dec = avcodec_find_decoder_by_name("hevc_cuvid");
            }
            std::string codec_name(avcodec_get_name(codecpar->codec_id));
            codec_name += "_cuvid";
            dec = avcodec_find_decoder_by_name(codec_name.c_str());
               if(!dec){
                  hw_accl_ = false;
                  continue;