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 parsing of TXXX ID3 frames #2217

Merged
merged 1 commit into from Apr 24, 2019

Conversation

gkindel
Copy link
Contributor

@gkindel gkindel commented Apr 8, 2019

This PR will...

Enable null delimiter parsing on TXXX labels, per http://id3.org/id3v2.4.0-frames section 4.2.6
This is achieved by passing true to the already existing existOnNull parameter of utf8ArrayToStr(array, exitOnNull = false) if a TXXX field is detected.

Why is this Pull Request needed?

ID3 TXXX parsing was broken, merging info and description fields

Are there any points in the code the reviewer needs to double check?

Shouldn't be, this is a one line change.

Resolves issues:

#2215

Checklist

  • changes have been done against master branch, and PR does not conflict
  • new unit / functional tests have been added (whenever applicable)
  • API or design changes are documented in API.md - Not Applicable

Copy link
Collaborator

@johnBartos johnBartos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. However, I'm worried about regressions - developers may be expecting the fields to be merged. I'd like to test against some TXXX streams we have to see what the changes look like

@johnBartos johnBartos modified the milestone: 0.13.0 Apr 10, 2019
Copy link
Member

@michaelcunningham19 michaelcunningham19 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍
I too share the same concerns with @johnBartos regarding potential regressions.

However, it would be nice to get this in... 🤔

Copy link
Collaborator

@johnBartos johnBartos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Verified with https://playertest.longtailvideo.com/adaptive/easylistening/easylistening.m3u8. Our output now matches Safari's output.

@johnBartos johnBartos added this to the 0.13.0 milestone Apr 24, 2019
@johnBartos johnBartos added this to In progress in 0.13.0 via automation Apr 24, 2019
@johnBartos johnBartos merged commit 2ce18b0 into video-dev:master Apr 24, 2019
0.13.0 automation moved this from In progress to Done Apr 24, 2019
realeyes-matthew pushed a commit to realeyes-matthew/hls.js that referenced this pull request Apr 24, 2019
author Jamie Stackhouse <contin673@gmail.com> 1551472707 -0400
committer Matthew Thompson <matthew@realeyes.com> 1556139648 -0600

parent 10f1737
author Jamie Stackhouse <contin673@gmail.com> 1551472707 -0400
committer Matthew Thompson <matthew@realeyes.com> 1556139573 -0600

parent 10f1737
author Jamie Stackhouse <contin673@gmail.com> 1551472707 -0400
committer Matthew Thompson <matthew@realeyes.com> 1556139456 -0600

parent 10f1737
author Jamie Stackhouse <contin673@gmail.com> 1551472707 -0400
committer Matthew Thompson <matthew@realeyes.com> 1556139292 -0600

parent 10f1737
author Jamie Stackhouse <contin673@gmail.com> 1551472707 -0400
committer Matthew Thompson <matthew@realeyes.com> 1556138720 -0600

Update Karma to 3.1.4 for karma-runner/karma@bb022a7 for our single import preprocess.

Widevine EME changes

Use _generateRequestWithPreferredKeySession in _onNewMediaKeySession

Ensure Widevine XHR is open before sending

Complete video playback for Widevine EME, begin work on audio

Reconfigure EME controller to be promise-based

Reset without master merge

Release sessions on restart

Merge branch 'widevine-eme' of github.com:realeyes-matthew/hls.js into widevine-eme

Merge branch 'widevine-eme' of github.com:realeyes-matthew/hls.js into widevine-eme

Don't fill the buffer until EME is configured

Configure EME controller to use promise to request license

Remove eme blocking in Buffer Controller

Add separate events for EME configuration

Block frag processing until eme is configured

Fix bug where keysSet was being emitted repeatedly

separate cc bytes into fields, update cea608parser to 1.0.1

updated docs for closed captions note

set track mode to disabled, fix line sticking after seek

set object props to null instead of using 'delete'

use instream id from manifest to determine cc output filter

Don't attempt to unset mediakeys on the media on destroy if the media is non-HTTPS

Clean up EME controller with comments, update config for EME method revisions, fix typos

Remove dist to reset to master build

Change getEMELicenseFunc so the user can load licenses specific to the level or audioTrack

Update API docs for EME

Revert package-lock changes

Revert Karma changes

Make EME controller optional

Fixing diffs

add netlify badge to readme (video-dev#2214)

so that we qualify for the open source plan

https://www.netlify.com/legal/open-source-policy/

fix AudioStreamController when media is not attached (video-dev#2172)

Bump stale time to close from 7 days to 60, add more exempt labels

use netlify endpoint that includes team

so that the sites are created under the new team that has the open source account policy

https://open-api.netlify.com/#/default/createSiteInTeam

Update design.md

This fixes some inconsistencies I noticed while going through this file today

id3 TXXX parsing should use exitOnNull (video-dev#2217)

Enable null delimiter parsing on TXXX labels, per http://id3.org/id3v2.4.0-frames section 4.2.6
This is achieved by passing true to the already existing existOnNull parameter of utf8ArrayToStr(array, exitOnNull = false) if a TXXX field is detected.

per http://id3.org/id3v2.4.0-frames

fix for video-dev#2215

fix video-dev#2157 WEBVTT without X-TIMESTAMP-MAP (video-dev#2179)

Avoid offsetting cue times with localTime if EXT-X-TIMESTAMP-MAP is not present
realeyes-matthew pushed a commit to realeyes-matthew/hls.js that referenced this pull request Apr 24, 2019
author Jamie Stackhouse <contin673@gmail.com> 1551472707 -0400
committer Matthew Thompson <matthew@realeyes.com> 1556139648 -0600

parent 10f1737
author Jamie Stackhouse <contin673@gmail.com> 1551472707 -0400
committer Matthew Thompson <matthew@realeyes.com> 1556139573 -0600

parent 10f1737
author Jamie Stackhouse <contin673@gmail.com> 1551472707 -0400
committer Matthew Thompson <matthew@realeyes.com> 1556139456 -0600

parent 10f1737
author Jamie Stackhouse <contin673@gmail.com> 1551472707 -0400
committer Matthew Thompson <matthew@realeyes.com> 1556139292 -0600

parent 10f1737
author Jamie Stackhouse <contin673@gmail.com> 1551472707 -0400
committer Matthew Thompson <matthew@realeyes.com> 1556138720 -0600

Update Karma to 3.1.4 for karma-runner/karma@bb022a7 for our single import preprocess.

Widevine EME changes

Use _generateRequestWithPreferredKeySession in _onNewMediaKeySession

Ensure Widevine XHR is open before sending

Complete video playback for Widevine EME, begin work on audio

Reconfigure EME controller to be promise-based

Reset without master merge

Release sessions on restart

Merge branch 'widevine-eme' of github.com:realeyes-matthew/hls.js into widevine-eme

Merge branch 'widevine-eme' of github.com:realeyes-matthew/hls.js into widevine-eme

Don't fill the buffer until EME is configured

Configure EME controller to use promise to request license

Remove eme blocking in Buffer Controller

Add separate events for EME configuration

Block frag processing until eme is configured

Fix bug where keysSet was being emitted repeatedly

separate cc bytes into fields, update cea608parser to 1.0.1

updated docs for closed captions note

set track mode to disabled, fix line sticking after seek

set object props to null instead of using 'delete'

use instream id from manifest to determine cc output filter

Don't attempt to unset mediakeys on the media on destroy if the media is non-HTTPS

Clean up EME controller with comments, update config for EME method revisions, fix typos

Remove dist to reset to master build

Change getEMELicenseFunc so the user can load licenses specific to the level or audioTrack

Update API docs for EME

Revert package-lock changes

Revert Karma changes

Make EME controller optional

Fixing diffs

add netlify badge to readme (video-dev#2214)

so that we qualify for the open source plan

https://www.netlify.com/legal/open-source-policy/

fix AudioStreamController when media is not attached (video-dev#2172)

Bump stale time to close from 7 days to 60, add more exempt labels

use netlify endpoint that includes team

so that the sites are created under the new team that has the open source account policy

https://open-api.netlify.com/#/default/createSiteInTeam

Update design.md

This fixes some inconsistencies I noticed while going through this file today

id3 TXXX parsing should use exitOnNull (video-dev#2217)

Enable null delimiter parsing on TXXX labels, per http://id3.org/id3v2.4.0-frames section 4.2.6
This is achieved by passing true to the already existing existOnNull parameter of utf8ArrayToStr(array, exitOnNull = false) if a TXXX field is detected.

per http://id3.org/id3v2.4.0-frames

fix for video-dev#2215

fix video-dev#2157 WEBVTT without X-TIMESTAMP-MAP (video-dev#2179)

Avoid offsetting cue times with localTime if EXT-X-TIMESTAMP-MAP is not present

Re-remove non-EME code to align with master

Forgot newline in timeline-controller revert to master

Another newline

Another newline

Spacing issue

Another newline

Another newline

Another newline

Another newline
realeyes-matthew pushed a commit to realeyes-matthew/hls.js that referenced this pull request Apr 24, 2019
author Jamie Stackhouse <contin673@gmail.com> 1551472707 -0400
committer Matthew Thompson <matthew@realeyes.com> 1556139648 -0600

parent 10f1737
author Jamie Stackhouse <contin673@gmail.com> 1551472707 -0400
committer Matthew Thompson <matthew@realeyes.com> 1556139573 -0600

parent 10f1737
author Jamie Stackhouse <contin673@gmail.com> 1551472707 -0400
committer Matthew Thompson <matthew@realeyes.com> 1556139456 -0600

parent 10f1737
author Jamie Stackhouse <contin673@gmail.com> 1551472707 -0400
committer Matthew Thompson <matthew@realeyes.com> 1556139292 -0600

parent 10f1737
author Jamie Stackhouse <contin673@gmail.com> 1551472707 -0400
committer Matthew Thompson <matthew@realeyes.com> 1556138720 -0600

Update Karma to 3.1.4 for karma-runner/karma@bb022a7 for our single import preprocess.

Widevine EME changes

Use _generateRequestWithPreferredKeySession in _onNewMediaKeySession

Ensure Widevine XHR is open before sending

Complete video playback for Widevine EME, begin work on audio

Reconfigure EME controller to be promise-based

Reset without master merge

Release sessions on restart

Merge branch 'widevine-eme' of github.com:realeyes-matthew/hls.js into widevine-eme

Merge branch 'widevine-eme' of github.com:realeyes-matthew/hls.js into widevine-eme

Don't fill the buffer until EME is configured

Configure EME controller to use promise to request license

Remove eme blocking in Buffer Controller

Add separate events for EME configuration

Block frag processing until eme is configured

Fix bug where keysSet was being emitted repeatedly

separate cc bytes into fields, update cea608parser to 1.0.1

updated docs for closed captions note

set track mode to disabled, fix line sticking after seek

set object props to null instead of using 'delete'

use instream id from manifest to determine cc output filter

Don't attempt to unset mediakeys on the media on destroy if the media is non-HTTPS

Clean up EME controller with comments, update config for EME method revisions, fix typos

Remove dist to reset to master build

Change getEMELicenseFunc so the user can load licenses specific to the level or audioTrack

Update API docs for EME

Revert package-lock changes

Revert Karma changes

Make EME controller optional

Fixing diffs

add netlify badge to readme (video-dev#2214)

so that we qualify for the open source plan

https://www.netlify.com/legal/open-source-policy/

fix AudioStreamController when media is not attached (video-dev#2172)

Bump stale time to close from 7 days to 60, add more exempt labels

use netlify endpoint that includes team

so that the sites are created under the new team that has the open source account policy

https://open-api.netlify.com/#/default/createSiteInTeam

Update design.md

This fixes some inconsistencies I noticed while going through this file today

id3 TXXX parsing should use exitOnNull (video-dev#2217)

Enable null delimiter parsing on TXXX labels, per http://id3.org/id3v2.4.0-frames section 4.2.6
This is achieved by passing true to the already existing existOnNull parameter of utf8ArrayToStr(array, exitOnNull = false) if a TXXX field is detected.

per http://id3.org/id3v2.4.0-frames

fix for video-dev#2215

fix video-dev#2157 WEBVTT without X-TIMESTAMP-MAP (video-dev#2179)

Avoid offsetting cue times with localTime if EXT-X-TIMESTAMP-MAP is not present

Re-remove non-EME code to align with master

Forgot newline in timeline-controller revert to master

Another newline

Another newline

Spacing issue

Another newline

Another newline

Another newline

Another newline
realeyes-matthew pushed a commit to realeyes-matthew/hls.js that referenced this pull request Apr 25, 2019
author Jamie Stackhouse <contin673@gmail.com> 1551472707 -0400
committer Matthew Thompson <matthew@realeyes.com> 1556139648 -0600

parent 10f1737
author Jamie Stackhouse <contin673@gmail.com> 1551472707 -0400
committer Matthew Thompson <matthew@realeyes.com> 1556139573 -0600

parent 10f1737
author Jamie Stackhouse <contin673@gmail.com> 1551472707 -0400
committer Matthew Thompson <matthew@realeyes.com> 1556139456 -0600

parent 10f1737
author Jamie Stackhouse <contin673@gmail.com> 1551472707 -0400
committer Matthew Thompson <matthew@realeyes.com> 1556139292 -0600

parent 10f1737
author Jamie Stackhouse <contin673@gmail.com> 1551472707 -0400
committer Matthew Thompson <matthew@realeyes.com> 1556138720 -0600

Update Karma to 3.1.4 for karma-runner/karma@bb022a7 for our single import preprocess.

Widevine EME changes

Use _generateRequestWithPreferredKeySession in _onNewMediaKeySession

Ensure Widevine XHR is open before sending

Complete video playback for Widevine EME, begin work on audio

Reconfigure EME controller to be promise-based

Reset without master merge

Release sessions on restart

Merge branch 'widevine-eme' of github.com:realeyes-matthew/hls.js into widevine-eme

Merge branch 'widevine-eme' of github.com:realeyes-matthew/hls.js into widevine-eme

Don't fill the buffer until EME is configured

Configure EME controller to use promise to request license

Remove eme blocking in Buffer Controller

Add separate events for EME configuration

Block frag processing until eme is configured

Fix bug where keysSet was being emitted repeatedly

separate cc bytes into fields, update cea608parser to 1.0.1

updated docs for closed captions note

set track mode to disabled, fix line sticking after seek

set object props to null instead of using 'delete'

use instream id from manifest to determine cc output filter

Don't attempt to unset mediakeys on the media on destroy if the media is non-HTTPS

Clean up EME controller with comments, update config for EME method revisions, fix typos

Remove dist to reset to master build

Change getEMELicenseFunc so the user can load licenses specific to the level or audioTrack

Update API docs for EME

Revert package-lock changes

Revert Karma changes

Make EME controller optional

Fixing diffs

add netlify badge to readme (video-dev#2214)

so that we qualify for the open source plan

https://www.netlify.com/legal/open-source-policy/

fix AudioStreamController when media is not attached (video-dev#2172)

Bump stale time to close from 7 days to 60, add more exempt labels

use netlify endpoint that includes team

so that the sites are created under the new team that has the open source account policy

https://open-api.netlify.com/#/default/createSiteInTeam

Update design.md

This fixes some inconsistencies I noticed while going through this file today

id3 TXXX parsing should use exitOnNull (video-dev#2217)

Enable null delimiter parsing on TXXX labels, per http://id3.org/id3v2.4.0-frames section 4.2.6
This is achieved by passing true to the already existing existOnNull parameter of utf8ArrayToStr(array, exitOnNull = false) if a TXXX field is detected.

per http://id3.org/id3v2.4.0-frames

fix for video-dev#2215

fix video-dev#2157 WEBVTT without X-TIMESTAMP-MAP (video-dev#2179)

Avoid offsetting cue times with localTime if EXT-X-TIMESTAMP-MAP is not present

Re-remove non-EME code to align with master

Forgot newline in timeline-controller revert to master

Another newline

Another newline

Spacing issue

Another newline

Another newline

Another newline

Another newline

Fix linting errors

Update EME errors

Fix error comment
realeyes-matthew pushed a commit to realeyes-matthew/hls.js that referenced this pull request Apr 26, 2019
author Jamie Stackhouse <contin673@gmail.com> 1551472707 -0400
committer Matthew Thompson <matthew@realeyes.com> 1556139648 -0600

parent 10f1737
author Jamie Stackhouse <contin673@gmail.com> 1551472707 -0400
committer Matthew Thompson <matthew@realeyes.com> 1556139573 -0600

parent 10f1737
author Jamie Stackhouse <contin673@gmail.com> 1551472707 -0400
committer Matthew Thompson <matthew@realeyes.com> 1556139456 -0600

parent 10f1737
author Jamie Stackhouse <contin673@gmail.com> 1551472707 -0400
committer Matthew Thompson <matthew@realeyes.com> 1556139292 -0600

parent 10f1737
author Jamie Stackhouse <contin673@gmail.com> 1551472707 -0400
committer Matthew Thompson <matthew@realeyes.com> 1556138720 -0600

Update Karma to 3.1.4 for karma-runner/karma@bb022a7 for our single import preprocess.

Widevine EME changes

Use _generateRequestWithPreferredKeySession in _onNewMediaKeySession

Ensure Widevine XHR is open before sending

Complete video playback for Widevine EME, begin work on audio

Reconfigure EME controller to be promise-based

Reset without master merge

Release sessions on restart

Merge branch 'widevine-eme' of github.com:realeyes-matthew/hls.js into widevine-eme

Merge branch 'widevine-eme' of github.com:realeyes-matthew/hls.js into widevine-eme

Don't fill the buffer until EME is configured

Configure EME controller to use promise to request license

Remove eme blocking in Buffer Controller

Add separate events for EME configuration

Block frag processing until eme is configured

Fix bug where keysSet was being emitted repeatedly

separate cc bytes into fields, update cea608parser to 1.0.1

updated docs for closed captions note

set track mode to disabled, fix line sticking after seek

set object props to null instead of using 'delete'

use instream id from manifest to determine cc output filter

Don't attempt to unset mediakeys on the media on destroy if the media is non-HTTPS

Clean up EME controller with comments, update config for EME method revisions, fix typos

Remove dist to reset to master build

Change getEMELicenseFunc so the user can load licenses specific to the level or audioTrack

Update API docs for EME

Revert package-lock changes

Revert Karma changes

Make EME controller optional

Fixing diffs

add netlify badge to readme (video-dev#2214)

so that we qualify for the open source plan

https://www.netlify.com/legal/open-source-policy/

fix AudioStreamController when media is not attached (video-dev#2172)

Bump stale time to close from 7 days to 60, add more exempt labels

use netlify endpoint that includes team

so that the sites are created under the new team that has the open source account policy

https://open-api.netlify.com/#/default/createSiteInTeam

Update design.md

This fixes some inconsistencies I noticed while going through this file today

id3 TXXX parsing should use exitOnNull (video-dev#2217)

Enable null delimiter parsing on TXXX labels, per http://id3.org/id3v2.4.0-frames section 4.2.6
This is achieved by passing true to the already existing existOnNull parameter of utf8ArrayToStr(array, exitOnNull = false) if a TXXX field is detected.

per http://id3.org/id3v2.4.0-frames

fix for video-dev#2215

fix video-dev#2157 WEBVTT without X-TIMESTAMP-MAP (video-dev#2179)

Avoid offsetting cue times with localTime if EXT-X-TIMESTAMP-MAP is not present

Re-remove non-EME code to align with master

Forgot newline in timeline-controller revert to master

Another newline

Another newline

Spacing issue

Another newline

Another newline

Another newline

Another newline

Fix linting errors

Update EME errors

Fix error comment

Fix EME to listen for encrypted event

Update demo for EME changes

Cleanup non-EME code
@johnBartos johnBartos added the Bug label Jun 19, 2019
@johnBartos johnBartos modified the milestones: 0.13.0, 0.12.5 Jul 26, 2019
@johnBartos johnBartos modified the milestones: 0.12.5, 0.13.0 Aug 13, 2019
@robwalch robwalch mentioned this pull request Feb 28, 2020
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
No open projects
0.13.0
  
Done
Development

Successfully merging this pull request may close these issues.

None yet

3 participants