Skip to content

Just Player 2.1 transition build (v0.0.15) - #51

Open
ARST113 wants to merge 52 commits into
mainfrom
codex/just-player-0.0.15
Open

ARST113 wants to merge 52 commits into
mainfrom
codex/just-player-0.0.15

Conversation

@ARST113

@ARST113 ARST113 commented Aug 27, 2026

Copy link
Copy Markdown
Owner

Transition DDD 0.0.15 to the Just+ v1.2.0 UI/playback stack while preserving the existing Android application identity and DDD compatibility layer.

Key points:

  • Just+ becomes the normal playback/UI path.
  • Existing DDD code is compiled as a legacy library and remains available only for HEVC decoder fallback.
  • Just+ HEVC decoder failures automatically reopen the exact launch in the DDD/libavcodec path.
  • Existing DDD broadcast/local bridge and DddSync server events are observed from the Just+ Media3 Player.
  • ddd_* query/fragment metadata and X-Lampa-DDD-* headers are filtered before media requests.
  • CI builds a just-player-v0.0.15-debug.apk from upstream Just+ v1.2.0 plus reproducible patches.

This PR is intentionally a transition step: after it is stable, the legacy HEVC Activity fallback can be replaced with a dedicated Media3 FFmpeg video renderer.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ff48002090

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread settings.gradle.kts

// Just Player 2.1 transition build. The upstream source is fetched by
// scripts/prepare-justplus.sh immediately before Gradle is invoked in CI.
if (providers.gradleProperty("useJustPlus").orNull == "true") {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Route release builds through Just+

When v0.0.15 is tagged or the release workflow is dispatched, .github/workflows/android-release.yml still runs ./gradlew assembleRelease without preparing the upstream source or passing -PuseJustPlus=true. Because this condition excludes every Just+ module, that workflow builds and publishes the old :app APK rather than the transition application containing the new UI, bridge interop, and HEVC fallback.

Useful? React with 👍 / 👎.

Comment on lines +177 to +179
if (config.mode == BridgeMode.LOCAL || config.mode == BridgeMode.BOTH) {
LocalBridgeManager.stopDelayed()
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep the local bridge alive after playback

For launches using LOCAL or BOTH, destroying the Just+ activity now schedules LocalBridgeManager to stop after five seconds. Lampa reads /state and /events after returning from the player, and the existing legacy activity deliberately leaves this process-level server running for that reason; this teardown makes the final state and event history unavailable shortly after playback closes.

Useful? React with 👍 / 👎.

Comment on lines +72 to +74
if (config.enabled && (config.mode == BridgeMode.LOCAL || config.mode == BridgeMode.BOTH)) {
val store = LocalBridgeManager.startOrReuse(config)
transports += LocalBridgeTransport(config, store)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Degrade gracefully when the local bridge cannot bind

When the configured local port is already occupied or otherwise cannot be bound, startOrReuse synchronously throws from ServerSocket.bind. This unguarded call runs inside attach during Just+ player initialization, so a local-bridge failure aborts the entire playback activity; the existing bridge setup catches this failure and continues playback without the unavailable transport.

Useful? React with 👍 / 👎.

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.

1 participant