diff --git a/extensions/leanback/src/main/java/com/google/android/exoplayer2/ext/leanback/LeanbackPlayerAdapter.java b/extensions/leanback/src/main/java/com/google/android/exoplayer2/ext/leanback/LeanbackPlayerAdapter.java index 7eb8dac49f..1f990e8465 100644 --- a/extensions/leanback/src/main/java/com/google/android/exoplayer2/ext/leanback/LeanbackPlayerAdapter.java +++ b/extensions/leanback/src/main/java/com/google/android/exoplayer2/ext/leanback/LeanbackPlayerAdapter.java @@ -307,7 +307,11 @@ public final class LeanbackPlayerAdapter extends PlayerAdapter implements Runnab @Override public void onVideoSizeChanged( int width, int height, int unappliedRotationDegrees, float pixelWidthHeightRatio) { - getCallback().onVideoSizeChanged(LeanbackPlayerAdapter.this, width, height); + // There's no way to pass pixelWidthHeightRatio to leanback, so we scale the width that we + // pass to take it into account. This is necessary to ensure that leanback uses the correct + // aspect ratio when playing content with non-square pixels. + int scaledWidth = Math.round(width * pixelWidthHeightRatio); + getCallback().onVideoSizeChanged(LeanbackPlayerAdapter.this, scaledWidth, height); } @Override