Skip to content
This repository has been archived by the owner on Jun 6, 2024. It is now read-only.

New feature- Segment loss scenarios for main live - deployment scenario IOP 4.2 section 4.11.4.3 #76

Conversation

niteeshbhat
Copy link
Contributor

This PR is for the simulation of IOP section 4.11.4.3 for the case of encoder not generating next segment.
In the implementation, up/down feature of baseurl is used to simulate the non availability of segments. Additionally new url key "segtimelineloss_1" is used to invoke the new functionality (explained below).

IOP guidelines and respective implementations are as follows

  1. From IOP, when an encoder fails for one or more specific Representations to generate the next segment, then the DASH packager , adds emsg to the last generated segment. The MPD validity expiration is set to the duration of the current segment or smaller. (Implementation: Emsg box added to the last segment of the UP interval and the fields of emsg are as according to section 5.10.4.2 DASH standard.)

  2. The emsg shall be added to all Representations that announce that they carry the message as an inband stream. (Implementation: InbandEventStream added in MPD for all reps)

  3. The MPD is updated on the server such that the last generated segment is documented in the Segment timeline and no new S element is added to the timeline. (Implementation: no new S element added in the Down interval).

  4. Only after the Representation(s) under loss resumes, a new S element is written with S@t matching the earliest presentation time of the newly generated Segment. The DASH client with it next update will resume and possibly take into account again this Representation. (Implementation: As the next UP interval begins, new S elements added).

Sample URL : livesim-dev/baseurl_u10_d20/segtimeline_1/segtimelineloss_1/testpic_2s/Manifest.mpd

Unit tests are performed and added as well.

@TobbeEdgeware
Copy link

Thanks for the contribution. I'll look into this.

@TobbeEdgeware
Copy link

This seems to be OK, but publishTime is updated depending on request time instead of only when there is something new in the manifest (see Issue #40), so I think it could be further optimized.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants