Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

improve track switch process #2465

Conversation

nicosang
Copy link
Contributor

Hi,

this PR has to improve fast track switch process and not reload abandonned request in this use case. As mentionned by @nweber, there was an issue when fast video track switch occured.

@nweber , could you, please, give us a feedback?

Nico

@epiclabsDASH epiclabsDASH merged commit 06991e6 into Dash-Industry-Forum:development Mar 19, 2018
@nicosang nicosang deleted the ImproveTrackSwitch branch March 19, 2018 15:45
@nweber
Copy link
Contributor

nweber commented Mar 29, 2018

@nicosang Sorry for the delay, but I finally got time to test this today.

The latest development build still stutters fairly consistently for video when using "always replace".

Manifest:
https://s3.amazonaws.com/ssi-us-east-1-elemental-hls/bbb/streams/bbb.mpd

Reference Player:
http://reference.dashif.org/dash.js/nightly/samples/dash-if-reference-player/index.html?url=https://s3.amazonaws.com/ssi-us-east-1-elemental-hls/bbb/streams/bbb.mpd

Steps to reproduce:

  1. Open nightly reference player link above.
  2. Expand options and change the "Track Switch Mode" for Video to "Always Replace".
  3. Load the video.
  4. Use the three bars icon in the control bar to toggle to the unselected video track.

When switching, the video does keep playing during the switch but then I consistently see the video stall for ~1-3 seconds when the new track data is rendered. I'm not sure why the stall is happening, but playback shouldn't stall when switching.

@nweber
Copy link
Contributor

nweber commented Mar 29, 2018

@nicosang
Copy link
Contributor Author

nicosang commented Apr 3, 2018

Hi @nweber ,

first of all, indeed, there is still weird behavior with the video track switch. I have to look at it more precisely.

Nevertheless, it seems that your manifest should have different representation id in the different AdaptationSet of the unique period as described in the DASH spec (ISO/IEC 23009-1:2014) in section 5.3.5.2.

If you do agree, could you, please, update it?

Thanks,

Nico

@nweber
Copy link
Contributor

nweber commented Apr 5, 2018

@nicosang

Section 5.3.5.2 says..

id specifies an identifier for this Representation. The identifier shall be unique within a Period unless the Representation is functionally identically to another Representation in the same Period.

I believe that in this case that the Representation nodes that have the same id values are "functionality equivalent", as they are in different AdaptationSets. They represent the same content and are encoded the same way (timing, codec, etc); in other words, the same init will work for both sets of content.

@nweber nweber mentioned this pull request Apr 20, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants