Set default video parameters in Tx VideoFormatResolver
Set default value for getting width, height and framerate video parameters in transcoding VideoFormatResolver. Bug: 198164635 Test: cts-tradefed run singleCommand cts -m CtsMediaTranscodingTestCases -t android.media.mediatranscoding.cts. MediaTranscodingManagerTest#testVideoFormatResolver Change-Id: I00258bc158b932a831df644e641ff226af1d02c7
This commit is contained in:
committed by
Naveen Kumar Ponnusamy
parent
1cfd0c7546
commit
6c2516781d
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user