FPS - Client test SDK

We are using the FPS test package for testing purposes, After configuring the server side we rae using the code exemple "iOS FPS Client.xcodeproj" with encrypted m3U8 sample given in the same SDK:

The code exemple (client) can play the non-encrypted video but we face an issue when playing the encrypted version and I have this message:

"Cannot Parse this data is damaged, incomplete, or incompatible."

In my app the method "resourceLoader:shouldWaitForLoadingOfRequestedResource:" is never call, is there a link?


We feel that the player (in the sample code) don't search the key from the server side (no packet get towards the licence server URI used ==http://ipaddr/server.php".


is it realted to a limitation in the test SDK? or this error code be corrected to get decode the sample stream provided inside the test SDK?


Kind Regards,

Answered by DTS Engineer in 36001022

It is a little surprising that no error is returned in this case. For example, as demonstrated by the iOS FPS Client example in the SDK if you create an AVURLAsset for your playlist URL and attempt to load the "playable" key asynchronously for the asset are you not getting an error?


If your resourceLoader:shouldWaitForLoadingOfRequestedResource: method is never called then there is some kind of issue with the HLS .m3u8 playlist file loading. If you are using the sample code then perhaps you didn’t change PLAYLIST_URL variable (see file ViewController.m) to point to your server/.m3u8 file? Another possibility is that you modified the .m3u8 file in such a way that it is not compatible with FPS. Again, refer to the FPS programming guide to learn how to add FPS to an HLS Playlist.


You should also verify your custom URI scheme (e.g. skd) in the app resourceLoader:shouldWaitForLoadingOfRequestedResource: method as shown by the SDK client sample code.

If your resourceLoader:shouldWaitForLoadingOfRequestedResource: method is never getting called then it might be because you are not specifying a non-standard URI scheme in your playlist EXT-X-KEY tag. See the section titled "Preparing Content for FPS" on pg. 33 of the FPS Programming Guide for an example FPS EXT-X-KEY tag with non-standard URI (e.g. "skd://key65") in a streaming playlist. Note the URI is not intended to be a reference to the key on the server; rather, it is to be used as a content identifier.

Is it normal that we doesn’t receive any error when the avplay is parsing the m3u8 and especially the uri “malformed” field ?

Do we need to manage a new uri type in our resource loader delegate (such skd type) ?

Accepted Answer

It is a little surprising that no error is returned in this case. For example, as demonstrated by the iOS FPS Client example in the SDK if you create an AVURLAsset for your playlist URL and attempt to load the "playable" key asynchronously for the asset are you not getting an error?


If your resourceLoader:shouldWaitForLoadingOfRequestedResource: method is never called then there is some kind of issue with the HLS .m3u8 playlist file loading. If you are using the sample code then perhaps you didn’t change PLAYLIST_URL variable (see file ViewController.m) to point to your server/.m3u8 file? Another possibility is that you modified the .m3u8 file in such a way that it is not compatible with FPS. Again, refer to the FPS programming guide to learn how to add FPS to an HLS Playlist.


You should also verify your custom URI scheme (e.g. skd) in the app resourceLoader:shouldWaitForLoadingOfRequestedResource: method as shown by the SDK client sample code.

FPS - Client test SDK
 
 
Q