Fix surface sizing with scaling disabled on the CPU decoder

This commit is contained in:
Cameron Gutman 2014-08-05 23:16:02 -07:00
parent f892db6ee8
commit 8887401644
2 changed files with 9 additions and 1 deletions

View File

@ -610,9 +610,13 @@ public class Game extends Activity implements SurfaceHolder.Callback, OnGenericM
// Resize the surface to match the aspect ratio of the video // Resize the surface to match the aspect ratio of the video
// This must be done after the surface is created. // This must be done after the surface is created.
if (!stretchToFit) { 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);

View File

@ -27,6 +27,10 @@ public class ConfigurableDecoderRenderer implements VideoDecoderRenderer {
return decoderRenderer.setup(width, height, redrawRate, renderTarget, drFlags); return decoderRenderer.setup(width, height, redrawRate, renderTarget, drFlags);
} }
public boolean isHardwareAccelerated() {
return (decoderRenderer instanceof MediaCodecDecoderRenderer);
}
@Override @Override
public boolean start(VideoDepacketizer depacketizer) { public boolean start(VideoDepacketizer depacketizer) {
return decoderRenderer.start(depacketizer); return decoderRenderer.start(depacketizer);