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

Test Content for Period Transitions #6

Open
haudiobe opened this issue May 11, 2021 · 31 comments
Open

Test Content for Period Transitions #6

haudiobe opened this issue May 11, 2021 · 31 comments
Assignees
Labels
available Test vector is available dash-if-agreed Requested by DASH-IF test team (don't mess with it, otherwise you are in trouble) request Request for a new test content

Comments

@haudiobe
Copy link
Contributor

haudiobe commented May 11, 2021

A short description of the use case for the new test content.

This test content is to demonstrate audio playback across periods in case different operation modes are applied.

Background in slides here: https://mpeg.expert/live/nextcloud/index.php/s/PTEMNj8cpSzmC62

Test content requirements

General description and requirements

  • Single Period DASH content with audio and video
  • Video Segments may be for example 2 seconds and audio segment should be 1.5 times the video segments
  • The duration shall be 24 seconds (12 video segments and 8 audio segments)
  • All periods contain a single video and a single audio AdaptationSet.
  • The audio has an extended edit list, for example 500ms, but the first segment has a presentation duration that is the nominal segment duration. This means it has more samples to be decoded.
  • For the same content, create a second MPD as follows
    • add a new Period (second one) after 3 video segments and 2 audio segments
    • add all PTO and eptDelta and pdDelta signaling (eptDelta and pdDelta should be 0)
    • add period continuity signaling for all Adaptation Sets.
  • For the same content, create a third MPD as follows
    • add a new Period (second one) after 2 video segments (cuts second audio segment in half)
    • add all PTO and eptDelta and pdDelta signaling
    • add period continuity signaling for all Adaptation Sets.
  • For the same content, create a fourth MPD as follows
    • add a new Period (second one) after 3 video segments and 2 audio segments
    • the second period starts with video segment 7 and audio segment 5 (PTO is 12 seconds)
    • add all PTO and eptDelta and pdDelta signaling (eptDelta and pdDelta should be 0)
    • add period connectivity signaling for all Adaptation Sets.
  • For the same content, create a fifth MPD as follows
    • add a new Period (second one) after 2 video segments (cuts second audio segment in half)
    • the second period starts with video segment 4 and audio segment 3.
    • add all PTO and eptDelta and pdDelta signaling
    • add period connectivity signaling for all Adaptation Sets.
  • For the same content, create a sixth MPD as follows
    • add a new Period (second one) after 2 video segments (cuts second audio segment in half)
    • the second period starts with video segment 5 and audio segment 4 (cuts second audio in half again)
    • add all PTO and eptDelta and pdDelta signaling
    • add period connectivity signaling for all Adaptation Sets.

There should be a second content without audio edit lists to check the difference.

DASH-IF documents and links

Relation to CTA WAVE Test Vector database

Additional context

Any other information you want to add here.

@haudiobe haudiobe added the request Request for a new test content label May 11, 2021
@rbouqueau rbouqueau self-assigned this May 11, 2021
@rbouqueau
Copy link
Collaborator

@haudiobe Sorry but I forgot about stream 4, 5 and 6 (manifest can be seen here). Do we mean to put a gap in the manifest? Or do we mean adding a 3rd period?

Clarification: we intended to put a gap.

@dsilhavy
Copy link
Contributor

@rbouqueau One finding I had when quickly checking this. The @maxSegmentDuration is set to 2 seconds although the audio segments seem to approximately 3 seconds long.

@rbouqueau
Copy link
Collaborator

I've just fixed it and re-uploaded the content.

@rbouqueau
Copy link
Collaborator

I'm trying to get some validation about the third MPD.

Period 1:

  • Video aligned on segment boundary.
  • Audio: advertise 2 segments of 3 seconds but compensate the duration by removing 2 seconds e.g. approx. pdDelta="-96000"

Period 2: start=4s

  • Video aligned on segment boundary.
  • Audio: first segment is the last segment of period 1 as there is a 1s overlap ; so approx. ept="48000" and pdDelta="-48000".

Does that look correct?

4th MPD ok.

5th MPD: we want to be on segment boundaries for both audio and video, correct? (e.g. video seg#6 and audio seg#4)

6th MPD: ok.

MPDs are available at:

@rbouqueau
Copy link
Collaborator

Thanks for the clarification in our call. I've regenrated the 6th MPD. All is complete for a pass of validation.

@haudiobe
Copy link
Contributor Author

The period continuity should signal the id of the Adaptation Set in the previous Period in its value, not the Period id.

@dsilhavy
Copy link
Contributor

I did a check in dash.js nightly: https://reference.dashif.org/dash.js/nightly/samples/dash-if-reference-player/index.html

  1. Single period, playback works, audio beeps are audible prior to a full second being completed. Compare to https://reference.dashif.org/dash.js/nightly/samples/dash-if-reference-player/index.html?mpd=https://dash.akamaized.net/dashif/ad-insertion-testcase1/batch5/counter/a/ad-insertion-testcase1.mpd . This is ok because of edit lists?
  2. The audio AS in the first period has a duration less than 6 seconds: (143936+143360)/48000 = 5.985 secs.

For the second period the MPD parameters lead to:

Period@start - @presentationTimeOffset(PTO) = 0,0146666667
MSETimestampOffset(MTO) = 0,0146666667
Pos of first segment in Period 2=  BMDT (according to S@t) + MTO = 287296 / 48000 + 0,0146666667sec = 5,9853333333 +  0,0146666667 = 6

I would expect segment number 2 in period 1 to end at 5.985. Due to the PTO the first segment in period 2 starts at 6. Still there is no gap visible between 5.985 and 6.
Because of this I checked the media segments:

  • audio 1: bmdt 0
  • audio 2: bmdt 167936

This results in a 0.5 second difference between the media duration defined in the MPD and the bmdt defined in the sements (167936 - 143936) / 48000 = 0.5. I assume this is correct because of what is defined in the requirements:

audio has an extended edit list, for example 500ms,

However, I am not sure what the expected behavior is here. The bmdt of segment 3 is 311296 / 48000 = 311296 / 48000. 311296 / 48000. We set appendWindowEnd to 6seconds for the first period. Lets discuss in the next call.

@rbouqueau
Copy link
Collaborator

@dsilhavy The issue is in the audio silence duration that is prepend. I'm still investigating the issue.

@rbouqueau
Copy link
Collaborator

@dsilhavy It took me time but I think I addressed your concerns:

The only thing that is not perfect is the 1024 initial edit list. Since players don't handle well multiple edit list I just removed it (resulting in a 1024/48000 second shift).

You can check the alignment of the high beep with the blink at second 10.

@dsilhavy
Copy link
Contributor

I did a quick check in dash.js, results are here: https://docs.google.com/spreadsheets/d/1OLRzskFmO5yL_kJpF6cILrO_uy-USrTmvsWZHEgqgtw/edit#gid=339302312

Let's discuss in the next IOP call

rbouqueau added a commit that referenced this issue Aug 31, 2021
@rbouqueau
Copy link
Collaborator

I fixed the MPD@duration inconsistencies. For the other comment I'd be happy we take the time together to review the values together.

@haudiobe
Copy link
Contributor Author

haudiobe commented Oct 5, 2021

Content available, but some open questions. @dsilhavy and @rbouqueau prepare some slides for discussing this.

@haudiobe haudiobe added dash-if-agreed Requested by DASH-IF test team (don't mess with it, otherwise you are in trouble) work-in-progress Test Vectors under generation labels Oct 5, 2021
@dsilhavy
Copy link
Contributor

@rbouqueau @haudiobe Please find a powerpoint for discussion here:
Testassets Discussion - eptDelta etc.pptx

@rbouqueau
Copy link
Collaborator

I guess we are commenting https://github.com/Dash-Industry-Forum/Test-Content/blob/main/ad-insertion-testcase6-av3.mpd here.

eptDelta, slide 3: "The value of the earliest presentation time of the first Media Segment in this Representation in seconds is computed as the sum of the value of this attribute and the value of the @presentationTimeOffset in units of the @timescale attribute." => ept = eptDelta + pto: 4s = 4*48000 = 192000(ept) = eptDelta + 144384 => eptDelta = 47616.

What do you think? I agree both the sentences we quote seem to phrase the equation in a different order.

@dsilhavy
Copy link
Contributor

I think in both cases we end up with a negative value for eptDelta . In my opinion the presentationTimeOffset of period 2 needs to be changed to 192.000. Then we get:

ept = eptDelta + pto 
144.384 = eptDelta + pto
eptDelta = 144.384 - 192.000
eptDelta = -47.616

@rbouqueau
Copy link
Collaborator

@haudiobe Opinion?

@dsilhavy
Copy link
Contributor

Updated slides based on discussion in the Coformance Call:
Testassets Discussion - eptDelta etc.pptx

rbouqueau added a commit that referenced this issue Oct 31, 2021
@rbouqueau
Copy link
Collaborator

@dsilhavy I've updated the MPDs on the repo. May I ask for a quick check?

@dsilhavy
Copy link
Contributor

dsilhavy commented Nov 12, 2021

@rbouqueau Thanks, please find my comments below

Edit: One question: Where is the current version of the content hosted? The Github URLs do not contain a BaseURL so I can not check them in dash.js

AV1

P1

  • @pdDelta for audio needs to be set: @pdDelta=1024

AV2

  • Discuss this, does not 100% reflect description as we have do not have aligned video and audio segments

P1

  • @pdDelta for audio needs to be set: @pdDelta=768

P2

  • We need to play the rest of the second segment instead of starting with the third segment:
    <S t="144384" d="144384"/> , @eptDelta=-143.616

AV3

P1

  • @pdDelta=96768

P2

  • correct

AV4

P1

  • @pdDelta for audio needs to be set: @pdDelta=768

P2

  • Why is there a gap for audio at the beginning? Suggest to start at the period boundary EPT=PTO leading to @eptDelta=0

AV5

P1

  • Audio @pdDelta=96.768

P2

  • According to description above period 2 should start with video segment 4.
  • Why is there a gap for audio at the beginning? Suggest to start at the period boundary EPT=PTO leading to @eptDelta=0

AV6

P1

  • Audio @pdDelta=96.768

@haudiobe
Copy link
Contributor Author

haudiobe commented Nov 12, 2021

Test Call 2021/11/12:

  • @rbouqueau please fix details from above
  • @rbouqueau please provide MPDs BaseURL for now and upload to server once agreed

@haudiobe haudiobe added available Test vector is available and removed work-in-progress Test Vectors under generation labels Nov 12, 2021
rbouqueau added a commit that referenced this issue Nov 12, 2021
@rbouqueau
Copy link
Collaborator

@dsilhavy Any better after my last commit? Let me know if there is any way for me to test also.

@dsilhavy
Copy link
Contributor

@rbouqueau Thanks for the update. AV1, AV2, AV3, AV6 look good in my opinion. For AV4 and AV5 I suggest to start at segment boundaries. From the definition of testcase 4 above:

"add all PTO and eptDelta and pdDelta signaling (eptDelta and pdDelta should be 0)"

@rbouqueau
Copy link
Collaborator

Can they really be zero if the timescale for the period start and duration are milliseconds? Or should we accept to have a micro-overlap? Opinion?

@dsilhavy
Copy link
Contributor

Yes I think we need to agree on this. We either accept a small async (then all values would be 0) or we shift of major parts of the segment.

For AV4 one thing that might need to be corrected:

  <SegmentTemplate media="audio_$Number$.m4s" initialization="audio_init.mp4" timescale="48000" presentationTimeOffset="576000" eptDelta="-143872" pdDelta="1024" startNumber="5">
    <SegmentTimeline>
     <S t="432128" d="143360"/>
     <S t="576512" d="144384" r="1"/>
     <S d="143360"/>
    </SegmentTimeline>
   </SegmentTemplate>

It looks like the first segment is completely shifted out of the period with the current settings (eptDelta > S@d). Can you please check the duration here. This does not add up: 432128 + 143360 != 576512

Thanks

@rbouqueau
Copy link
Collaborator

I fixed the computation, thanks for reviewing. The error was that the computation was unfinished (cf the two t= entries).

@dsilhavy
Copy link
Contributor

One more thing I noticed in AV5:

  • Specified @eptDelta of -144384 does not match value of calculated eptDelta (S@t - @presentationOffset) -143616 in Period P2, AdaptationSet 1, Representation a1

@rbouqueau
Copy link
Collaborator

Thanks for reporting. Fixed.

@dsilhavy
Copy link
Contributor

@haudiobe
Copy link
Contributor Author

Looks good - we need to possibly update the audio to be continuous.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
available Test vector is available dash-if-agreed Requested by DASH-IF test team (don't mess with it, otherwise you are in trouble) request Request for a new test content
Projects
None yet
Development

No branches or pull requests

3 participants