diff options
Diffstat (limited to 'android/sdl_android/src/main/java/com/smartdevicelink/encoder/VirtualDisplayEncoder.java')
-rw-r--r-- | android/sdl_android/src/main/java/com/smartdevicelink/encoder/VirtualDisplayEncoder.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/encoder/VirtualDisplayEncoder.java b/android/sdl_android/src/main/java/com/smartdevicelink/encoder/VirtualDisplayEncoder.java index 322ce0f23..79515b5ee 100644 --- a/android/sdl_android/src/main/java/com/smartdevicelink/encoder/VirtualDisplayEncoder.java +++ b/android/sdl_android/src/main/java/com/smartdevicelink/encoder/VirtualDisplayEncoder.java @@ -480,6 +480,27 @@ public class VirtualDisplayEncoder { // Create a MediaCodec encoder and configure it. Get a Surface we can use for recording into. try { mVideoEncoder = MediaCodec.createEncoderByType(videoMimeType); + + int width = streamingParams.getResolution().getResolutionWidth(); + int height = streamingParams.getResolution().getResolutionHeight(); + int frameRate = streamingParams.getFrameRate(); + + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { + boolean streamSupported = mVideoEncoder.getCodecInfo() + .getCapabilitiesForType(videoMimeType) + .getVideoCapabilities() + .areSizeAndRateSupported(width, height, frameRate); + + if (!streamSupported) { + String errorString = "Video streaming " + width + " by " + height + " at " + + frameRate + "fps is unsupported on this device"; + + DebugTool.logError(TAG, errorString); + + return null; + } + } + mVideoEncoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE); Surface surface = mVideoEncoder.createInputSurface(); //prepared |