Commit 6b521b29 by hschlueter Committed by Marc Baechinger

Use video passthrough if clipping starts at key frame.

PiperOrigin-RevId: 451380267
parent 89e239ee
......@@ -756,6 +756,7 @@ public final class Transformer {
removeAudio,
removeVideo,
transformationRequest,
mediaItem.clippingConfiguration.startsAtKeyFrame,
videoFrameEffects,
encoderFactory,
decoderFactory,
......@@ -869,6 +870,7 @@ public final class Transformer {
private final boolean removeAudio;
private final boolean removeVideo;
private final TransformationRequest transformationRequest;
private final boolean clippingStartsAtKeyFrame;
private final ImmutableList<GlEffect> videoFrameEffects;
private final Codec.EncoderFactory encoderFactory;
private final Codec.DecoderFactory decoderFactory;
......@@ -882,6 +884,7 @@ public final class Transformer {
boolean removeAudio,
boolean removeVideo,
TransformationRequest transformationRequest,
boolean clippingStartsAtKeyFrame,
ImmutableList<GlEffect> videoFrameEffects,
Codec.EncoderFactory encoderFactory,
Codec.DecoderFactory decoderFactory,
......@@ -893,6 +896,7 @@ public final class Transformer {
this.removeAudio = removeAudio;
this.removeVideo = removeVideo;
this.transformationRequest = transformationRequest;
this.clippingStartsAtKeyFrame = clippingStartsAtKeyFrame;
this.videoFrameEffects = videoFrameEffects;
this.encoderFactory = encoderFactory;
this.decoderFactory = decoderFactory;
......@@ -930,6 +934,7 @@ public final class Transformer {
muxerWrapper,
mediaClock,
transformationRequest,
clippingStartsAtKeyFrame,
videoFrameEffects,
encoderFactory,
decoderFactory,
......
......@@ -35,6 +35,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
private static final String TAG = "TVideoRenderer";
private final Context context;
private final boolean clippingStartsAtKeyFrame;
private final ImmutableList<GlEffect> effects;
private final Codec.EncoderFactory encoderFactory;
private final Codec.DecoderFactory decoderFactory;
......@@ -49,6 +50,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
MuxerWrapper muxerWrapper,
TransformerMediaClock mediaClock,
TransformationRequest transformationRequest,
boolean clippingStartsAtKeyFrame,
ImmutableList<GlEffect> effects,
Codec.EncoderFactory encoderFactory,
Codec.DecoderFactory decoderFactory,
......@@ -57,6 +59,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
Transformer.DebugViewProvider debugViewProvider) {
super(C.TRACK_TYPE_VIDEO, muxerWrapper, mediaClock, transformationRequest, fallbackListener);
this.context = context;
this.clippingStartsAtKeyFrame = clippingStartsAtKeyFrame;
this.effects = effects;
this.encoderFactory = encoderFactory;
this.decoderFactory = decoderFactory;
......@@ -110,8 +113,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
}
private boolean shouldPassthrough(Format inputFormat) {
// TODO(b/233988291): Use passthrough pipeline if the clipping start is a key-frame.
if (startPositionOffsetUs != 0) {
if (startPositionOffsetUs != 0 && !clippingStartsAtKeyFrame) {
return false;
}
if (encoderFactory.videoNeedsEncoding()) {
......
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