Dash-Industry-Forum / Test-Content

Documents Test Content Generation
4 stars 0 forks source link

Test Content for Period Transitions #6

Open haudiobe opened 3 years ago

haudiobe commented 3 years ago

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

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.

rbouqueau commented 3 years ago

@dsilhavy I generated some test content:

@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?

rbouqueau commented 3 years ago

@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 commented 3 years ago

@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 commented 3 years ago

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

rbouqueau commented 3 years ago

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

Period 1:

Period 2: start=4s

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 commented 3 years ago

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

haudiobe commented 3 years ago

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

dsilhavy commented 3 years ago

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:

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 commented 3 years ago

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

rbouqueau commented 3 years ago

@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 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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

dsilhavy commented 3 years ago

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

rbouqueau commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

@haudiobe Opinion?

dsilhavy commented 2 years ago

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

rbouqueau commented 2 years ago

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

dsilhavy commented 2 years ago

@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

AV2

AV3

P1

AV4

P1

P2

AV5

P1

P2

AV6

P1

haudiobe commented 2 years ago

Test Call 2021/11/12:

rbouqueau commented 2 years ago

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

dsilhavy commented 2 years ago

@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 commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

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

dsilhavy commented 2 years ago

One more thing I noticed in AV5:

rbouqueau commented 2 years ago

Thanks for reporting. Fixed.

dsilhavy commented 2 years ago

Latest test results here: https://docs.google.com/spreadsheets/d/1OLRzskFmO5yL_kJpF6cILrO_uy-USrTmvsWZHEgqgtw/edit#gid=1461143595

haudiobe commented 2 years ago

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

rbouqueau commented 2 years ago

The audio is continuous here: