diff options
author | Val Doroshchuk <valentyn.doroshchuk@qt.io> | 2020-02-18 18:23:31 +0100 |
---|---|---|
committer | Val Doroshchuk <valentyn.doroshchuk@qt.io> | 2020-02-20 11:42:29 +0100 |
commit | ad3d2afae99506a779ad758f4e7385c9f0b163ba (patch) | |
tree | 094b3dfb1021769251e74259a1c968437c566878 /src/plugins | |
parent | aec140743b1a4110c327c46bdfbf15fcddb2dd17 (diff) | |
download | qtmultimedia-ad3d2afae99506a779ad758f4e7385c9f0b163ba.tar.gz |
AVF: Don't override AVPlayerLayer's bounds if already set
AVPlayerLayer's bounds can be changed while resizing, and should not be
overridden by default/native size.
Fixes: QTBUG-65536
Change-Id: I771b13e58606663ded80df3665454007d28836b7
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm b/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm index 1f13fc9bb..ba902a53c 100644 --- a/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm +++ b/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm @@ -875,9 +875,11 @@ void AVFMediaPlayerSession::processLoadStateChange(QMediaPlayer::State newState) // Get the native size of the video, and reset the bounds of the player layer AVPlayerLayer *playerLayer = [static_cast<AVFMediaPlayerSessionObserver*>(m_observer) playerLayer]; if (videoTrack && playerLayer) { - playerLayer.bounds = CGRectMake(0.0f, 0.0f, - videoTrack.naturalSize.width, - videoTrack.naturalSize.height); + if (!playerLayer.bounds.size.width || !playerLayer.bounds.size.height) { + playerLayer.bounds = CGRectMake(0.0f, 0.0f, + videoTrack.naturalSize.width, + videoTrack.naturalSize.height); + } if (m_videoOutput && newState != QMediaPlayer::StoppedState) { m_videoOutput->setLayer(playerLayer); |