From be9ae5c8f286a8863514b0060b19f75f4269788b Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Wed, 22 Jul 2026 22:04:16 -0400 Subject: [PATCH] Remove some unnecessary transcode size limits. --- .../securesms/jobs/AttachmentCompressionJob.java | 2 +- .../mediasend/v2/review/MediaReviewFragment.kt | 2 +- .../org/signal/mediasend/capture/CameraXFragment.kt | 10 +++------- .../mediasend/capture/MediaCameraCaptureScreen.kt | 9 +++++---- .../securesms/video/StreamingTranscoder.java | 2 +- 5 files changed, 11 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentCompressionJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentCompressionJob.java index a80decda50..d63813544a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentCompressionJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentCompressionJob.java @@ -260,7 +260,7 @@ public final class AttachmentCompressionJob extends BaseJob { } } - StreamingTranscoder transcoder = new StreamingTranscoder(dataSource, options, constraints.getVideoTranscodingSettings(), constraints.getCompressedVideoMaxSize(), RemoteConfig.allowAudioRemuxing()); + StreamingTranscoder transcoder = new StreamingTranscoder(dataSource, options, constraints.getVideoTranscodingSettings(), AttachmentUploadJob.getMaxPlaintextSize(), RemoteConfig.allowAudioRemuxing()); if (transcoder.isTranscodeRequired()) { Log.i(TAG, "Compressing with streaming muxer"); diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewFragment.kt index b1622ce1bf..176d2f0669 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewFragment.kt @@ -610,7 +610,7 @@ class MediaReviewFragment : Fragment(R.layout.v2_media_review_fragment), Schedul videoTimeLine.unregisterDragListener() } val size: Long = tryGetUriSize(requireContext(), uri, Long.MAX_VALUE) - val maxSend = sharedViewModel.getMediaConstraints().getEditorVideoMaxSize() + val maxSend = sharedViewModel.getMediaConstraints().editorVideoMaxSize if (size > maxSend) { videoTimeLine.setTimeLimit(TranscodingConfig.calculateMaxVideoUploadDurationInSeconds(state.transcodingConfigs, state.getOrCreateVideoTrimData(uri).totalInputDurationUs.microseconds), TimeUnit.SECONDS) } diff --git a/feature/media-send/src/main/java/org/signal/mediasend/capture/CameraXFragment.kt b/feature/media-send/src/main/java/org/signal/mediasend/capture/CameraXFragment.kt index 745f73ad8a..5b7ea30233 100644 --- a/feature/media-send/src/main/java/org/signal/mediasend/capture/CameraXFragment.kt +++ b/feature/media-send/src/main/java/org/signal/mediasend/capture/CameraXFragment.kt @@ -158,7 +158,7 @@ class CameraXFragment : ComposeFragment(), CameraFragment { CameraXScreen( state = state, onEvent = { event -> controller?.onCameraXScreenEvent(event) }, - maxVideoDurationSeconds = controller?.let { getMaxVideoDurationInSeconds(it.mediaConstraints, it.maxVideoDuration) } ?: 0, + maxVideoDurationSeconds = controller?.let { controller -> controller.maxVideoDuration.takeIf { it > 0 } ?: getMaxVideoDurationInSeconds(controller.mediaConstraints) } ?: 0, onCheckPermissions = { checkPermissions(state.isVideoEnabled) }, hasCameraPermission = { hasCameraPermission() }, onRequestMicPermission = { requestMicPermission() } @@ -268,12 +268,8 @@ class CameraXFragment : ComposeFragment(), CameraFragment { } } -internal fun getMaxVideoDurationInSeconds(mediaConstraints: MediaConstraints, maxVideoDuration: Int): Int { - var maxDuration = VideoUtil.getMaxVideoRecordDurationInSeconds(mediaConstraints) - if (maxVideoDuration > 0) { - maxDuration = maxVideoDuration - } - return maxDuration +internal fun getMaxVideoDurationInSeconds(mediaConstraints: MediaConstraints): Int { + return VideoUtil.getMaxVideoRecordDurationInSeconds(mediaConstraints) } /** diff --git a/feature/media-send/src/main/java/org/signal/mediasend/capture/MediaCameraCaptureScreen.kt b/feature/media-send/src/main/java/org/signal/mediasend/capture/MediaCameraCaptureScreen.kt index 66038426b7..c230dc5a15 100644 --- a/feature/media-send/src/main/java/org/signal/mediasend/capture/MediaCameraCaptureScreen.kt +++ b/feature/media-send/src/main/java/org/signal/mediasend/capture/MediaCameraCaptureScreen.kt @@ -30,10 +30,11 @@ fun MediaCameraCaptureScreen( }, onEvent = { event -> onEvent(MediaCaptureScreenEvent.Camera(event)) }, maxVideoDurationSeconds = remember(state.isStory) { - getMaxVideoDurationInSeconds( - mediaConstraints = state.mediaConstraints, - maxVideoDuration = if (state.isStory) state.storyMaxVideoDuration.inWholeSeconds.toInt() else -1 - ) + if (state.isStory) { + state.storyMaxVideoDuration.inWholeSeconds.toInt() + } else { + getMaxVideoDurationInSeconds(mediaConstraints = state.mediaConstraints) + } }, onCheckPermissions = {}, // TODO [media-send] onRequestMicPermission = {}, // TODO [media-send] diff --git a/lib/video/src/main/java/org/thoughtcrime/securesms/video/StreamingTranscoder.java b/lib/video/src/main/java/org/thoughtcrime/securesms/video/StreamingTranscoder.java index 208f8c96f6..c69174267f 100644 --- a/lib/video/src/main/java/org/thoughtcrime/securesms/video/StreamingTranscoder.java +++ b/lib/video/src/main/java/org/thoughtcrime/securesms/video/StreamingTranscoder.java @@ -164,7 +164,7 @@ public final class StreamingTranscoder { final boolean sizeLimitEnabled = 0 < upperSizeLimit; if (sizeLimitEnabled && upperSizeLimit < fileSizeEstimate) { - throw new VideoSizeException("Size constraints could not be met!"); + throw new VideoSizeException("Size constraints could not be met! upperSizeLimit: " + upperSizeLimit + ", fileSizeEstimate: " + fileSizeEstimate); } final long startTime = System.currentTimeMillis();