Commit Graph

39 Commits

Author SHA1 Message Date
Álvaro Velad Galván bf15b24fc2 fix(HLS): Fix AC-4 codec selection in HLS (#6818)
See:
https://ott.dolby.com/OnDelKits/AC-4/Dolby_AC-4_Online_Delivery_Kit_1.5/Documentation/Specs/AC4_HLS/help_files/topics/hls_playlist_c_codec_indication.html
2024-06-13 22:22:34 +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 c59a3b83a3 fix(HLS): Fix IAMF codec selection in HLS (#6389)
IAMF spec: https://aomediacodec.github.io/iamf/

IAMF codec string: https://aomediacodec.github.io/iamf/#codecsparameter
2024-04-03 08:27:17 +02:00
Álvaro Velad Galván d2516498d2 feat(HLS): Add automatically keyId-key for identity format (#6308) 2024-02-29 23:19:13 +01:00
Álvaro Velad Galván 783603c0fe chore: Add createDrmInfoFromClearKeys and simplify DrmEngine (#6296)
This is a preliminary step to be able to support HLS identity without
the user configuring clearkeys.
2024-02-26 10:56:43 +01:00
Álvaro Velad Galván 701ec9bece fix(HLS): Fix VVC codec selection in HLS (#6156) 2024-01-24 20:15:14 +01:00
Álvaro Velad Galván 8d6ad7ed64 feat(HLS): Add support for SUPPLEMENTAL-CODECS (#6155) 2024-01-24 18:25:44 +01:00
Álvaro Velad Galván c100053532 feat: Add support for Dolby Vision based on AVC and AV1 (#6154) 2024-01-24 18:15:18 +01:00
Ivan 4d5caee661 perf(manifest): avoid unnecessary looping in uri resolver (#5773)
This removes creating an array of arrays in manifest URI resolver and
uses a nested loop to update an empty array instead

Co-authored-by: Ivan Kohut <ivan.kohut@lamin.ar>
2023-10-16 18:00:45 -07:00
Álvaro Velad Galván bd17c2bfd0 perf: Optimization to resolve uris (#5657)
Chained use of maps and reduce on legacy devices reduces performance. So
if there is only one url to generate we can optimize performance.
2023-09-14 18:14:51 +02:00
lonebyte ccc3d2fb71 fix: Support fLaC and Opus codec strings in HLS (#5454)
Fixes: #5453
2023-08-15 17:35:05 +02:00
Álvaro Velad Galván 37b7be60b2 fix(HLS): Fix dvh1 and dvhe detection as video codec (#5364) 2023-06-28 12:14:24 +02:00
Álvaro Velad Galván 2ca7d0b060 feat(HLS): Improve HLS parsing time (#5264)
Related to https://github.com/shaka-project/shaka-player/pull/5261

This PR delays the creation of the final urls of the segments so that
they are not calculated in each media playlist parsing.
2023-06-08 22:03:41 +02:00
ashley-manners-xperi 67b1e90345 fix(HLS): Adding support for DTS Express in HLS fMP4 (#5112) (#5117)
The SampleEntry box in the SampleDescription (stsd) box will have the
codingname 'dtse' for DTS Express audio tracks.
This is defined in Table E-1 of ETSI TS 102 114 V1.6.1 (2019-08) DTS
Coherent Acoustics; Core and Extensions with Additional Profiles.
The 'dtse' codingname has been added to the AUDIO_CODEC_REGEXPS_ list,
which enables support for playback of DTS Express in HLS fMP4 streams.

The 'ddts' and 'udts' entries have been removed from the
AUDIO_CODEC_REGEXPS_ list, as these are not audio codec identifiers, but
FourCC values for the DTSSpecificBox and DTSUHDSpecificBox, which can be
found within the SampleDescription box for DTS audio tracks.
The DTSSpecificBox (ddts) is defined in Section E.2.2.3.1 of ETSI TS 102
114 V1.6.1 (2019-08) DTS Coherent Acoustics; Core and Extensions with
Additional Profiles.
The DTSUHDSpecificBox (udts) is defined in Table B-2 of ETSI TS 103 491
V1.2.1 (2019-05) DTS-UHD Audio Format; Delivery of Channels, Objects and
Ambisonic Sound Fields.

The Mime Types for the DTS formats supported by Shaka Player have been
added to the probeSupport function.

Fixes https://github.com/shaka-project/shaka-player/issues/5112
2023-03-23 16:59:50 +01:00
Álvaro Velad Galván 319a358b8d fix: Fix detection of ac4, dts, and dolby h265 (#4657) 2022-11-07 20:56:32 +01:00
wjywbs 5e1349570d fix(hls): Fix av1 codec selection in HLS. (#4203) 2022-05-09 07:49:17 +02:00
Vincent Valot 9b4502cc5d feat: add serverCertificateUri in DRM advanced config (#3358)
Fixes #1906
2021-05-03 10:53:31 -07:00
Vincent Valot 4574a5dd92 feat: make drm sessionType configurable in advanced DRM config (#3301)
Prerequisite for issue #1495 (com.microsoft.playready.recommendation key system)
2021-04-01 16:32:51 -07:00
Michelle Zhuo 198a6d42f6 feat(MediaCap): Guess the codecs of multiplexd stream for MediaCap
If we have a multiplexd stream with audio and video, the video
codecs are a combined string containing both audio and video codecs.
Before sending the request to decodingInfo(), we should check which
codec is audio and which one is video.

This is a follow-up of commit 966a756.

Issue #1391

Change-Id: Ic9b1c5972a99f63a715c74ae068b85f43efac447
2021-03-30 14:43:25 -07:00
Joey Parrish f539147d48 fix: Correct license headers in compiled output
This fixes all the license headers in the main library, which corrects
the appearance of the main license in the compiled output.

It seems that the `!` in the header forces the compiler to keep it in
the output.  I believe older compiler releases did this purely based
on `@license`.

Issue #2638

Change-Id: I7f0e918caad10c9af689c9d07672b7fe9be7b2f3
2020-06-09 16:05:09 -07:00
Joey Parrish 6e3dfa40ba Deduplicate key IDs with Set
When period-flattening combines Streams, key ID arrays would get very
long with duplicates.

This changes keyIds in the manifest and offline structures from Array
to Set.

Issue #1339

Change-Id: I003d23e567efafa771ecd2ad597900181604ad18
2020-04-09 19:22:16 +00:00
Álvaro Velad Galván fcff08b58d Filter image adaptation sets (#2276)
* Filter image adaptation sets

* Add comment about the change

* Add test

* Change Test  name
2019-12-06 12:18:33 -08:00
Joey Parrish 64896d70b0 Use shorter license header
This reflects changes in Google's policy on JavaScript license
headers, which should be smaller to avoid increasing the size of the
binary unnecessarily.

This also updates the company name from "Google, Inc" to "Google LLC".

Change-Id: I3f8b9ed3700b6351f43173d50c94d35c333e82b4
2019-11-22 18:18:36 +00:00
Jacob Trimble 43e798870f Misc ES6 conversions.
Issue #1157

Change-Id: Ia25a6cae84575f003980e9694b2769f2976e1342
2019-06-03 15:31:57 +00:00
Michelle Zhuo ebdf9d7817 Update Util files to ES6
Issue #1157

Change-Id: Ib81d198e46bc57745f60af328d1160064e253ba3
2019-05-30 16:40:49 +00:00
Jacob Trimble f130dffcef Enable eslint indentation rule.
This is a fully automated change.  The linter will fail because the
extra indentation caused line-length errors.  These won't be fixed
automatically.  They are fixed in a follow-up to make this one fully
automated.

Change-Id: I4d8cf9c998985add2bcd24a81c8d65495668c4f3
2019-05-13 22:31:09 +00:00
Jacob Trimble 0dd64074b9 Only allow one statement per line.
With the new style rule, we cannot have two statements on the same line.
So we can no longer have an "if" on a single line and we cannot have
an arrow function with a body on the same line as when it is used.
This is mostly a manual change.

Change-Id: I2285202dd5ecbad764308bc725e6d317ff2ee7f0
2019-05-13 22:11:50 +00:00
Jacob Trimble 47daf49f31 Use arrow functions for callbacks.
This is an automated change to convert use of "function" functions
to arrow functions.  This doesn't change all uses of bind() that
could be converted.  This also doesn't remove all "function" functions.

Change-Id: I40ac7d086bcef947a1be083359c8fd1d4499a9c3
2019-05-09 16:40:46 +00:00
Jacob Trimble c81389741f Prefer const over let.
A coming update to the Google eslint config will require using "const"
over "let".  This makes that one change to isolate the big changes.

Change-Id: I7d0974c3ae15c53cc45a6b07bf9f6586e2d34aca
2019-05-08 09:22:10 -07:00
Joey Parrish fd0449d8f7 Re-enable some disabled style rules
This re-enables the following style rules:
  - "block-spacing"
  - "brace-style"
  - "comma-dangle"
  - "comma-spacing"
  - "new-cap"
  - "no-multi-spaces"
  - "no-multiple-empty-lines"
  - "one-var"
  - "padded-blocks"
  - "prefer-rest-params"

Change-Id: I15d616e8d5b88b273ded6128b4f9ad86bdb26bd1
2018-07-09 19:44:56 +00:00
Sandra Lokshina 8065bd54a8 Change namespace from shakaExterns to shaka.externs
Change-Id: I16432351e2a266aa8fd175669aa27c44bfdffeae
2018-04-11 17:26:26 +00:00
Theodore Abshire 7c5186332b Typo fixes and rewording in comments, part 7
This makes a large number of small typo fixes. It also rewords a
number of comments and JSDoc descriptions, and does some
formatting standardization.

This doesn't fix every single issue, but it fixes a lot. Notably,
there were some formatting issues I declined to standardize due to
ambivalence on what the proper standardization would be; for example,
when and where empty lines should show up in JSDoc.

Change-Id: I225f5c7e54adf4cca8512cddae082ba50ed82e4e
2018-03-21 19:45:15 +00:00
Jacob Trimble 624acc66b8 Add curly braces to all blocks.
Google style guide requires adding curly braces to all block statements
even if it is only has one line.  This fixes it by using eslint's
--fix flag followed by running clang-format to reformat the change.

Change-Id: Idc086c2aa8c02df5ef8b2140a11bfb9128eeb4bd
2018-02-21 11:23:34 -08:00
Jacob Trimble f70436540c Convert 'var' to 'let'/'const' (3 of 9).
This is part of a change to convert all usages of 'var' with either
'let' or 'const'.  This takes a conservative approach for 'const' where
it will only be used for aliases and storing the "original" values in
tests.

Change-Id: I10f5c38a8b06b5797c6eec7492829084114514c9
2018-02-14 00:47:03 +00:00
Sandra Lokshina 01d6458422 Prepeare HLS parser for supporting encrypted content.
This change enables HLS parser to get DRM information
from the manifest and create DrmInfo objects.
Note that until we actually add support for any of the
drm systems, we will still reject encrypted content.

Issue #279.

Change-Id: I4d0652411a567bc75d919c5bf732f20e870a5aeb
2017-03-29 17:33:12 +00:00
Sandra Lokshina cb11dac389 Fit segment references to the period length in HLS parser.
b/36070874
b/35849456

Change-Id: Ibd64b02dd98d2ff6db175412e5f44dc5e872d767
2017-03-14 10:32:41 -07:00
Sandra Lokshina eff3225563 Add constants for shaka content types and stream kinds.
Change-Id: I6630863e3a53caf9c863e5df6a593cddba516f2a
2017-02-17 09:59:37 -08:00
Jacob Trimble fc5fe61bae Fix copyright headers.
We only use 2016 in the copyright headers for our files.  If we use
different years for different files, then the compiled library will
include copies of all of them, bloating the library.

Change-Id: Ia894601cbd660f9e7cbe84264b421ff60e847dcd
2017-02-15 23:36:45 +00:00
Sandra Lokshina 87073c9afa Create ManifestParserUtil common to dash and hls parsers.
Both DASH and HLS parsers will be using resolveUris() and possibly
other methods in the future.
Create a ManifestParserUtil for the shared methods.

Issue #279.

Change-Id: Iaa5e32ec543a390341a54752563a9f27251f0832
2017-01-19 23:34:25 +00:00