Merge "Set default video parameters in Tx VideoFormatResolver" am: 014af4028e

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1887497

Change-Id: I7e9dc5a852901befaa4afe647f142c5359e80cea
This commit is contained in:
Treehugger Robot 2021-11-29 22:33:38 +00:00 committed by Automerger Merge Worker
commit 1796c893e7

View File

@ -952,6 +952,8 @@ public final class MediaTranscodingManager {
*
* @return the video track format to be used if transcoding should be performed,
* and null otherwise.
* @throws IllegalArgumentException if the hinted source video format contains invalid
* parameters.
*/
@Nullable
public MediaFormat resolveVideoFormat() {
@ -962,20 +964,19 @@ public final class MediaTranscodingManager {
MediaFormat videoTrackFormat = new MediaFormat(mSrcVideoFormatHint);
videoTrackFormat.setString(MediaFormat.KEY_MIME, MediaFormat.MIMETYPE_VIDEO_AVC);
int width = mSrcVideoFormatHint.getInteger(MediaFormat.KEY_WIDTH);
int height = mSrcVideoFormatHint.getInteger(MediaFormat.KEY_HEIGHT);
int width = mSrcVideoFormatHint.getInteger(MediaFormat.KEY_WIDTH, -1);
int height = mSrcVideoFormatHint.getInteger(MediaFormat.KEY_HEIGHT, -1);
if (width <= 0 || height <= 0) {
throw new IllegalArgumentException(
"Source Width and height 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");
}
float frameRate =
mSrcVideoFormatHint.getNumber(MediaFormat.KEY_FRAME_RATE, 30.0)
.floatValue();
if (frameRate <= 0) {
throw new IllegalArgumentException(
"frameRate must be larger than 0");
}
int bitrate = getAVCBitrate(width, height, frameRate);