mirror of
https://github.com/androidx/media.git
synced 2025-05-05 06:30:24 +08:00
Round the frame rate in MediaFormat
Although MediaCodec claims supporting float frame rate, encoder init failed on API21 Nexus 5. Since it's just a performance hint to the codec, it's OK to generalize it to other API versions. PiperOrigin-RevId: 458434650
This commit is contained in:
parent
bce59b1ac2
commit
821ab26702
@ -23,6 +23,7 @@ import static com.google.android.exoplayer2.util.Assertions.checkStateNotNull;
|
|||||||
import static com.google.android.exoplayer2.util.Util.SDK_INT;
|
import static com.google.android.exoplayer2.util.Util.SDK_INT;
|
||||||
import static java.lang.Math.abs;
|
import static java.lang.Math.abs;
|
||||||
import static java.lang.Math.floor;
|
import static java.lang.Math.floor;
|
||||||
|
import static java.lang.Math.round;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.media.MediaCodecInfo;
|
import android.media.MediaCodecInfo;
|
||||||
@ -229,7 +230,7 @@ public final class DefaultEncoderFactory implements Codec.EncoderFactory {
|
|||||||
|
|
||||||
String mimeType = checkNotNull(format.sampleMimeType);
|
String mimeType = checkNotNull(format.sampleMimeType);
|
||||||
MediaFormat mediaFormat = MediaFormat.createVideoFormat(mimeType, format.width, format.height);
|
MediaFormat mediaFormat = MediaFormat.createVideoFormat(mimeType, format.width, format.height);
|
||||||
mediaFormat.setFloat(MediaFormat.KEY_FRAME_RATE, format.frameRate);
|
mediaFormat.setInteger(MediaFormat.KEY_FRAME_RATE, round(format.frameRate));
|
||||||
mediaFormat.setInteger(
|
mediaFormat.setInteger(
|
||||||
MediaFormat.KEY_BIT_RATE,
|
MediaFormat.KEY_BIT_RATE,
|
||||||
supportedVideoEncoderSettings.bitrate != VideoEncoderSettings.NO_VALUE
|
supportedVideoEncoderSettings.bitrate != VideoEncoderSettings.NO_VALUE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user