Skip to content

Commit 629821a

Browse files
Merge branch 'master' into embedded-subtitles
2 parents d6b0cc1 + 716563e commit 629821a

44 files changed

Lines changed: 3020 additions & 726 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.releasinator.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"publish": "release",
3+
"versioning": "semver",
4+
"tagPattern": "$.$.$",
5+
"displayPattern": "$.$.$",
6+
"enforceUserFacingLabel": false,
7+
"projectType": "npm-like"
8+
}

docs/tutorials/00-getting-started.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,17 @@ const optionalData = {
112112
fontFamily: "Arial",
113113
backgroundColour: "black", // (css colour, hex)
114114
},
115+
audioDescribed: [
116+
// Multiple urls offer the ability to fail-over to another CDN if required
117+
{
118+
url: "https://example.com/video.mpd",
119+
cdn: "origin", // For Debug Tool reference
120+
},
121+
{
122+
url: "https://failover.example.com/video.mpd",
123+
cdn: "failover",
124+
},
125+
],
115126
playerSettings: {
116127
// See settings documentation for more details
117128
failoverResetTime: 60000,
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
BigscreenPlayer provides Audio Description (AD) support for accessible media playback. This document details the two implementations.
2+
3+
## Implementations
4+
5+
BigscreenPlayer uses two distinct methods for handling AD: a source switching approach and an MSE-specific approach.
6+
7+
### 1. Source Switching Audio Description (MediaSources)
8+
9+
The `MediaSources` module manages AD by accepting separate sources for audio description tracks. This method is used when AD is provided as a distinct media resource.
10+
11+
- **Separate Source Management:**
12+
- `MediaSources` accepts a separate `media.audioDescribed` source, containing URLs and CDNs, distinct from the main media source.
13+
- Failover for AD sources occurs **independently** within this provided source.
14+
- Example:
15+
If CDN 'A' in the Audio Description source fails, failover occurs only within that AD source, independently of the main video source. If AD is turned off, and CDN 'A' is present for the main source, it will be available.
16+
- **Manifest Switching:**
17+
- Enabling or disabling AD triggers the loading of a new manifest from the appropriate URL within the provided AD source.
18+
- This effectively switches between the main and AD audio streams.
19+
20+
### 2. MSE Strategy-Specific Audio Description (MSEStrategy)
21+
22+
The `MSEStrategy` strategy implementation manages AD within the same media stream.
23+
24+
- **Track Selection:**
25+
- AD tracks are identified within the DASH manifest by their roles and accessibility schemes.
26+
- Currently, a track is identified as AD if it matches the `Broadcast mix AD` descriptor values. These values are:
27+
- Role `value` of `alternate`
28+
- Accessibility `schemeIdUri` of `urn:tva:metadata:cs:AudioPurposeCS:2007` and `value` of `1`.
29+
- These values are defined in [ETSI TS 103 285 V1.1.1 Technical Specification](https://www.etsi.org/deliver/etsi_ts/103200_103299/103285/01.01.01_60/ts_103285v010101p.pdf#%5B%7B%22num%22%3A59%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22FitH%22%7D%2C392%5D)
30+
31+
## Developer API
32+
33+
Audio Described functionality can be interacted with through BigScreenPlayers API, which exposes the following functions:
34+
35+
- **`isAudioDescribedAvailable()`:**
36+
- Checks if AD tracks are available.
37+
- If the source switching implementation (MediaSources) provides AD, **this takes priority**.
38+
- **`isAudioDescribedEnabled()`:**
39+
- Checks if an AD track/source is currently active.
40+
- **`setAudioDescribed(enable)`:**
41+
- Enables or disables AD.
42+
- Example:
43+
```javascript
44+
bigScreenPlayer.setAudioDescribed(true)
45+
```
46+
47+
## Priority
48+
49+
If there are separate audioDescribed media sources provided, it will take priority over the MSE specific implementation.

eslint.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ export default tseslint.config(
174174
"unicorn/prefer-math-trunc": "off",
175175
"unicorn/prefer-number-properties": "off",
176176
"unicorn/prefer-optional-catch-binding": "off",
177+
"unicorn/prefer-set-has": "off",
177178
"unicorn/prefer-string-replace-all": "off",
178179

179180
// HAS ISSUES

jsdoc.conf.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"excludePattern": "(node_modules/|docs)"
1010
},
1111
"sourceType": "module",
12-
"plugins": ["plugins/markdown", "node_modules/better-docs/typescript"],
12+
"plugins": ["jsdoc-plugin-typescript", "plugins/markdown", "node_modules/better-docs/typescript"],
1313
"templates": {
1414
"cleverLinks": false,
1515
"monospaceLinks": true,

0 commit comments

Comments
 (0)