diff --git a/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java b/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java index 02a6ad2cb9..d7a6b4a896 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java @@ -24,9 +24,11 @@ import android.util.SparseIntArray; import androidx.annotation.Nullable; import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.ExoPlaybackException; +import com.google.android.exoplayer2.Renderer; import com.google.android.exoplayer2.RendererCapabilities; import com.google.android.exoplayer2.RenderersFactory; import com.google.android.exoplayer2.Timeline; +import com.google.android.exoplayer2.audio.AudioRendererEventListener; import com.google.android.exoplayer2.drm.DrmSessionManager; import com.google.android.exoplayer2.drm.FrameworkMediaCrypto; import com.google.android.exoplayer2.source.MediaPeriod; @@ -54,6 +56,7 @@ import com.google.android.exoplayer2.upstream.DefaultAllocator; import com.google.android.exoplayer2.upstream.TransferListener; import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.Util; +import com.google.android.exoplayer2.video.VideoRendererEventListener; import java.io.IOException; import java.lang.reflect.Constructor; import java.util.ArrayList; @@ -154,6 +157,29 @@ public final class DownloadHelper { private static final Constructor HLS_FACTORY_CONSTRUCTOR = getConstructor("com.google.android.exoplayer2.source.hls.HlsMediaSource$Factory"); + /** + * Extracts renderer capabilities for the renderers created by the provided renderers factory. + * + * @param renderersFactory A {@link RenderersFactory}. + * @return The {@link RendererCapabilities} for each renderer created by the {@code + * renderersFactory}. + */ + public static RendererCapabilities[] getRendererCapabilities(RenderersFactory renderersFactory) { + Renderer[] renderers = + renderersFactory.createRenderers( + Util.createHandler(), + new VideoRendererEventListener() {}, + new AudioRendererEventListener() {}, + (cues) -> {}, + (metadata) -> {}, + /* drmSessionManager= */ null); + RendererCapabilities[] capabilities = new RendererCapabilities[renderers.length]; + for (int i = 0; i < renderers.length; i++) { + capabilities[i] = renderers[i].getCapabilities(); + } + return capabilities; + } + /** @deprecated Use {@link #forProgressive(Context, Uri)} */ @Deprecated @SuppressWarnings("deprecation") @@ -269,7 +295,7 @@ public final class DownloadHelper { drmSessionManager, /* streamKeys= */ null), trackSelectorParameters, - Util.getRendererCapabilities(renderersFactory)); + getRendererCapabilities(renderersFactory)); } /** @deprecated Use {@link #forHls(Context, Uri, Factory, RenderersFactory)} */ @@ -339,7 +365,7 @@ public final class DownloadHelper { drmSessionManager, /* streamKeys= */ null), trackSelectorParameters, - Util.getRendererCapabilities(renderersFactory)); + getRendererCapabilities(renderersFactory)); } /** @deprecated Use {@link #forSmoothStreaming(Context, Uri, Factory, RenderersFactory)} */ @@ -409,7 +435,7 @@ public final class DownloadHelper { drmSessionManager, /* streamKeys= */ null), trackSelectorParameters, - Util.getRendererCapabilities(renderersFactory)); + getRendererCapabilities(renderersFactory)); } /** diff --git a/library/core/src/main/java/com/google/android/exoplayer2/util/Util.java b/library/core/src/main/java/com/google/android/exoplayer2/util/Util.java index b258e49835..a9a74cdfbb 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/util/Util.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/util/Util.java @@ -51,13 +51,8 @@ import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.ExoPlayerLibraryInfo; import com.google.android.exoplayer2.Format; import com.google.android.exoplayer2.ParserException; -import com.google.android.exoplayer2.Renderer; -import com.google.android.exoplayer2.RendererCapabilities; -import com.google.android.exoplayer2.RenderersFactory; import com.google.android.exoplayer2.SeekParameters; -import com.google.android.exoplayer2.audio.AudioRendererEventListener; import com.google.android.exoplayer2.upstream.DataSource; -import com.google.android.exoplayer2.video.VideoRendererEventListener; import java.io.ByteArrayOutputStream; import java.io.Closeable; import java.io.File; @@ -2008,29 +2003,6 @@ public final class Util { return displaySize; } - /** - * Extract renderer capabilities for the renderers created by the provided renderers factory. - * - * @param renderersFactory A {@link RenderersFactory}. - * @return The {@link RendererCapabilities} for each renderer created by the {@code - * renderersFactory}. - */ - public static RendererCapabilities[] getRendererCapabilities(RenderersFactory renderersFactory) { - Renderer[] renderers = - renderersFactory.createRenderers( - Util.createHandler(), - new VideoRendererEventListener() {}, - new AudioRendererEventListener() {}, - (cues) -> {}, - (metadata) -> {}, - /* drmSessionManager= */ null); - RendererCapabilities[] capabilities = new RendererCapabilities[renderers.length]; - for (int i = 0; i < renderers.length; i++) { - capabilities[i] = renderers[i].getCapabilities(); - } - return capabilities; - } - /** * Returns a string representation of a {@code TRACK_TYPE_*} constant defined in {@link C}. * diff --git a/library/core/src/test/java/com/google/android/exoplayer2/offline/DownloadHelperTest.java b/library/core/src/test/java/com/google/android/exoplayer2/offline/DownloadHelperTest.java index 7c2cbf6a52..d18bc86dae 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/offline/DownloadHelperTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/offline/DownloadHelperTest.java @@ -41,7 +41,6 @@ import com.google.android.exoplayer2.trackselection.MappingTrackSelector.MappedT import com.google.android.exoplayer2.trackselection.TrackSelection; import com.google.android.exoplayer2.upstream.Allocator; import com.google.android.exoplayer2.util.MimeTypes; -import com.google.android.exoplayer2.util.Util; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -134,7 +133,7 @@ public class DownloadHelperTest { TEST_CACHE_KEY, new TestMediaSource(), DownloadHelper.DEFAULT_TRACK_SELECTOR_PARAMETERS_WITHOUT_VIEWPORT, - Util.getRendererCapabilities(renderersFactory)); + DownloadHelper.getRendererCapabilities(renderersFactory)); } @Test