This also makes the Playhead ignore duplicate regions. This simplifies
manifest updates in DashParser by having it add every Event tag it
sees. The DASH spec doesn't specify how we should detect duplicate
entries or how events are fired. So to avoid firing all the same
'timelineregionadded' events on every manifest update and getting
multiple enter/exit events, we will simply remove duplicates.
Closes#462
Change-Id: If5d2c42bd6958567b2ec05ba1e9af252c95cf354
Rather than accepting multiple callback methods as separate arguments,
now start() will accept an object. This will allow us to add new
callbacks without breaking backwards compatibility or adding
additional arguments.
Change-Id: I839cbb12e71c2e7270aa218802c79440c458e964
This change creates a new model which divides DASH streams into VOD,
IPR, and live. It is possible to create manifests which do not fit
into any of the three categories according to our model, so we now
assert that our input fits cleanly into one of the three.
Inline manifests used in our tests had to be updated to conform to
the new model. All external test assets have been verified to fit
into these categories.
This is phase 1 of IPR support. There should be no behavior change
in this CL.
In phase 2, we will make various other parts of the library aware of
IPR so that IPR-specific behaviors can be achieved.
Issue #477
Change-Id: I395d3a0c8c9825a3cd2efde263b8493ce0920ed9