summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtem Dyomin <artem.dyomin@qt.io>2024-03-25 11:03:22 +0100
committerArtem Dyomin <artem.dyomin@qt.io>2024-03-25 11:20:10 +0000
commit5d2bdf00927771b74c407f7ffa958eb37b1f5e89 (patch)
treee1c3fe40b103516a9f3e6bf7238f43d34724ac62
parentb988940afc7cbd33167801e744624b1d7714eb90 (diff)
Check audio streams in QAudioDecoder upon startv6.7.06.7.0
Fixes: QTBUG-123597 Pick-to: 6.7 6.6 6.5 Change-Id: Ic4dbed477beaa46b280a5d7ff1dc8f9ecd39b576 Reviewed-by: Lars Knoll <lars@knoll.priv.no>
-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);
}