video analysis2.0拆分,ffmpeg封装go接口库
zhangmeng
2019-10-22 7fe46306ac577db11ba8a8bbf20653861fcb1a1a
csrc/worker/stream.cpp
@@ -6,6 +6,8 @@
#include "../ffmpeg/format/FormatIn.hpp"
#include "../ffmpeg/data/CodedData.hpp"
#include "../ffmpeg/log/log.hpp"
using namespace logif;
namespace cffmpeg_wrap{
    stream::stream(ffwrapper::FormatIn *in, const int maxSize)
@@ -19,16 +21,15 @@
        list_pkt_.clear();
    }
    int stream::SetPacket(std::shared_ptr<ffwrapper::CodedData> data, int64_t &id){
        if (data){
    int stream::SetPacket(const CPacket &pkt){
        if (pkt.data){
            // 如果包是音频包,但是不使用音频,直接返回
            if (!audio_ && streamRef_->isAudioPkt(&data->getAVPacket())){
            if (!audio_ && streamRef_->isAudioPkt(&pkt.data->getAVPacket())){
                return 0;
            }
            
            std::lock_guard<std::mutex> locker(mutex_avpkt_);
            list_pkt_.push_back({data, id});
            list_pkt_.push_back(pkt);
            
            while(list_pkt_.size() > max_size_/2*3){
                list_pkt_.pop_front();