summaryrefslogtreecommitdiffstats
path: root/src/multimedia
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2021-09-02 15:58:55 +0200
committerLars Knoll <lars.knoll@qt.io>2021-09-06 16:37:07 +0200
commit00c0f8be1d7747a9167c5e1970ca4b23327e4870 (patch)
tree96f251c2ba3fedad94986319c47bc07766893306 /src/multimedia
parentf1f53f209e9fa50c0a199bdbf1fa153e55611bb1 (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.cpp28
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