Skip to content

Commit

Permalink
feat(Demo): Add new 3D movie stream from Apple (#5872)
Browse files Browse the repository at this point in the history
It also creates a filter for UHD and corrects the filtering in some
assets.
  • Loading branch information
avelad committed Nov 8, 2023
1 parent c1198df commit a5adf31
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 9 deletions.
29 changes: 20 additions & 9 deletions demo/common/assets.js
Expand Up @@ -131,6 +131,9 @@ shakaAssets.Feature = {
// Set if the asset has at least one containerless stream (AAC, etc).
CONTAINERLESS: 'Containerless',

// Set if the asset requires Dolby Vision with MV-HEVC (for 3D) support.
DOLBY_VISION_3D: 'Dolby Vision 3D',

// Set if the asset has at least one stream that is at least 720p.
HIGH_DEFINITION: 'High definition',
// Set if the asset has at least one stream that is at least 4k.
Expand Down Expand Up @@ -400,7 +403,7 @@ shakaAssets.testAssets = [
/* manifestUri= */ 'https://storage.googleapis.com/shaka-demo-assets/sintel/dash.mpd',
/* source= */ shakaAssets.Source.SHAKA)
.addFeature(shakaAssets.Feature.DASH)
.addFeature(shakaAssets.Feature.HIGH_DEFINITION)
.addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION)
.addFeature(shakaAssets.Feature.MP4)
.addFeature(shakaAssets.Feature.SUBTITLES)
.addFeature(shakaAssets.Feature.WEBM)
Expand Down Expand Up @@ -429,7 +432,7 @@ shakaAssets.testAssets = [
/* manifestUri= */ 'https://storage.googleapis.com/shaka-demo-assets/sintel-webm-only/dash.mpd',
/* source= */ shakaAssets.Source.SHAKA)
.addFeature(shakaAssets.Feature.DASH)
.addFeature(shakaAssets.Feature.HIGH_DEFINITION)
.addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION)
.addFeature(shakaAssets.Feature.SUBTITLES)
.addFeature(shakaAssets.Feature.WEBM)
.addFeature(shakaAssets.Feature.OFFLINE),
Expand All @@ -439,7 +442,7 @@ shakaAssets.testAssets = [
/* manifestUri= */ 'https://storage.googleapis.com/shaka-demo-assets/sintel-mp4-only/dash.mpd',
/* source= */ shakaAssets.Source.SHAKA)
.addFeature(shakaAssets.Feature.DASH)
.addFeature(shakaAssets.Feature.HIGH_DEFINITION)
.addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION)
.addFeature(shakaAssets.Feature.MP4)
.addFeature(shakaAssets.Feature.SUBTITLES)
.addFeature(shakaAssets.Feature.OFFLINE),
Expand All @@ -450,7 +453,7 @@ shakaAssets.testAssets = [
/* source= */ shakaAssets.Source.SHAKA)
.addKeySystem(shakaAssets.KeySystem.WIDEVINE)
.addFeature(shakaAssets.Feature.DASH)
.addFeature(shakaAssets.Feature.HIGH_DEFINITION)
.addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION)
.addFeature(shakaAssets.Feature.MP4)
.addFeature(shakaAssets.Feature.SUBTITLES)
.addFeature(shakaAssets.Feature.WEBM)
Expand All @@ -476,7 +479,7 @@ shakaAssets.testAssets = [
.setAdTagUri(shakaAssets.AdTag.AD_POD_PREROLL_MIDROLL_POSTROLL)
.addKeySystem(shakaAssets.KeySystem.WIDEVINE)
.addFeature(shakaAssets.Feature.DASH)
.addFeature(shakaAssets.Feature.HIGH_DEFINITION)
.addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION)
.addFeature(shakaAssets.Feature.MP4)
.addFeature(shakaAssets.Feature.SUBTITLES)
.addFeature(shakaAssets.Feature.WEBM)
Expand All @@ -488,7 +491,7 @@ shakaAssets.testAssets = [
/* manifestUri= */ 'https://storage.googleapis.com/shaka-demo-assets/sintel-mp4-wvtt/dash.mpd',
/* source= */ shakaAssets.Source.SHAKA)
.addFeature(shakaAssets.Feature.DASH)
.addFeature(shakaAssets.Feature.HIGH_DEFINITION)
.addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION)
.addFeature(shakaAssets.Feature.MP4)
.addFeature(shakaAssets.Feature.SUBTITLES)
.addFeature(shakaAssets.Feature.OFFLINE),
Expand Down Expand Up @@ -960,7 +963,6 @@ shakaAssets.testAssets = [
/* manifestUri= */ 'https://livesim2.dashif.org/livesim2/testpic_2s/Manifest_thumbs.mpd',
/* source= */ shakaAssets.Source.DASH_IF)
.addFeature(shakaAssets.Feature.DASH)
.addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION)
.addFeature(shakaAssets.Feature.MP4)
.addFeature(shakaAssets.Feature.LIVE)
.addFeature(shakaAssets.Feature.THUMBNAILS),
Expand Down Expand Up @@ -1004,7 +1006,7 @@ shakaAssets.testAssets = [
/* source= */ shakaAssets.Source.BITCODIN)
// Disabled because the audio playlist ends about 9 seconds early somehow.
.markAsDisabled()
.addFeature(shakaAssets.Feature.HIGH_DEFINITION)
.addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION)
.addFeature(shakaAssets.Feature.HLS)
.addFeature(shakaAssets.Feature.MP2TS)
.addFeature(shakaAssets.Feature.OFFLINE),
Expand Down Expand Up @@ -1364,9 +1366,18 @@ shakaAssets.testAssets = [
/* source= */ shakaAssets.Source.APPLE)
.addFeature(shakaAssets.Feature.HLS)
.addFeature(shakaAssets.Feature.MP4)
.addFeature(shakaAssets.Feature.HIGH_DEFINITION)
.addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION)
.addFeature(shakaAssets.Feature.OFFLINE)
.addFeature(shakaAssets.Feature.THUMBNAILS),
new ShakaDemoAssetInfo(
/* name= */ '3D movie stream',
/* iconUri= */ '',
/* manifestUri= */ 'https://devstreaming-cdn.apple.com/videos/streaming/examples/historic_planet_content_2023-10-26-3d-video/main.m3u8',
/* source= */ shakaAssets.Source.APPLE)
.addFeature(shakaAssets.Feature.HLS)
.addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION)
.addFeature(shakaAssets.Feature.DOLBY_VISION_3D)
.addFeature(shakaAssets.Feature.OFFLINE),
// }}}

// IRT assets {{{
Expand Down
3 changes: 3 additions & 0 deletions demo/main.js
Expand Up @@ -735,6 +735,9 @@ shakaDemo.Main = class {
if (asset.features.includes(shakaAssets.Feature.CONTAINERLESS)) {
mimeTypes.push('audio/aac');
}
if (asset.features.includes(shakaAssets.Feature.DOLBY_VISION_3D)) {
mimeTypes.push('video/mp4; codecs="dvh1.20.01"');
}
const hasSupportedMimeType = mimeTypes.some((type) => {
return this.support_.media[type];
});
Expand Down
3 changes: 3 additions & 0 deletions demo/search.js
Expand Up @@ -371,6 +371,9 @@ shakaDemo.Search = class {
/* docLink= */ null);
this.makeBooleanInput_(specialContainer, Feature.HIGH_DEFINITION, FEATURE,
'Filters for assets with at least one high-definition video stream.');
this.makeBooleanInput_(specialContainer, Feature.ULTRA_HIGH_DEFINITION,
FEATURE, 'Filters for assets with at least one ultra-high-definition' +
' video stream.');
this.makeBooleanInput_(specialContainer, Feature.XLINK, FEATURE,
'Filters for assets that have XLINK tags in their manifests, so that ' +
'they can be broken into multiple files.');
Expand Down
1 change: 1 addition & 0 deletions lib/media/media_source_engine.js
Expand Up @@ -262,6 +262,7 @@ shaka.media.MediaSourceEngine = class {
'video/mp4; codecs="vp9"',
'video/mp4; codecs="vp09.00.10.08"',
'video/mp4; codecs="av01.0.01M.08"',
'video/mp4; codecs="dvh1.20.01"',
'audio/mp4; codecs="mp4a.40.2"',
'audio/mp4; codecs="ac-3"',
'audio/mp4; codecs="ec-3"',
Expand Down

0 comments on commit a5adf31

Please sign in to comment.