Ticket #1639 (closed feature: fixed)

Opened 13 months ago

Last modified 5 months ago

Support DISCONTINUITY in HLS playlists

Reported by: jeroen Owned by: sanil
Priority: Normal Milestone: Player 6.2
Component: streaming Keywords:
Cc: pablo, sanil Forum thread:

Description (last modified by jeroen) (diff)

The HLS framework currently doesn't support the DISCONTINUITY tag. We should look into adding it, since it's useful for broadcasters. Description:

The EXT-X-DISCONTINUITY tag indicates an encoding discontinuity between the media file that follows it and the one that preceded it. The set of characteristics that MAY change is:

  • file format
  • number and type of tracks
  • encoding parameters
  • encoding sequence
  • timestamp sequence

Its format is:

#EXT-X-DISCONTINUITY

Two example streams are available on playertest:

  • adaptive/bipbop/discontinuity.m3u8
    • This one has the first 3 fragments from gear1, then the first 3 fragments from gear4.
  • adaptive/boxee/playlist.m3u8
    • This one has a single weak signal fragment, repeated 7 times.

The keys in supporting these streams seem:

  1. Ensure the encoders get re-set (new SPS/PPS parsing, new Tag array, etc)
  2. Ensure the timeline does not get re-set (while the timestamps in the tags may change).

Change History

comment:1 Changed 12 months ago by jeroen

Some great feedback (including patch and test stream) from Tuomas Huhtanen. We should check them out and add the stream to our tests:

I did not find information how to contribute, so I'll add links to patches here. These patches are applicable to adaptive branch @ rev 2107. In order to be able to play our stream two modifications were necessary. First one is the Buffer check removal mentioned in previous post. Patch can be found at:

 http://norsu.saunalahti.fi/jwplayer/0001-Send-all-buffered-tags-to-NetStream..patch

The second modification was support for discontinuous ts-stream. The support is actually quite easy, minor change to sorting of tags and resetting the netstream on discontinuity. Patch for the discontinuity support can be found at:

 http://norsu.saunalahti.fi/jwplayer/0002-Add-support-for-playing-discontinuous-ts-stream.patch

For testing purposes, I created a playlist with two segments in assets/discontinuity. The patch for the test can be found at:

 http://norsu.saunalahti.fi/jwplayer/0001-Add-test-case-for-discontinuity-playlist.patch

comment:2 Changed 12 months ago by jeroen

comment:3 Changed 9 months ago by jeroen

  • Milestone changed from Plugins to Backlog

comment:4 Changed 9 months ago by jeroen

  • Summary changed from HLS: support DISCONTINUITY to Support DISCONTINUITY in HLS manifests

comment:5 Changed 7 months ago by jeroen

  • Component changed from flash to streaming

comment:6 Changed 6 months ago by jeroen

  • Priority changed from Normal to Low
  • Type changed from enhancement to feature

Not seen any requests for this to date...

comment:7 Changed 5 months ago by jeroen

  • Cc pablo, sanil added
  • Priority changed from Low to Normal
  • Description modified (diff)
  • Summary changed from Support DISCONTINUITY in HLS manifests to Support DISCONTINUITY in HLS playlists

comment:8 Changed 5 months ago by sanil

  • Owner changed from jeroen to sanil
  • Milestone changed from Backlog to Player 6.2

comment:9 Changed 5 months ago by sanil

  • Status changed from new to closed
  • Resolution set to fixed

Discontinuity tag support added in [2989]

Note: See TracTickets for help on using tickets.