video analysis2.0拆分,ffmpeg封装go接口库
zhangmeng
2019-10-24 080acae08ec8cfe413c3e6e45bcf7f9222dfa02d
csrc/ffmpeg/format/FormatOut.cpp
@@ -293,7 +293,7 @@
            logIt("Failed to copy context from input to output stream codec context\n");
            return false;
        }
        out_stream->codecpar->codec_tag = out_stream->codec->codec_tag = 0;
        out_stream->codecpar->codec_tag = 0;
        
        if(ctx_->oformat->flags & AVFMT_GLOBALHEADER)
            out_stream->codec->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
@@ -399,7 +399,7 @@
        int out_idx = -1;
        std::vector<AVStream*> in_streams{in_v_stream_, in_a_stream_};
        for (auto i : in_streams){
            if (i->index == pkt->stream_index){
            if (i && (i->index == pkt->stream_index)){
                if (i->codecpar->codec_type == AVMEDIA_TYPE_VIDEO){
                    out_idx = v_idx_;
                    in_stream = i;
@@ -434,6 +434,12 @@
            pkt->pts = pkt->dts = pkt->duration * time_stamp; 
        }
        // logIt("BEFORE in stream timebase %d:%d, out timebase %d:%d,
        //         pts: %lld, dts: %lld, duration: %lld",
        //     in_stream->time_base.num, in_stream->time_base.den,
        //     out_stream->time_base.num, out_stream->time_base.den,
        //     pkt->pts, pkt->dts, pkt->duration);
    }
    bool FormatOut::writeFrame(AVPacket *pkt, const int64_t &frame_cnt,