| | |
| | | #include "stream.hpp" |
| | | |
| | | #include "../ffmpeg/data/CodedData.hpp" |
| | | #include "../ffmpeg/format/FormatIn.hpp" |
| | | |
| | | namespace cffmpeg_wrap{ |
| | | stream::stream(const int maxSize) |
| | | :max_size_(maxSize) |
| | | stream::stream(ffwrapper::FormatIn *in, const int maxSize) |
| | | :streamRef_(in) |
| | | ,max_size_(maxSize) |
| | | ,audio_(false) |
| | | {} |
| | | |
| | | stream::~stream(){ |
| | |
| | | |
| | | int stream::SetPacket(std::shared_ptr<ffwrapper::CodedData> data){ |
| | | if (data){ |
| | | |
| | | auto audio = streamRef_->isAudioPkt(data->getAVPacket()); |
| | | // 如果包是音频包,但是不使用音频,直接返回 |
| | | if (!audio_ && audio){ |
| | | return 0; |
| | | } |
| | | |
| | | std::lock_guard<std::mutex> locker(mutex_avpkt_); |
| | | list_avpkt_.push_back(data); |
| | | |