Commit Graph

279 Commits

Author SHA1 Message Date
Álvaro Velad Galván 2260aa9cf6 feat: Update usage of minBufferTime according to the DASH spec (#7616)
Related to
https://github.com/shaka-project/shaka-player/issues/7602#issuecomment-2479518970

From 23009-1:

The value of the minimum buffer time does not provide any instructions
to the client on how long
to buffer the media. The value however describes how much buffer a
client should have under
ideal network conditions. As such, MBT is not describing the burstiness
or jitter in the network,
it is describing the burstiness or jitter in the content encoding.
Together with the BW value, it is
a property of the content. Using the "leaky bucket" model, it is the
size of the bucket that makes
    BW true, given the way the content is encoded
2024-11-19 10:47:18 +01:00
Álvaro Velad Galván d8a14b0a45 fix(DASH): Fix playback after DASH period eviction (#7603)
Fixes https://github.com/shaka-project/shaka-player/issues/7516 in a
simpler way

Reverts
https://github.com/shaka-project/shaka-player/commit/5eff0384d04e22a971336c90aae0a83db2a451d5
Reverts
https://github.com/shaka-project/shaka-player/commit/037193c2d601e02c8611a4527dcb04d32adbbd27
2024-11-15 13:23:40 +01:00
ncocaign 5eff0384d0 fix(DASH): Fix playback after DASH period eviction (#7519)
With this change, closeSegmentIndex() of all streams of a removed period
are defered in StreamingEngine.onUpdate_()

Fixes #7516
2024-11-13 19:14:15 +01:00
Álvaro Velad Galván 5024184363 feat: Enable audio groups by default (#7549)
This fixes the audio selection in Shaka Player History live stream

Related to https://github.com/shaka-project/shaka-player/pull/5620
2024-11-06 13:20:30 +01:00
Gregory McGarry c9f7723d23 feat: Support Fairplay DRM in DASH manifest. (#7454)
Support Fairplay DRM for DASH, specifying the license server in the
manifest using dashif:Laurl.
2024-10-24 09:36:35 +02:00
Gregory McGarry 669b7b3829 fix: calculations of channel count for DASH AudioChannelConfiguration elements. (#7421)
Fix tag:dolby.com,2014:dash:audio_channel_configuration:2011 scheme to
correctly handle bits that represent channel pairs according to document
at
[dolby.com](https://ott.dolby.com/OnDelKits/DDP/Dolby_Digital_Plus_Online_Delivery_Kit_v1.5/Documentation/Content_Creation/SDM/help_files/topics/ddp_mpeg_dash_c_mpd_auchlconfig.html)

Add tag:dolby.com,2015:dash:audio_channel_configuration:2015 scheme
according to ETSI TS 103 190-2 v1.2.1, Annex G.3

Test stream is available here:
[manifest.mpd](https://content.media24.link/ac4_512/manifest.mpd)
2024-10-21 09:23:57 +02:00
Joey Parrish d81c9cb369 test: Deduplicate platform support check (#7450)
This deduplicates a platform support check that was run in
player_integration.js, and declares the pre-existing central support map
in an extern so we can clean up its use.

This stops a DRM integration test from timing out on FirefoxWindows. It
still gets skipped, though, due to a failing Widevine check, so there
will be follow-on work for that.

Issue #7449
2024-10-21 09:21:56 +02:00
Álvaro Velad Galván e7229fbc18 fix(DASH): Allow mixing SegmentTemplate-SegmentTimeline with SegmentTemplate-numbering (#7286)
Fixes https://github.com/shaka-project/shaka-player/issues/7192
2024-09-12 09:45:29 +02:00
Wojciech Tyczyński c541b1c9b4 fix(DASH): Use presentationTimeOffset in EventStream (#7282)
Fixes #7277
2024-09-11 11:03:33 +02:00
Álvaro Velad Galván d5ed8edaf5 feat(DASH): Disable xlink processing by default (#7264)
Since xlink processing is slow and very few streams use it, it is best
to disable this functionality by default to improve performance
especially on STB or SmartTV devices.
2024-09-05 12:05:43 +02:00
Álvaro Velad Galván 7b07614532 feat: Add manifest.disableIFrames config (#7255) 2024-09-04 16:14:13 +02:00
Álvaro Velad Galván cb5aae47c0 feat(DASH): Support trick-mode per resolution (#7224) 2024-08-28 14:59:40 +02:00
Wojciech Tyczyński b2502fd0a0 fix(DASH): Fix MPD Patch when SegmentTemplate is shared between Representations (#7218)
Fixes #7214
2024-08-28 13:29:10 +02:00
Iragne 0f2cea42ee fix(DASH): Patch manifest Adaptationset indexing, @n=<Numbering> and @t=<time> (#7131)
Fixes https://github.com/shaka-project/shaka-player/issues/7128
2024-08-20 15:02:52 +02:00
theodab 5723a2bbe4 feat(preload): Add isPreload to net filter context (#7170)
Fixes #7160

---------

Co-authored-by: Álvaro Velad Galván <ladvan91@hotmail.com>
2024-08-19 23:50:20 -07:00
theodab b4e04b6616 feat: Store bandwidth info inside references. (#6825)
Issue #6725

---------

Co-authored-by: Álvaro Velad Galván <ladvan91@hotmail.com>
2024-07-23 14:32:09 +02:00
Álvaro Velad Galván a5adb39713 feat(DASH): Support Annex I: Flexible Insertion of URL Parameters (#7086)
Resolves https://github.com/shaka-project/shaka-player/issues/6472
2024-07-23 08:49:22 +02:00
Álvaro Velad Galván 3390a967d9 test: Reduce test execution times (#7083)
Integration testing times are reduced to the minimum necessary to test
the functionality instead of a generic one.
2024-07-22 14:09:50 +02:00
Álvaro Velad Galván 3cb40bf516 feat(DASH): Add support for urn:mpeg:dash:ssr:2023 with SegmentTemplate $Number$ (#6745) 2024-07-09 09:27:51 +02:00
Álvaro Velad Galván 5849e2579d feat(DASH): Support DVB fonts with relative urls (#6974) 2024-07-03 20:22:48 +02:00
Álvaro Velad Galván 789101cbba feat(DASH): Add DVB Font downloads (#6971) 2024-07-02 20:52:29 +02:00
Álvaro Velad Galván 3e45e66af2 fix(DASH): Allow play when SegmentTimeline has a duration 0 "S" element (#6896)
Fixes https://github.com/shaka-project/shaka-player/issues/6889
2024-06-25 09:21:00 +02:00
Wojciech Tyczyński 8a678f374d feat(Stats): Add manifestGapCount to stats (#6804)
Resolves #6789
2024-06-13 09:41:57 +02:00
Álvaro Velad Galván c866d7b467 feat(HLS): Allow disable streams when the media playlist fails (#6807) 2024-06-13 09:32:09 +02:00
Wojciech Tyczyński 65b0b8dd21 feat(Stats): Add manifestPeriodCount to stats (#6798)
Resolves #6788
2024-06-12 08:37:01 +02:00
Wojciech Tyczyński 2f3a1ebf94 feat(DASH): add MPD_PATCH advanced request type (#6787)
Add `shaka.net.NetworkingEngine.AdvancedRequestType.MPD_PATCH` to
distinguish regular MPD requests from MPD Patch requests.
2024-06-11 10:56:14 +02:00
Álvaro Velad Galván 600c87158a test: Add DASH ClearKey integration test (#6736)
Related to https://github.com/shaka-project/shaka-player/issues/6710
2024-06-03 11:05:37 +02:00
Álvaro Velad Galván 2ec64442e2 feat(HLS): Add support for EXT-X-DATERANGE (#6718)
Closes https://github.com/shaka-project/shaka-player/issues/3523
2024-06-03 10:10:39 +02:00
Álvaro Velad Galván 9060ab0a34 feat(DASH): Parse and use target latency (#6683)
Related to https://github.com/shaka-project/shaka-player/pull/6193
Thanks to @gkatsev
2024-05-29 09:45:09 +02:00
Dave Nicholas d38aabf04d feat(DASH): Add MPD Patch support (#5247)
Closes https://github.com/shaka-project/shaka-player/issues/2228

---------

Co-authored-by: Wojciech Tyczyński <wojciech.tyczynski@sky.uk>
2024-05-29 08:11:28 +02:00
Álvaro Velad Galván 329d42ad56 feat: Parse colorGamut and use it in MCap (#6663) 2024-05-24 08:59:06 +02:00
Álvaro Velad Galván 82c5149375 feat(DASH): Add MPD Chaining support (#6641)
Close https://github.com/shaka-project/shaka-player/issues/3926
2024-05-21 09:57:16 +02:00
Álvaro Velad Galván c6c39dfafc feat: Add encryptionScheme to shaka.extern.DrmInfo (#6480)
Related to https://github.com/shaka-project/shaka-player/issues/1419
2024-04-26 06:49:15 +02:00
Álvaro Velad Galván 9ad9c94291 chore: Add backwards compatibility for "Remove DOM Parser" (#6453)
Backwards compatibility for https://github.com/shaka-project/shaka-player/pull/6063
2024-04-18 09:03:26 -07:00
theodab 1da5da9790 fix(DASH): Fix support for multi-mimeType variants (#6348)
A previous PR, #5950, added support for variants that contain multiple
different codecs.
It was supposed to also add support for variants with multiple
mimeTypes, but that part didn't work correctly. This reworks a lot of
#5950 and #6047, to change how they handle such complicated variants.

This has the side-effect of allowing the stream utils to differentiate
between content that has multiple codecs because of type changes, and
content that has multiple codecs because of being muxed video+audio.

Fixes #6010

---------

Co-authored-by: Álvaro Velad Galván <ladvan91@hotmail.com>
2024-04-10 02:48:57 -07:00
Álvaro Velad Galván 07a32419d3 feat(DASH): Add signalling the last segment number in Period (#6416)
Closes https://github.com/shaka-project/shaka-player/issues/2430

Test stream:
http://dash.akamaized.net/dash264/TestCasesIOP41/LastSegmentNumber/1/manifest_last_segment_num.mpd
2024-04-09 09:35:53 +02:00
Wojciech Tyczyński 4a0d1ca06f fix(DASH): Fix precision issue on some platforms (#6258)
When recalculations of period end are made, it is possible that we will not be able to find last segment from period on low precision platforms. To mitigate it, try to use cached value of `periodEnd_` whenever possible.

Issue observed on Xbox One & Xbox Series.
2024-02-20 10:23:06 -08:00
Álvaro Velad Galván 47602c6f5e feat!: Remove com.adobe.primetime keysystem (#6189)
`com.adobe.primetime` is not implemented in any browser and no one has
reported any problems in the 8 years of Shaka Player.
2024-01-30 20:02:44 +01:00
Iragne a3320707b9 fix(DASH): Update dash manifest when minimumUpdatePeriod = 0 (#6187)
Fixes https://github.com/shaka-project/shaka-player/issues/6185
2024-01-30 15:57:02 +01:00
Dave Nicholas 7116a34ec2 feat!: Remove DOM Parser (#6063)
## Background: 
The native DOM Parser can perform poorly on some older devices, this
approach is faster on newer devices but is considerably better on older
devices.
This PR replaces the usage of the DOM Parser for DASH, MSS, VTT and
TTML.

The draw back of this approach that it does not include any validation
at the cost of better performance.
2024-01-22 08:39:06 +01:00
Álvaro Velad Galván 8f453c245f feat(DASH): Add support for location in Content Steering (#5914)
According to
https://github.com/Dash-Industry-Forum/Dash-Industry-Forum.github.io/files/11722876/DASH-IF-CTS-001-1.0.0.pdf,
Location elements can have serviceLocation, so we need support it.
2023-11-22 23:02:01 +01:00
Dave Nicholas d8aa24f41d fix(DASH): Segments being fetched out of the range of the timeline (#5889)
Fixes: https://github.com/shaka-project/shaka-player/issues/3952
2023-11-16 09:48:12 +01:00
Álvaro Velad Galván 1c6f1fa7b3 feat(DASH): Add support for Content Steering in AdaptationSet BaseURL (#5884)
Related to https://github.com/shaka-project/shaka-player/issues/5704
2023-11-15 08:59:47 +01:00
Álvaro Velad Galván 42f491f782 feat(DASH): Add support for Content Steering (#5710)
Related to https://github.com/shaka-project/shaka-player/issues/5704
2023-11-09 08:34:09 +01:00
Álvaro Velad Galván 508e5cfbba feat(DASH): Add initial support for "urn:mpeg:dash:ssr:2023" (#5762) 2023-11-03 14:57:15 +01:00
Álvaro Velad Galván 5f94a6253b feat(DASH): Add support for minimum values in service descriptions (#5844)
Closes https://github.com/shaka-project/shaka-player/issues/5780
2023-11-02 17:53:39 +01:00
theodab 4425dca283 chore: Remove state engine (#5752)
The state engine mechanism, designed for the player class, was
over-engineered. The structure of the class makes debugging player
errors unnecessarily annoying, by obfuscating the code-path the error
followed, and in general
has created a significant amount of technical debt.
This changes the player to use an async-await setup for the top-level
operations, laying things out much more cleanly
and linearly.

---------

Co-authored-by: Álvaro Velad Galván <ladvan91@hotmail.com>
2023-10-30 23:59:08 -07:00
Álvaro Velad Galván f8438df7b0 fix(DASH): Handle minimumUpdatePeriod=0 with urn:mpeg:dash:event:2012 (EMSG) (#5823) 2023-10-28 08:52:20 +02:00
Casey Occhialini c02cceeeca fix: seeking in segment timeline returns incorrect index (#5716)
Resolves #5664
2023-10-03 16:37:59 -07:00
Álvaro Velad Galván adb1aca180 test: Stop correctly DASH parser (#5715) 2023-10-03 17:48:11 +02:00