diff --git a/.github/workflows/emulator_script.sh b/.github/workflows/emulator_script.sh index 5d4b7297..6ee76a11 100755 --- a/.github/workflows/emulator_script.sh +++ b/.github/workflows/emulator_script.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash adb logcat -c -adb logcat CameraOrchestrator:I CameraEngine:I CameraView:I CameraCallbacks:I CameraIntegrationTest:I MediaEncoderEngine:I AudioMediaEncoder:I VideoMediaEncoder:I TextureMediaEncoder:I *:E -v color & +adb logcat CameraOrchestrator:I CameraEngine:I CameraView:I CameraCallbacks:I CameraIntegrationTest:I MediaEncoderEngine:I MediaEncoder:I AudioMediaEncoder:I VideoMediaEncoder:I TextureMediaEncoder:I *:E -v color & ./gradlew cameraview:connectedCheck \ No newline at end of file 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 df5d9118..92d310b0 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 @@ -534,14 +534,17 @@ public abstract class MediaEncoder { * max length allowed. We will move to {@link #STATE_LIMIT_REACHED} and request a stop. */ private void onMaxLengthReached() { - if (mMaxLengthReached) return; - mMaxLengthReached = true; - if (mState >= STATE_LIMIT_REACHED) { - LOG.w(mName, "onMaxLengthReached: Reached in wrong state. Aborting.", mState); + if (mMaxLengthReached) { + LOG.w(mName, "onMaxLengthReached: Called twice."); } else { - LOG.w(mName, "onMaxLengthReached: Requesting a stop."); - setState(STATE_LIMIT_REACHED); - mController.requestStop(mTrackIndex); + mMaxLengthReached = true; + if (mState >= STATE_LIMIT_REACHED) { + LOG.w(mName, "onMaxLengthReached: Reached in wrong state. Aborting.", mState); + } else { + LOG.w(mName, "onMaxLengthReached: Requesting a stop."); + setState(STATE_LIMIT_REACHED); + mController.requestStop(mTrackIndex); + } } } diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/TextureMediaEncoder.java b/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/TextureMediaEncoder.java index e64efd43..20f5bb8a 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/TextureMediaEncoder.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/TextureMediaEncoder.java @@ -181,6 +181,7 @@ public class TextureMediaEncoder extends VideoMediaEncoder { LOG.i("onEvent -", "frameNumber:", mFrameNumber, "timestampUs:", frame.timestampUs(), + "hasReachedMaxLength:", hasReachedMaxLength(), "- draining."); drainOutput(false);