AVFoundation: Prevent Crash in QMediaPlayer
authorAndy Nichols <andy.nichols@digia.com>
Wed, 5 Mar 2014 14:32:05 +0000 (15:32 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Fri, 7 Mar 2014 13:58:17 +0000 (14:58 +0100)
Task-number: QTBUG-34213
Change-Id: I0883436175439abbb4ea964ed552a17b970ed05c
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm

index cf2ad30..9e0ac4f 100644 (file)
@@ -133,7 +133,8 @@ static void *AVFMediaPlayerSessionObserverCurrentItemObservationContext = &AVFMe
 
 - (void) unloadMedia
 {
-    [m_player setRate:0.0];
+    if (m_player)
+        [m_player setRate:0.0];
     if (m_playerItem) {
         [m_playerItem removeObserver:self forKeyPath:AVF_STATUS_KEY];
 
@@ -407,10 +408,12 @@ static void *AVFMediaPlayerSessionObserverCurrentItemObservationContext = &AVFMe
         [m_player removeObserver:self forKeyPath:AVF_CURRENT_ITEM_KEY];
         [m_player removeObserver:self forKeyPath:AVF_RATE_KEY];
         [m_player release];
+        m_player = 0;
     }
 
     if (m_playerLayer) {
         [m_playerLayer release];
+        m_playerLayer = 0;
     }
 
     [self unloadMedia];