You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When the pathway cloning is applied with the same BASE-ID and ID, the player fails to select the newly synthesized (from a Pathway Clone object) BaseURL as there are multiple BaseURLs with the same serviceLocation value.
Browser name/version: Google Chrome / Version 133.0.6943.141 (Official Build) (64-bit)
OS name/version: Windows 11 Enterprise / 24H2
Steps to reproduce
The player requests a DASH Steering Manifest from Steering Server.
Steering Server includes PATHWAY-CLONES in the DASH Steering Manifest. It uses an existing Service Location identifier for BASE-ID and ID in the Pathway Clone object. Example DASH Steering Manifest response below
The player applies the pathway cloning and appends the newly synthesized BaseURL to the target BaseURLs list. Then, the available BaseURL list becomes as follows
the player selects the first BaseURL that is extracted from the manifest, not the newly synthesized one.
The reason is that the player searches for the first occurrence of the elements of PATHWAY-PRIORITY list in the available BaseURLs list.
It matches pathway-id and serviceLocation values.
Expected behavior
It should select the newly synthesized (from a Pathway Clone object) BaseURL. For this, the player should insert the newly created BaseURL (synthesized BaseURLs) to the beginning of available BaseURLs. Possible fix on
I would like to check this with DASH-IF. From my understanding, you have two elements with the same serviceLocation now. As you wrote, I think the most reasonable approach would be to replace the existing BaseURL with the newly synthesized one. I want to make sure that this is standard conform, though:
@burak-kara Do you have a reference stream with PATHWAY-CLONES to reproduce the behavior. For the sample stream you pasted above, I don't get any PATHWAY-CLONES.
I think there is also an issue in dash.js with PATHWAY-CLONES and VoD content in general. The available BaseURLs are only updated after a manifest refresh, but not after a new response from the steering server. This means the approach described above would work one time if queryBeforeStart is set to true. For subsequent updates from the steering server the new synthesized elements will probably be missing. Need to validate this with a teststream. If this is confirmed, we can also fix this as part of this PR/issue.
Hi @dsilhavy , unfortunately, I don't have a public content steering server deployment that applies the pathway cloning. Sorry for the inconvenience.
I will try to expose a public endpoint so we can validate, but this may take a week or so. In the meantime, I am also testing this with a live profile.
@burak-kara Thanks. I will try to set up a local teststream for validation. Can you please check against #4706. I haven't merged this PR yet, but it should address the two issues you and I described above.
When the pathway cloning is applied with the same
BASE-ID
andID
, the player fails to select the newly synthesized (from a Pathway Clone object) BaseURL as there are multiple BaseURLs with the sameserviceLocation
value.Here, assuming that using the same
BASE-ID
andID
aligns with the spec https://www.etsi.org/deliver/etsi_ts/103900_103999/103998/01.01.01_60/ts_103998v010101p.pdf.Environment
Steps to reproduce
DASH Steering Manifest
from Steering Server.PATHWAY-CLONES
in theDASH Steering Manifest
. It uses an existing Service Location identifier forBASE-ID
andID
in the Pathway Clone object. ExampleDASH Steering Manifest
response belowObserved behavior
dash.js/src/streaming/utils/baseUrlResolution/ContentSteeringSelector.js
Line 85 in f288ab0
PATHWAY-PRIORITY
list in the available BaseURLs list.pathway-id
andserviceLocation
values.Expected behavior
It should select the newly synthesized (from a Pathway Clone object) BaseURL. For this, the player should insert the newly created BaseURL (synthesized BaseURLs) to the beginning of available BaseURLs. Possible fix on
dash.js/src/streaming/models/BaseURLTreeModel.js
Line 128 in f288ab0
synthesizedBaseUrls= synthesizedBaseUrls.concat(targetBaseUrls)
to have
Another fix might be replacing the existing BaseURL in the
targetBaseUrls
with the newly synthesized one if they have the sameserviceLocation
.The text was updated successfully, but these errors were encountered: