Commit 67be9e77 by olly Committed by Oliver Woodman

Merge #5462: Making easier to set the playClearSampleWithoutKeys to renderers

Imported from GitHub PR https://github.com/google/ExoPlayer/pull/5462

Pull request for the following issue: #5421
Merge d9d88b079c4ca0533a836b2715a65b924babbb89 into a7381916

PiperOrigin-RevId: 232335113
parent 3818d732
...@@ -58,7 +58,8 @@ public final class ExoPlayerFactory { ...@@ -58,7 +58,8 @@ public final class ExoPlayerFactory {
LoadControl loadControl, LoadControl loadControl,
@Nullable DrmSessionManager<FrameworkMediaCrypto> drmSessionManager, @Nullable DrmSessionManager<FrameworkMediaCrypto> drmSessionManager,
@DefaultRenderersFactory.ExtensionRendererMode int extensionRendererMode) { @DefaultRenderersFactory.ExtensionRendererMode int extensionRendererMode) {
RenderersFactory renderersFactory = new DefaultRenderersFactory(context, extensionRendererMode); RenderersFactory renderersFactory =
new DefaultRenderersFactory(context).setExtensionRendererMode(extensionRendererMode);
return newSimpleInstance( return newSimpleInstance(
context, renderersFactory, trackSelector, loadControl, drmSessionManager); context, renderersFactory, trackSelector, loadControl, drmSessionManager);
} }
...@@ -88,7 +89,9 @@ public final class ExoPlayerFactory { ...@@ -88,7 +89,9 @@ public final class ExoPlayerFactory {
@DefaultRenderersFactory.ExtensionRendererMode int extensionRendererMode, @DefaultRenderersFactory.ExtensionRendererMode int extensionRendererMode,
long allowedVideoJoiningTimeMs) { long allowedVideoJoiningTimeMs) {
RenderersFactory renderersFactory = RenderersFactory renderersFactory =
new DefaultRenderersFactory(context, extensionRendererMode, allowedVideoJoiningTimeMs); new DefaultRenderersFactory(context)
.setExtensionRendererMode(extensionRendererMode)
.setAllowedVideoJoiningTimeMs(allowedVideoJoiningTimeMs);
return newSimpleInstance( return newSimpleInstance(
context, renderersFactory, trackSelector, loadControl, drmSessionManager); context, renderersFactory, trackSelector, loadControl, drmSessionManager);
} }
......
...@@ -20,6 +20,7 @@ import android.content.Context; ...@@ -20,6 +20,7 @@ import android.content.Context;
import android.media.MediaCodec; import android.media.MediaCodec;
import android.media.MediaCrypto; import android.media.MediaCrypto;
import android.os.Handler; import android.os.Handler;
import android.support.annotation.Nullable;
import com.google.android.exoplayer2.DefaultRenderersFactory; import com.google.android.exoplayer2.DefaultRenderersFactory;
import com.google.android.exoplayer2.ExoPlaybackException; import com.google.android.exoplayer2.ExoPlaybackException;
import com.google.android.exoplayer2.Format; import com.google.android.exoplayer2.Format;
...@@ -37,22 +38,37 @@ import java.util.ArrayList; ...@@ -37,22 +38,37 @@ import java.util.ArrayList;
/** /**
* A debug extension of {@link DefaultRenderersFactory}. Provides a video renderer that performs * A debug extension of {@link DefaultRenderersFactory}. Provides a video renderer that performs
* video buffer timestamp assertions. * video buffer timestamp assertions, and modifies the default value for {@link
* #setAllowedVideoJoiningTimeMs(long)} to be {@code 0}.
*/ */
public class DebugRenderersFactory extends DefaultRenderersFactory { public class DebugRenderersFactory extends DefaultRenderersFactory {
public DebugRenderersFactory(Context context) { public DebugRenderersFactory(Context context) {
super(context, DefaultRenderersFactory.EXTENSION_RENDERER_MODE_OFF, 0); super(context);
setAllowedVideoJoiningTimeMs(0);
} }
@Override @Override
protected void buildVideoRenderers(Context context, protected void buildVideoRenderers(
DrmSessionManager<FrameworkMediaCrypto> drmSessionManager, long allowedVideoJoiningTimeMs, Context context,
Handler eventHandler, VideoRendererEventListener eventListener, @ExtensionRendererMode int extensionRendererMode,
@ExtensionRendererMode int extensionRendererMode, ArrayList<Renderer> out) { MediaCodecSelector mediaCodecSelector,
out.add(new DebugMediaCodecVideoRenderer(context, MediaCodecSelector.DEFAULT, @Nullable DrmSessionManager<FrameworkMediaCrypto> drmSessionManager,
allowedVideoJoiningTimeMs, drmSessionManager, eventHandler, eventListener, boolean playClearSamplesWithoutKeys,
MAX_DROPPED_VIDEO_FRAME_COUNT_TO_NOTIFY)); Handler eventHandler,
VideoRendererEventListener eventListener,
long allowedVideoJoiningTimeMs,
ArrayList<Renderer> out) {
out.add(
new DebugMediaCodecVideoRenderer(
context,
mediaCodecSelector,
allowedVideoJoiningTimeMs,
drmSessionManager,
playClearSamplesWithoutKeys,
eventHandler,
eventListener,
MAX_DROPPED_VIDEO_FRAME_COUNT_TO_NOTIFY));
} }
/** /**
...@@ -71,12 +87,24 @@ public class DebugRenderersFactory extends DefaultRenderersFactory { ...@@ -71,12 +87,24 @@ public class DebugRenderersFactory extends DefaultRenderersFactory {
private int minimumInsertIndex; private int minimumInsertIndex;
private boolean skipToPositionBeforeRenderingFirstFrame; private boolean skipToPositionBeforeRenderingFirstFrame;
public DebugMediaCodecVideoRenderer(Context context, MediaCodecSelector mediaCodecSelector, public DebugMediaCodecVideoRenderer(
long allowedJoiningTimeMs, DrmSessionManager<FrameworkMediaCrypto> drmSessionManager, Context context,
Handler eventHandler, VideoRendererEventListener eventListener, MediaCodecSelector mediaCodecSelector,
long allowedJoiningTimeMs,
DrmSessionManager<FrameworkMediaCrypto> drmSessionManager,
boolean playClearSamplesWithoutKeys,
Handler eventHandler,
VideoRendererEventListener eventListener,
int maxDroppedFrameCountToNotify) { int maxDroppedFrameCountToNotify) {
super(context, mediaCodecSelector, allowedJoiningTimeMs, drmSessionManager, false, super(
eventHandler, eventListener, maxDroppedFrameCountToNotify); context,
mediaCodecSelector,
allowedJoiningTimeMs,
drmSessionManager,
playClearSamplesWithoutKeys,
eventHandler,
eventListener,
maxDroppedFrameCountToNotify);
} }
@Override @Override
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment