diff options
author | Lars Knoll <lars.knoll@qt.io> | 2021-09-02 15:58:55 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2021-09-06 16:37:07 +0200 |
commit | 00c0f8be1d7747a9167c5e1970ca4b23327e4870 (patch) | |
tree | 96f251c2ba3fedad94986319c47bc07766893306 /src/multimedia | |
parent | f1f53f209e9fa50c0a199bdbf1fa153e55611bb1 (diff) |
Avoid emitting activeTracksChanged() if the active track doesn't change
Capture those early, by checking against the currently active track in
qmediaplayer.
Pick-to: 6.2
Change-Id: I964deb994bd1490551191f6ed865e4f221dece0c
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Diffstat (limited to 'src/multimedia')
-rw-r--r-- | src/multimedia/playback/qmediaplayer.cpp | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/src/multimedia/playback/qmediaplayer.cpp b/src/multimedia/playback/qmediaplayer.cpp index 3f5ef7b3a..ac44433be 100644 --- a/src/multimedia/playback/qmediaplayer.cpp +++ b/src/multimedia/playback/qmediaplayer.cpp @@ -587,7 +587,7 @@ int QMediaPlayer::activeVideoTrack() const Q_D(const QMediaPlayer); if (d->control) return d->control->activeTrack(QPlatformMediaPlayer::VideoStream); - return 0; + return -1; } /*! @@ -598,7 +598,7 @@ int QMediaPlayer::activeSubtitleTrack() const Q_D(const QMediaPlayer); if (d->control) return d->control->activeTrack(QPlatformMediaPlayer::SubtitleStream); - return 0; + return -1; } /*! @@ -611,8 +611,12 @@ int QMediaPlayer::activeSubtitleTrack() const void QMediaPlayer::setActiveAudioTrack(int index) { Q_D(QMediaPlayer); - if (d->control) - d->control->setActiveTrack(QPlatformMediaPlayer::AudioStream, index); + if (!d->control) + return; + + if (activeAudioTrack() == index) + return; + d->control->setActiveTrack(QPlatformMediaPlayer::AudioStream, index); } /*! @@ -623,8 +627,12 @@ void QMediaPlayer::setActiveAudioTrack(int index) void QMediaPlayer::setActiveVideoTrack(int index) { Q_D(QMediaPlayer); - if (d->control) - d->control->setActiveTrack(QPlatformMediaPlayer::VideoStream, index); + if (!d->control) + return; + + if (activeVideoTrack() == index) + return; + d->control->setActiveTrack(QPlatformMediaPlayer::VideoStream, index); } /*! @@ -637,8 +645,12 @@ void QMediaPlayer::setActiveVideoTrack(int index) void QMediaPlayer::setActiveSubtitleTrack(int index) { Q_D(QMediaPlayer); - if (d->control) - d->control->setActiveTrack(QPlatformMediaPlayer::SubtitleStream, index); + if (!d->control) + return; + + if (activeSubtitleTrack() == index) + return; + d->control->setActiveTrack(QPlatformMediaPlayer::SubtitleStream, index); } QObject *QMediaPlayer::videoOutput() const |