队列实现
//-------------------for video avpacket queue---------------------------------
struct QueueData{
AVPacket *pkt{nullptr};
QueueData *next{nullptr};
};
struct MyVideoQueue{
QueueData *front;
QueueData *end;
MyVideoQueue(){
front=end=NULL;
}
bool Empty(){return front==NULL;}
void EnQueue(AVPacket* _pkt){
if(nullptr == _pkt){
return;
}
AVPacket *p=nullptr;
p=av_packet_alloc();
p=av_packet_clone(_pkt);
//qDebug()<<"===>入队: copy _pkt to new AVPacket* : "<<p;
QueueData *d = new QueueData;
d->pkt=p;
d->next=nullptr;
qDebug()<<"===>入队: "<<d->pkt;
if (Empty()) {
f
订阅专栏 解锁全文
86

被折叠的 条评论
为什么被折叠?



