Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
104c182
Prepare Just+ transition modules for v0.0.15
ARST113 Aug 27, 2026
e9aadec
Align Gradle settings with embedded Just+ modules
ARST113 Aug 27, 2026
0d0c33a
Add legacy DDD library for HEVC fallback
ARST113 Aug 27, 2026
9c411af
Declare legacy DDD fallback activities
ARST113 Aug 27, 2026
79d5d9f
Bridge Just+ playback into DDD local and remote sync
ARST113 Aug 27, 2026
610476f
Add reproducible Just+ v1.2.0 transition patcher
ARST113 Aug 27, 2026
ff48002
Build Just Player transition APK in CI
ARST113 Aug 27, 2026
36fd786
Fix Just+ v0.0.15 Gradle version literals
ARST113 Aug 27, 2026
499c8bb
Fix v0.0.15 CI Gradle version configuration
ARST113 Aug 27, 2026
0aee783
Apply KSP after legacy Android target creation
ARST113 Aug 27, 2026
760c570
Expose Android library plugin for legacy module
ARST113 Aug 27, 2026
918d066
Use typed Android library plugin before Kotlin and KSP
ARST113 Aug 27, 2026
0da867a
Register Android library plugin in root build
ARST113 Aug 27, 2026
2505b36
Fix legacy DDD compile against its Media3 API
ARST113 Aug 27, 2026
1d9b4f0
Add temporary CI failure log capture for v0.0.15
ARST113 Aug 27, 2026
acb49d2
Avoid recursive submodule checkout; Just+ is prepared explicitly
ARST113 Aug 27, 2026
36115f5
Fix CI: build already succeeds; remove temporary failure-log path
ARST113 Aug 27, 2026
5db8691
Capture exact Gradle failure output through GitHub Contents API
ARST113 Aug 27, 2026
9c2e08f
Finalize CI after confirmed successful Gradle build
ARST113 Aug 27, 2026
9435338
Fix CI diagnostic capture so failed Gradle output is inspectable
ARST113 Aug 27, 2026
2d9f556
Remove temporary CI diagnostics after successful transition build
ARST113 Aug 27, 2026
57a3a60
Upload Gradle output as an artifact to diagnose intermittent build fa…
ARST113 Aug 27, 2026
bbb7ba4
Fix legacy vector drawable resource packaging
ARST113 Aug 27, 2026
1db15de
Fix legacy vector resource build on API 24+
ARST113 Aug 27, 2026
5d785b3
Align Just Player transition minSdk with legacy module
ARST113 Aug 27, 2026
d542fce
Checkout FFmpeg submodule for legacy HEVC build
ARST113 Aug 27, 2026
e6d8977
Deduplicate shared C++ runtime in transition APK
ARST113 Aug 27, 2026
9a490a2
Fix legacy JNI packaging syntax
ARST113 Aug 27, 2026
e24588e
Add explicit AndroidX DocumentFile dependency
ARST113 Aug 27, 2026
a53fc50
Build v0.0.15 release from Just Player transition app
ARST113 Aug 27, 2026
a2c6345
Add Media3 OkHttp runtime for legacy HEVC fallback
ARST113 Aug 27, 2026
0d81a19
Ship Media3 OkHttp runtime for legacy HEVC fallback
ARST113 Aug 27, 2026
a3df756
Expose native fallback Surface to Just Player controls
ARST113 Aug 27, 2026
55e29ef
Allow direct software HEVC start from Just Player fallback
ARST113 Aug 27, 2026
11bb352
Align legacy fallback compile API with Just+ Media3
ARST113 Aug 27, 2026
ed1bdf6
Inspect bundled Media3 FFmpeg video support
ARST113 Aug 27, 2026
f82f08e
Add Media3 facade for DDD software HEVC fallback
ARST113 Aug 27, 2026
4343583
Add Media3 HEVC software video extension build
ARST113 Aug 27, 2026
677aa34
Build HEVC FFmpeg renderer before Just Player
ARST113 Aug 27, 2026
de687bc
Build HEVC FFmpeg renderer before Just Player
ARST113 Aug 27, 2026
db26f8f
Keep HEVC software fallback inside Just Player UI
ARST113 Aug 27, 2026
f912444
Fetch full FFmpeg video renderer donor commit
ARST113 Aug 27, 2026
f285906
Avoid sdkmanager yes pipe failure
ARST113 Aug 27, 2026
76995dc
Inspect bundled FFmpeg video renderer capabilities
ARST113 Aug 27, 2026
dfcf966
Enable Android FFmpeg cross compilation
ARST113 Aug 27, 2026
a8fb5c1
Fix Android cross compilation for HEVC FFmpeg renderer
ARST113 Aug 27, 2026
bc856cc
Speed CI by checking out only required FFmpeg submodule
ARST113 Aug 27, 2026
5c0b67b
Disable libyuv SME for NDK 27
ARST113 Aug 27, 2026
e031f68
Disable unsupported libyuv SME kernels on NDK 27
ARST113 Aug 27, 2026
1b98883
Build HEVC FFmpeg extension only for arm64-v8a
ARST113 Aug 27, 2026
fd5f9ff
Fix Media3 module path before ABI patch
ARST113 Aug 27, 2026
2ddd072
Patch Media3 Kotlin Gradle ABI configuration
ARST113 Aug 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 56 additions & 5 deletions .github/workflows/android-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ on:
- main
workflow_dispatch:

permissions:
contents: read

jobs:
build:
runs-on: ubuntu-latest
Expand All @@ -17,22 +20,70 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0
submodules: false

- name: Initialize required FFmpeg submodule
run: git submodule update --init --depth 1 native/ffmpeg-src

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17

- name: Prepare Just+ v1.2.0 transition source
run: |
bash scripts/prepare-justplus.sh
bash scripts/fix-justplus-v015-gradle.sh

- name: Inspect bundled FFmpeg extension
run: |
set -euo pipefail
AAR=".justplus-upstream/app/libs/lib-decoder-ffmpeg-release.aar"
unzip -p "$AAR" classes.jar > /tmp/ffmpeg-classes.jar
echo "=== FFmpeg renderer classes ==="
jar tf /tmp/ffmpeg-classes.jar | grep -E 'ExperimentalFfmpegVideoRenderer|FfmpegVideoDecoder|FfmpegAudioRenderer|FfmpegDecoder' || true
echo "=== FFmpeg video renderer bytecode ==="
javap -classpath /tmp/ffmpeg-classes.jar -c -p androidx.media3.decoder.ffmpeg.ExperimentalFfmpegVideoRenderer | sed -n '1,260p'

- name: Build HEVC-capable Media3 FFmpeg extension
run: bash scripts/build-media3-hevc-ffmpeg.sh

- name: Make gradlew executable
run: chmod +x ./gradlew

- name: Build debug APK
run: ./gradlew assembleDebug --stacktrace
- name: Build Just Player 0.0.15 debug APK
id: build
continue-on-error: true
run: |
set -o pipefail
./gradlew :justplusapp:assembleLatestUniversalDebug \
-PuseJustPlus=true \
--stacktrace 2>&1 | tee ci-gradle.log

- name: Upload Gradle log for diagnosis
if: always()
uses: actions/upload-artifact@v4
with:
name: v0.0.15-gradle-log-${{ github.run_number }}
path: ci-gradle.log
if-no-files-found: error

- name: Fail after diagnostic capture
if: steps.build.outcome == 'failure'
run: exit 1

- name: Collect debug APK
run: |
set -euo pipefail
mkdir -p build-artifacts
APK="$(find .justplus-upstream/app/build/outputs/apk -type f -name '*.apk' | grep -i latest | grep -i debug | head -n1)"
test -n "$APK"
cp "$APK" build-artifacts/just-player-v0.0.15-debug.apk

- name: Upload debug APK
uses: actions/upload-artifact@v4
with:
name: dddplayer-debug-apk
path: app/build/outputs/apk/debug/*.apk
name: just-player-v0.0.15-debug
path: build-artifacts/just-player-v0.0.15-debug.apk
23 changes: 18 additions & 5 deletions .github/workflows/android-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,14 @@ jobs:
distribution: temurin
java-version: 17

- name: Prepare Just+ v1.2.0 transition source
run: |
bash scripts/prepare-justplus.sh
bash scripts/fix-justplus-v015-gradle.sh

- name: Build HEVC-capable Media3 FFmpeg extension
run: bash scripts/build-media3-hevc-ffmpeg.sh

- name: Make gradlew executable
run: chmod +x ./gradlew

Expand Down Expand Up @@ -87,21 +95,26 @@ jobs:
echo "version_name=$VERSION_NAME" >> "$GITHUB_OUTPUT"
echo "version_code=$VERSION_CODE" >> "$GITHUB_OUTPUT"

- name: Build signed release APK
- name: Build signed Just Player release APK
env:
ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
ANDROID_KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }}
run: |
./gradlew assembleRelease \
-PversionNameOverride=${{ steps.version.outputs.version_name }} \
-PversionCodeOverride=${{ steps.version.outputs.version_code }} \
./gradlew :justplusapp:assembleLatestUniversalRelease \
-PuseJustPlus=true \
--stacktrace

- name: Rename release APK
run: |
set -euo pipefail
mkdir -p release-artifacts
cp app/build/outputs/apk/release/app-release.apk release-artifacts/dddplayer-v${{ steps.version.outputs.version_name }}-release.apk
APK="$(find .justplus-upstream/app/build/outputs/apk -type f -name '*.apk' | grep -i latest | grep -i universal | grep -i release | head -n1)"
if [ -z "$APK" ]; then
APK="$(find .justplus-upstream/app/build/outputs/apk -type f -name '*.apk' | grep -i release | head -n1)"
fi
test -n "$APK"
cp "$APK" release-artifacts/dddplayer-v${{ steps.version.outputs.version_name }}-release.apk

- name: Upload artifact
uses: actions/upload-artifact@v4
Expand Down
Loading
Loading