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

Player behavior: SegmentTemplate with $time$ and @duration but no SegmentTimeline #427

Open
dsilhavy opened this issue Aug 12, 2024 · 2 comments
Labels

Comments

@dsilhavy
Copy link

dsilhavy commented Aug 12, 2024

Description

Based on our discussion in the DASH-IF Live Call last week and an issue we addressed recently in dash.js I would like to clarify the right player behavior for content that uses SegmentTemplate with $time$ but does not contain a SegmentTimeline element.

As an example:

 <AdaptationSet
            id="1"
            lang="und"
            contentType="audio"
            segmentAlignment="true"
            mimeType="audio/mp4"
            startWithSAP="1">
            <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
            <SegmentTemplate
                timescale="48000"
                duration="96096"
                startNumber="1"
                media="$RepresentationID$-$Time$.m4a"
                initialization="$RepresentationID$.init">
            </SegmentTemplate>
            <Representation
                id="stream-audio-1-und-256Kbps"
                bandwidth="256000"
                audioSamplingRate="48000"
                codecs="mp4a.40.2">
            </Representation>
        </AdaptationSet>

Discussion Items

  • Does startNumber have an influence on how the player determines the right segment URL. For instance, if startNumber is set to 5 do we need to request a segment with $time$ larger than 0
  • What happens if a @presentationTimeOffset is specified? Do we assume that the earliestPresentationTime of the first segment is equal to the @presentationTimeOffset? This would imply that we have an @eptDelta of 0. We then replace $time$ with the value of the @presentationTimeOffset for the first segment. For subsequent requests, the @duration is added.
  • Do we need to parse the tfdt.baseMediaDecodeTime and add the sample durations to find the right URL for the next segment?
  • Do we want to allow this kind of MPDs in general?
  • If we allow this format, do we want to provide test content?

Related Issues

@naeoc4509
Copy link

naeoc4509 commented Aug 13, 2024

According to the contents of '@duration' in '5.3.9.5.2 Initialization Segment information' of ISO IEC 23009-1 : 2022 document below,

image

There is no rule for MUST pairing '$Number$ : @duration' and '$time$ : sengmentTimeline'

According to the above document, when using @duration, there is a definition of how '$time$' is determined, so I think it is usable.

According to the document, the @startNumber value is affected, but the @presentationTimeOffset value has no effect on both '$time$' and '$number$'.

When using '$time$' and @duration in mpd, 'Shaka player' matches the @presentationTimeOffset value to the 'start time' value of '$time$',
I can't find such content in the above standard document, so I think it is a bug in shaka player related to time calculation.

@haudiobe
Copy link
Contributor

TF 2024/08/16

  • Generally we should reduce the number of options. One way would be to prohibit $Time$ and @Number, but use Segment Timeline with r=-1 to have an open ended template.
  • It would also be good to get feedback from DVB if they support this mode,
  • We will revisit.

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

No branches or pull requests

3 participants