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
fix parsing of TXXX ID3 frames #2217
Conversation
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.
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
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.
LGTM 👍
I too share the same concerns with @johnBartos regarding potential regressions.
However, it would be nice to get this in... 🤔
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.
LGTM. Verified with https://playertest.longtailvideo.com/adaptive/easylistening/easylistening.m3u8. Our output now matches Safari's output.
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
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
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
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
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
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 existingexistOnNull
parameter ofutf8ArrayToStr(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