Dash-Industry-Forum / MPEG

Collects issues that need to be reported to MPEG
1 stars 0 forks source link

Issues for MPEG#142 #36

Open haudiobe opened 1 year ago

haudiobe commented 1 year ago

Please provide topics by April 18, 2023

haudiobe commented 1 year ago

Provide Content Steering specfication

dsilhavy commented 1 year ago

Hi, I would like to bring up one item which might be relevant for MPEG:

I reread the definition on how to replace $time$ as defined in 23009-1 5th edition. In my opinion, this is a bit confusing:

From my understanding it should be described more clearly that for <SegmentTimeline> we are replacing $time$ with a media time and not with an MPD start time. Otherwise, we would need to apply the @presentationTimeOffset before replacing $time$. Moreover, we might want to add to the $time$ description that the value is specified in timescale units (or is this already implicitly defined with “MPD start time”?).

As an example: https://dash.akamaized.net/dash264/TestCasesHD/1c/qualcomm/1/MultiRate.mpd

This MPD contains a @presentationTimeOffset and uses $time$. To fetch the first segment, we replace $time$ with 0 and not with 0 – 1024. This is stated in the definition of $time$ but as mentioned above it could be confusing as it is not the MPD start time of the segment.

I think @RufaelDev also had a comment on this.

RufaelDev commented 1 year ago

@dsilhavy thank you for raising this again, yes it would be good to clarify this, players like dash.js and shaka player indeed substitute the media time, I think fixing this in a corrigendum in MPEG makes a lot of sense. With regard to your example the first segment should be at 1024, but in fact it is better to explicitly signal @t for the first S element, and not make this implicit when it is not zero.

RufaelDev commented 1 year ago

I got some feedback on the encoder sync draft from AWS, as AWS contributes to DASH-IF and not in MPEG maybe we can provide some of that through DASH-IF. The two questions are:

  1. what if encoder has both live and file inputs how would that be supported ?
  2. what if the encoder input is behind the wallclock time significantly, how can this be solved ? Should we use the current time for computing the next segment boundary ?
haudiobe commented 1 year ago

Another issue from here: https://github.com/Dash-Industry-Forum/Live/issues/75#issuecomment-1494030121

From DASH spec (section 5.3.9.6): "If a Segment Index ('sidx') box is present, then the values of the SegmentTimeline shall describe accurate timing of each Media Segment, Specifically, these values shall reflect the information provided in the Segment index ('sidx') box,..." => how to maintain compliance with inaccurate SegmentTimeline ?

Should be adding the $Time$ requirement.

haudiobe commented 1 year ago

Inform about pattern template and how the draft solution looks like for now. https://github.com/Dash-Industry-Forum/Live/issues/75

stevemayhew commented 1 year ago

Thanks @dsilhavy I can move my discussion here, good to know my confusion is shared. Basically it seems either:

  1. the spec is wrong (or just confusing)
  2. the open-source players are wrong.

For the open source player:

Clearly the open-source players (including the DASH-IF reference player) are not wrong.

So the confusion is in the spec[s]...

The ISO spec says use "MPD start time"

$Time$: This identifier is substituted with the value of the MPD start time

3.1.32 MPD start time approximate presentation start time of a Media Segment (3.1.28) signalled in MPD (3.1.26)

Where "presentation" time is:

3.1.36 Presentation time time associated to an access unit (3.1.1) that maps it to the Media Presentation timeline (3.1.27)

And Media presentation timeline:

3.1.27 Media Presentation timeline concatenation of the timeline of all Periods (3.1.34) which itself is common to all Representations (3.1.38) in the Period

The DASH-IF IOP adds two more timelines:

  1. MPD Timeline
  2. Sample Timeline

So, the ISO standard talks about a "global common presentation timeline..." (in 7.2.1 Media Presentation timeline) and proceeds to pretty completely explain how "Media Presentation time" (which one is left to assume is on the "Media Presentation timeline", but it is quite unclear).