From 9b04cfac5106b330ab566d794a78c6761290b207 Mon Sep 17 00:00:00 2001 From: Armands Malejevs Date: Tue, 31 May 2022 10:08:14 +0300 Subject: [PATCH] Remove timeline reference from videoTrackInfo --- .../brentvatne/exoplayer/ReactExoplayerView.java | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java index 75823438..8de3bbd5 100644 --- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java +++ b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java @@ -1024,7 +1024,6 @@ class ReactExoplayerView extends FrameLayout implements long currentPosition = player.getCurrentPosition(); WritableArray audioTrackInfo = getAudioTrackInfo(); WritableArray textTrackInfo = getTextTrackInfo(); - Timeline timelineRef = player.getCurrentTimeline(); int trackRendererIndex = getTrackRendererIndex(C.TRACK_TYPE_VIDEO); ExecutorService es = Executors.newSingleThreadExecutor(); @@ -1033,7 +1032,7 @@ class ReactExoplayerView extends FrameLayout implements public void run() { // To prevent ANRs caused by getVideoTrackInfo we run this on a different thread and notify the player only when we're done eventEmitter.load(duration, currentPosition, width, height, - audioTrackInfo, textTrackInfo, getVideoTrackInfo(timelineRef, trackRendererIndex), trackId); + audioTrackInfo, textTrackInfo, getVideoTrackInfo(trackRendererIndex), trackId); } }); } @@ -1067,9 +1066,9 @@ class ReactExoplayerView extends FrameLayout implements } return audioTracks; } - private WritableArray getVideoTrackInfo(Timeline timelineRef, int trackRendererIndex) { + private WritableArray getVideoTrackInfo(int trackRendererIndex) { - WritableArray contentVideoTracks = this.getVideoTrackInfoFromManifest(timelineRef); + WritableArray contentVideoTracks = this.getVideoTrackInfoFromManifest(); if (contentVideoTracks != null) { isUsingContentResolution = true; return contentVideoTracks; @@ -1104,11 +1103,11 @@ class ReactExoplayerView extends FrameLayout implements return videoTracks; } - private WritableArray getVideoTrackInfoFromManifest(Timeline timeline) { - return this.getVideoTrackInfoFromManifest(timeline, 0); + private WritableArray getVideoTrackInfoFromManifest() { + return this.getVideoTrackInfoFromManifest(0); } - private WritableArray getVideoTrackInfoFromManifest(Timeline timelineRef, int retryCount) { + private WritableArray getVideoTrackInfoFromManifest(int retryCount) { ExecutorService es = Executors.newSingleThreadExecutor(); final DataSource dataSource = this.mediaDataSourceFactory.createDataSource(); final Uri sourceUri = this.srcUri; @@ -1117,7 +1116,6 @@ class ReactExoplayerView extends FrameLayout implements Future result = es.submit(new Callable() { DataSource ds = dataSource; Uri uri = sourceUri; - Timeline timeline = timelineRef; long startTimeUs = startTime * 1000; // ms -> us public WritableArray call() throws Exception { @@ -1164,7 +1162,7 @@ class ReactExoplayerView extends FrameLayout implements try { WritableArray results = result.get(3000, TimeUnit.MILLISECONDS); if (results == null && retryCount < 1) { - return this.getVideoTrackInfoFromManifest(timelineRef, ++retryCount); + return this.getVideoTrackInfoFromManifest(++retryCount); } es.shutdown(); return results;