Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6c251678 authored by Giridhar Tippabathuni's avatar Giridhar Tippabathuni Committed by Naveen Kumar Ponnusamy
Browse files

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
parent 1cfd0c75
Loading
Loading
Loading
Loading
+10 −9
Original line number Diff line number Diff line
@@ -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,21 +964,20 @@ 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);
                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);
                videoTrackFormat.setInteger(MediaFormat.KEY_BIT_RATE, bitrate);