Skip to content

NAT-543: Add and retain Standard Input options - #164

Merged
eugene-mux merged 5 commits into
feature/nat-534-hevc-standard-ingestfrom
em/nat-543-standard-input-options
Oct 16, 2026
Merged

eugene-mux merged 5 commits into
feature/nat-534-hevc-standard-ingestfrom
em/nat-543-standard-input-options

Conversation

@eugene-mux

@eugene-mux eugene-mux commented Oct 1, 2026 •

Copy link
Copy Markdown

Summary

Adds a 1440p resolution preset and public HDR handling options. Fixes option retention across Builder calls, upload lifecycle updates, and cached-upload restoration, and persists the new settings.

Compatibility

  • Existing constructor and Builder JVM signatures remain compatible.
  • Exhaustive Kotlin when expressions over MaximumResolution must handle the new preset.
  • Callers still configure the Direct Upload asset resolution tier separately.

Current limitations

  • Resolution settings reach the legacy transcoder, which does not guarantee the requested output dimensions. The 2160p preset retains its broader source-size allowance.
  • HDR options currently store configuration only. HDR enforcement, reliable resizing, updated conversion policy, and safe resume of generated files require later implementation.
  • The existing ignored chunk-size, retry, and analytics opt-out Builder setters are tracked separately. Analytics opt-out is prioritized for that fix.

Validation

  • 20 tests passed in each debug and release variant: 40 test executions.
  • SDK and sample release builds passed.
  • Packaged-AAR compatibility checks passed against precompiled callers from version 1.0.4.
  • Lifecycle tests cover option retention with unchanged original bytes. Non-default transport and analytics settings also verify retention; media conversion and generated-file resume are outside this test coverage.

Note

Medium Risk
Touches upload configuration, persistence schema, and a new public enum/preset; behavior of actual transcoding is mostly unchanged, but restored uploads now carry different cached metadata.

Overview
Expands Standard Input configuration on MuxUpload.Builder: adds MaximumResolution.Preset2560x1440, a public HdrHandling enum (Preserve / ToneMapToSDR), and hdrHandling() to store the choice alongside existing standardization toggles.

Retention and persistence are the main behavioral fixes: standardization setters now merge into existing InputStandardization instead of replacing unrelated fields; UploadInfo.update defaults preserve the current options; and SharedPreferences JSON now round-trips input_standardization (with safe defaults for legacy or partial records).

Docs clarify that resolution still feeds the legacy transcoder (no guaranteed output size) and HDR is stored only until the new Standard Input pipeline ships. Kotlin clients with exhaustive when on MaximumResolution must handle the new preset.

Adds kotlinx-coroutines-test and Robolectric coverage for builder defaults, persistence edge cases, and lifecycle pause/resume/cache restore with options intact.

Reviewed by Cursor Bugbot for commit 31fe520. Bugbot is set up for automated code reviews on this repo. Configure here.

@eugene-mux
eugene-mux marked this pull request as ready for review October 1, 2026 20:27
@eugene-mux
eugene-mux requested a review from a team as a code owner October 1, 2026 20:27
@eugene-mux
eugene-mux requested a review from daytime-em October 1, 2026 20:28
@eugene-mux
eugene-mux added this pull request to stack #166 October 1, 2026 23:42
@eugene-mux
eugene-mux merged commit 188a0f0 into feature/nat-534-hevc-standard-ingest Oct 16, 2026
3 checks passed
@github-actions github-actions Bot mentioned this pull request Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants