Support xlink:actuate=“onRequest”
Have you read the FAQ and checked for duplicate open issues? Yes
Is your feature request related to a problem? Please describe. We are integrating with Ads, and would prefer to use DASH-IF's latest SGAI specifications that allows us to delay filling the Ad Pods while reusing the player heuristics to maintain Quality of Service. Please see: https://dashif.org/docs/CR-Ad-Insertion-r8.pdf and https://drive.google.com/file/d/1TwSuMGa1gfesdWBvlbK1rHLNVwiZNX3l/view for more information. I've asked questions out to the DASH-IF forum about impact to the player timeline (amongst others): https://github.com/Dash-Industry-Forum/AdInsertion/issues/83
Describe the solution you'd like
- Support for xlinks "onRequest", and some handling to indicate whether a period being played is an Ad or not, and/or exposing manifest events so we can track it on our own
- Exposing Timed Metadata from the stream
- Support for Dash Patch Manifests for Live Streaming
Describe alternatives you've considered We are using CSAI to workaround this limitation, but would prefer to use SGAI to capitalize on the player qos calculations to maintain qos on low bandwidth connections.
We may need to do something similar to handle HLS interstitial support. We will be investigating the work soon, but may take a while to implement. This will require major reworks to implement.
Corresponding HLS interstitial feature: #3364
Hi, I was wondering if you could share anything about how the discussions with Zach Cava are progressing on this? We are hoping to capitalize on support for SGAI in early/mid 2022 in ShakaPlayer. Would that be a realistic expectation to have?
Hey Team, Is MPD Chaining / XLink supported in this player ?? Generally what we have been doing to implement Static Pre roll in shaka player for DASH ?? Any examples / references ?? Thanks, Gheri.
@ronak2121 I can see XLink on Request is not supported yet on Shaka Player Then how you are going with SGAI ??
I am not aware of anyone working on either patch manifests or xlink onRequest. Today xlinks are only resolved immediately on parsing the manifest.
@Gheri we aren't doing SGAI yet. We're still on CSAI with Google IMA. I am super motivated to add this support though. I will hit you up @joeyparrish when we're ready to start contributing and get some pointers.
@avelad is this being actually being considered to be added in version 4.1? @joeyparrish if you still need help implementing this and/or HLS Interstitials, we are open to help you. Can you describe the next steps?
As far as I can tell, nobody is working on this yet, so it shouldn't be in the v4.1 milestone. I placed this enhancement in the backlog for now.
As for next steps, the original post describes what look like several separate requests:
- Support for xlinks "onRequest"
- Some handling to indicate whether a period being played is an Ad or not
- Or exposing manifest events so we can track it on our own
- Exposing Timed Metadata from the stream
- Support for Dash Patch Manifests for Live Streaming
I would say that the next steps depend on which of these you intend to tackle first:
- I think timed metadata is already exposed, is it not? Can you be more specific about what you need here?
- Patch manifest support is likely to be independent of the others in terms of implementation. I suggest splitting that into its own issue.
- Indicating whether a period is an ad or not is a layered problem. First, how does DASH indicate that a Period is an ad? You'd have to parse that. Second, since period-flattening in v3.0, the internal structure loses information about DASH Periods, so some larger architecture change would be necessary. This is not a small problem.
- Supporting xlink onRequest is another fundamental change to the architecture. Today, manifests have to be fully parsed. To support xlink onRequest, the player would have to fetch and update that portion of the manifest right before it's needed. A communication channel between player and manifest parser would have to be added for that, and the shape of that is an open question. There are also open questions about restrictions on xlinks. For example, if xlink is used in such a way that the duration of some periods (and therefore the duration of the presentation) can't be know in advance, then that could make everything more complicated. The player overall assumes that it knows the presentation duration upfront for VOD. Do we require duration info in the main manifest? Or do we change all the components that want to know duration in advance? Or do we set the duration such that it "stops" close to the boundary of an unknown-duration period, and expand the duration as we resolve xlinks? Lots of open questions here.
@ronak2121 Did you guys know whats equivalent of xlink onRequest in HLS ?? Becuase HLS interstitial is loading the manifest on load and not on Request ?? Also I did not any equivalent for dynamic uri substitution as well in HLS ?? Dynamic Uri substitution is needed to make actual manifest cacheable and support unique user requests for ads. (https://dashif.org/docs/DASH-TAC-v1.0.htm#_Toc532379025)
@Gheri there's no such thing as xlinks for HLS. Look at the new HLS talks from Apple about how things work there. I have successfully prototyped SGAI on HLS with iOS using AVPlayer, and it works as advertised with delayed resolution.