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

TypeError: data is undefined in ID3.isHeader #3037

Closed
kolay-v opened this issue Sep 11, 2020 · 2 comments
Closed

TypeError: data is undefined in ID3.isHeader #3037

kolay-v opened this issue Sep 11, 2020 · 2 comments
Labels
Milestone

Comments

@kolay-v
Copy link

kolay-v commented Sep 11, 2020

What version of Hls.js are you using?

0.14.11

What browser and OS are you using?

arch linux firefox/chromium

Test stream:

https://bushuev.wtf/playlist.m3u8

Checklist

  • x[ ] The stream has correct Access-Control-Allow-Origin headers (CORS)
  • [x ] There are no network errors such as 404s in the browser console when trying to play the stream

Steps to reproduce

  1. Please provide clear steps to reproduce your problem
  2. If the bug is intermittent, give a rough frequency
    Download any soundcloud track's playlist and play it with hls.js

Expected behavior

What you expected to happen
Music playing

Actual behavior

What actually happened
TypeError: data is undefined in ID3.isHeader

Console output

[debug] > Calling internal loader delegate for URL: https://bushuev.wtf/playlist.m3u8
logger.js:40 [log] > trigger BUFFER_RESET
logger.js:40 [log] > set autoLevelCapping:-1
logger.js:40 [log] > attachMedia
logger.js:40 [log] > media source opened
logger.js:40 [log] > manifest loaded,1 level(s) found, first bitrate:undefined
logger.js:40 [log] > 1 bufferCodec event(s) expected
logger.js:40 [log] > startLoad(-1)
logger.js:40 [log] > switching to level 0
logger.js:40 [log] > main stream-controller: STOPPED->IDLE
logger.js:40 [log] > audio tracks updated
logger.js:40 [log] > subtitle tracks updated
logger.js:40 [log] > level 0 loaded [0,0],duration:1.985272
logger.js:40 [log] > Loading 0 of [0-0], level 0, nextLoadPosition: 0, bufferEnd: 0
logger.js:40 [log] > demuxing in webworker
logger.js:40 [log] > main stream-controller: IDLE->FRAG_LOADING
logger.js:40 [log] > Loaded 0 of [0 ,0],level 0
logger.js:40 [log] > Parsing 0 of [0 ,0],level 0, cc 0
logger.js:40 [log] > main stream-controller: FRAG_LOADING->PARSING
logger.js:40 [log] > main:discontinuity detected
logger.js:40 [log] > main:switch detected
main.js:568 Error event: {type: "otherError", details: "internalException", fatal: true, event: "demuxerWorker", err: {…}}details: "internalException"err: message: "Uncaught TypeError: Cannot read property 'length' of undefined (blob:https://hls-js.netlify.app/ecc8bff8-df51-402f-982e-cf76afc2d6bd:5353)"__proto__: Objectevent: "demuxerWorker"fatal: truetype: "otherError"__proto__: Object
(anonymous) @ main.js:568
emit @ index.js:203
trigger @ observer.ts:13
Demuxer.w.onerror @ demuxer.js:58
error (async)
Demuxer @ demuxer.js:57
_loadFragment @ stream-controller.js:459
_fetchPayloadOrEos @ stream-controller.js:280
_doTickIdle @ stream-controller.js:229
doTick @ stream-controller.js:106
tick @ task-loop.ts:111
onLevelLoaded @ stream-controller.js:844
onEventGeneric @ event-handler.ts:82
onEvent @ event-handler.ts:69
emit @ index.js:203
trigger @ observer.ts:13
_handlePlaylistLoaded @ playlist-loader.ts:518
_handleTrackOrLevelPlaylist @ playlist-loader.ts:417
loadsuccess @ playlist-loader.ts:265
readystatechange @ xhr-loader.js:118
XMLHttpRequest.send (async)
loadInternal @ xhr-loader.js:80
load @ xhr-loader.js:38
load @ playlist-loader.ts:235
onManifestLoading @ playlist-loader.ts:132
onEventGeneric @ event-handler.ts:82
onEvent @ event-handler.ts:69
emit @ index.js:203
trigger @ observer.ts:13
loadSource @ hls.ts:288
loadSelectedStream @ main.js:251
applyConfigEditorValue @ main.js:1376
onclick @ (index):111
main.js:639 Fatal error :internalException
(anonymous) @ main.js:639
emit @ index.js:203
trigger @ observer.ts:13
Demuxer.w.onerror @ demuxer.js:58
error (async)
Demuxer @ demuxer.js:57
_loadFragment @ stream-controller.js:459
_fetchPayloadOrEos @ stream-controller.js:280
_doTickIdle @ stream-controller.js:229
doTick @ stream-controller.js:106
tick @ task-loop.ts:111
onLevelLoaded @ stream-controller.js:844
onEventGeneric @ event-handler.ts:82
onEvent @ event-handler.ts:69
emit @ index.js:203
trigger @ observer.ts:13
_handlePlaylistLoaded @ playlist-loader.ts:518
_handleTrackOrLevelPlaylist @ playlist-loader.ts:417
loadsuccess @ playlist-loader.ts:265
readystatechange @ xhr-loader.js:118
XMLHttpRequest.send (async)
loadInternal @ xhr-loader.js:80
load @ xhr-loader.js:38
load @ playlist-loader.ts:235
onManifestLoading @ playlist-loader.ts:132
onEventGeneric @ event-handler.ts:82
onEvent @ event-handler.ts:69
emit @ index.js:203
trigger @ observer.ts:13
loadSource @ hls.ts:288
loadSelectedStream @ main.js:251
applyConfigEditorValue @ main.js:1376
onclick @ (index):111
logger.js:40 [log] > destroy
logger.js:40 [log] > detachMedia
logger.js:40 [log] > media source detaching
logger.js:40 [log] > main stream-controller: PARSING->STOPPED
For media errors reported on Chrome browser, please also paste the output of chrome://media-internals 
@robwalch robwalch added the Bug label Sep 11, 2020
@robwalch
Copy link
Collaborator

I was able to reproduce the issue. It appears to be an issue with m3u8 segments that do not contain any ID3 media. hls.js is expecting to find timestamp metadata to sync audio with video but that shouldn't be required for audio only or TS elementary streams.

robwalch pushed a commit that referenced this issue Sep 11, 2020
robwalch pushed a commit that referenced this issue Sep 11, 2020
* patch/v0.14.x:
  Allow mp3 data that does not contain ID3 #3037
@robwalch robwalch added this to the 0.14.12 milestone Sep 11, 2020
@kolay-v
Copy link
Author

kolay-v commented Sep 12, 2020

Thank you for fixing the issue. Looks like it working in 0.14.12

@kolay-v kolay-v closed this as completed Sep 12, 2020
alangdm pushed a commit to alangdm/hls.js that referenced this issue Sep 15, 2020
robwalch pushed a commit to jwplayer/hls.js that referenced this issue Sep 16, 2020
* upstream_hls.js/master: (26 commits)
  Bump eventemitter3 from 4.0.5 to 4.0.7
  Bump chromedriver from 84.0.1 to 85.0.1
  Bump @babel/preset-env from 7.11.0 to 7.11.5
  Bump @babel/core from 7.11.4 to 7.11.6
  Improve functional test results for trouble-shooting flakey tests
  Allow mp3 data that does not contain ID3 video-dev#3037
  Bump husky from 4.2.5 to 4.3.0
  Bump webpack-merge from 5.1.2 to 5.1.4
  [Security] Bump http-proxy from 1.17.0 to 1.18.1
  Set sauce job status after test run and on test failure
  Update optional functional test browser list
  Bump karma from 5.1.1 to 5.2.2
  Bump @babel/register from 7.10.5 to 7.11.5
  Bump mocha from 8.1.1 to 8.1.3
  Clean up browser version in test run name
  Bump netlify-cli from 2.59.1 to 2.62.0
  Add TRAVIS_BRANCH to test run name
  Update test run name
  Update README.md
  Use npm sauce-connect-launcher in functional tests run on travis
  ...
robwalch pushed a commit to jwplayer/hls.js that referenced this issue Sep 22, 2020
* upstream_hls.js/master: (31 commits)
  Patch sauce connect test fixes
  Improve handling of bad AVC PTS
  Bump netlify-cli from 2.63.2 to 2.63.3
  Bump webpack from 4.44.1 to 4.44.2
  Bump netlify-cli from 2.62.0 to 2.63.2
  Bump eventemitter3 from 4.0.5 to 4.0.7
  Bump chromedriver from 84.0.1 to 85.0.1
  Bump @babel/preset-env from 7.11.0 to 7.11.5
  Bump @babel/core from 7.11.4 to 7.11.6
  Improve functional test results for trouble-shooting flakey tests
  Allow mp3 data that does not contain ID3 video-dev#3037
  Bump husky from 4.2.5 to 4.3.0
  Bump webpack-merge from 5.1.2 to 5.1.4
  [Security] Bump http-proxy from 1.17.0 to 1.18.1
  Set sauce job status after test run and on test failure
  Update optional functional test browser list
  Bump karma from 5.1.1 to 5.2.2
  Bump @babel/register from 7.10.5 to 7.11.5
  Bump mocha from 8.1.1 to 8.1.3
  Clean up browser version in test run name
  ...
tchakabam pushed a commit to emliri/hls.js that referenced this issue Sep 29, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants