Android4.1の新しい低レベルメディア機能をAsusTransformerTF300TタブレットのH.264エンコーディングで機能させようとしています。コーデックの解像度を上げようとすると、奇妙な動作が発生します。
MediaFormat mediaFormat = MediaFormat.
createVideoFormat("video/mp4v-es", 320, 240); // WORKS
// MediaFormat mediaFormat = MediaFormat.
// createVideoFormat("video/mp4v-es", 640, 480); // DOESN'T WORK
mediaFormat.setInteger(MediaFormat.KEY_BIT_RATE, 125000);
mediaFormat.setInteger(MediaFormat.KEY_FRAME_RATE, 25);
mediaFormat.setInteger(MediaFormat.KEY_COLOR_FORMAT, MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420Planar);
mediaFormat.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 5);
mediaCodec.configure(mediaFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
mediaCodec.start();
後者の場合、を呼び出すとIllegalStateExceptionが発生しmediaCodec.getInputBuffers();
ます。説明がある人はいますか(またはさらに良い:修正)?
前もって感謝します!