Bug 1396268 - Seek operation should not be performed after GeckoHlsPlayer.release is called! draft
authorKilik Kuo <kikuo@mozilla.com>
Thu, 07 Sep 2017 17:00:32 +0800
changeset 660626 ae0fd74d1d68e32d2235c13f8d5c3291e2a4c00c
parent 660422 d8e238b811d3dc74515065ae8cab6c74baf0295f
child 730312 b7bccd2090bae9e58cbb1a9b7b05565c5ef6a096
push id78482
push userkikuo@mozilla.com
push dateThu, 07 Sep 2017 09:01:01 +0000
bugs1396268
milestone57.0a1
Bug 1396268 - Seek operation should not be performed after GeckoHlsPlayer.release is called! MozReview-Commit-ID: 15lXw9hgKdh
mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/GeckoHlsPlayer.java
--- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/GeckoHlsPlayer.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/GeckoHlsPlayer.java
@@ -678,16 +678,21 @@ public class GeckoHlsPlayer implements B
                                                   16, 0, getDuration(),
                                                   fmt.sampleMimeType, csd);
         return aInfo;
     }
 
     // Called on HLSDemuxer's TaskQueue
     @Override
     public synchronized boolean seek(long positionUs) {
+        if (mPlayer == null) {
+            Log.d(LOGTAG, "Seek operation won't be performed as no player exists!");
+            return false;
+        }
+
         // Need to temporarily resume Exoplayer to download the chunks for getting the demuxed
         // keyframe sample when HTMLMediaElement is paused. Suspend Exoplayer when collecting enough
         // samples in onLoadingChanged.
         if (mExoplayerSuspended) {
             resumeExoplayer();
         }
         // positionUs : microseconds.
         // NOTE : 1) It's not possible to seek media by tracktype via ExoPlayer Interface.