-
Notifications
You must be signed in to change notification settings - Fork 11
Comments related to commit PR#13
Adithyan Ilangovan edited this page Oct 27, 2017
·
1 revision
Feature - ad customization in MDE was a PR raised in #13. There were some important comments added for the PR. They are just added back here so that they do not get buried.
Make sure to run the make command in the Route_Receiver folder before beginning to test.
Several small features and bug fixes resulted in a ROUTE MDE implementation with ad-customization. Few notables ones are listed below:
- Add SLS signalling to MDE route receiver.
- Out of order delivery by the route receiver was creating some mutex lock problems (Not completely clear where in the C code. This by far was the hardest bug to figure out.) Instead of packets being sent through the sockets like so : 33, 34, 35, 36 | sometimes packets were sent like so : 33, 35, 34, 36. This out of order delivery via websocket was causing problems. For now, a minor fix has been introduced, the route receive will just not forward the lately arriving (out of order) packet to the websocket. So in the end only packets 33, 35 and 36 will be forwarded to the websocket.
- Earlier only media segments were forwarded via websocket, now both .init and media-segment will be continuously forwarded.
- Read the .mpd file and figure out the period boundaries.
- At the period boundaries, clear out the media source buffers and reinitialize them again. In theory, various ways possible, but practically only one can be done (see https://github.com/Dash-Industry-Forum/dash.js/issues/126)
- Support for custom ad. Add UI button. At the period boundaries, if custom ad option is selected, point to the local ad present at the http server.
- Several bug fixes for the support of ad-customization. Find delta between tune-in and AST to properly offset the video being played. Reintialize variable during tune-in process.
Known issues:
- Since we are using the sourceBufferLength as an indicator when to retune, this will cause a minor blackout of 0.5-1second while switching between different periods. Ideally, we have to switch between periods at exactly the period boundaries. But, in the current implementation, it will switch 1-1.5s second before the actual boundary. The 1-1.5s depends upon how much buffer is filled.