diff options
author | Bartlomiej Moskal <bartlomiej.moskal@qt.io> | 2024-03-06 08:47:40 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2024-03-08 11:33:52 +0000 |
commit | 24693b4ac0dd40de061771af3c230be21fdc65cf (patch) | |
tree | 2cf891b16af2839a194910a9af7ca9f75cbcfba3 | |
parent | 9011f590a5ac82d6c61baa7f0e67e80488fe2538 (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.cpp | 7 |
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); |