|
|
@ -212,14 +212,15 @@ void PushStream::pushStream(int64_t startTime) {
|
|
|
|
av_usleep(delay);
|
|
|
|
av_usleep(delay);
|
|
|
|
// sleepMsec(40);
|
|
|
|
// sleepMsec(40);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
if (delay < -50000) {
|
|
|
|
if (delay < -100000) {
|
|
|
|
// 滞后50ms以上,丢弃非重要帧
|
|
|
|
qDebug() << "delay:" << delay;
|
|
|
|
|
|
|
|
// 滞后100ms以上,丢弃非重要帧
|
|
|
|
if (!(inputPacket->flags & AV_PKT_FLAG_KEY)) {
|
|
|
|
if (!(inputPacket->flags & AV_PKT_FLAG_KEY)) {
|
|
|
|
av_packet_unref(inputPacket);
|
|
|
|
av_packet_unref(inputPacket);
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// 调整基准时间,减少滞后
|
|
|
|
// 调整基准时间,减少滞后
|
|
|
|
m_startTime += 50000;
|
|
|
|
m_startTime += 100000;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// 计算延时后,重新指定时间戳
|
|
|
|
// 计算延时后,重新指定时间戳
|
|
|
@ -254,7 +255,8 @@ void PushStream::pushStream(int64_t startTime) {
|
|
|
|
av_packet_unref(inputPacket);
|
|
|
|
av_packet_unref(inputPacket);
|
|
|
|
av_packet_free(&inputPacket);
|
|
|
|
av_packet_free(&inputPacket);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
QThread::usleep(1000);
|
|
|
|
// QThread::usleep(1000);
|
|
|
|
|
|
|
|
av_usleep(1000);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|