summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtem Dyomin <artem.dyomin@qt.io>2023-08-01 17:27:41 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2023-08-03 09:44:52 +0000
commitbe547a2d14766e41baddedc75313f6a7a330623f (patch)
tree3fa9bd646a75206b82214cc34a02c128aee36273
parent506a6f855a1e04bdfd9c6dada5f7f1fad37de01d (diff)
Implement debug output for AVRational
We print AVRational in several places, let's reuse the code. Change-Id: Idbadae656af54337350bb7872d75f309592b010d Reviewed-by: Pavel Dubsky <pavel.dubsky@qt.io> Reviewed-by: Artem Dyomin <artem.dyomin@qt.io> Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io> (cherry picked from commit a992f2dc2fbe71f114ca4b7d69689c745d754e0e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/plugins/multimedia/ffmpeg/qffmpeg.cpp6
-rw-r--r--src/plugins/multimedia/ffmpeg/qffmpeg_p.h2
-rw-r--r--src/plugins/multimedia/ffmpeg/qffmpegencoder.cpp3
-rw-r--r--src/plugins/multimedia/ffmpeg/qffmpegvideoframeencoder.cpp11
4 files changed, 13 insertions, 9 deletions
diff --git a/src/plugins/multimedia/ffmpeg/qffmpeg.cpp b/src/plugins/multimedia/ffmpeg/qffmpeg.cpp
index a64358481..8755cde2b 100644
--- a/src/plugins/multimedia/ffmpeg/qffmpeg.cpp
+++ b/src/plugins/multimedia/ffmpeg/qffmpeg.cpp
@@ -350,4 +350,10 @@ std::string cvFormatToString(uint32_t cvFormat)
} // namespace QFFmpeg
+QDebug operator<<(QDebug dbg, const AVRational &value)
+{
+ dbg << value.num << "/" << value.den;
+ return dbg;
+}
+
QT_END_NAMESPACE
diff --git a/src/plugins/multimedia/ffmpeg/qffmpeg_p.h b/src/plugins/multimedia/ffmpeg/qffmpeg_p.h
index 2dc97c7e1..f11bfbe80 100644
--- a/src/plugins/multimedia/ffmpeg/qffmpeg_p.h
+++ b/src/plugins/multimedia/ffmpeg/qffmpeg_p.h
@@ -205,6 +205,8 @@ std::string cvFormatToString(uint32_t format);
#endif
}
+QDebug operator<<(QDebug, const AVRational &);
+
QT_END_NAMESPACE
#endif
diff --git a/src/plugins/multimedia/ffmpeg/qffmpegencoder.cpp b/src/plugins/multimedia/ffmpeg/qffmpegencoder.cpp
index a9579c417..0351cea6a 100644
--- a/src/plugins/multimedia/ffmpeg/qffmpegencoder.cpp
+++ b/src/plugins/multimedia/ffmpeg/qffmpegencoder.cpp
@@ -326,8 +326,7 @@ void AudioEncoder::open()
if (stream->time_base.num != 1 || stream->time_base.den != format.sampleRate()) {
qCDebug(qLcFFmpegEncoder) << "Most likely, av_format_write_header changed time base from"
- << 1 << "/" << format.sampleRate() << "to"
- << stream->time_base.num << "/" << stream->time_base.den;
+ << 1 << "/" << format.sampleRate() << "to" << stream->time_base;
}
codecContext->time_base = stream->time_base;
diff --git a/src/plugins/multimedia/ffmpeg/qffmpegvideoframeencoder.cpp b/src/plugins/multimedia/ffmpeg/qffmpegvideoframeencoder.cpp
index bbd7f9407..8e3b74929 100644
--- a/src/plugins/multimedia/ffmpeg/qffmpegvideoframeencoder.cpp
+++ b/src/plugins/multimedia/ffmpeg/qffmpegvideoframeencoder.cpp
@@ -95,12 +95,10 @@ bool VideoFrameEncoder::initCodec()
if (m_codec->supported_framerates && qLcVideoFrameEncoder().isEnabled(QtDebugMsg))
for (auto rate = m_codec->supported_framerates; rate->num && rate->den; ++rate)
- qCDebug(qLcVideoFrameEncoder)
- << "supported frame rate:" << rate->num << "/" << rate->den;
+ qCDebug(qLcVideoFrameEncoder) << "supported frame rate:" << *rate;
m_codecFrameRate = adjustFrameRate(m_codec->supported_framerates, m_settings.videoFrameRate());
- qCDebug(qLcVideoFrameEncoder) << "Adjusted frame rate:" << m_codecFrameRate.num << "/"
- << m_codecFrameRate.den;
+ qCDebug(qLcVideoFrameEncoder) << "Adjusted frame rate:" << m_codecFrameRate;
return true;
}
@@ -203,7 +201,7 @@ bool VideoFrameEncoder::open()
return false;
}
qCDebug(qLcVideoFrameEncoder) << "video codec opened" << res << "time base"
- << m_codecContext->time_base.num << m_codecContext->time_base.den;
+ << m_codecContext->time_base;
return true;
}
@@ -300,8 +298,7 @@ int VideoFrameEncoder::sendFrame(AVFrameUPtr frame)
frame = std::move(f);
}
- qCDebug(qLcVideoFrameEncoder) << "sending frame" << pts << "*" << timeBase.num << "/"
- << timeBase.den;
+ qCDebug(qLcVideoFrameEncoder) << "sending frame" << pts << "*" << timeBase;
setAVFrameTime(*frame, pts, timeBase);
return avcodec_send_frame(m_codecContext.get(), frame.get());