Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync #14

Merged
merged 62 commits into from
May 15, 2024
Merged

Sync #14

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
e21519b
test: update webm samples to use 0.3.0 version number (#1319)
cosmin Feb 8, 2024
56bd823
fix: duration formatting and update mpd testdata to reflect new forma…
cosmin Feb 8, 2024
5d44368
fix: preserve case for stream descriptors (#1321)
cosmin Feb 8, 2024
9b9adf3
test: fix fake clock for muxer for integration tests (#1322)
cosmin Feb 8, 2024
db59ad5
fix: remove extra block assumptions in mbedtls integration (#1323)
cosmin Feb 8, 2024
2ba67bc
feat: default text zero bias (#1330)
SteveR-PMP Feb 8, 2024
c09eb83
feat: Parse MPEG-TS PMT ES language and maximum bitrate descriptors (…
modernletter Feb 8, 2024
7ef5167
fix: Fix uninitialized value found by Valgrind (#1336)
joeyparrish Feb 8, 2024
9b38482
build: Do not treat third-party warnings as errors (#1338)
joeyparrish Feb 10, 2024
15b2754
chore: Upgrade absl and protobuf (#1337)
joeyparrish Feb 10, 2024
9193a90
chore: upgrade to alpine 3.19 (#1327)
misiek08 Feb 10, 2024
df04d0e
chore: Unfork zlib (#1339)
joeyparrish Feb 12, 2024
aad2a12
feat: order streams in manifest based on command-line order (#1329)
SteveR-PMP Feb 14, 2024
b1c5a74
feat(DASH): Add Label element. (#1175)
sr1990 Feb 14, 2024
1f71fa0
build: Fix absl log flags being stripped (#1340)
joeyparrish Feb 14, 2024
e19d733
build: Only ever build static or shared libraries, but never both (#1…
joeyparrish Feb 15, 2024
f73ad0d
feat: HLS / DASH support forced subtitle (#1020)
vish91 Feb 15, 2024
270888a
fix: set array_completeness in HEVCDecoderConfigurationRecord correct…
MarcusWichelmann Feb 15, 2024
f7b3986
fix: misleading log output when HLS target duration updates (fixes #9…
MarcusWichelmann Feb 15, 2024
07f780d
feat: This patch adds support for DTS:X Profile 2 audio in MP4 files.…
Roy-Funderburk Feb 15, 2024
76eb2c1
feat: Add support for the EXT-X-START tag (#973)
MarcusWichelmann Feb 15, 2024
6acdcc3
fix: http_file: Close upload cache on task exit (#1348)
petzeb Feb 23, 2024
4aa4b4b
feat: Add support for single file TS for HLS (#934)
sr1990 Feb 23, 2024
96efc5a
feat: Add PlayReady support in HLS. (#1011)
wjywbs Feb 23, 2024
71c175d
feat: Add input support for EBU Teletext in MPEG-TS (#1344)
cosmin Feb 23, 2024
d23cce8
feat: add startwithSAP/subsegmentstartswithSAP for audio tracks (#1346)
cosmin Feb 23, 2024
89376d3
feat: Allow LIVE UDP WebVTT input (#1349)
Canta Feb 24, 2024
35c2f46
fix: Always log to stderr by default (#1350)
joeyparrish Feb 24, 2024
b68ec87
feat: Add support for ALAC codec (#1299)
wjywbs Feb 26, 2024
6276584
fix: Fix missing newline at the end of usage (#1352)
joeyparrish Feb 27, 2024
673e49d
build: Disable warnings in third-party code (#1353)
joeyparrish Feb 27, 2024
615720e
fix: AudioSampleEntry size caluations due to bad merge (#1354)
cosmin Feb 27, 2024
9be7c2b
feat: Portable, fully-static release executables on Linux (#1351)
joeyparrish Feb 27, 2024
4d22e99
fix: Restore support for legacy FairPlay system ID (#1357)
cosmin Feb 28, 2024
5644041
fix: use a better estimate of frame rate for cases with very short fi…
koln67 Feb 28, 2024
34dcf3b
chore(main): release 3.0.0 (#1312)
shaka-bot Mar 4, 2024
9c033b9
ci: Add missing arm64 (self-hosted) builds on release (#1358)
joeyparrish Mar 4, 2024
c456ad6
fix(CI): Add Mac-arm64 to build matrix (#1359)
joeyparrish Mar 4, 2024
ebd608a
ci: Update actions (#1360)
joeyparrish Mar 5, 2024
6bff14f
chore(main): release 3.0.1 (#1361)
shaka-bot Mar 5, 2024
0fd815a
fix: duplicate representation id for TTML when forced ordering is on …
cosmin Mar 7, 2024
5ee2b7f
chore(main): release 3.0.2 (#1365)
shaka-bot Mar 11, 2024
d83c7b1
fix: Fix tags in official Docker images and binaries (#1370)
joeyparrish Mar 12, 2024
4cb6536
fix: Fix NPM binary publication (#1371)
joeyparrish Mar 12, 2024
a87a0e0
chore(main): release 3.0.3 (#1372)
shaka-bot Mar 12, 2024
733af91
fix: Fix NPM binary selection on ARM Macs (#1376)
vitalygashkov Mar 21, 2024
b7dd856
test: fix TTML integration test where ordering was changed by #1364 (…
cosmin Mar 25, 2024
90c3c3f
fix: BaseURL missing when MPD base path is empty (#1380)
cosmin Mar 27, 2024
ceeb378
chore(main): release 3.0.4 (#1377)
shaka-bot Mar 27, 2024
84009d8
build: turn on integration tests in ctest by default (#1381)
cosmin Apr 19, 2024
4b5e80d
feat: teletext formatting (#1384)
tobbee Apr 29, 2024
fe885b3
feat: add missing DASH roles from ISO/IEC 23009-1 section 5.8.5.5 (#1…
cosmin Apr 30, 2024
62f861c
docs: Fix missing graphviz outputs in generated docs (#1392)
cosmin May 1, 2024
bb104fe
feat: get start number from muxer and specify initial sequence number…
sr1990 May 2, 2024
a54e745
refactor: merge Period::ProtectedAdaptationSetMap into AdaptationSet…
sr1990 May 3, 2024
52647b9
chore(main): release 3.1.0 (#1391)
shaka-bot May 4, 2024
94db9c9
fix: adaptation set IDs were referenced by lowest representation ID …
cosmin May 11, 2024
b7e96f7
docs: document --enable_entitlement_license option for Widevine (#1399)
cosmin May 11, 2024
98b44d0
fix: escape media URLs in MPD (#1395)
cosmin May 11, 2024
f6f60e5
fix: set yuv full range flag to 1 for VP9 with sRGB (#1398)
cosmin May 11, 2024
a99cfe0
feat: support Dolby Vision profile 8.x (HEVC) and 10.x (AV1) in HLS a…
cosmin May 11, 2024
53b8668
chore(main): release 3.2.0 (#1400)
shaka-bot May 12, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/workflows/build-docker.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
ref: ${{ inputs.ref }}
submodules: recursive
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/build-docs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
steps:
- name: Install dependencies
run: |
sudo apt install -y doxygen
sudo apt install -y doxygen graphviz
python3 -m pip install \
sphinx==7.1.2 \
sphinxcontrib.plantuml \
Expand All @@ -40,7 +40,7 @@ jobs:
breathe

- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
ref: ${{ inputs.ref }}

Expand All @@ -66,12 +66,12 @@ jobs:
chmod -R +rX gh-pages/

- name: Upload docs artifacts
uses: actions/upload-pages-artifact@v2
uses: actions/upload-pages-artifact@v3
with:
path: gh-pages

- name: Debug
uses: mxschmitt/action-tmate@v3.6
uses: mxschmitt/action-tmate@v3.17
with:
limit-access-to-actor: true
if: failure() && inputs.debug
11 changes: 10 additions & 1 deletion .github/workflows/build-matrix.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,21 @@
"generator": "Ninja"
},
{
"os": "macos-latest",
"comment": "Explicit macOS version 13 is required for explicit x64 CPU.",
"os": "macos-13",
"os_name": "osx",
"target_arch": "x64",
"exe_ext": "",
"generator": "Ninja"
},
{
"comment": "Explicit macOS version 14 is required for explicit arm64 CPU.",
"os": "macos-14",
"os_name": "osx",
"target_arch": "arm64",
"exe_ext": "",
"generator": "Ninja"
},
{
"os": "windows-latest",
"os_name": "win",
Expand Down
91 changes: 83 additions & 8 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:
INCLUDE: ${{ steps.configure.outputs.INCLUDE }}
OS: ${{ steps.configure.outputs.OS }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: ${{ inputs.ref }}

Expand Down Expand Up @@ -92,17 +92,33 @@ jobs:
run: git config --global core.autocrlf false

- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
ref: ${{ inputs.ref }}
submodules: recursive
fetch-tags: true

- name: Install Linux deps
if: runner.os == 'Linux'
# NOTE: CMake is already installed in GitHub Actions VMs, but not
# necessarily in a self-hosted runner.
# necessarily in a self-hosted runner. We also need a minimum version
# that may be greater than what is available in Ubuntu, so we set up
# the official CMake PPA first.
run: |
sudo apt update && sudo apt install -y \
kitware_key_url="https://apt.kitware.com/keys/kitware-archive-latest.asc"
kitware_key_path="/usr/share/keyrings/kitware-archive-keyring.gpg"
kitware_sources_path="/etc/apt/sources.list.d/kitware.list"

curl -sL "$kitware_key_url" | gpg --dearmor - \
| sudo tee "$kitware_key_path" >/dev/null

. /etc/lsb-release # Defines $DISTRIB_CODENAME (jammy, focal, etc)

echo "deb [signed-by=$kitware_key_path] https://apt.kitware.com/ubuntu/ $DISTRIB_CODENAME main" \
| sudo tee "$kitware_sources_path" >/dev/null

sudo apt update
sudo apt install -y \
cmake \
ninja-build

Expand All @@ -112,6 +128,28 @@ jobs:
run: |
brew install ninja

- name: Check Mac CPU architecture
if: runner.os == 'macOS'
# In case we get confused about GitHub's mac VM image labels,
# explicitly check that the CPU type matches our expectations.
run: |
if [[ "${{matrix.target_arch}}" == "arm64" ]]; then
CORRECT_LABEL="arm64"
else
CORRECT_LABEL="x86_64"
fi

LABEL=$(uname -m)
echo "Hardware label: \"$LABEL\""

if [[ "$LABEL" != "$CORRECT_LABEL" ]]; then
echo "Wrong hardware label \"$LABEL\", expecting \"$CORRECT_LABEL\"."
echo "Full uname string: $(uname -a)"
echo "Full sysctl CPU info:"
sysctl machdep.cpu
exit 1
fi

- name: Generate build files
run: |
mkdir -p build/
Expand All @@ -134,9 +172,32 @@ jobs:
export PACKAGER_LOW_MEMORY_BUILD=yes
fi

# Do fully static release builds on Linux.
BUILD_CONFIG="${{ matrix.build_type }}-${{ matrix.lib_type }}"
if [[ "${{ runner.os }}" == "Linux" && \
"$BUILD_CONFIG" == "Release-static" ]]; then
# Enable build settings for fully-static.
FULLY_STATIC="ON"

# Use a musl toolchain, since glibc static executables are not
# portable.
if [[ "${{matrix.target_arch}}" == "arm64" ]]; then
MUSL_ARCH="aarch64"
else
MUSL_ARCH="x86_64"
fi
curl -LO https://musl.cc/"$MUSL_ARCH"-linux-musl-native.tgz
tar xf "$MUSL_ARCH"-linux-musl-native.tgz
export CC=`pwd`/"$MUSL_ARCH"-linux-musl-native/bin/"$MUSL_ARCH"-linux-musl-gcc
export CXX=`pwd`/"$MUSL_ARCH"-linux-musl-native/bin/"$MUSL_ARCH"-linux-musl-g++
else
FULLY_STATIC="OFF"
fi

cmake \
-DCMAKE_BUILD_TYPE="${{ matrix.build_type }}" \
-DBUILD_SHARED_LIBS="$BUILD_SHARED_LIBS" \
-DFULLY_STATIC="$FULLY_STATIC" \
-S . \
-B build/

Expand All @@ -151,7 +212,7 @@ jobs:
run: ctest -C "${{ matrix.build_type }}" -V --test-dir build/

- name: Publish Test Report
uses: mikepenz/action-junit-report@150e2f992e4fad1379da2056d1d1c279f520e058
uses: mikepenz/action-junit-report@v4
if: ${{ always() }}
with:
report_paths: 'junit-reports/TEST-*.xml'
Expand All @@ -164,7 +225,21 @@ jobs:
exit 0
fi

# TODO: Check static executables?
# Check static executables
if [[ "${{ runner.os }}" == "Linux" ]]; then
echo "::group::Check static executables"
for exe in build/packager/{packager,mpd_generator}; do
# Capture information about the executables, but also let it be
# logged to stdout.
ldd "$exe" | tee static.log
# The phrase "statically linked" means we got it right. Fail if
# we don't find it.
if ! cat static.log | grep -q statically; then
exit 1
fi
done
echo "::endgroup::"
fi

echo "::group::Prepare artifacts folder"
mkdir artifacts
Expand Down Expand Up @@ -202,7 +277,7 @@ jobs:
fi

- name: Upload static release build artifacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: matrix.build_type == 'Release' && matrix.lib_type == 'static'
with:
name: artifacts-${{ matrix.os_name }}-${{ matrix.target_arch }}
Expand All @@ -211,7 +286,7 @@ jobs:
retention-days: 5

- name: Debug
uses: mxschmitt/action-tmate@v3.6
uses: mxschmitt/action-tmate@v3.17
with:
limit-access-to-actor: true
if: failure() && inputs.debug
2 changes: 1 addition & 1 deletion .github/workflows/lint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
ref: ${{ inputs.ref }}
# We must use 'fetch-depth: 2', or else the linter won't have another
Expand Down
13 changes: 12 additions & 1 deletion .github/workflows/publish-docker.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
ref: ${{ inputs.tag }}
submodules: recursive
fetch-tags: true

- name: Log in to Docker Hub
uses: docker/login-action@v3
Expand All @@ -57,12 +58,22 @@ jobs:
- name: Push to Docker Hub
uses: docker/build-push-action@v5
with:
# Important: use actions/checkout source, which has the right tags!
# Without context: ., this action will try to fetch git source
# itself, and it will be unable to determine the correct version
# number.
context: .
push: true
tags: ${{ secrets.DOCKERHUB_PACKAGE_NAME }}:${{ inputs.tag }}

- name: Push to Docker Hub as "latest"
if: ${{ inputs.latest }}
uses: docker/build-push-action@v5
with:
# Important: use actions/checkout source, which has the right tags!
# Without context: ., this action will try to fetch git source
# itself, and it will be unable to determine the correct version
# number.
context: .
push: true
tags: ${{ secrets.DOCKERHUB_PACKAGE_NAME }}:latest
2 changes: 1 addition & 1 deletion .github/workflows/publish-docs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,4 @@ jobs:
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v2
uses: actions/deploy-pages@v4
3 changes: 1 addition & 2 deletions .github/workflows/publish-npm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
ref: ${{ inputs.tag }}
submodules: recursive

- uses: actions/setup-node@v4
with:
Expand Down
43 changes: 22 additions & 21 deletions .github/workflows/release-please.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,27 +13,28 @@ on:
- v[0-9]*

jobs:
settings:
name: Settings
uses: ./.github/workflows/settings.yaml

release:
runs-on: ubuntu-latest
needs: settings
outputs:
release_created: ${{ steps.release.outputs.release_created }}
tag_name: ${{ steps.release.outputs.tag_name }}
steps:
# Create/update release PR
- uses: google-github-actions/release-please-action@v3
- uses: google-github-actions/release-please-action@v4
id: release
with:
# Required input to specify the release type. This is not really a
# go project, but go projects in release-please only update
# CHANGELOG.md and nothing else. This is what we want.
release-type: go
# Make sure we create the PR against the correct branch.
default-branch: ${{ github.ref_name }}
target-branch: ${{ github.ref_name }}
# Use a special shaka-bot access token for releases.
token: ${{ secrets.RELEASE_PLEASE_TOKEN || secrets.GITHUB_TOKEN }}
# Temporary settings to bootstrap v3.0.0.
last-release-sha: 634af6591ce8c701587a78042ae7f81761725710
bootstrap-sha: 634af6591ce8c701587a78042ae7f81761725710
# See also settings in these files:
manifest-file: .release-please-manifest.json
config-file: .release-please-config.json

# The jobs below are all conditional on a release having been created by
# someone merging the release PR.
Expand All @@ -51,10 +52,9 @@ jobs:
outputs:
latest: ${{ steps.compute.outputs.latest }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-tags: true
persist-credentials: false

- name: Compute latest
id: compute
Expand Down Expand Up @@ -101,11 +101,13 @@ jobs:
# Do a complete build
build:
name: Build
needs: release
needs: [settings, release]
if: needs.release.outputs.release_created
uses: ./.github/workflows/build.yaml
with:
ref: ${{ github.ref }}
self_hosted: ${{ needs.settings.outputs.self_hosted != '' }}
debug: ${{ needs.settings.outputs.debug != '' }}

# Attach build artifacts to the release
artifacts:
Expand All @@ -114,22 +116,21 @@ jobs:
needs: [release, build]
if: needs.release.outputs.release_created
steps:
- uses: actions/download-artifact@v3
- uses: actions/download-artifact@v4
with:
path: artifacts
merge-multiple: true

- name: Debug
run: find -ls

- name: Attach packager to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ needs.release.outputs.tag_name }}
make_latest: false # Already set for the release
file_glob: true
file: artifacts/artifacts*/*
overwrite: true
env:
GITHUB_TOKEN: ${{ secrets.RELEASE_PLEASE_TOKEN || secrets.GITHUB_TOKEN }}
run: |
gh -R ${{ github.repository }} release upload \
${{ needs.release.outputs.tag_name }} artifacts/* \
--clobber

# Surprisingly, Shaka Packager binaries can be installed via npm.
# Publish NPM package updates.
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/sync-labels.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
repository: shaka-project/shaka-github-tools

Expand Down
Loading
Loading