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

feat: sync upstream main #32

Merged
merged 68 commits into from
Jun 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
ac59b9e
fix: Update to use official FairPlay UUID. (#1281)
wjywbs Nov 30, 2023
ba5c771
fix: Add missing <cstdint> includes (#1306)
modernletter Nov 30, 2023
3e71302
feat!: Rewrite build system and third-party dependencies (#1310)
joeyparrish Dec 1, 2023
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
235d5b6
Clang-format
chenda6 May 30, 2024
6d93156
format
chenda6 May 30, 2024
1f190d9
format
chenda6 May 30, 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
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
97 changes: 65 additions & 32 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,63 @@
# GitHub Actions CI

## Actions
- `custom-actions/lint-packager`:
Lints Shaka Packager. You must pass `fetch-depth: 2` to `actions/checkout`
in order to provide enough history for the linter to tell which files have
changed.
- `custom-actions/build-packager`:
Builds Shaka Packager. Leaves build artifacts in the "artifacts" folder.
Requires OS-dependent and build-dependent inputs.
- `custom-actions/test-packager`:
Tests Shaka Packager. Requires OS-dependent and build-dependent inputs.
- `custom-actions/build-docs`:
Builds Shaka Packager docs.

## Workflows
- On PR:
- `build_and_test.yaml`:
Builds and tests all combinations of OS & build settings. Also builds
docs.
- On release tag:
- `github_release.yaml`:
Creates a draft release on GitHub, builds and tests all combinations of OS
& build settings, builds docs on all OSes, attaches static release binaries
to the draft release, then fully publishes the release.
- On release published:
- `docker_hub_release.yaml`:
Builds a Docker image to match the published GitHub release, then pushes it
to Docker Hub.
- `npm_release.yaml`:
Builds an NPM package to match the published GitHub release, then pushes it
to NPM.
- `update_docs.yaml`:
Builds updated docs and pushes them to the gh-pages branch.
## Reusable workflows
- `build.yaml`:
Build and test all combinations of OS & build settings. Also builds docs on
Linux.

- `build-docs.yaml`:
Build Packager docs. Runs only on Linux.

- `build-docker.yaml`:
Build the official Docker image.

- `lint.yaml`:
Lint Shaka Packager.

- `publish-docs.yaml`:
Publish Packager docs. Runs on the latest release.

- `publish-docker.yaml`:
Publish the official docker image. Runs on all releases.

- `publish-npm.yaml`:
Publish binaries to NPM. Runs on all releases.

- `test-linux-distros.yaml`:
Test the build on all Linux distros via docker.

## Composed workflows
- On PR (`pr.yaml`), invoke:
- `lint.yaml`
- `build.yaml`
- `build-docs.yaml`
- `build-docker.yaml`
- `test-linux-distros.yaml`

## Release workflow
- `release-please.yaml`
- Updates changelogs, version numbers based on conventional commits syntax
and semantic versioning
- https://conventionalcommits.org/
- https://semver.org/
- Generates/updates a PR on each push
- When the PR is merged, runs additional steps:
- Creates a GitHub release
- Invokes `publish-docs.yaml` to publish the docs
- Invokes `publish-docker.yaml` to publish the docker image
- Invokes `build.yaml`
- Attaches the binaries from `build.yaml` to the GitHub release
- Invokes `publish-npm.yaml` to publish the binaries to NPM

## Common workflows from shaka-project
- `sync-labels.yaml`
- `update-issues.yaml`
- `validate-pr-title.yaml`

## Required Repo Secrets
- `RELEASE_PLEASE_TOKEN`: A PAT for `shaka-bot` to run the `release-please`
action. If missing, the release workflow will use the default
`GITHUB_TOKEN`
- `DOCKERHUB_CI_USERNAME`: The username of the Docker Hub CI account
- `DOCKERHUB_CI_TOKEN`: An access token for Docker Hub
- To generate, visit https://hub.docker.com/settings/security
Expand All @@ -47,3 +71,12 @@
- `NPM_PACKAGE_NAME`: Not a true "secret", but stored here to avoid someone
pushing bogus packages to NPM during CI testing from a fork
- In a fork, set to a private name which differs from the production one

## Repo Settings

Each of these workflow features can be enabled by creating a "GitHub
Environment" with the same name in your repo settings. Forks will not have
these enabled by default.

- `debug`: enable debugging via SSH after a failure
- `self_hosted`: enable self-hosted runners in the build matrix
37 changes: 37 additions & 0 deletions .github/workflows/build-docker.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Copyright 2022 Google LLC
#
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file or at
# https://developers.google.com/open-source/licenses/bsd

# A workflow to build the official docker image.
name: Official Docker image

# Runs when called from another workflow.
on:
workflow_call:
inputs:
ref:
required: true
type: string

# By default, run all commands in a bash shell. On Windows, the default would
# otherwise be powershell.
defaults:
run:
shell: bash

jobs:
official_docker_image:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ inputs.ref }}
submodules: recursive

- name: Build
shell: bash
run: docker buildx build .
77 changes: 77 additions & 0 deletions .github/workflows/build-docs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Copyright 2022 Google LLC
#
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file or at
# https://developers.google.com/open-source/licenses/bsd

# A reusable workflow to build Packager docs. Leaves docs output in the
# "gh-pages" folder. Only runs in Linux due to the dependency on doxygen,
# which we install with apt.
name: Build Docs

# Runs when called from another workflow.
on:
workflow_call:
inputs:
ref:
required: true
type: string

# If true, start a debug SSH server on failures.
debug:
required: false
type: boolean
default: false

jobs:
docs:
name: Build docs
runs-on: ubuntu-latest

steps:
- name: Install dependencies
run: |
sudo apt install -y doxygen graphviz
python3 -m pip install \
sphinx==7.1.2 \
sphinxcontrib.plantuml \
recommonmark \
cloud_sptheme \
breathe

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

- name: Generate docs
run: |
mkdir -p gh-pages
mkdir -p build

# Doxygen must run before Sphinx. Sphinx will refer to
# Doxygen-generated output when it builds its own docs.
doxygen docs/Doxyfile

# Now build the Sphinx-based docs.
make -C docs/ html

# Now move the generated outputs.
cp -a build/sphinx/html gh-pages/html
cp -a build/doxygen/html gh-pages/docs
cp docs/index.html gh-pages/index.html

# Now set permissions on the generated docs.
# https://github.com/actions/upload-pages-artifact#file-permissions
chmod -R +rX gh-pages/

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

- name: Debug
uses: mxschmitt/[email protected]
with:
limit-access-to-actor: true
if: failure() && inputs.debug
47 changes: 47 additions & 0 deletions .github/workflows/build-matrix.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
{
"comment1": "runners hosted by GitHub, always enabled",
"hosted": [
{
"os": "ubuntu-latest",
"os_name": "linux",
"target_arch": "x64",
"exe_ext": "",
"generator": "Ninja"
},
{
"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",
"target_arch": "x64",
"exe_ext": ".exe",
"generator": ""
}
],

"comment2": "runners hosted by the owner, enabled by the 'self_hosted' environment being created on the repo",
"selfHosted": [
{
"os": "self-hosted-linux-arm64",
"os_name": "linux",
"target_arch": "arm64",
"exe_ext": "",
"generator": "Ninja",
"low_mem": "yes"
}
]
}
Loading