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