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

Fix handling of MPDs containing SegmentList with SegmentTimeline #4185

Merged

Conversation

tea
Copy link
Contributor

@tea tea commented May 11, 2023

The current code assumes that SegmentTimeline implies SegmentTemplate. SegmentList+SegmentTimeline combination, while rarely used, is still a valid MPD and should be supported. Thankfully, the fix is trivial.

@dsilhavy
Copy link
Collaborator

@tea Thanks for your PR. Following our contribution guidelines, and since this seems to be your first PR, could you please send me a signed copy of dash.js feedback agreement?

@dsilhavy dsilhavy added this to the 4.7.1 milestone May 30, 2023
@dsilhavy dsilhavy merged commit c238e6f into Dash-Industry-Forum:development May 30, 2023
@biubiue
Copy link

biubiue commented Oct 7, 2023

Hi,I use SegmentList and SegmentURL ,when jumping to the specified position in the video, the player crashed. Mpd file like this:
<?xml version="1.0" encoding="utf-8"?> <MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" mediaPresentationDuration="PT3M10.4S" maxSegmentDuration="PT5.0S" minBufferTime="PT10.2S"> <ProgramInformation> </ProgramInformation> <ServiceDescription id="0"> </ServiceDescription> <Period id="0" start="PT0.0S"> <AdaptationSet id="0" contentType="video" startWithSAP="1" segmentAlignment="true" bitstreamSwitching="true" frameRate="25/1" maxWidth="1000" maxHeight="1224" par="125:153"> <Representation id="0" mimeType="video/webm" codecs="vp09.00.40.08" bandwidth="1737009" width="1000" height="1224" sar="1:1"> <BaseURL>out-stream0.webm</BaseURL> <SegmentList timescale="1000000" duration="5000000" startNumber="1"> <Initialization range="0-371" /> <SegmentURL mediaRange="372-1207325" /> <SegmentURL mediaRange="1207326-2368408" /> <SegmentURL mediaRange="2368409-3423722" /> <SegmentURL mediaRange="3423723-4506994" /> <SegmentURL mediaRange="4506995-5610467" /> <SegmentURL mediaRange="5610468-6669610" /> <SegmentURL mediaRange="6669611-7745058" /> <SegmentURL mediaRange="7745059-8795162" /> <SegmentURL mediaRange="8795163-9946466" /> <SegmentURL mediaRange="9946467-11139065" /> <SegmentURL mediaRange="11139066-12299272" /> <SegmentURL mediaRange="12299273-13358151" /> <SegmentURL mediaRange="13358152-14669311" /> <SegmentURL mediaRange="14669312-15829422" /> <SegmentURL mediaRange="15829423-16883393" /> <SegmentURL mediaRange="16883394-17974933" /> <SegmentURL mediaRange="17974934-19077695" /> <SegmentURL mediaRange="19077696-20139781" /> <SegmentURL mediaRange="20139782-20691257" /> </SegmentList> </Representation> </AdaptationSet> <AdaptationSet id="1" contentType="audio" startWithSAP="1" segmentAlignment="true" bitstreamSwitching="true"> <Representation id="1" mimeType="audio/webm" codecs="opus" bandwidth="71851" audioSamplingRate="48000"> <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="1" /> <BaseURL>out-stream1.webm</BaseURL> <SegmentList timescale="1000000" duration="5000000" startNumber="1"> <Initialization range="0-398" /> <SegmentURL mediaRange="399-45364" /> <SegmentURL mediaRange="45365-91768" /> <SegmentURL mediaRange="91769-137239" /> <SegmentURL mediaRange="137240-181571" /> <SegmentURL mediaRange="181572-226372" /> <SegmentURL mediaRange="226373-270950" /> <SegmentURL mediaRange="270951-315230" /> <SegmentURL mediaRange="315231-361565" /> <SegmentURL mediaRange="361566-407707" /> <SegmentURL mediaRange="407708-454346" /> <SegmentURL mediaRange="454347-500194" /> <SegmentURL mediaRange="500195-544787" /> <SegmentURL mediaRange="544788-591272" /> <SegmentURL mediaRange="591273-637207" /> <SegmentURL mediaRange="637208-683508" /> <SegmentURL mediaRange="683509-728011" /> <SegmentURL mediaRange="728012-772088" /> <SegmentURL mediaRange="772089-816481" /> <SegmentURL mediaRange="816482-855723" /> <SegmentURL mediaRange="855724-855896" /> </SegmentList> </Representation> </AdaptationSet> </Period> </MPD>

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

Successfully merging this pull request may close these issues.

3 participants