Dash-Industry-Forum / Test-Content

Documents Test Content Generation
4 stars 0 forks source link

[Test Content] `duration` dataType issue in Image `AdaptationSet` #17

Open GouravSna opened 2 years ago

GouravSna commented 2 years ago

I am using sample content given here https://reference.dashif.org/dash.js/nightly/samples/dash-if-reference-player/index.html for DASH thumbnails. https://dash.akamaized.net/akamai/bbb_30fps/bbb_with_4_tiles_thumbnails.mpd

I am using ExoPlayer in Android and after using this content, I am getting a exception on Image thumbnail parsing. As per the compliance, duration should be in seconds (unsigned Int) but in the above media it is in float. ExoPlayer question: https://github.com/google/ExoPlayer/issues/9938

Doc says:

@duration expresses the duration of one tile in the media presentation timeline in the timescale provided by the value of the @timescale attribute, if present, otherwise in seconds. The value is referred to as tduration in the following.

<AdaptationSet id="3" mimeType="image/jpeg" contentType="image">
            <SegmentTemplate media="$RepresentationID$/tile_$Number$.jpg" duration="634.566" startNumber="1"/>
            <Representation bandwidth="12000" id="thumbnails_102x58" width="1024" height="1152">
                <EssentialProperty schemeIdUri="http://dashif.org/thumbnail_tile" value="10x20"/>
            </Representation>
            <Representation bandwidth="24000" id="thumbnails_256x144" width="2048" height="1152">
                <EssentialProperty schemeIdUri="http://dashif.org/thumbnail_tile" value="8x8"/>
            </Representation>
        </AdaptationSet>

Issue: As per the compliance, duration should be in unsigned int not in float.

rbouqueau commented 2 years ago

This manifest was not created as part of this repository.

@wilaw This is the Akamai folder. Are you able to provide guidance here?

wilaw commented 2 years ago

@GouravSna - good catch. @rbouqueau - I will fix this. Can we agree that the change below would be correct?

GouravSna commented 2 years ago

@wilaw , Do you think that there could be a float value for duration ?

Because in ExoPlayer, it is always being parsed as long value from SegmentTemplate, https://github.com/google/ExoPlayer/blob/029a2b27cbdc27cf9d51d4a73ebeb503968849f6/[…]android/exoplayer2/source/dash/manifest/DashManifestParser.java

And if timescale and duration is given then duration should be divided by timescale value which comes out to be a fractional value. @ojw28, Please correct me if my understanding is wrong.

freeboub commented 4 months ago

+1 Same issue can be found in following playlist: https://dash.akamaized.net/akamai/bbb_30fps/bbb_with_multiple_tiled_thumbnails.mpd