diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/AudioMediaEncoder.java b/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/AudioMediaEncoder.java index e24a6273..070eb82f 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/AudioMediaEncoder.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/AudioMediaEncoder.java @@ -28,7 +28,7 @@ public class AudioMediaEncoder extends MediaEncoder { private static final String TAG = AudioMediaEncoder.class.getSimpleName(); private static final CameraLogger LOG = CameraLogger.create(TAG); - private static final boolean PERFORMANCE_DEBUG = false; + private static final boolean PERFORMANCE_DEBUG = true; private static final boolean PERFORMANCE_FILL_GAPS = true; private boolean mRequestStop = false; @@ -67,7 +67,7 @@ public class AudioMediaEncoder extends MediaEncoder { mConfig.channels); audioFormat.setInteger(MediaFormat.KEY_AAC_PROFILE, MediaCodecInfo.CodecProfileLevel.AACObjectLC); audioFormat.setInteger(MediaFormat.KEY_CHANNEL_MASK, mConfig.audioFormatChannels()); - audioFormat.setInteger(MediaFormat.KEY_BIT_RATE, mConfig.bitRate); // TODO multiply by channels? + audioFormat.setInteger(MediaFormat.KEY_BIT_RATE, mConfig.bitRate); try { mMediaCodec = MediaCodec.createEncoderByType(mConfig.mimeType); } catch (IOException e) { @@ -157,7 +157,6 @@ public class AudioMediaEncoder extends MediaEncoder { @Override public void run() { - mLastTimeUs = System.nanoTime() / 1000L; mAudioRecord.startRecording(); while (!mRequestStop) { read(false); diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/MediaEncoder.java b/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/MediaEncoder.java index eec9cbee..d3efef0d 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/MediaEncoder.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/MediaEncoder.java @@ -125,6 +125,8 @@ public abstract class MediaEncoder { private long mStartTimeUs = Long.MIN_VALUE; // In unknown reference private long mLastTimeUs = 0; + private long mDebugSetStateTimestamp = Long.MIN_VALUE; + /** * Needs a readable name for the thread and for logging. * @param name a name @@ -135,6 +137,12 @@ public abstract class MediaEncoder { } private void setState(int newState) { + if (mDebugSetStateTimestamp == Long.MIN_VALUE) { + mDebugSetStateTimestamp = System.currentTimeMillis(); + } + long millis = System.currentTimeMillis() - mDebugSetStateTimestamp; + mDebugSetStateTimestamp = System.currentTimeMillis(); + String newStateName = null; switch (newState) { case STATE_NONE: newStateName = "NONE"; break; @@ -146,7 +154,7 @@ public abstract class MediaEncoder { case STATE_STOPPING: newStateName = "STOPPING"; break; case STATE_STOPPED: newStateName = "STOPPED"; break; } - LOG.w(mName, "setState:", newStateName); + LOG.w(mName, "setState:", newStateName, "millisSinceLastState:", millis); mState = newState; } diff --git a/demo/src/main/res/layout/activity_camera.xml b/demo/src/main/res/layout/activity_camera.xml index 15c40ade..1f94941c 100644 --- a/demo/src/main/res/layout/activity_camera.xml +++ b/demo/src/main/res/layout/activity_camera.xml @@ -23,6 +23,7 @@ app:cameraGrid="off" app:cameraFlash="off" app:cameraAudio="on" + app:cameraFacing="front" app:cameraGestureTap="autoFocus" app:cameraGestureLongTap="none" app:cameraGesturePinch="zoom"