-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
v1.0.0 (LHLS Chunked Transfer Support, IMSC1, Refactor) #2370
Closed
Closed
Changes from 250 commits
Commits
Show all changes
237 commits
Select commit
Hold shift + click to select a range
6faaecc
Rename events to TS.
itsjamie d54b9c5
Draft usage of strict event emitter.
itsjamie a5107bb
Merge remote-tracking branch 'origin/master' into strict-event-emitter
itsjamie 02f938a
Example usage in playlist loader.
itsjamie d1e25a0
Merge remote-tracking branch 'origin/feature/v1.0.0' into strict-even…
itsjamie 30d0a28
removeListener
itsjamie 0d91cf6
Adds types for Timeline Controller events.
itsjamie ebe7753
Undo rename of Events -> HlsEvents.
itsjamie fa4818d
Merge branch 'strict-event-emitter' into timeline-controller-event-types
itsjamie 6593bb4
The payload type is ArrayBuffer
itsjamie 5d0f6a0
Make it so eventemitter doesn't directly extend EventEmitter.
itsjamie 9a5ddd3
Use helper methods for registering and unregistering events.
itsjamie f9c33ec
Add off alias for removeListener.
itsjamie 4705095
Use delegation rather than inheritance.
itsjamie 60e0fbb
Merge remote-tracking branch 'origin/feature/v1.0.0' into strict-even…
itsjamie e19c00e
Fix linting issues.
itsjamie a8f41aa
Fix a few linting issues in playlist-loader.
itsjamie 1b22ad7
Merge remote-tracking branch 'origin/strict-event-emitter' into timel…
itsjamie 2d8ecb3
Merge pull request #2398 from video-dev/timeline-controller-event-types
itsjamie ec1e2b4
Rename `Event` -> `Events` Enum. Move from default to named export.
itsjamie 54e213a
Do not use class fields and autobind with arrow functions.
itsjamie 09d0ceb
Missed on last commit.
itsjamie 702f8f1
Help with context binding with playlist-loader.
itsjamie 40579ae
More event payloads.
itsjamie bb3afd3
Type payload to ArrayBuffer.
itsjamie c4ebef1
Convert ABR controller to use typed event emitter.
itsjamie a324aab
Remove listeners with same context.
itsjamie f027ef3
Type the rest of the abr events.
itsjamie 356d12d
Linting fix.
itsjamie ce77eb6
Remove non-native text track ID.
itsjamie 837d0a0
Typescripted events
LucasMaupin 8b1de1e
Merge remote-tracking branch 'origin/feature/v1.0.0' into strict-even…
itsjamie 7699d08
Minor typing fixes.
itsjamie 8b5cf8f
Merge remote-tracking branch 'origin/strict-event-emitter' into abr-c…
itsjamie 855747a
Merge pull request #2403 from video-dev/abr-controller-event-typing
itsjamie 1dbc3cd
Typo fix.
itsjamie 3a37b7b
Merge branch 'feature/v1.0.0' into strict-event-emitter
itsjamie b695163
In process of converting controllers.
itsjamie 1ed3844
More controller typescripting.
itsjamie 3bac74f
Merge branch 'feature/v1.0.0' into feature/logger_events_ts
LucasMaupin 523df0a
Convert more triggers to emits.
itsjamie ac806c6
Merge remote-tracking branch 'origin/feature/v1.0.0' into strict-even…
itsjamie ff71a44
Convert fps-controller to typescript.
itsjamie bcfdf35
Added some more types.
itsjamie f0a462a
Adding more event types.
itsjamie 5837756
Add typing to logger.js
LucasMaupin e855274
Remove events.js
LucasMaupin 3f54727
Catch listener errors when not in debug mode.
itsjamie 264665a
Lint logger.ts and events.ts files
LucasMaupin 061a3e0
More typing of the events.
itsjamie c948561
Merge branch 'strict-event-emitter' of https://github.com/video-dev/h…
itsjamie 07da07f
Work on getting tests to pass.
itsjamie ba1541b
Do error handling in the listener not on the emit.
itsjamie ef593cb
Fixing the last unit tests to use the new emit API.
itsjamie 4a4f8b5
Merge branch 'feature/v1.0.0' into strict-event-emitter
itsjamie a395161
Update functional test bench to use (data) signature for events.
itsjamie d103942
Update demos.
itsjamie 68aa95b
Default context of event listeners to the Hls instance.
itsjamie 35ce938
Mute video when required to auto play functional tests
c3d690c
Use KEY_LOADING event.
itsjamie 45446e2
Merge pull request #2447 from Eyevinn/feature/logger_events_ts
robwalch 8ad6dcc
Merge branch 'upstream/master' into feature/v1.0.0
9222335
Fix live level details fragment merging
5e5a918
Merge pull request #2466 from video-dev/merge-v0.13.0-beta.3
robwalch d017c03
Upgrade Typescript, ESLint, Babel.
itsjamie 742678c
Add prefer optional chain rule.
itsjamie b769b32
Add babel plugin for optional chaining.
itsjamie 5c96d13
Implement optional chaining to match rule.
itsjamie d1d65d7
Update ESDoc fork to support optional chaining.
itsjamie 2ca6bb8
feat: Add supported M3U8 tags
Korilakkuma 6eec3df
fix: Replace tab to space
Korilakkuma 6eb6eaf
fix: Fix indent
Korilakkuma 06e48aa
Merge branch 'upstream/master' into feature/v1.0.0
f2dcbab
Enforce 'no-unused-vars' lint rule
0c4e407
Cleanup timeout calls
691dceb
Enforce no-case-declarations
8bffb8e
Fix audio gaps introduced by changes in remuxer continuity tracking
98191de
Update esdoc
itsjamie 27c0874
Update esdoc to handle Babel v7 SpreadProperty -> SpreadElement.
itsjamie 6bb71c8
Working towards making event emitter less of a breaking change.
itsjamie 01dcc20
Fix eslint issues on demo js.
itsjamie 050694f
Update tests to have a first parameter as the event name.
itsjamie 07c3012
Merge remote-tracking branch 'origin/feature/v1.0.0' into strict-even…
itsjamie 2106766
Add back event name to functional test listeners.
itsjamie 06f5253
Convert number-isFinite to TypeScript
1f9df56
Convert mp4-generator to TypeScript
4b77fff
Merge remote-tracking branch 'origin/feature/v1.0.0' into prefer-opti…
itsjamie c1a93d6
Match source branch unused var warning for TS.
itsjamie 6c1c469
Remove @babel/register usage on functional tests.
itsjamie ea9ce12
Update chromedriver.
itsjamie 0b5c08f
Skip large buffer holes with partial fragments when seeking
3bdcdbd
Convert mp4-generator to TypeScript
be5f2d3
Revert "Convert mp4-generator to TypeScript"
b9e4635
access payload via rest parameters instead of arguments object
b051a12
Merge pull request #2488 from Korilakkuma/feat/add-supported-m3u8-tag
robwalch 90ab629
change MP4Types to Record<string, number[]>
911d77f
Merge pull request #2495 from F3n67u/feature/v1.0.0
robwalch f0af3fe
Merge branch 'github-hls/v1.0.0' into feature/v1.0.0
16aca06
Convert mpegaudio to TypeScript
cffc37f
return undefined implicitly
baa786b
Merge remote-tracking branch 'origin/feature/v1.0.0' into strict-even…
itsjamie bc19ac2
Set AbrController to have protected fields for extension.
itsjamie cf97eb8
Marked BufferController events as protected available for overriding.
itsjamie 09d978d
Mark cap-level-controller events as protected for overriding.
itsjamie b5e2e5d
Mark fpsController event handling as protected.
itsjamie 723be92
Support new TypeScript features (Optional Chaining) (#2486)
itsjamie c8e362e
Merge remote-tracking branch 'origin/feature/v1.0.0' into strict-even…
itsjamie 36abfbb
Strict event emitter (#2395)
itsjamie ab1b9db
Merge pull request #2499 from F3n67u/feature/v1.0.0-ts-mp4-generator
robwalch b604c4f
Use fragment stats in loaders and reset stats on load
e70a5d3
Remove stats assert since loader resets stats
robwalch ba07abc
Remove change in tsdemuxer that caused video tearing
43e57ca
Merge branch 'master' of https://github.com/video-dev/hls.js into fea…
150bbfe
[WIP] Add a demo page with a timeline chart for debugging the player …
10ae925
Update buffer colors
6cf519e
Make player and chart classes
14428a8
Show fragments on the timeline
9b506aa
Show media.currentTime on the timeline
6d39c53
Log object and seek on click
dbc2bf7
Zoom in and out with (shift key) double-click
dc479c3
Format time values (~hh:mm:ss.SSS) and display currentTime
0373b28
Chart rendering improvements
d33af5a
Show discontinuities ('cc: ')(> 0) in chart
e1d98e7
Update max zoom value based on start + totalduration + targetduration…
c85852a
Add additional event listeners for chart updates
a531a31
Improve chart height
05590c3
Update the "dev" script and webpack config to build and serve the tim…
1d44ede
Add back the id3-track-controller and render the metadata TextTrack i…
533ae15
Fix observer typing and errors
a7d4bf0
Add demo-timeline to netlify
8f5be19
Add demo-timeline to netlify
8dd6858
Fix demo metrics
aa4874f
Update test examples so that they autoplay muted
c97fc9a
Update timeline chart based on feedback
0c2b2a6
Fix raw duration computation when 'default_sample_duration' field is …
7e90e1f
Merge pull request #2625 from adrian-branescu/bugfix/default-sample-d…
robwalch 029147e
Merge changes from v0.13.2...v0.14.0-beta.1 into feature/v1.0.0
d4286e1
Merge pull request #2661 from video-dev/merge-v0.14.0-beta.1-into-fea…
robwalch 732c2c3
fix: the functional tests for "MPEG Audio Only demo" failed
5868bcf
refactor: perfer optional chaining
d698ecb
Merge remote-tracking branch 'upstream/feature/v1.0.0' into feature/v…
a0bcbf8
Merge branch 'feature/v1.0.0' into feature/v1.0.0-ts-mpeg-audio
4bf6ee9
fix: using implicit return
e12ba43
Fix regression in non-native track handling
05c2a11
Include changes to Events.NON_NATIVE_TEXT_TRACKS_FOUND from v0.14
105208d
Merge pull request #2505 from F3n67u/feature/v1.0.0-ts-mpeg-audio
robwalch 566c94c
Merge branch 'upstream/master' into feature/v1.0.0
ad1bbef
feat: add type to discontinuities.js and fix @typescript-eslint/prefe…
4ade9b4
refactor: convert hex.js to hex.ts
95c55f8
chore(tests): Add encrypted tests to extend DRM support.
itsjamie a244799
chore: Switch conditional for downloading identity keys.
itsjamie a2be2cf
fix typo on fairplay keyformat.
itsjamie a6ffd3b
Merge pull request #2735 from video-dev/chore/add-encrypted-unit-tests
itsjamie eca7f4c
Add typings for WebVTT parser.
itsjamie 906eba8
Merge pull request #2727 from F3n67u/feature/v1.0.0-ts-hex
itsjamie 765155a
Add some types to usage sites for Timeline Controller.
itsjamie 93decb9
Add expect error for IE11 fix for Uint8Array.prototype.slice.
itsjamie 8600ec3
Set console assert as allowable console messages.
itsjamie 5647110
Add additional typing to discontinuity handling.
itsjamie 207704c
Merge pull request #2742 from video-dev/webvtt-parser-typings
itsjamie 49a7c96
Merge pull request #2726 from F3n67u/feature/v1.0.0-ts-discontinuities
itsjamie f2ab851
initial demux/id3.js to demux/id3.ts
MartinHarkins 6a176d2
basic typings for demux/id3.ts
MartinHarkins 9cb23b3
Merge branch 'upstream/master' into feature/v1.0.0
98cf2b0
Use buffer appended event to kick off playing functional test, since …
409a1ab
perf: for .. of to simple for iteration
MartinHarkins 536bb7a
Merge branch 'master' of github.com:video-dev/hls.js into merge-v0.14…
6c7aee5
Add audio-only with alt audio track test streams
b2ea274
fix pts initialize logic and test it
MartinHarkins 4e7e935
refactor ID3 as module
MartinHarkins d56e428
In v1 playback begins after FRAG_CHANGED _after_ BUFFER_APPENDED
967ae7e
Merge pull request #2800 from video-dev/merge-v0.14.0-rc.1-into-featu…
robwalch d361e79
let consumers import ID3 functions as a module
MartinHarkins a393d10
Merge pull request #1 from MartinHarkins/demux-id3-as-module
MartinHarkins 2f7fccc
Merge pull request #2787 from MartinHarkins/demux-id3-to-typescript
robwalch 41addd9
feat: add support for decrypting init segments.
itsjamie 196986b
Add onStart to Buffer Operations. Used for logging purposes now.
itsjamie c1e4835
Add support to getDuration for multi-trun content.
itsjamie 768fc0e
Remove some assertions and unused imports.
itsjamie c05f7ec
Warn on promise chain loading issues.
itsjamie 8ac9f55
Merge pull request #2809 from video-dev/feature/support-encrypted-fmp…
itsjamie 4873445
Merge branch 'upstream/master' into feature/v1.0.0
3d6be17
Cleanup manifest and playlist RegExp
00596cc
Merge master into feature/v1.0.0
6046e48
Fix demo real-time stats
9478cc9
Remove live stream middle segment guess (matches v0.14.0)
cc5fdfd
Remove LHLS support
c789bd8
Merge pull request #2864 from video-dev/feature/remove-lhls-support
robwalch 86c63bb
Merge changes from v0.14.1
7342b03
Merge branch 'upstream/master' into feature/v1.0.0
a729d17
Merge branch 'upstream/master' into feature/v1.0.0
a897348
Compare set sort and shift flags after PTSNormalize is applied to bot…
aafe3bc
Merge branch 'upstream/master' into feature/v1.0.0
26d79b3
Merge pull request #2928 from video-dev/task/merge-v0.14.6-into-v1
robwalch 4293174
Fix MPEG audio append in buffer-controller
73a5920
Config log level in functional test runs
a526dbe
Silence redundant fragment selection logs
cef3b4c
Configure streams for audio and video buffer descrepency in buffer le…
fe94d51
Log duration offset tolerance in buffer test
346ebd9
Show multiple demo test tabs using modifier key
2722e73
Clear source buffers from chart when new ones are created
929bba1
Merge branch 'upstream/master' into feature/v1.0.0
dc9dc58
Merge branch 'upstream_hls.js/master' into feature/v1.0.0
ea9911c
Merge branch 'upstream/master' into feature/v1.0.0
a193e7e
Merge branch 'upstream/master' into feature/v1.0.0
d88e9cb
Fix mergeLivePlaylist when levelLastLoaded is 0
robwalch 11c1655
Merge master into feature/v1.0.0
10897c0
Merge master into feature/v1.0.0
cc5ebfe
Update package-lock
6eaba83
Merge branch 'upstream_hls.js/master' into feature/v1.0.0
c741d4d
Parse Low-Latency HLS `EXT-X-SERVER-CONTROL`
7bbe6cf
Add #EXT-X-PART-INF:PART-TARGET=N parsing
07e858d
Use SERVER-CONTROL HOLD-BACK for live start time when liveDurationSyn…
825f294
Parse Partial Segments
9af55d4
Update playlist-loader tests and Supported M3u8 tags in README
75f42df
Improve part parsing and fragment class
1b5ab5d
Add delivery directive for next SN and Part 0 to live playlist reload…
f31cdc6
Implement base playlist controller class extended by level, audio-tra…
12cf1fe
Part Delivery Directive logic, Fragment update and TypeScript improve…
d6efd1a
Low-Latency HLS Part Loading
66e0a0a
Perform Low-Latency CDN Tune-in and factor in age header when selecti…
8cdc2cb
Cleanup fragment loader part handling and event typing
f3e5f6e
Use part duration in edge segments
d415f4d
Avoid repeated browser error log `Refused to get unsafe header "age"`…
e65ae7b
Improve playlist and track loading error handling
199bcc4
Improve playlist loading error handling and fragment tracker tracking
41c138e
Fix `findIndependentPart`
4bff403
Low-Latency HLS Delta Playlist support
f5294f8
Update test streams
929d4eb
Remove demo-timelline
2c00055
Remove part loading
1cb049d
Complete delta-playlist merging and playlist alignment
5b9496f
Disable part playlist refreshes when lowLatencyMode is false
5375bab
Remove empty audio track workaround because it causes gaps in live st…
9e446e6
Remove ID3 cues when buffer is flushed
292bbac
Merge pull request #3060 from video-dev/feature/hls-v10-support
robwalch 3fc868f
Merge branch 'upstream_hls.js/master' into feature/v1.0.0
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -16,3 +16,4 @@ coverage/ | |
/dist | ||
/netlify | ||
/api-docs | ||
/demo-timeline/dist |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,5 @@ | ||
demo | ||
demo-timeline | ||
docs/html | ||
misc | ||
test | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
# Contributor Covenant Code of Conduct | ||
|
||
## Our Pledge | ||
|
||
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. | ||
|
||
We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. | ||
|
||
## Our Standards | ||
|
||
Examples of behavior that contributes to a positive environment for our community include: | ||
|
||
* Demonstrating empathy and kindness toward other people | ||
* Being respectful of differing opinions, viewpoints, and experiences | ||
* Giving and gracefully accepting constructive feedback | ||
* Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience | ||
* Focusing on what is best not just for us as individuals, but for the overall community | ||
|
||
Examples of unacceptable behavior include: | ||
|
||
* The use of sexualized language or imagery, and sexual attention or | ||
advances of any kind | ||
* Trolling, insulting or derogatory comments, and personal or political attacks | ||
* Public or private harassment | ||
* Publishing others' private information, such as a physical or email | ||
address, without their explicit permission | ||
* Other conduct which could reasonably be considered inappropriate in a | ||
professional setting | ||
|
||
## Enforcement Responsibilities | ||
|
||
Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful. | ||
|
||
Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate. | ||
|
||
## Scope | ||
|
||
This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. | ||
|
||
## Enforcement | ||
|
||
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at the [video-dev slack](https://video-dev.org/). All complaints will be reviewed and investigated promptly and fairly. | ||
|
||
All community leaders are obligated to respect the privacy and security of the reporter of any incident. | ||
|
||
## Enforcement Guidelines | ||
|
||
Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct: | ||
|
||
### 1. Correction | ||
|
||
**Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community. | ||
|
||
**Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested. | ||
|
||
### 2. Warning | ||
|
||
**Community Impact**: A violation through a single incident or series of actions. | ||
|
||
**Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban. | ||
|
||
### 3. Temporary Ban | ||
|
||
**Community Impact**: A serious violation of community standards, including sustained inappropriate behavior. | ||
|
||
**Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban. | ||
|
||
### 4. Permanent Ban | ||
|
||
**Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals. | ||
|
||
**Consequence**: A permanent ban from any sort of public interaction within the project community. | ||
|
||
## Attribution | ||
|
||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0, | ||
available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. | ||
|
||
Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity). | ||
|
||
[homepage]: https://www.contributor-covenant.org | ||
|
||
For answers to common questions about this code of conduct, see the FAQ at | ||
https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why are we publishing test sources now in the npm package? any specific reason? :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Merge issue 5b7639b
Fixed