Add util method to extract renderer capabilities.
This instantiates the renderers and extract the capabilities. None of the known renderes incurs any overhead during instantiation. PiperOrigin-RevId: 224118511
This commit is contained in:
parent
0d79208cd6
commit
b993367a3b
@ -48,8 +48,15 @@ import com.google.android.exoplayer2.C;
|
|||||||
import com.google.android.exoplayer2.ExoPlayerLibraryInfo;
|
import com.google.android.exoplayer2.ExoPlayerLibraryInfo;
|
||||||
import com.google.android.exoplayer2.Format;
|
import com.google.android.exoplayer2.Format;
|
||||||
import com.google.android.exoplayer2.ParserException;
|
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.SeekParameters;
|
||||||
|
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.upstream.DataSource;
|
import com.google.android.exoplayer2.upstream.DataSource;
|
||||||
|
import com.google.android.exoplayer2.video.VideoRendererEventListener;
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.Closeable;
|
import java.io.Closeable;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -1842,6 +1849,32 @@ public final class Util {
|
|||||||
return displaySize;
|
return displaySize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extract renderer capabilities for the renderers created by the provided renderers factory.
|
||||||
|
*
|
||||||
|
* @param renderersFactory A {@link RenderersFactory}.
|
||||||
|
* @param drmSessionManager An optional {@link DrmSessionManager} used by the renderers.
|
||||||
|
* @return The {@link RendererCapabilities} for each renderer created by the {@code
|
||||||
|
* renderersFactory}.
|
||||||
|
*/
|
||||||
|
public static RendererCapabilities[] getRendererCapabilities(
|
||||||
|
RenderersFactory renderersFactory,
|
||||||
|
@Nullable DrmSessionManager<FrameworkMediaCrypto> drmSessionManager) {
|
||||||
|
Renderer[] renderers =
|
||||||
|
renderersFactory.createRenderers(
|
||||||
|
new Handler(),
|
||||||
|
new VideoRendererEventListener() {},
|
||||||
|
new AudioRendererEventListener() {},
|
||||||
|
(cues) -> {},
|
||||||
|
(metadata) -> {},
|
||||||
|
drmSessionManager);
|
||||||
|
RendererCapabilities[] capabilities = new RendererCapabilities[renderers.length];
|
||||||
|
for (int i = 0; i < renderers.length; i++) {
|
||||||
|
capabilities[i] = renderers[i].getCapabilities();
|
||||||
|
}
|
||||||
|
return capabilities;
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private static String getSystemProperty(String name) {
|
private static String getSystemProperty(String name) {
|
||||||
try {
|
try {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user