Commit Graph

57 Commits

Author SHA1 Message Date
Sagar de54ff304d Improve byteCountEstimate calculation for videos. 2025-03-26 13:59:12 -04:00
Milan Stevanovic f0e6b2944a Eliminate zero-sized samples from contributing to the audio track.
Eliminating unnecessary and potentially counter-productive zero-sized
samples from the audio trak. The Android MP4 multiplexer tends to add
them at the very end of the audio stream. Their presence may negatively
affect the declared audio stream duration, and pose further complications
down the road.

The changes are verified on Samsung A54 (Android 14) device.
2025-03-26 13:59:11 -04:00
Greyson Parrelli 7c7dc679e9 Only write out one MDAT box for a video transcode.
Co-authored-by: Milan Stevanovic <milan@signal.org>
2025-02-11 15:31:06 -05:00
Greyson Parrelli 7b101e13fb Upgrade to kotlin 2.1.0 2024-12-21 12:39:10 -05:00
Alex Hart bdd19f6b47 Replace collectAsState with collectAsStateWithLifecycle. 2024-11-04 09:44:44 -04:00
Greyson Parrelli ee488ea0b8 Rename some video constants for readability. 2024-10-23 15:51:54 -04:00
Greyson Parrelli a8fb4eb21a Rename TruncatingInputStream -> LimitedInputStream. 2024-09-13 10:51:30 -04:00
Greyson Parrelli a6767e4f8a Replace other limiting streams with TruncatingInputStream. 2024-09-13 10:51:30 -04:00
Nicholas Tinsley 69d62d385e Small fixes for the video transcoding playground app. 2024-08-27 13:21:20 -04:00
Nicholas Tinsley 0f7f866562 Experimental HEVC encoding support for videos. 2024-08-27 13:21:20 -04:00
Nicholas Tinsley 076df8c429 Update video sample app to read and write from private app storage. 2024-08-22 13:04:59 -07:00
Nicholas Tinsley 8727f0d90d Update video sample app for API 34. 2024-08-22 13:04:59 -07:00
Nicholas Tinsley f247fd78c6 Constant bitrate video encoding. 2024-07-12 11:01:03 -04:00
Nicholas Tinsley 489b58ad67 Abort transcoding if frame processing gets stuck. 2024-06-24 15:04:02 -04:00
Nicholas Tinsley 65dc0d3f34 Disable verbose logging in media converter. 2024-06-10 14:38:19 -04:00
Cody Henthorne 537fc0ef5c Update to Kotlin 1.9.20, AGP 8.4.0, and Gradle 8.6 2024-06-05 15:45:59 -04:00
Nicholas Tinsley 4a08de370a Fix issue with Mp4Writer with massive time scales. 2024-05-01 16:45:36 -04:00
Nicholas Tinsley eec2685e67 Registration refactor initial scaffolding. 2024-04-18 16:24:13 -04:00
Nicholas Tinsley c53abe0941 Video Sending Redesign 2024-03-06 20:42:01 -04:00
Nicholas Tinsley fc1d60e65b Fallback to matching video decoder by MIME type. 2024-02-23 16:42:57 -05:00
Nicholas Tinsley f18070b78c Revert "Don't recreate attachment InputStream if we don't have to."
This reverts commit 467dae8132.
2024-02-05 10:49:05 -05:00
Nicholas Tinsley 4545e70384 Remix audio remuxing into its own feature flag. 2024-02-03 13:57:49 -05:00
Nicholas Tinsley 467dae8132 Don't recreate attachment InputStream if we don't have to. 2024-01-31 22:13:46 -05:00
Nicholas Tinsley 9a52f4e3ff Remux audio if possible when transcoding.
Addresses #11712, #12674, #12945, #13084, #13346.
2024-01-31 22:12:17 -05:00
Nicholas Tinsley 8d44222097 Enable logcat in the video sample app. 2024-01-31 22:12:17 -05:00
Nicholas Tinsley 9cb2024334 Option to persist task in video sample app. 2024-01-31 22:12:17 -05:00
Nicholas Tinsley 6fc9055221 Calculate video encoding settings based on trimmed duration. 2024-01-25 18:59:57 -05:00
Nicholas Tinsley d2cbf11264 Don't fail video send on postprocess failure. 2024-01-25 13:32:03 -05:00
Nicholas Tinsley ee19520e1b Improve video sample app UI. 2024-01-23 13:18:56 -05:00
Nicholas Tinsley 6f16b3fee7 Add video sample app test dependencies. 2024-01-23 13:18:56 -05:00
Nicholas Tinsley 7666462de2 Support Dolby Vision HDR videos in transcoder. 2024-01-23 13:18:56 -05:00
Nicholas Tinsley 54cf11a78b Request notification permissions for video sample app. 2024-01-23 11:52:04 -05:00
Nicholas Tinsley a36f31c2d0 Allow full disablement of StreamingTranscoder output size limit. 2024-01-23 11:52:04 -05:00
Nicholas Tinsley 69c864f984 Allow slight variations in video output frame count. 2024-01-23 11:52:04 -05:00
Nicholas Tinsley 3c9a7fd329 Reorganize video converter library packages 2024-01-23 11:52:04 -05:00
Nicholas Tinsley 7bb1c58452 Refactor Mp4FaststartPostProcessor. 2024-01-23 11:52:04 -05:00
Nicholas Tinsley 8e7383be05 Make Mp4Writer output compatible with Quicktime. 2024-01-23 11:52:04 -05:00
Nicholas Tinsley c41795e7f0 Extract postprocessor lambda into interface. 2024-01-23 11:52:04 -05:00
Nicholas Tinsley 52120afdbd Remove dependency on Guava limited stream. 2024-01-23 11:52:04 -05:00
Nicholas Tinsley 393730cea9 Fix video sample app output. 2024-01-23 11:52:04 -05:00
Alex Hart 7b9554a42c Align profile screen with figma. 2024-01-23 11:52:03 -05:00
Nicholas Tinsley ddcc06c6b7 Update video transcoding sample cleanup file extension. 2024-01-23 11:52:03 -05:00
Nicholas Tinsley caa5e233df Expose StreamingTranscoder configuration options in sample app. 2024-01-23 11:52:03 -05:00
Nicholas Tinsley c7609f9a2a StreamingTranscoder sample app. 2024-01-23 11:52:03 -05:00
Nicholas Tinsley dd1a15c249 fixup! Refactor video testapp. 2024-01-10 11:52:20 -05:00
Nicholas Tinsley 8b24498fa7 Refactor video testapp. 2024-01-10 11:50:54 -05:00
Greyson Parrelli 766733617e Converted all minor modules to .gradle.kts. 2023-12-04 16:18:11 -05:00
Greyson Parrelli 9cc020a2c7 Move the video lib to the proper directory. 2023-10-17 11:15:56 -04:00
Greyson Parrelli 6145fa213e Move common gradle config into convention plugins. 2023-02-14 14:03:09 -05:00
Greyson Parrelli d9c31a6cd6 Update AGP to 7.4.0 2023-02-14 14:03:09 -05:00