summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Srebrny <piotr.srebrny@qt.io>2022-09-21 12:20:03 +0200
committerPiotr Srebrny <piotr.srebrny@qt.io>2022-10-06 10:31:43 +0200
commite5577aaa31714373416087ed5d1b277e2e8ab33a (patch)
tree0cca92dbb9287085546456fd871621dfe3d69651
parent5cc60401eef22ebfc9406d85c563db3f395d0c53 (diff)
downloadqtmultimedia-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.cpp1
-rw-r--r--src/plugins/multimedia/ffmpeg/qffmpegdecoder.cpp14
-rw-r--r--src/plugins/multimedia/ffmpeg/qffmpegmediaplayer.cpp2
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());