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

fix: Improved HEAD request fail test when fallback-ing to GET request #6044

Merged
merged 395 commits into from
Jan 8, 2024
Merged
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
395 commits
Select commit Hold shift + click to select a range
a38f3d9
ci: Fix incremental coverage reports (#5552)
joeyparrish Aug 29, 2023
a601733
feat: Add TS transmuxer (#5386)
avelad Aug 29, 2023
b9475b0
feat: Allow generate muxed content with Mp4Generator (#5555)
avelad Aug 30, 2023
6e71a40
feat(HLS): Parse #EXT-X-BITRATE (#5550)
avelad Aug 30, 2023
9718aa4
feat: Add AAC silent frame getter (#5557)
avelad Aug 30, 2023
bd9572e
test: Improve transmuxer tests (#5553)
avelad Aug 30, 2023
2faa7ed
feat: add feature-flag to insert fake encryption in init segments on …
valotvince Aug 30, 2023
ab3589b
docs: Update docs for v4.4 release (#5562)
joeyparrish Aug 30, 2023
1353629
chore(main): release 4.4.0 (#4692)
github-actions[bot] Aug 30, 2023
3dcd121
ci: Revert "main branch only - fix bad release PR" (#5564)
joeyparrish Aug 30, 2023
6be2406
fix: Fix Mp4Generator (#5566)
avelad Aug 31, 2023
54121d0
fix: Prevent codecs override in the transmuxer (#5568)
avelad Aug 31, 2023
70ae7e9
test: Fix MSS PlayReady test (#5569)
avelad Aug 31, 2023
71dee4d
test: Fix "extracts ID3 metadata from AAC" tests (#5570)
avelad Aug 31, 2023
d65bb53
ci: Talk to Shaka Bot (#5565)
joeyparrish Aug 31, 2023
eff1748
fix: Fix PES parsing (#5559)
avelad Sep 1, 2023
39e2782
fix: Fix MediaSourceEngine reset operation (#5576)
avelad Sep 1, 2023
581cba9
fix(HLS): Allow audio groups on audio-only content (#5578)
avelad Sep 1, 2023
de26ebd
fix: Fix TS transmuxer when the main content is muxed (#5575)
avelad Sep 1, 2023
e80a453
chore: Added constantProperty to the @suppress statement namespace.js…
clayw Sep 1, 2023
47a50cd
fix: Remove debugging code on Simple Text (#5582)
francoism90 Sep 1, 2023
92f3672
chore: Sync common workflows (#5586)
shaka-bot Sep 2, 2023
a378a5b
ci: Use shaka-bot for releases (#5585)
joeyparrish Sep 2, 2023
634c6e7
ci: Use shaka-bot for coverage reports (#5580)
joeyparrish Sep 2, 2023
7c27872
ci: Do not use a fork for release actions (#5588)
joeyparrish Sep 2, 2023
552d24a
fix: Fix transmuxed audio timestamps (#5595)
avelad Sep 4, 2023
c6ead99
feat: Add manifestupdated event (#5602)
avelad Sep 5, 2023
a0c01f6
fix: com.apple.fps should work with the default initDataTransform whe…
avelad Sep 5, 2023
d2783c0
fix: fix preferred track selection on Safari (#5601)
tykus160 Sep 5, 2023
53bd916
fix(Demo): Allow com.apple.fps.1_0 in the custom DRM System field (#5…
avelad Sep 5, 2023
04f23a7
ci: Fix version update in release workflow (#5605)
joeyparrish Sep 5, 2023
d208543
fix(HLS): Get the correct video codec for TS segments (#5598)
avelad Sep 5, 2023
0c62a73
ci: Publish NPM tags explicitly (#5608)
joeyparrish Sep 6, 2023
db60745
ci: Add Chromecast GTV device to the lab (#5612)
joeyparrish Sep 6, 2023
0b48132
fix(UI): Fix broken language names on Google TV (#5613)
joeyparrish Sep 6, 2023
b136579
feat(CEA): Parse CEA from TS with H.265 (#5610)
avelad Sep 7, 2023
4f6b435
fix: Improve TsParse to avoid parsing errors (#5615)
avelad Sep 7, 2023
f660e60
feat: Add TS transmuxer for muxed content (#5571)
avelad Sep 7, 2023
42751f8
ci: Work around msedgedriver 115+ bug (#5618)
joeyparrish Sep 8, 2023
26f1a08
feat(HLS): Get the correct video info for TS segments with H.265 (#5616)
avelad Sep 8, 2023
82e9230
fix: Fix compiled-mode error formatting (#5623)
joeyparrish Sep 8, 2023
a940c88
ci: Expand deflaking to all lab test and PR test runs (#5625)
joeyparrish Sep 8, 2023
cfd4c56
fix(DASH): Fix race condition error while switching audio tracks (#5619)
avelad Sep 8, 2023
ee5bf4a
docs: Fix registerScheme snippet (#5635)
loicraux Sep 11, 2023
3384a33
fix(WebVTT): Fix wrong writing-mode in nested cues (#5641)
avelad Sep 12, 2023
07e67e3
feat(WebVTT): Add support to text-combine-upright (#5633)
avelad Sep 12, 2023
1f1c387
feat(ABR): Allow some downscale when use restrictToElementSize or res…
avelad Sep 12, 2023
85bd807
fix(WebVTT): Fix support for line:0 vertical alignment (#5632)
avelad Sep 12, 2023
f355eeb
feat(WebVTT): Add support to ruby, rt, rp html tags (#5642)
avelad Sep 12, 2023
42253e2
fix(HLS): Show WebVTT subtitles with X-TIMESTAMP-MAP in segments mode…
avelad Sep 12, 2023
5f5ba44
fix(TTML): Fix wrong writing-mode in nested cues (#5646)
avelad Sep 12, 2023
6eb6d56
feat(TTML): Add support to tts:ruby (#5645)
avelad Sep 12, 2023
d160514
fix: Compute correctly the positionAlign in UITextDisplayer (#5630)
avelad Sep 12, 2023
42b3ed9
feat(DASH): Allow the playback of DASH with $time$ and large timescal…
avelad Sep 12, 2023
0fed61f
feat(TTML): Add support to tts:textCombine (#5644)
avelad Sep 13, 2023
f19f302
docs: Add Nagra to FairPlay tutorial (#5647)
avelad Sep 13, 2023
8b04f31
chore(DASH): Create makeNetworkRequest_ method (#5655)
avelad Sep 13, 2023
cd1c699
chore: Rename hlsAes128Key to aes128Key (#5653)
avelad Sep 13, 2023
3cdad71
chore: Rename HLS_AES_128_* to AES_128_* (#5654)
avelad Sep 13, 2023
cacbd79
feat(DASH): Add new config to prevent mixing of audio representations…
avelad Sep 13, 2023
b97a79f
feat(UI): Add PiP function to controls (#5629)
avelad Sep 13, 2023
d54b44f
fix(HLS): Fix audio and video out of sync (#5658)
avelad Sep 14, 2023
aba4f68
perf: Optimization to resolve uris (#5657)
avelad Sep 14, 2023
a48a39e
feat(UI): Add remote button with RemotePlayback API (#5650)
avelad Sep 14, 2023
b6da900
feat: Add H.265 TS transmuxer (#5611)
avelad Sep 15, 2023
6d2daa4
revert: "fix(WebVTT): Fix wrong writing-mode in nested cues (#5641)" …
avelad Sep 15, 2023
655e2fb
refactor(WebVTT): Refactor how nestedCues are handled in WebVTT (#5663)
avelad Sep 15, 2023
ed3ea12
feat(DASH): Add support for AES-128 (#5656)
avelad Sep 16, 2023
3e16c51
fix: Fix creation of new Stream object for each manifest request in D…
avelad Sep 25, 2023
463b454
chore(demo): Removed demo localization system (#5665)
theodab Sep 25, 2023
0f57243
fix(HLS): Support AES-128 in init segment according the RFC (#5677)
avelad Sep 25, 2023
0592735
fix: Fix some properties on the shaka.text.Cue that are mangled (#5673)
avelad Sep 25, 2023
6676557
test: Add H.265 in TS test (#5676)
avelad Sep 25, 2023
cacd30d
feat(HLS): Take into account the parsing time for manifest schedule u…
avelad Sep 25, 2023
7bf3265
test: Fix Dolby tests in Edge (#5675)
avelad Sep 25, 2023
6ed04a5
fix: Allow PID change in TsParser (#5681)
avelad Sep 26, 2023
28ddcef
fix: Fix transmuxing of muxed content (#5686)
avelad Sep 27, 2023
bc708ca
fix(HLS): Fix presentation delay for small live playlists (eg: 3-4 se…
avelad Sep 27, 2023
53e66ae
fix: Fix NALU parsing in some HLS muxed live streams (#5688)
avelad Sep 27, 2023
065a1b5
feat(Ads): Add support for AWS Elemental MediaTailor (#5679)
avelad Sep 28, 2023
be3aa48
feat(demo): Added icons for new demo assets (#5691)
theodab Sep 28, 2023
c7f185e
feat(UI): Add config to preferDocumentPictureInPicture (#5690)
avelad Sep 28, 2023
d554d11
fix(HLS): Fix display CEA-708 in HLS (#5694)
avelad Sep 29, 2023
b0b7ace
fix(CMCD): Fix CMCD for some mimetypes in src= (#5699)
avelad Sep 29, 2023
64f306a
docs: Fix offline tutorial (#5706)
avelad Oct 2, 2023
6b0b812
feat: Add KeyStatusChanged and UpdateState events (#5695)
avelad Oct 2, 2023
ac9151a
fix(HLS): Skip segments without duration and without partial segments…
avelad Oct 2, 2023
2fa782f
fix(Demo): Fix url of "Low Latency HLS Live" asset (#5708)
avelad Oct 2, 2023
3d4eb9f
fix(DASH): Fix bigint implementation (#5707)
avelad Oct 2, 2023
3244807
chore(Demo): Simplify low latency filter (#5709)
avelad Oct 2, 2023
c7f5021
fix: Fix unreleased stack overflow on statechanged (#5712)
joeyparrish Oct 3, 2023
52a4bab
feat: Migration of LCEVC DIL (Decoder Integration Layer) to LCEVC Dec…
v-nova-vinod Oct 3, 2023
085a52a
feat: Add getBandwidthEstimate to the player interface for custom man…
avelad Oct 3, 2023
377b5ec
test: Stop correctly DASH parser (#5715)
avelad Oct 3, 2023
8c4e231
fix: seeking in segment timeline returns incorrect index (#5716)
littlespex Oct 3, 2023
f771f4f
feat: Enable codec switching (#5470)
dave-nicholas Oct 4, 2023
29eeb91
chore: Update README (#5717)
avelad Oct 4, 2023
a811ad4
docs: Update docs for v4.5 release (#5718)
avelad Oct 4, 2023
f4d8bf7
ci: Simplify release version updates (#5724)
joeyparrish Oct 4, 2023
e5a89dc
docs: Update FAQ for v4.5 release (#5725)
joeyparrish Oct 4, 2023
f614f93
chore(deps-dev): bump postcss from 8.4.6 to 8.4.31 (#5726)
dependabot[bot] Oct 4, 2023
94f77fb
chore(main): release 4.5.0 (#5727)
shaka-bot Oct 4, 2023
2da6e9c
ci: Fix player version check on release (#5728)
joeyparrish Oct 4, 2023
30444b8
feat: Stop setting playbackRate to 0 to control buffering state (#5696)
avelad Oct 5, 2023
be060b5
fix: For text content is not necessary codec switching (#5731)
avelad Oct 5, 2023
ec8bf98
fix(HLS): Fix init segment when EXT-X-MAP is preceded by EXT-X-BYTERA…
avelad Oct 5, 2023
11b3c18
chore: Switch to new issues email (#5734)
theodab Oct 6, 2023
798a35e
fix(HLS): Fix url management in HLS (#5722)
avelad Oct 6, 2023
8c24ab2
chore(HLS): Reduce complexity of HLS parser (#5740)
avelad Oct 6, 2023
408c5a9
chore: Fix typos (#5742)
joeyparrish Oct 6, 2023
9641541
chore(DASH): Update DASH URL management to allow Content Steering in …
avelad Oct 9, 2023
dc29d78
docs: Add missing text and manifest parsers (#5750)
avelad Oct 9, 2023
6c45b16
fix(UI): Fix text selector when the trackLabelFormat is set to LABEL …
avelad Oct 9, 2023
0252c92
feat(UI): Display frame rates in the quality selector (#5753)
avelad Oct 9, 2023
6a12b72
feat(net): Add shaka.net.NetworkingUtils (#5756)
avelad Oct 10, 2023
8cb8ea0
perf(HLS): Improve detection of all partial segments (#5761)
avelad Oct 11, 2023
daa37cb
feat: Use ManagedMediaSource when available (#5683)
avelad Oct 11, 2023
3ceb55e
fix(DASH): Fix manifest update time for LL-DASH (#5736)
avelad Oct 11, 2023
b53b7f4
fix(DASH): Fix manifest update time for Live manifests (#5763)
avelad Oct 12, 2023
4812ee8
fix: Dispatch streamDataCallback correctly in SegmentPrefetchOperatio…
avelad Oct 12, 2023
afb4cbf
perf(manifest): avoid unnecessary looping in uri resolver (#5773)
vanyaxk Oct 17, 2023
a35ca65
perf(DASH): reduce looping and remove chaining awaits in period (#5774)
vanyaxk Oct 18, 2023
adb7294
perf(Xbox): drop incompatible variants for XBOX early (#5777)
vanyaxk Oct 18, 2023
3a4c669
feat(thumbnails): Add Player.getAllThumbnails (#5783)
theodab Oct 19, 2023
feee494
feat(HLS): Add new config to get codecs from media segment for playli…
zangue Oct 20, 2023
9bed236
perf(dash): improve readability and reduce number of loops in dash pa…
vanyaxk Oct 20, 2023
a56d75f
chore(DASH): move repetitive code to method, avoid full iteration if …
vanyaxk Oct 21, 2023
9b248cd
perf: simplify and improve performance of parsing initData when dedup…
vanyaxk Oct 22, 2023
cbba4a4
test: Update test with invalid initData. (#5788)
theodab Oct 23, 2023
f62740d
chore(deps-dev): bump @babel/traverse from 7.17.3 to 7.23.2 (#5779)
dependabot[bot] Oct 23, 2023
55b9c20
perf(utils): use WeakSet to track object references (#5791)
vanyaxk Oct 23, 2023
d54d4d1
fix: Allow parseXmlString when createNodeIterator is not available (#…
avelad Oct 24, 2023
95e9711
fix: Fix chooseCodecsAndFilterManifest for some HLS manifest (#5800)
avelad Oct 24, 2023
265cc9d
feat(HLS): Add support for QUERYPARAM variable type in #EXT-X-DEFINE …
avelad Oct 24, 2023
88c601e
docs(Ads): Add AWS Elemental MediaTailor tutorial (#5803)
avelad Oct 25, 2023
d8a5717
fix(WebVTT): Fix wrong writing-mode in nested cues (#5807)
avelad Oct 25, 2023
15b5c5f
perf: Improve transmuxer performance (#5789)
avelad Oct 25, 2023
09a304c
fix: Fix converts legacy avc1 codec strings on transmuxer (#5790)
avelad Oct 25, 2023
8ed1106
fix: Fix DRM workaround for Tizen and Xbox with ac-4 boxes (#5812)
avelad Oct 25, 2023
5818b69
chore: Add AC-4 to probeSupport (#5813)
avelad Oct 25, 2023
004a43a
feat: Add thumbnails support in src= (#5802)
avelad Oct 26, 2023
3782d30
feat: Add a stub text display class (#5804) (#5806)
kaidokert Oct 26, 2023
e18e3bf
feat(HLS): Build closed captions metadata for media playlist on-the-f…
avelad Oct 26, 2023
2f310ea
feat(HLS): Add support for REQ-VIDEO-LAYOUT (#5809)
avelad Oct 26, 2023
6ae0844
chore(Demo): Allow add custom MediaTailor assets (#5798)
avelad Oct 26, 2023
9c94fd3
fix: Fix chooseCodecsAndFilterManifest for similar frameRate (#5817)
avelad Oct 27, 2023
238ccb2
feat: Improve latency in LL DASH streams (#5820)
avelad Oct 27, 2023
b5d02f5
fix(HLS): Fix kind detection for 'captions' text tracks (#5819)
avelad Oct 27, 2023
5bdf8eb
fix(DASH): Handle minimumUpdatePeriod=0 with urn:mpeg:dash:event:2012…
avelad Oct 28, 2023
c6bfa84
feat: Allow prefetch init segments (#5825)
avelad Oct 28, 2023
81d87a2
feat: Add partial info to shaka.media.SegmentReference (#5822)
avelad Oct 30, 2023
746700e
chore(Demo): Add extra chapter functionality (#5796)
avelad Oct 30, 2023
cd18556
feat(UI): Bucketize resolution names in the UI (#5816)
avelad Oct 30, 2023
22e767d
chore(Demo): Remove HLS tab and add extra tracks tab on custom assets…
avelad Oct 30, 2023
1583736
fix(UI): Console error on remote.cancelwatchavailability() method in …
avelad Oct 30, 2023
e6d31ee
test: Fix asset of EC3 test (#5828)
avelad Oct 30, 2023
05e9a05
fix: Fix crash while playing HLS AES 128 streams (#5830)
avelad Oct 30, 2023
8870577
fix: Fix incompatible codec is selected in Windows Edge for Widevine …
avelad Oct 30, 2023
bf0a5e9
fix: UITextDisplayer font-family is overridden by UI's Roboto font (#…
avelad Oct 30, 2023
1be861c
fix(hisense): set stallSkip to 0 for HiSense devices (#5833)
vanyaxk Oct 30, 2023
92fb713
chore: Remove state engine (#5752)
theodab Oct 31, 2023
e75f88e
fix: Fix bug with live start time (#5835)
theodab Oct 31, 2023
6cc53e2
perf(DASH): PeriodCombiner optimisations (#5837)
tykus160 Oct 31, 2023
0a1f45c
fix: ban new Uint16Array(buffer) (#5838)
tykus160 Oct 31, 2023
457ab3a
docs: fix await keyword for attach method (#5841)
friday Oct 31, 2023
4eac4d0
fix(HLS): Fix accessibilityPurpose detection (#5840)
avelad Oct 31, 2023
761b609
fix(dash): fix race condition in segment template (#5842)
friday Nov 2, 2023
f97f65d
feat(DASH): Add support for minimum values in service descriptions (#…
avelad Nov 2, 2023
cc9dff9
fix: Fix nalu parsing and improve performance in the transmuxer (#5846)
avelad Nov 2, 2023
b4d8e95
fix(offline): Fix server certificate error when trying to store conte…
avelad Nov 2, 2023
36bf926
feat(DASH): Add initial support for "urn:mpeg:dash:ssr:2023" (#5762)
avelad Nov 3, 2023
1d68185
fix: AD_STARTED fires before ad started with AWS Media Tailor (#5855)
avelad Nov 3, 2023
9ca6b80
feat: Add config to ignore duplicate init data (#5853)
avelad Nov 3, 2023
4d75307
feat: Add support for WPE based browsers in RDK set-top boxes (#5852)
avelad Nov 5, 2023
be43b85
feat(ID3): decode APIC frames (#5857)
pszemus Nov 6, 2023
41d79de
fix(TTML): Fix support of urls in smpte:backgroundImage (#5851)
avelad Nov 6, 2023
e720375
fix: Fix variant filtering by preferredAudioChannelCount (#5859)
avelad Nov 6, 2023
5b1644a
fix(Offline): Fix download of some HLS manifests (#5861)
avelad Nov 6, 2023
1fd05fd
feat(Demo): Add CBCS content to demo (#5862)
avelad Nov 7, 2023
397ca32
feat: Add video progress events (#5850)
avelad Nov 7, 2023
578b706
feat(HLS): Add support for mjpg I-Frames playlist (#5856)
avelad Nov 8, 2023
ef5fe47
feat(demo): Add icon for new demo asset (#5866)
theodab Nov 8, 2023
35d911c
feat(UI): Add chapter titles and dividers on the seek bar (#5863)
avelad Nov 8, 2023
e981a33
feat(Demo): Add new 3D movie stream from Apple (#5872)
avelad Nov 8, 2023
e7c51c2
fix(HLS): Fix decryption of AES-128 (#5871)
avelad Nov 8, 2023
707fc8e
feat(DASH): Add support for Content Steering (#5710)
avelad Nov 9, 2023
c345204
fix: Fix missing audio streams (#5869)
avelad Nov 13, 2023
582e28d
fix: Fix selectAudioLanguage using channelsCount param (#5875)
avelad Nov 13, 2023
abca846
feat(UI): Show the channel count in the audio selector (#5868)
avelad Nov 13, 2023
66c4cac
fix(ABR): Fix HLS playback after internet connection is restored (#5879)
avelad Nov 13, 2023
07e7b54
feat(HLS): Add new config for allow LL-HLS byterange optimization (#5…
avelad Nov 13, 2023
4078e86
fix(HLS): Fix bad detection in some MediaPlaylist (#5878)
avelad Nov 13, 2023
feb6803
fix(HLS): Fix LL-HLS with byterange optimization using segments mode …
avelad Nov 13, 2023
32def59
refactor(HLS): Refactor URLs management in HLS (#5864)
avelad Nov 14, 2023
29b0e6a
fix(DASH): Fix bad url when specify MPD BaseURL and AdaptationSet Bas…
avelad Nov 14, 2023
c50661f
feat(DASH): Add support for Content Steering in AdaptationSet BaseURL…
avelad Nov 15, 2023
0df0dac
feat(HLS): Add support for Content Steering (#5881)
avelad Nov 15, 2023
71f7c4b
fix: Fix mangled property in compiled mode in Content Steering (#5887)
avelad Nov 15, 2023
7291a4a
fix: CEA decoder should return early if packet is not large enough (#…
nrcrast Nov 15, 2023
e0af117
fix: Add Orange platform to requiresEncryptionInfoInAllInitSegments (…
willdharris Nov 15, 2023
678e2b0
fix: Allow get seekRange on manifestparsed event in some cases (#5892)
avelad Nov 16, 2023
64fb964
feat(Demo): Add Content Steering assets (#5888)
avelad Nov 16, 2023
1bf91ce
fix(DASH): Segments being fetched out of the range of the timeline (#…
dave-nicholas Nov 16, 2023
d22ef9f
feat(HLS): Improve the stream info when EXT-X-MEDIA has not uri (#5886)
avelad Nov 16, 2023
d25f91e
docs: Update docs for v4.6 release (#5885)
avelad Nov 16, 2023
20e8cf0
chore(main): release 4.6.0 (#5729)
shaka-bot Nov 16, 2023
0e41862
fix(DASH): SegmentTemplate@media not updated after change in manifest…
avelad Nov 16, 2023
d17b43f
fix: Fix language comparison in addTextTrackAsync (#5904)
avelad Nov 17, 2023
61d2d56
feat: Add support for Common Media Server Data (CMSD) (#5900)
avelad Nov 20, 2023
2a090fc
fix(DASH): Fix false redirect detection (#5910)
avelad Nov 21, 2023
d0fa0b6
chore(DASH): Simplify content steering management in DASH (#5909)
avelad Nov 21, 2023
4d98216
fix: Unmask errors on LL (#5908)
avelad Nov 21, 2023
4b93f3b
fix(HLS): Recognize CEA subtitles when CLOSED-CAPTIONS attribute is m…
avelad Nov 22, 2023
f9742ac
fix(Demo): Allow configure some missing configs (#5918)
avelad Nov 22, 2023
af6033a
fix: Only append to the buffer init segments when the segment is inde…
avelad Nov 22, 2023
0ea5f69
feat(DASH): Add support for location in Content Steering (#5914)
avelad Nov 22, 2023
e4f39e0
fix: Fix init segment comparison (#5920)
avelad Nov 22, 2023
dacb739
chore(LCEVC): Update lcevc_dec.js dependency (#5922)
avelad Nov 22, 2023
c8b1569
feat: expose CEA708 window position in the cue's region (#5924)
gkatsev Nov 23, 2023
3a788b9
feat: Set baseDelay to 100 by default for low latency streaming (#5926)
avelad Nov 27, 2023
6a2073e
feat(Demo): Use MediaSession action handler in the demo (#5927)
avelad Nov 27, 2023
f858e42
feat(UI): Hide language and resolution overflow menu button if there'…
avelad Nov 27, 2023
1c615b8
fix(UI): Correctly display video time and duration for VOD (#5929)
avelad Nov 27, 2023
2824d4f
fix(CEA): Fix positioning in CEA-608 (#5925)
avelad Nov 27, 2023
b80cfee
fix: Fix transmuxer when sample has no video data (#5933)
avelad Nov 27, 2023
38aa278
feat(Demo): Add field for chapters URL when adding custom content (#5…
avelad Nov 28, 2023
dc87096
fix(Demo): Pressing "Edit" button unstores custom asset, but does not…
avelad Nov 28, 2023
67929c3
feat: Avoid streams which cannot fit into the browser's MediaSource q…
avelad Nov 28, 2023
7143f97
feat: Add config to allow Media Source recoveries (#5938)
avelad Nov 28, 2023
c5db4cf
feat(UI): Add more keyboard shortcuts (#5942)
avelad Nov 29, 2023
f90d302
fix: Properly size region anchor from LINE units (#5941)
gkatsev Nov 29, 2023
729d390
feat(UI): Add double tap to forward/rewind in the video (#5943)
avelad Nov 29, 2023
99c1020
fix(HLS): Fix m4s extension detection (#5951)
avelad Nov 29, 2023
5cbfdda
fix: Fix reset Media Source when using mixed codecs in different cont…
avelad Nov 29, 2023
81f8244
feat: add preferred video label (#5948)
koenoe Nov 29, 2023
00bdae1
feat: Improve npm package size (#5955)
avelad Nov 29, 2023
2d7e4fa
fix(DASH): Fix bad url when specify using a full WebVTT with BaseURL …
avelad Nov 29, 2023
71c8b33
feat(Demo): Add field for text URL when adding custom content (#5953)
avelad Nov 30, 2023
9e92f3e
fix: Fix ESDS box parser (#5952)
avelad Nov 30, 2023
4d30d1b
chore: Added missing license headers. (#5957)
theodab Nov 30, 2023
fb12faa
Fixed parameter type
Nov 30, 2023
d715c75
Merge remote-tracking branch 'upstream/main'
Dec 1, 2023
00fd38e
Merge branch 'shaka-project:main' into main
Robloche Dec 5, 2023
20a81ac
Merge branch 'shaka-project:main' into main
Robloche Dec 12, 2023
ad0369e
Merge remote-tracking branch 'upstream/main' into 6016-fix-proposal
Jan 8, 2024
7b91657
Added BAD_HTTP_STATUS code when checking error that occurred during H…
Jan 8, 2024
ac7496e
Reverted unwanted changes
Jan 8, 2024
7bb67b7
Merge branch 'shaka-project:main' into 6016-fix-proposal
Robloche Jan 8, 2024
c8c56eb
Reverted unwanted changes (second round)
Jan 8, 2024
6efacf2
Reverted otra vez
Jan 8, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@ docs/api/
coverage/
.DS_Store
.vscode
.idea
Robloche marked this conversation as resolved.
Show resolved Hide resolved
.babel-cache
.idea/
Robloche marked this conversation as resolved.
Show resolved Hide resolved
/_mytest/
4 changes: 3 additions & 1 deletion lib/hls/hls_parser.js
Original file line number Diff line number Diff line change
Expand Up @@ -3771,7 +3771,9 @@ shaka.hls.HlsParser = class {

contentMimeType = response.headers['content-type'];
} catch (error) {
if (error && error.code == shaka.util.Error.Code.HTTP_ERROR) {
if (error &&
(error.code == shaka.util.Error.Code.HTTP_ERROR ||
error.code == shaka.util.Error.Code.BAD_HTTP_STATUS)) {
headRequest.method = 'GET';
const response = await this.makeNetworkRequest_(
headRequest, requestType, {type});
Expand Down
4 changes: 3 additions & 1 deletion lib/net/networking_utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,9 @@ shaka.net.NetworkingUtils = class {
const response = await netEngine.request(type, request).promise;
mimeType = response.headers['content-type'];
} catch (error) {
if (error && error.code == shaka.util.Error.Code.HTTP_ERROR) {
if (error &&
(error.code == shaka.util.Error.Code.HTTP_ERROR ||
error.code == shaka.util.Error.Code.BAD_HTTP_STATUS)) {
request.method = 'GET';
const response = await netEngine.request(type, request).promise;
mimeType = response.headers['content-type'];
Expand Down
113 changes: 95 additions & 18 deletions lib/text/ui_text_displayer.js
Original file line number Diff line number Diff line change
Expand Up @@ -574,6 +574,36 @@ shaka.text.UITextDisplayer = class {
return Cue.positionAlign.CENTER;
}

/**
Robloche marked this conversation as resolved.
Show resolved Hide resolved
* Compute cue position in case position is 'auto' or null
* See https://www.w3.org/TR/webvtt1/#webvtt-cue-position
*
* @param {!shaka.text.Cue} cue
* @private
*/
computeCuePosition_(cue) {
const Cue = shaka.text.Cue;
const {position, textAlign} = cue;

if (position !== null) {
// Position not null: use it
return position;
}

// Position is null: use text align to compute its value

if (textAlign === Cue.textAlign.LEFT) {
return 0;
}

if (textAlign === Cue.textAlign.RIGHT) {
return 100;
}

// Text align is: START, END or CENTER
return 50;
}

/**
* @param {!HTMLElement} cueElement
* @param {!shaka.text.Cue} cue
Expand Down Expand Up @@ -697,6 +727,11 @@ shaka.text.UITextDisplayer = class {
style.fontSize = shaka.text.UITextDisplayer.convertLengthValue_(
cue.fontSize, cue, this.videoContainer_);

style.lineHeight = cue.lineHeight;
style.textAlign = cue.textAlign;
style.textDecoration = cue.textDecoration.join(' ');
style.writingMode = cue.writingMode;

// The line attribute defines the positioning of the text container inside
// the video container.
// - The line offsets the text container from the top, the right or left of
Expand Down Expand Up @@ -759,31 +794,73 @@ shaka.text.UITextDisplayer = class {
}
}

style.lineHeight = cue.lineHeight;
const computedPositionAlign = this.computeCuePositionAlignment_(cue);
const computedPosition = this.computeCuePosition_(cue);

// The positionAlign attribute is an alignment for the text container in
// the dimension of the writing direction.
if (computedPositionAlign === Cue.positionAlign.LEFT) {
style.alignItems = 'flex-start';
} else if (computedPositionAlign === Cue.positionAlign.RIGHT) {
style.alignItems = 'flex-end';
}

// The position defines the indent of the text container in the
// direction defined by the writing direction.
if (cue.position != null) {
if (cue.writingMode == Cue.writingMode.HORIZONTAL_TOP_TO_BOTTOM) {
style.paddingLeft = cue.position;
// TODO: factorize code since width/height, left/top and right/bottom
// have same role, depending on the writing mode
if (cue.writingMode === Cue.writingMode.HORIZONTAL_TOP_TO_BOTTOM) {
// Horizontal writing
if (computedPositionAlign === Cue.positionAlign.LEFT) {
// Left side of cue box is positioned at 'computedPosition'
style.paddingLeft = computedPosition + '%';
style.width = (100 - computedPosition) + '%';
} else if (computedPositionAlign === Cue.positionAlign.RIGHT) {
// Right side of cue box is positioned at 'computedPosition'
style.paddingRight = (100 - computedPosition) + '%';
style.width = computedPosition + '%';
} else {
style.paddingTop = cue.position;
// Position is 'center'
// Horizontal center of cue box is positioned at 'computedPosition'
if (computedPosition > 50) {
// Center of cue box is in the right part of the viewport
const width = (100 - computedPosition) * 2;
style.width = width + '%';
style.paddingLeft = (100 - width) + '%';
} else if (computedPosition < 50) {
// Center of cue box is in the left part of the viewport
const width = computedPosition * 2;
style.width = width + '%';
style.paddingRight = (100 - width) + '%';
}
}
} else {
// Vertical writing
if (computedPositionAlign === Cue.positionAlign.LEFT) {
// Top side of cue box is positioned at 'computedPosition'
style.paddingTop = computedPosition + '%';
style.height = (100 - computedPosition) + '%';
} else if (computedPositionAlign === Cue.positionAlign.RIGHT) {
// Bottom side of cue box is positioned at 'computedPosition'
style.paddingBottom = (100 - computedPosition) + '%';
style.height = computedPosition + '%';
} else {
// Position is 'center'
// Vertical center of cue box is positioned at 'computedPosition'
if (computedPosition > 50) {
// Center of cue box is in the bottom part of the viewport
const height = (100 - computedPosition) * 2;
style.height = height + '%';
style.paddingTop = (100 - height) + '%';
} else if (computedPosition < 50) {
// Center of cue box is the top part of the viewport
const height = computedPosition * 2;
style.height = height + '%';
style.paddingBottom = (100 - height) + '%';
}
}
}

// The positionAlign attribute is an alignment for the text container in
// the dimension of the writing direction.
const computedPositionAlign = this.computeCuePositionAlignment_(cue);
if (computedPositionAlign == Cue.positionAlign.LEFT) {
style.cssFloat = 'left';
} else if (computedPositionAlign == Cue.positionAlign.RIGHT) {
style.cssFloat = 'right';
}

style.textAlign = cue.textAlign;
style.textDecoration = cue.textDecoration.join(' ');
style.writingMode = cue.writingMode;

// Old versions of Chromium, which may be found in certain versions of Tizen
// and WebOS, may require the prefixed version: webkitWritingMode.
// https://caniuse.com/css-writing-mode
Expand Down