From 545d4aedc2af40182cd9141d014a02f919592cd9 Mon Sep 17 00:00:00 2001 From: Val Doroshchuk Date: Wed, 5 Feb 2020 11:30:05 +0100 Subject: AVF: Don't use deprecated AVPlayerItem::seekToTime::CMTime AVPlayerItem::seekToTime::CMTime is deprecated since 10.13 Also fixed to use accurate seeking by passing a time value of kCMTimeZero for both toleranceBefore and toleranceAfter. Fixes: QTBUG-81804 Change-Id: Ifafeb1fb5ca66ecba14d77abf315ebe6ffd45eab Reviewed-by: Timur Pocheptsov --- src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/plugins/avfoundation/mediaplayer') diff --git a/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm b/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm index 3e3736183..ff38b4104 100644 --- a/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm +++ b/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm @@ -686,7 +686,7 @@ void AVFMediaPlayerSession::setPosition(qint64 pos) CMTime newTime = [playerItem currentTime]; newTime.value = (pos / 1000.0f) * newTime.timescale; - [playerItem seekToTime:newTime]; + [playerItem seekToTime:newTime toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero completionHandler:nil]; Q_EMIT positionChanged(pos); -- cgit v1.2.3 From e47ed7b88223c42dd20ef86b829061fcc4f1fc30 Mon Sep 17 00:00:00 2001 From: Dominik Holland Date: Thu, 6 Feb 2020 09:41:48 +0100 Subject: AVF: Only resume playback after a stalled buffer if really needed When AVFoundation reports that the media is now buffered, we only should resume the playback if the QMediaPlayer is in the according state. Fixes: QTBUG-81912 Change-Id: Idba30ecf6c9c7b87a1c67896d89faa9a1bceae10 Reviewed-by: VaL Doroshchuk --- src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/plugins/avfoundation/mediaplayer') diff --git a/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm b/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm index ff38b4104..1f13fc9bb 100644 --- a/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm +++ b/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm @@ -928,7 +928,8 @@ void AVFMediaPlayerSession::processBufferStateChange(int bufferStatus) } else if (status == QMediaPlayer::StalledMedia) { status = QMediaPlayer::BufferedMedia; // Resume playback. - [[static_cast(m_observer) player] setRate:m_rate]; + if (m_state == QMediaPlayer::PlayingState) + [[static_cast(m_observer) player] setRate:m_rate]; } if (m_mediaStatus != status) -- cgit v1.2.3