🔧 build(依赖库升级): 修改接口使用方法

This commit is contained in:
huheng@kylinos.cn 2023-04-20 09:51:24 +08:00
parent 79c5b6b3b5
commit f0edfdbfc1
1 changed files with 29 additions and 27 deletions

View File

@ -7,15 +7,18 @@
//#include "recorder.h"
const int HEADER_SIZE = 16;
static const AVRational SCRCPY_TIME_BASE = { 1, 1000000 }; // timestamps in us
static const AVRational SCRCPY_TIME_BASE = {1, 1000000}; // timestamps in us
const int OFFSET_TIME = 1500;
#define NO_PTS UINT64_MAX
Stream::Stream(QObject *parent) : QThread(parent)
{
}
Stream::Stream(QObject *parent) : QThread(parent) {}
Stream::~Stream() {}
Stream::~Stream()
{
}
static void avLogCallback(void *avcl, int level, const char *fmt, va_list vl)
{
@ -25,21 +28,21 @@ static void avLogCallback(void *avcl, int level, const char *fmt, va_list vl)
QString localFmt = QString::fromUtf8(fmt);
localFmt.prepend("[FFmpeg] ");
switch (level) {
case AV_LOG_PANIC:
case AV_LOG_FATAL:
qFatal("%s", localFmt.toUtf8().data());
break;
case AV_LOG_ERROR:
qCritical() << localFmt.toUtf8();
break;
case AV_LOG_WARNING:
qWarning() << localFmt.toUtf8();
break;
case AV_LOG_INFO:
qInfo() << localFmt.toUtf8();
break;
case AV_LOG_DEBUG:
break;
case AV_LOG_PANIC:
case AV_LOG_FATAL:
qFatal("%s", localFmt.toUtf8().data());
break;
case AV_LOG_ERROR:
qCritical() << localFmt.toUtf8();
break;
case AV_LOG_WARNING:
qWarning() << localFmt.toUtf8();
break;
case AV_LOG_INFO:
qInfo() << localFmt.toUtf8();
break;
case AV_LOG_DEBUG:
break;
}
// do not forward others, which are too verbose
@ -60,7 +63,7 @@ bool Stream::init()
void Stream::deInit()
{
avformat_network_deinit(); // ignore failure
avformat_network_deinit(); // ignore failure
}
void Stream::setDecoder(Decoder *decoder)
@ -121,12 +124,11 @@ void Stream::stopDecode()
void Stream::run()
{
AVCodec *codec = Q_NULLPTR;
m_codecCtx = Q_NULLPTR;
m_parserCtx = Q_NULLPTR;
// codec
codec = avcodec_find_decoder(AV_CODEC_ID_H264);
const AVCodec *codec = avcodec_find_decoder(AV_CODEC_ID_H264);
if (!codec) {
qCritical("H.264 decoder not found");
goto runQuit;
@ -178,17 +180,17 @@ void Stream::run()
bool dropPacket = false;
qint64 currentTime = QDateTime::currentDateTime().toMSecsSinceEpoch();
if(currentTime >= m_initTime + m_ptsTime*1000 + OFFSET_TIME)//当前音频时间已经超过了下一帧关键帧之前了,就需要丢帧了
if (currentTime >=
m_initTime + m_ptsTime * 1000 + OFFSET_TIME) //当前音频时间已经超过了下一帧关键帧之前了,就需要丢帧了
{
dropPacket = true;
}
if(m_flag == AV_PKT_FLAG_KEY)//关键帧不丢
if (m_flag == AV_PKT_FLAG_KEY) //关键帧不丢
{
dropPacket = false;
}
if(dropPacket)
{
if (dropPacket) {
av_packet_unref(&packet);
continue;
}
@ -253,7 +255,7 @@ bool Stream::recvPacket(AVPacket *packet)
quint32 len = bufferRead32be(&header[8]);
m_flag = bufferRead32be(&header[12]);
if (pts == 0){
if (pts == 0) {
m_initTime = QDateTime::currentDateTime().toMSecsSinceEpoch();
}