From e86784a2ca5b7144faf9ec5c805ce4689a386d41 Mon Sep 17 00:00:00 2001 From: hkuang Date: Tue, 19 Jan 2021 19:46:24 -0800 Subject: [PATCH] transcoding: Default framerate to be 30fps if framerate not available. Bug: 177930430 Test: atest CtsMediaTranscodingTestCases:MediaTranscodeManagerTest Change-Id: I4d8d0c4cf6b473f833d7a276d4f9db0d38826b05 --- .../java/android/media/MediaTranscodeManager.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/apex/media/framework/java/android/media/MediaTranscodeManager.java b/apex/media/framework/java/android/media/MediaTranscodeManager.java index 55c462973c534..0852fdf7466b0 100644 --- a/apex/media/framework/java/android/media/MediaTranscodeManager.java +++ b/apex/media/framework/java/android/media/MediaTranscodeManager.java @@ -1023,10 +1023,13 @@ public final class MediaTranscodeManager { "Source Width and height must be larger than 0"); } - float frameRate = mSrcVideoFormatHint.getFloat(MediaFormat.KEY_FRAME_RATE); - if (frameRate <= 0) { - throw new IllegalArgumentException( - "frameRate must be larger than 0"); + float frameRate = 30.0f; // default to 30fps. + if (mSrcVideoFormatHint.containsKey(MediaFormat.KEY_FRAME_RATE)) { + frameRate = mSrcVideoFormatHint.getFloat(MediaFormat.KEY_FRAME_RATE); + if (frameRate <= 0) { + throw new IllegalArgumentException( + "frameRate must be larger than 0"); + } } int bitrate = getAVCBitrate(width, height, frameRate);