diff --git a/library/common/src/main/java/com/google/android/exoplayer2/util/Util.java b/library/common/src/main/java/com/google/android/exoplayer2/util/Util.java index 61907c5175..a17a9a742e 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/util/Util.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/util/Util.java @@ -538,7 +538,7 @@ public final class Util { * @param threadName The name of the thread. * @return The executor. */ - public static ExecutorService newSingleThreadExecutor(final String threadName) { + public static ExecutorService newSingleThreadExecutor(String threadName) { return Executors.newSingleThreadExecutor(runnable -> new Thread(runnable, threadName)); } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/ProgressiveMediaPeriod.java b/library/core/src/main/java/com/google/android/exoplayer2/source/ProgressiveMediaPeriod.java index f7b88fcab8..57b4d2be2b 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/ProgressiveMediaPeriod.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/ProgressiveMediaPeriod.java @@ -187,7 +187,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; this.allocator = allocator; this.customCacheKey = customCacheKey; this.continueLoadingCheckIntervalBytes = continueLoadingCheckIntervalBytes; - loader = new Loader("Loader:ProgressiveMediaPeriod"); + loader = new Loader("ProgressiveMediaPeriod"); this.progressiveMediaExtractor = new BundledExtractorsAdapter(extractorsFactory); loadCondition = new ConditionVariable(); maybeFinishPrepareRunnable = this::maybeFinishPrepare; diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/SingleSampleMediaPeriod.java b/library/core/src/main/java/com/google/android/exoplayer2/source/SingleSampleMediaPeriod.java index 9e5d8aae54..9aeac9ca25 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/SingleSampleMediaPeriod.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/SingleSampleMediaPeriod.java @@ -88,7 +88,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; this.treatLoadErrorsAsEndOfStream = treatLoadErrorsAsEndOfStream; tracks = new TrackGroupArray(new TrackGroup(format)); sampleStreams = new ArrayList<>(); - loader = new Loader("Loader:SingleSampleMediaPeriod"); + loader = new Loader("SingleSampleMediaPeriod"); } public void release() { diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/chunk/ChunkSampleStream.java b/library/core/src/main/java/com/google/android/exoplayer2/source/chunk/ChunkSampleStream.java index 88a8a0d1ea..c81204e3d2 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/chunk/ChunkSampleStream.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/chunk/ChunkSampleStream.java @@ -133,7 +133,7 @@ public class ChunkSampleStream implements SampleStream, S this.callback = callback; this.mediaSourceEventDispatcher = mediaSourceEventDispatcher; this.loadErrorHandlingPolicy = loadErrorHandlingPolicy; - loader = new Loader("Loader:ChunkSampleStream"); + loader = new Loader("ChunkSampleStream"); nextChunkHolder = new ChunkHolder(); mediaChunks = new ArrayList<>(); readOnlyMediaChunks = Collections.unmodifiableList(mediaChunks); diff --git a/library/core/src/main/java/com/google/android/exoplayer2/upstream/Loader.java b/library/core/src/main/java/com/google/android/exoplayer2/upstream/Loader.java index cab9d003c4..b3e33981db 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/upstream/Loader.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/upstream/Loader.java @@ -152,6 +152,8 @@ public final class Loader implements LoaderErrorThrower { } + private static final String THREAD_NAME_PREFIX = "ExoPlayer:Loader:"; + /** Types of action that can be taken in response to a load error. */ @Documented @Retention(RetentionPolicy.SOURCE) @@ -210,10 +212,12 @@ public final class Loader implements LoaderErrorThrower { @Nullable private IOException fatalError; /** - * @param threadName A name for the loader's thread. + * @param threadNameSuffix A name suffix for the loader's thread. This should be the name of the + * component using the loader. */ - public Loader(String threadName) { - this.downloadExecutorService = Util.newSingleThreadExecutor(threadName); + public Loader(String threadNameSuffix) { + this.downloadExecutorService = + Util.newSingleThreadExecutor(THREAD_NAME_PREFIX + threadNameSuffix); } /** diff --git a/library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java b/library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java index 3669514398..d5a00201ac 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java @@ -7392,7 +7392,7 @@ public final class ExoPlayerTest { drmSessionManager, drmEventDispatcher, /* deferOnPrepared= */ false) { - private Loader loader = new Loader("oomLoader"); + private final Loader loader = new Loader("ExoPlayerTest"); @Override public boolean continueLoading(long positionUs) { diff --git a/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java b/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java index 258ebf3270..8f9d6a98bc 100644 --- a/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java +++ b/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java @@ -562,7 +562,7 @@ public final class DashMediaSource extends BaseMediaSource { processManifest(false); } else { dataSource = manifestDataSourceFactory.createDataSource(); - loader = new Loader("Loader:DashMediaSource"); + loader = new Loader("DashMediaSource"); handler = Util.createHandlerForCurrentLooper(); startLoadingManifest(); } diff --git a/library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/SsMediaSource.java b/library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/SsMediaSource.java index bd6f5df197..da2ffe9006 100644 --- a/library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/SsMediaSource.java +++ b/library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/SsMediaSource.java @@ -451,7 +451,7 @@ public final class SsMediaSource extends BaseMediaSource processManifest(); } else { manifestDataSource = manifestDataSourceFactory.createDataSource(); - manifestLoader = new Loader("Loader:Manifest"); + manifestLoader = new Loader("SsMediaSource"); manifestLoaderErrorThrower = manifestLoader; manifestRefreshHandler = Util.createHandlerForCurrentLooper(); startLoadingManifest();