Problem playing DAI on Chromecast for VOD

177 views
Skip to first unread message

Marc Desharnais

unread,
Dec 20, 2021, 11:55:41 AM12/20/21
to Interactive Media Ads SDK
Hi,

I'm trying to playback video on the latest DAI for CAF SDK for Chromecast.

The problem:

[274.486s] [cast.player.hls.PackedAudioParser] Neither ID3 nor ADTS header was found at 0 
[274.583s] [cast.player.api.Host] error: cast.player.api.ErrorCode.NETWORK/315 
[277.495s] [cast.receiver.MediaManager] Load metadata error: [object Object] 
Uncaught TypeError: Cannot read property 'mb' of null

Step to reproduce:

1- Setup a Chromecast receiver to use our specific CMSID and videoID.

I deployed  the Chromecast Sample receiver and hardcoded values for the VODRequest.
The relevant part is:
let streamRequest = new google.ima.cast.dai.api.VODStreamRequest();
streamRequest.contentSourceId = '2541868';
streamRequest.videoId = '944466';


2 - Use the CaC Tool to launch a load request.

The hardcoded values does the rest to configure the request as intended.

3 - Notice that the stream request fails with the error provided above.



IMA SDK

unread,
Dec 21, 2021, 4:16:15 AM12/21/21
to marc.de...@radio-canada.ca, ima...@googlegroups.com

Hello Marc,

 

I'm Michael from IMA SDK Team, thank you for reaching out to us with your concern.

 

Would you be able to share with us the sample project implementation where the issue is reproducible? Or did you mean that it is reproducible in our own sample apps with just providing the contentsourceid and videoid as below?

  • streamRequest.contentSourceId = '2541868';
  • streamRequest.videoId = '944466';

 

Additionally, is there any specific sequence that triggers the issue? If so, kindly share to us the step by step process in order to replicate the same behavior.

Regards,

Google Logo
Michael Angelo Legaspi
IMA SDK Team
 


ref:_00D1U1174p._5004Q2TNxf9:ref

Marc Desharnais

unread,
Dec 21, 2021, 11:20:24 AM12/21/21
to IMA SDK, ima...@googlegroups.com
Hello!

indeed all there is to do is to start from the sample receiver, and hardcode those values.


In fact I've been digging the issue a lot and figured some things:

1 - The streamManager does load the stream properly, executing the success callback.

2 - The DRM implementation is missing in the receiver, meaning the stream request for ads loads properly but the playback cannot start.

The specified video requires Widevine DRM to work over Dash.
A PlayReady configuration also seems possible, over Dash again.


Even by setting the DRM configuration in the playbackConfiguration object, the video fails to play properly.

So here's my code to set the DRM values. Maybe you can help with the DRM setup?
I'm sorry there's probably no way to provide you DRM keys to test on your end, but maybe pointing me out a working example of a Sample app supporting both DAI and DRM would help a lot!

playerManager.setMediaPlaybackInfoHandler(async (loadRequest, playbackConfig) => {
playbackConfig.licenseUrl = this.widevineLicenseUrl;

playbackConfig.protectionSystem = cast.framework.ContentProtection.WIDEVINE;

playbackConfig.licenseRequestHandler = (requestInfo) => {
requestInfo.withCredentials = false;
requestInfo.headers = {
'Authorization': this.widevineAuthToken,
'Content-Type': 'text/xml; charset=utf8',
};
};
return Promise.resolve(playbackConfig);
}


Thanks!


Marc Desharnais, B.Ing
Chef développeur
CBC/Radio-Canada
1000, av. Papineau, Montréal Qc H2K 0C2

IMA SDK

unread,
Dec 22, 2021, 4:32:26 AM12/22/21
to marc.de...@radio-canada.ca, ima...@googlegroups.com

Hello Marc,

 

Thank you for clarifying the issue. I have raised this to the rest of our team to further investigate. One of our team should be able to respond to you once they have run through this thread.

Regards,

Reply all
Reply to author
Forward
0 new messages