summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBartlomiej Moskal <bartlomiej.moskal@qt.io>2024-03-06 08:47:40 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2024-03-08 11:33:52 +0000
commit24693b4ac0dd40de061771af3c230be21fdc65cf (patch)
tree2cf891b16af2839a194910a9af7ca9f75cbcfba3
parent9011f590a5ac82d6c61baa7f0e67e80488fe2538 (diff)
FFmpeg Encoder: Do not proceed if AVIOContext is not set
According [0]documentation, when passing AVFormatContext to avformat_write_header function, "Its pb field must be set to an already opened AVIOContext". It seems that if pb is not set, calling avformat_write_header will casue the application crash. That is why we should not proceed if AVIOContext is not set. [0]https://ffmpeg.org/doxygen/5.0/group__lavf__encoding.html#ga18b7b10bb5b94c4842de18166bc677cb Task-number: QTBUG-122224 Pick-to: 6.5 Change-Id: I7d3ca40459bf8e77cf664d3b20f0c124a6283a06 Reviewed-by: Artem Dyomin <artem.dyomin@qt.io> (cherry picked from commit 21e5466a9f45cb0b9c6358ead6337fcc18ee3291) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit c33e6f69b0ebe8c1f66bf454150273380fd96aaa)
-rw-r--r--src/plugins/multimedia/ffmpeg/qffmpegencoder.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/plugins/multimedia/ffmpeg/qffmpegencoder.cpp b/src/plugins/multimedia/ffmpeg/qffmpegencoder.cpp
index b5d746b02..6af5fef0f 100644
--- a/src/plugins/multimedia/ffmpeg/qffmpegencoder.cpp
+++ b/src/plugins/multimedia/ffmpeg/qffmpegencoder.cpp
@@ -114,6 +114,13 @@ void Encoder::start()
{
qCDebug(qLcFFmpegEncoder) << "Encoder::start!";
+ if (m_formatContext->pb == nullptr) {
+ qWarning() << "AVIOContext is null";
+ emit error(QMediaRecorder::ResourceError,
+ "AVIOContext initialization failed. Cannot start");
+ return;
+ }
+
m_formatContext->metadata = QFFmpegMetaData::toAVMetaData(m_metaData);
Q_ASSERT(!m_isHeaderWritten);