Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
12 changes: 6 additions & 6 deletions .github/actions/build/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,16 +42,16 @@ runs:
restore-keys: webrtc-${{ env.WEBRTC_CACHE_BRANCH }}-${{ inputs.platform-name }}-${{ hashFiles('webrtc-jni/src/main/cpp/dependencies/webrtc/CMakeLists.txt', 'webrtc-jni/src/main/cpp/dependencies/webrtc/patches/**/*.patch') }}-

- name: Derive the FFmpeg version from the pom
run: echo "FFMPEG_VERSION=$(sed -n 's|.*<ffmpeg.version>\([^<]*\)</ffmpeg.version>.*|\1|p' webrtc-java-media/pom.xml)" >> "$GITHUB_ENV"
run: echo "FFMPEG_VERSION=$(sed -n 's|.*<ffmpeg.version>\([^<]*\)</ffmpeg.version>.*|\1|p' webrtc-media/pom.xml)" >> "$GITHUB_ENV"
shell: bash

- id: ffmpeg-cache
name: Restore FFmpeg cache
uses: actions/cache/restore@v6
with:
path: ~/ffmpeg
key: ffmpeg-${{ env.FFMPEG_VERSION }}-${{ inputs.platform-name }}-${{ hashFiles('webrtc-java-media/src/main/cpp/dependencies/ffmpeg/CMakeLists.txt', 'webrtc-java-media/src/main/cpp/dependencies/ffmpeg/patches/*.patch') }}-${{ hashFiles('webrtc-java-media/pom.xml') }}
restore-keys: ffmpeg-${{ env.FFMPEG_VERSION }}-${{ inputs.platform-name }}-${{ hashFiles('webrtc-java-media/src/main/cpp/dependencies/ffmpeg/CMakeLists.txt', 'webrtc-java-media/src/main/cpp/dependencies/ffmpeg/patches/*.patch') }}-
key: ffmpeg-${{ env.FFMPEG_VERSION }}-${{ inputs.platform-name }}-${{ hashFiles('webrtc-media/src/main/cpp/dependencies/ffmpeg/CMakeLists.txt', 'webrtc-media/src/main/cpp/dependencies/ffmpeg/patches/*.patch') }}-${{ hashFiles('webrtc-media/pom.xml') }}
restore-keys: ffmpeg-${{ env.FFMPEG_VERSION }}-${{ inputs.platform-name }}-${{ hashFiles('webrtc-media/src/main/cpp/dependencies/ffmpeg/CMakeLists.txt', 'webrtc-media/src/main/cpp/dependencies/ffmpeg/patches/*.patch') }}-

# One cache per OS: the dependencies do not differ between the platforms of
# an OS. The project's own artifacts change with every build and stay out
Expand Down Expand Up @@ -112,9 +112,9 @@ runs:
with:
name: natives-media-${{ inputs.platform-name }}
path: |
webrtc-java-media/target/webrtc-java-media-*-windows-*.jar
webrtc-java-media/target/webrtc-java-media-*-linux-*.jar
webrtc-java-media/target/webrtc-java-media-*-macos-*.jar
webrtc-media/target/webrtc-java-media-*-windows-*.jar
webrtc-media/target/webrtc-java-media-*-linux-*.jar
webrtc-media/target/webrtc-java-media-*-macos-*.jar
if-no-files-found: error
retention-days: ${{ inputs.retention-days }}
overwrite: true
4 changes: 2 additions & 2 deletions .github/actions/publish/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ runs:
-DgeneratePom=false
shell: bash

# natives.dir makes webrtc and webrtc-java-media attach the jars of all
# natives.dir makes webrtc and webrtc-media attach the jars of all
# platforms instead of the host's. skipUpload still stages and bundles the
# release, but stops before uploading it.
#
Expand All @@ -83,7 +83,7 @@ runs:
PROFILES: ${{ inputs.profiles }}
SKIP_UPLOAD: ${{ inputs.skip-upload }}
run: >
mvn -B deploy -pl .,webrtc,webrtc-java-media,webrtc-java-javafx -DskipTests
mvn -B deploy -pl .,webrtc,webrtc-media,webrtc-javafx -DskipTests
-Dmaven.repository.credentialScope=id
${PROFILES:+-P$PROFILES}
-Dnatives.dir="$PWD/natives"
Expand Down
6 changes: 3 additions & 3 deletions .github/actions/test-natives/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -124,8 +124,8 @@ runs:
MEDIA_JAR="$PWD/$MEDIA_JAR"
WEBRTC_JAR="$PWD/$WEBRTC_JAR"

mkdir -p webrtc-java-media/target/natives
cd webrtc-java-media/target/natives
mkdir -p webrtc-media/target/natives
cd webrtc-media/target/natives
# jar rather than unzip: the JDK is set up above, and unzip is not on
# every runner image.
"$JAVA_HOME/bin/jar" xf "$MEDIA_JAR"
Expand All @@ -142,7 +142,7 @@ runs:
# The native build is off: these natives were cross compiled by another
# job, and this runner is here to run them, not to build them again.
- name: Test
run: mvn -B -pl webrtc,webrtc-java-media test -DskipNativeBuild -P${{ inputs.profile }} -Dsurefire.timeout=1800
run: mvn -B -pl webrtc,webrtc-media test -DskipNativeBuild -P${{ inputs.profile }} -Dsurefire.timeout=1800
shell: bash

# What failed, for runners that cannot be reproduced locally.
Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -223,8 +223,8 @@ jobs:
echo "Artifacts destined for the deployment bundle:"
echo '```'
ls -1 webrtc/target/*.jar webrtc/target/*.asc \
webrtc-java-media/target/*.jar webrtc-java-media/target/*.asc \
webrtc-java-javafx/target/*.jar webrtc-java-javafx/target/*.asc \
webrtc-media/target/*.jar webrtc-media/target/*.asc \
webrtc-javafx/target/*.jar webrtc-javafx/target/*.asc \
natives/*.asc 2>/dev/null || true
echo '```'
} >> "$GITHUB_STEP_SUMMARY"
Expand All @@ -238,12 +238,12 @@ jobs:
webrtc/target/central-*/**
webrtc/target/*.jar
webrtc/target/*.asc
webrtc-java-media/target/central-*/**
webrtc-java-media/target/*.jar
webrtc-java-media/target/*.asc
webrtc-java-javafx/target/central-*/**
webrtc-java-javafx/target/*.jar
webrtc-java-javafx/target/*.asc
webrtc-media/target/central-*/**
webrtc-media/target/*.jar
webrtc-media/target/*.asc
webrtc-javafx/target/central-*/**
webrtc-javafx/target/*.jar
webrtc-javafx/target/*.asc
natives/*.asc
if-no-files-found: error
retention-days: 7
4 changes: 2 additions & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
[submodule "webrtc-java-media/third-party/ffmpeg"]
path = webrtc-java-media/third-party/ffmpeg
path = webrtc-media/third-party/ffmpeg
url = https://github.com/FFmpeg/FFmpeg.git
shallow = true
[submodule "webrtc-java-media/third-party/dav1d"]
path = webrtc-java-media/third-party/dav1d
path = webrtc-media/third-party/dav1d
url = https://code.videolan.org/videolan/dav1d.git
shallow = true
2 changes: 1 addition & 1 deletion docs/guide/build.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ You don't have to install Chromium's `depot_tools`, Siso or GN: the build clones
FFmpeg and dav1d come from Git submodules, which a plain clone leaves empty. Fetch them before the first build:

```shell
git submodule update --init --depth 1 webrtc-java-media/third-party/ffmpeg webrtc-java-media/third-party/dav1d
git submodule update --init --depth 1 webrtc-media/third-party/ffmpeg webrtc-media/third-party/dav1d
```

### Linux
Expand Down
2 changes: 1 addition & 1 deletion docs/guide/media/media-files.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Decoding happens entirely in native code. Frames never travel through Java: the
The module is part of the normal build, and it builds FFmpeg and dav1d (the software decoder of AV1) from submodules pinned to release tags, so the submodules have to be present:

```shell
git submodule update --init --depth 1 webrtc-java-media/third-party/ffmpeg webrtc-java-media/third-party/dav1d
git submodule update --init --depth 1 webrtc-media/third-party/ffmpeg webrtc-media/third-party/dav1d
mvn install
```

Expand Down
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@
<modules>
<module>webrtc-jni</module>
<module>webrtc</module>
<module>webrtc-java-media</module>
<module>webrtc-java-javafx</module>
<module>webrtc-media</module>
<module>webrtc-javafx</module>
<module>webrtc-examples</module>
</modules>

Expand Down
2 changes: 1 addition & 1 deletion webrtc-examples/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
<version>3.6.4</version>
<configuration>
<additionalClasspathElements>
<additionalClasspathElement>${project.basedir}/../webrtc-java-media/target/natives</additionalClasspathElement>
<additionalClasspathElement>${project.basedir}/../webrtc-media/target/natives</additionalClasspathElement>
</additionalClasspathElements>
</configuration>
</plugin>
Expand Down
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion webrtc-java-media/README.md → webrtc-media/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ This module is part of the normal build, and it builds FFmpeg from a submodule,
has to be present:

```shell
git submodule update --init --depth 1 webrtc-java-media/third-party/ffmpeg webrtc-java-media/third-party/dav1d
git submodule update --init --depth 1 webrtc-media/third-party/ffmpeg webrtc-media/third-party/dav1d
mvn install
```

Expand Down
2 changes: 1 addition & 1 deletion webrtc-java-media/pom.xml → webrtc-media/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@
built natively then, and no natives jar is made for the host: the
one downloaded for it is attached instead.

Run with: mvn deploy -pl .,webrtc,webrtc-java-media -Prelease -Dnatives.dir=/abs/path -->
Run with: mvn deploy -pl .,webrtc,webrtc-media -Prelease -Dnatives.dir=/abs/path -->
<profile>
<id>attach-natives-all</id>
<activation>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -418,7 +418,7 @@ else()
if(NOT EXISTS "${FFMPEG_SOURCE_DIR}/configure")
message(FATAL_ERROR
"The FFmpeg submodule is not checked out. Run:\n"
" git submodule update --init --depth 1 webrtc-java-media/third-party/ffmpeg")
" git submodule update --init --depth 1 webrtc-media/third-party/ffmpeg")
endif()

# FFmpeg's configure and its makefiles are shell scripts, so a POSIX shell
Expand Down Expand Up @@ -690,7 +690,7 @@ else()
if(NOT EXISTS "${DAV1D_SOURCE_DIR}/meson.build")
message(FATAL_ERROR
"The dav1d submodule is not checked out. Run:\n"
" git submodule update --init --depth 1 webrtc-java-media/third-party/dav1d")
" git submodule update --init --depth 1 webrtc-media/third-party/dav1d")
endif()

find_program(MESON_EXECUTABLE NAMES meson)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ modifications:

How they are configured and built, including which demuxers, decoders,
parsers and protocols are enabled, is set out in
webrtc-java-media/src/main/cpp/dependencies/ffmpeg/CMakeLists.txt of
webrtc-media/src/main/cpp/dependencies/ffmpeg/CMakeLists.txt of
webrtc-java, at the release this jar belongs to:

https://github.com/devopvoid/webrtc-java
Expand Down
2 changes: 1 addition & 1 deletion webrtc/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@
build jobs. Maven Central publishes a version as one atomic bundle, hence
all classifiers must be attached to a single deployment.

Run with: mvn deploy -pl .,webrtc,webrtc-java-media -Prelease -Dnatives.dir=/abs/path
Run with: mvn deploy -pl .,webrtc,webrtc-media -Prelease -Dnatives.dir=/abs/path
-->
<profile>
<id>attach-natives-all</id>
Expand Down
Loading