🔧 build(依赖库升级): 修改接口使用方法
This commit is contained in:
parent
79c5b6b3b5
commit
f0edfdbfc1
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue