mirror of
https://github.com/moonlight-stream/moonlight-android.git
synced 2025-07-20 11:33:06 +00:00
Fix a regression in video scaling after the CPU decoding fix
This commit is contained in:
parent
1b1d4399a9
commit
9393bf7f79
@ -164,13 +164,6 @@ public class Game extends Activity implements SurfaceHolder.Callback, OnGenericM
|
|||||||
SurfaceView sv = (SurfaceView) findViewById(R.id.surfaceView);
|
SurfaceView sv = (SurfaceView) findViewById(R.id.surfaceView);
|
||||||
sv.setOnGenericMotionListener(this);
|
sv.setOnGenericMotionListener(this);
|
||||||
sv.setOnTouchListener(this);
|
sv.setOnTouchListener(this);
|
||||||
|
|
||||||
SurfaceHolder sh = sv.getHolder();
|
|
||||||
|
|
||||||
if (stretchToFit) {
|
|
||||||
// Set the surface to the size of the video
|
|
||||||
sh.setFixedSize(width, height);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Warn the user if they're on a metered connection
|
// Warn the user if they're on a metered connection
|
||||||
checkDataConnection();
|
checkDataConnection();
|
||||||
@ -191,7 +184,15 @@ public class Game extends Activity implements SurfaceHolder.Callback, OnGenericM
|
|||||||
PlatformBinding.getCryptoProvider(this));
|
PlatformBinding.getCryptoProvider(this));
|
||||||
keybTranslator = new KeyboardTranslator(conn);
|
keybTranslator = new KeyboardTranslator(conn);
|
||||||
controllerHandler = new ControllerHandler(conn);
|
controllerHandler = new ControllerHandler(conn);
|
||||||
|
|
||||||
decoderRenderer = new ConfigurableDecoderRenderer();
|
decoderRenderer = new ConfigurableDecoderRenderer();
|
||||||
|
decoderRenderer.initializeWithFlags(drFlags);
|
||||||
|
|
||||||
|
SurfaceHolder sh = sv.getHolder();
|
||||||
|
if (stretchToFit || !decoderRenderer.isHardwareAccelerated()) {
|
||||||
|
// Set the surface to the size of the video
|
||||||
|
sh.setFixedSize(width, height);
|
||||||
|
}
|
||||||
|
|
||||||
// The connection will be started when the surface gets created
|
// The connection will be started when the surface gets created
|
||||||
sh.addCallback(this);
|
sh.addCallback(this);
|
||||||
@ -613,10 +614,6 @@ public class Game extends Activity implements SurfaceHolder.Callback, OnGenericM
|
|||||||
if (!stretchToFit && decoderRenderer.isHardwareAccelerated()) {
|
if (!stretchToFit && decoderRenderer.isHardwareAccelerated()) {
|
||||||
resizeSurfaceWithAspectRatio((SurfaceView) findViewById(R.id.surfaceView), width, height);
|
resizeSurfaceWithAspectRatio((SurfaceView) findViewById(R.id.surfaceView), width, height);
|
||||||
}
|
}
|
||||||
else if (!decoderRenderer.isHardwareAccelerated()) {
|
|
||||||
// Make sure the surface is the correct size since we render directly to it
|
|
||||||
holder.setFixedSize(width, height);
|
|
||||||
}
|
|
||||||
|
|
||||||
conn.start(PlatformBinding.getDeviceName(), holder, drFlags,
|
conn.start(PlatformBinding.getDeviceName(), holder, drFlags,
|
||||||
PlatformBinding.getAudioRenderer(), decoderRenderer);
|
PlatformBinding.getAudioRenderer(), decoderRenderer);
|
||||||
|
@ -16,18 +16,27 @@ public class ConfigurableDecoderRenderer implements VideoDecoderRenderer {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean setup(int width, int height, int redrawRate, Object renderTarget, int drFlags) {
|
public boolean setup(int width, int height, int redrawRate, Object renderTarget, int drFlags) {
|
||||||
|
if (decoderRenderer == null) {
|
||||||
|
throw new IllegalStateException("ConfigurableDecoderRenderer not initialized");
|
||||||
|
}
|
||||||
|
return decoderRenderer.setup(width, height, redrawRate, renderTarget, drFlags);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void initializeWithFlags(int drFlags) {
|
||||||
if ((drFlags & VideoDecoderRenderer.FLAG_FORCE_HARDWARE_DECODING) != 0 ||
|
if ((drFlags & VideoDecoderRenderer.FLAG_FORCE_HARDWARE_DECODING) != 0 ||
|
||||||
((drFlags & VideoDecoderRenderer.FLAG_FORCE_SOFTWARE_DECODING) == 0 &&
|
((drFlags & VideoDecoderRenderer.FLAG_FORCE_SOFTWARE_DECODING) == 0 &&
|
||||||
MediaCodecDecoderRenderer.findSafeDecoder() != null)) {
|
MediaCodecDecoderRenderer.findSafeDecoder() != null)) {
|
||||||
decoderRenderer = new MediaCodecDecoderRenderer();
|
decoderRenderer = new MediaCodecDecoderRenderer();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
decoderRenderer = new AndroidCpuDecoderRenderer();
|
decoderRenderer = new AndroidCpuDecoderRenderer();
|
||||||
}
|
}
|
||||||
return decoderRenderer.setup(width, height, redrawRate, renderTarget, drFlags);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isHardwareAccelerated() {
|
public boolean isHardwareAccelerated() {
|
||||||
|
if (decoderRenderer == null) {
|
||||||
|
throw new IllegalStateException("ConfigurableDecoderRenderer not initialized");
|
||||||
|
}
|
||||||
return (decoderRenderer instanceof MediaCodecDecoderRenderer);
|
return (decoderRenderer instanceof MediaCodecDecoderRenderer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user