summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtem Dyomin <artem.dyomin@qt.io>2024-03-25 11:03:22 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2024-03-25 14:35:12 +0000
commit4c79ae481ba74eb993049b908c12b7edfffa73c1 (patch)
tree2c24ce58ace3704992b059057da22b601da43d3b
parent07b6c7d6da5dbd065404fa46e26f11e3abd77bfb (diff)
Check audio streams in QAudioDecoder upon start
Fixes: QTBUG-123597 Pick-to: 6.5 Change-Id: Ic4dbed477beaa46b280a5d7ff1dc8f9ecd39b576 Reviewed-by: Lars Knoll <lars@knoll.priv.no> (cherry picked from commit 5d2bdf00927771b74c407f7ffa958eb37b1f5e89) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit fbcbdf3e3b78ec98ca933549596fdef636be3da4)
-rw-r--r--src/plugins/multimedia/ffmpeg/qffmpegaudiodecoder.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/plugins/multimedia/ffmpeg/qffmpegaudiodecoder.cpp b/src/plugins/multimedia/ffmpeg/qffmpegaudiodecoder.cpp
index 7482a3390..69820cc79 100644
--- a/src/plugins/multimedia/ffmpeg/qffmpegaudiodecoder.cpp
+++ b/src/plugins/multimedia/ffmpeg/qffmpegaudiodecoder.cpp
@@ -139,9 +139,14 @@ void QFFmpegAudioDecoder::start()
QFFmpeg::MediaDataHolder::Maybe media = QFFmpeg::MediaDataHolder::create(m_url, m_sourceDevice, nullptr);
- if (media)
- m_decoder->setMedia(std::move(*media.value()));
- else {
+ if (media) {
+ Q_ASSERT(media.value());
+ if (media.value()->streamInfo(QPlatformMediaPlayer::AudioStream).isEmpty())
+ error(QAudioDecoder::FormatError,
+ QLatin1String("The media doesn't contain an audio stream"));
+ else
+ m_decoder->setMedia(std::move(*media.value()));
+ } else {
auto [code, description] = media.error();
errorSignal(code, description);
}