diff options
author | Piotr Srebrny <piotr.srebrny@qt.io> | 2022-09-21 12:20:03 +0200 |
---|---|---|
committer | Piotr Srebrny <piotr.srebrny@qt.io> | 2022-10-06 10:31:43 +0200 |
commit | e5577aaa31714373416087ed5d1b277e2e8ab33a (patch) | |
tree | 0cca92dbb9287085546456fd871621dfe3d69651 | |
parent | 5cc60401eef22ebfc9406d85c563db3f395d0c53 (diff) | |
download | qtmultimedia-e5577aaa31714373416087ed5d1b277e2e8ab33a.tar.gz |
Move signals to classes that generate them
Change-Id: Ifb91537e18b7366657e0e3681f9ff7287ea01a98
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
(cherry picked from commit 1c08d53e4b18b5a253fbcc8ead8db52e8c7b4ea6)
-rw-r--r-- | src/plugins/multimedia/ffmpeg/qffmpegaudiodecoder.cpp | 1 | ||||
-rw-r--r-- | src/plugins/multimedia/ffmpeg/qffmpegdecoder.cpp | 14 | ||||
-rw-r--r-- | src/plugins/multimedia/ffmpeg/qffmpegmediaplayer.cpp | 2 |
3 files changed, 4 insertions, 13 deletions
diff --git a/src/plugins/multimedia/ffmpeg/qffmpegaudiodecoder.cpp b/src/plugins/multimedia/ffmpeg/qffmpegaudiodecoder.cpp index 3571f6310..d7ef97dc8 100644 --- a/src/plugins/multimedia/ffmpeg/qffmpegaudiodecoder.cpp +++ b/src/plugins/multimedia/ffmpeg/qffmpegaudiodecoder.cpp @@ -175,6 +175,7 @@ void QFFmpegAudioDecoder::start() if (error() != QAudioDecoder::NoError) goto error; + durationChanged(duration()); setIsDecoding(true); return; diff --git a/src/plugins/multimedia/ffmpeg/qffmpegdecoder.cpp b/src/plugins/multimedia/ffmpeg/qffmpegdecoder.cpp index 9d77222fd..57aa6f20b 100644 --- a/src/plugins/multimedia/ffmpeg/qffmpegdecoder.cpp +++ b/src/plugins/multimedia/ffmpeg/qffmpegdecoder.cpp @@ -1081,8 +1081,7 @@ void Decoder::setMedia(const QUrl &media, QIODevice *stream) av_dump_format(context, 0, url.constData(), 0); #endif - qint64 duration = 0; - readStreams(context, m_streamMap, duration); + readStreams(context, m_streamMap, m_duration); m_requestedStreams[QPlatformMediaPlayer::VideoStream] = getDefaultStreamIndex(m_streamMap[QPlatformMediaPlayer::VideoStream]); m_requestedStreams[QPlatformMediaPlayer::AudioStream] = getDefaultStreamIndex(m_streamMap[QPlatformMediaPlayer::AudioStream]); @@ -1098,17 +1097,6 @@ void Decoder::setMedia(const QUrl &media, QIODevice *stream) if (m_requestedStreams[QPlatformMediaPlayer::AudioStream] >= 0) insertAudioData(m_metaData, context->streams[avStreamIndex(QPlatformMediaPlayer::AudioStream)]); - if (player) - player->tracksChanged(); - - if (m_duration != duration) { - m_duration = duration; - if (player) - player->durationChanged(duration/1000); - else if (audioDecoder) - audioDecoder->durationChanged(duration/1000); - } - m_isSeekable = !(context->ctx_flags & AVFMTCTX_UNSEEKABLE); demuxer = new Demuxer(this, context); diff --git a/src/plugins/multimedia/ffmpeg/qffmpegmediaplayer.cpp b/src/plugins/multimedia/ffmpeg/qffmpegmediaplayer.cpp index 1827b4dba..e99d25548 100644 --- a/src/plugins/multimedia/ffmpeg/qffmpegmediaplayer.cpp +++ b/src/plugins/multimedia/ffmpeg/qffmpegmediaplayer.cpp @@ -117,6 +117,8 @@ void QFFmpegMediaPlayer::setMedia(const QUrl &media, QIODevice *stream) decoder->setAudioSink(m_audioOutput); decoder->setVideoSink(m_videoSink); + durationChanged(duration()); + tracksChanged(); metaDataChanged(); seekableChanged(decoder->isSeekable()); |