mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
Enable experimentalAdjustSurfaceTextureTransformationMatrix
PiperOrigin-RevId: 655231134
This commit is contained in:
parent
2793ba845e
commit
9a42d03466
@ -60,6 +60,10 @@
|
|||||||
([#3757](https://github.com/google/ExoPlayer/issues/3757)).
|
([#3757](https://github.com/google/ExoPlayer/issues/3757)).
|
||||||
* DRM:
|
* DRM:
|
||||||
* Effect:
|
* Effect:
|
||||||
|
* Add `DefaultVideoFrameProcessor` workaround for minor `SurfaceTexture`
|
||||||
|
scaling. `SurfaceTexture` may include a small scaling that cuts off a
|
||||||
|
1-texel border around the edge of a cropped buffer. This is now handled
|
||||||
|
such that output is closer to expected.
|
||||||
* Muxers:
|
* Muxers:
|
||||||
* IMA extension:
|
* IMA extension:
|
||||||
* Fix bug where clearing the playlist may cause an
|
* Fix bug where clearing the playlist may cause an
|
||||||
|
@ -159,6 +159,7 @@ public final class DefaultVideoFrameProcessor implements VideoFrameProcessor {
|
|||||||
public Builder() {
|
public Builder() {
|
||||||
sdrWorkingColorSpace = WORKING_COLOR_SPACE_DEFAULT;
|
sdrWorkingColorSpace = WORKING_COLOR_SPACE_DEFAULT;
|
||||||
requireRegisteringAllInputFrames = true;
|
requireRegisteringAllInputFrames = true;
|
||||||
|
experimentalAdjustSurfaceTextureTransformationMatrix = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Builder(Factory factory) {
|
private Builder(Factory factory) {
|
||||||
@ -287,8 +288,13 @@ public final class DefaultVideoFrameProcessor implements VideoFrameProcessor {
|
|||||||
*
|
*
|
||||||
* <p>When set, programs sampling GL_TEXTURE_EXTERNAL_OES from {@link SurfaceTexture} must not
|
* <p>When set, programs sampling GL_TEXTURE_EXTERNAL_OES from {@link SurfaceTexture} must not
|
||||||
* attempt to access data in any cropped region, including via GL_LINEAR resampling filter.
|
* attempt to access data in any cropped region, including via GL_LINEAR resampling filter.
|
||||||
|
*
|
||||||
|
* <p>Defaults to {@code true}.
|
||||||
|
*
|
||||||
|
* @deprecated This experimental method will be removed in a future release.
|
||||||
*/
|
*/
|
||||||
@CanIgnoreReturnValue
|
@CanIgnoreReturnValue
|
||||||
|
@Deprecated
|
||||||
public Builder setExperimentalAdjustSurfaceTextureTransformationMatrix(
|
public Builder setExperimentalAdjustSurfaceTextureTransformationMatrix(
|
||||||
boolean experimentalAdjustSurfaceTextureTransformationMatrix) {
|
boolean experimentalAdjustSurfaceTextureTransformationMatrix) {
|
||||||
this.experimentalAdjustSurfaceTextureTransformationMatrix =
|
this.experimentalAdjustSurfaceTextureTransformationMatrix =
|
||||||
|
@ -31,7 +31,6 @@ import androidx.media3.common.Effect;
|
|||||||
import androidx.media3.common.MediaItem;
|
import androidx.media3.common.MediaItem;
|
||||||
import androidx.media3.common.util.Clock;
|
import androidx.media3.common.util.Clock;
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
import androidx.media3.effect.DefaultVideoFrameProcessor;
|
|
||||||
import androidx.media3.effect.Presentation;
|
import androidx.media3.effect.Presentation;
|
||||||
import androidx.media3.exoplayer.mediacodec.MediaCodecInfo;
|
import androidx.media3.exoplayer.mediacodec.MediaCodecInfo;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
@ -209,9 +208,8 @@ public final class SequenceEffectTestUtil {
|
|||||||
/**
|
/**
|
||||||
* Creates a high quality {@link Transformer} instance.
|
* Creates a high quality {@link Transformer} instance.
|
||||||
*
|
*
|
||||||
* <p>The {@link Transformer} is configured to select a specific decoder, use experimental
|
* <p>The {@link Transformer} is configured to select a specific decoder and a large value for
|
||||||
* high-quality {@link DefaultVideoFrameProcessor} configuration, and a large value for {@link
|
* {@link VideoEncoderSettings#bitrate}.
|
||||||
* VideoEncoderSettings#bitrate}.
|
|
||||||
*/
|
*/
|
||||||
public static Transformer createHqTransformer(
|
public static Transformer createHqTransformer(
|
||||||
Context context, MediaCodecInfo decoderMediaCodecInfo) {
|
Context context, MediaCodecInfo decoderMediaCodecInfo) {
|
||||||
@ -223,10 +221,6 @@ public final class SequenceEffectTestUtil {
|
|||||||
.build();
|
.build();
|
||||||
AssetLoader.Factory assetLoaderFactory =
|
AssetLoader.Factory assetLoaderFactory =
|
||||||
new DefaultAssetLoaderFactory(context, decoderFactory, Clock.DEFAULT);
|
new DefaultAssetLoaderFactory(context, decoderFactory, Clock.DEFAULT);
|
||||||
DefaultVideoFrameProcessor.Factory videoFrameProcessorFactory =
|
|
||||||
new DefaultVideoFrameProcessor.Factory.Builder()
|
|
||||||
.setExperimentalAdjustSurfaceTextureTransformationMatrix(true)
|
|
||||||
.build();
|
|
||||||
Codec.EncoderFactory encoderFactory =
|
Codec.EncoderFactory encoderFactory =
|
||||||
new DefaultEncoderFactory.Builder(context)
|
new DefaultEncoderFactory.Builder(context)
|
||||||
.setRequestedVideoEncoderSettings(
|
.setRequestedVideoEncoderSettings(
|
||||||
@ -234,7 +228,6 @@ public final class SequenceEffectTestUtil {
|
|||||||
.build();
|
.build();
|
||||||
return new Transformer.Builder(context)
|
return new Transformer.Builder(context)
|
||||||
.setAssetLoaderFactory(assetLoaderFactory)
|
.setAssetLoaderFactory(assetLoaderFactory)
|
||||||
.setVideoFrameProcessorFactory(videoFrameProcessorFactory)
|
|
||||||
.setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory(encoderFactory))
|
.setEncoderFactory(new AndroidTestUtil.ForceEncodeEncoderFactory(encoderFactory))
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user