shaka-project / shaka-player

JavaScript player library / DASH & HLS client / MSE-EME player
Apache License 2.0
7.06k stars 1.33k forks source link

Specify MPD BaseURL and AdaptationSet BaseURL at same time occur wrong url resolving #5882

Closed taichiro-ishikawa-play closed 10 months ago

taichiro-ishikawa-play commented 10 months ago

Have you read the FAQ and checked for duplicate open issues? Yes

If the problem is related to FairPlay, have you read the tutorial? Not related.

What version of Shaka Player are you using? Nightly (v4.5.0-92-g0dba256b6 (uncompiled))

Can you reproduce the issue with our latest release version? No

v4.5.0-92-g0dba256b6: Affected v4.5.0: expected behavior

Can you reproduce the issue with the latest code from main? Yes

v4.5.0-92-g0dba256b6: Affected v4.5.0: expected behavior

Are you using the demo app or your own custom app? Demo App

If custom app, can you reproduce the issue using our demo app? NA

What browser and OS are you using? MacOS 13.6 Chrome 117.0.5938.92

For embedded devices (smart TVs, etc.), what model and firmware version are you using? NA

What are the manifest and license server URIs? https://taichiro-ishikawa-play.github.io/hls-sample-stream/dash_multi_baseurl/master.mpd

What configuration are you using? What is the output of player.getConfiguration()? Demo app.

What did you do?

Play above DASH content.

What did you expect to happen?

video and audio initialization segment and media segment referring MPD BaseURL. It isn't specified own baseURL, so initialization segment and media segment referring MPD BaseURL.

What actually happened?

video and audio initialization segment referring other BaseURL, but media segment referring valid BaseURL. above example's initialization segment (audio/video) use subtitle's BaseURL instead of MPD BaseURL wrongly.

avelad commented 10 months ago

@taichiro-ishikawa-play it seems that your url uses <BaseURL>https://example.com/</BaseURL> which is a bad url, also the mediaPresentationDuration="PT12S" is different than <Period id="0" start="PT0S" duration="PT6S">

taichiro-ishikawa-play commented 10 months ago

@avelad It is does not matter of this issue. This stream does not play, it expected. Issue is Resolve init segment url using unrelated AdaptationSet BaseURL.

For example, This MPD's video/audio initialization segment use wvtt AdaptationSet BaseURL instead of MPD BaseURL. (NG) By other hand, video/audio media segment use MPD BaseURL. (OK) This behavior not occur v4.5.0, this is regression.

taichiro-ishikawa-play commented 10 months ago

@avelad It is v4.5.0 playable and nightly unplayable MPD. https://taichiro-ishikawa-play.github.io/hls-sample-stream/dash_multi_baseurl2/master.mpd

Please Check it.

avelad commented 10 months ago

@taichiro-ishikawa-play PR to fix it: https://github.com/shaka-project/shaka-player/pull/5883 Thanks!

avelad commented 10 months ago

Thanks to your content I have found another bug that we have to solve :)