Skip to content

Bandwidth detection for spatial audio is a breaking change #7965

@koenoe

Description

@koenoe

Have you read the FAQ and checked for duplicate open issues?
Yes

If the problem is related to FairPlay, have you read the tutorial?
N/A

What version of Shaka Player are you using?
4.9.35

Can you reproduce the issue with our latest release version?
Yes

Can you reproduce the issue with the latest code from main?
Yes

Are you using the demo app or your own custom app?
Custom app

If custom app, can you reproduce the issue using our demo app?
N/A

What browser and OS are you using?
Tizen/WebOS

For embedded devices (smart TVs, etc.), what model and firmware version are you using?
LG WebOS5 and a Samsung TV with Tizen 6.5

What are the manifest and license server URIs?
If needed, I can supply full manifests, but relevant bits of our manifest:

<!-- our Dolby Atmos track -->
<SupplementalProperty
        schemeIdUri="tag:dolby.com,2018:dash:EC3_ExtensionType:2018"
        value="JOC" />
      <SupplementalProperty
        schemeIdUri="tag:dolby.com,2018:dash:EC3_ExtensionComplexityIndex:2018"
        value="16" />
      <Label>English</Label>
      <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" />
      <SegmentTemplate
        timescale="48000"
        initialization="fr_1730931019-$RepresentationID$.dash?CMCD=ot=m,sf=d,sid=&quot;6d3d7571-a654-493a-8447-e5917f485ded&quot;,su"
        media="fr_1730931019-$RepresentationID$-$Time$.dash?CMCD=ot=m,sf=d,sid=&quot;6d3d7571-a654-493a-8447-e5917f485ded&quot;,su">
        <SegmentTimeline>
          <S t="0" d="384000" r="1187" />
          <S d="293376" />
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation
        id="audio_dolby_atmos_prm_6f00b93cca8f85d2c6b60f9e1b26e330=768000"
        bandwidth="768000">
      </Representation>

<!-- our Dolby Digital Plus track -->
<Label>English</Label>
<Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" />
      <SegmentTemplate
        timescale="48000"
        initialization="fr_1730931019-$RepresentationID$.dash?CMCD=ot=m,sf=d,sid=&quot;6d3d7571-a654-493a-8447-e5917f485ded&quot;,su"
        media="fr_1730931019-$RepresentationID$-$Time$.dash?CMCD=ot=m,sf=d,sid=&quot;6d3d7571-a654-493a-8447-e5917f485ded&quot;,su">
        <SegmentTimeline>
          <S t="0" d="384000" r="1187" />
          <S d="293376" />
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation
        id="audio_dolby_digital_plus_prm_312c50a6b2188bb39a0908f866cc4eb3=384000"
        bandwidth="384000">
      </Representation>

What configuration are you using? What is the output of player.getNonDefaultConfiguration()?

{
  "manifest": {
    "retryParameters": {
      "maxAttempts": 3,
      "connectionTimeout": 30000
    },
    "dash": {
      "disableXlinkProcessing": true,
      "xlinkFailGracefully": true,
      "ignoreMinBufferTime": true
    }
  },
  "streaming": {
    "retryParameters": {
      "maxAttempts": 3,
      "connectionTimeout": 30000
    },
    "bufferBehind": 10,
    "stallEnabled": false
  },
  "preferredAudioLanguage": "en",
  "preferredTextLanguage": "fr",
  "preferredAudioChannelCount": 16,
  "preferredVideoCodecs": [
    "dvhe",
    "hev1.2.4",
    "hev1.1.6",
    "hev1",
    "avc1"
  ],
  "preferredAudioCodecs": [
    "ec-3",
    "ac-3",
    "mp4a.40.2"
  ],
  "preferSpatialAudio": true,
  "cmcd": {
    "enabled": true,
    "sessionId": "de7589ef-dd37-4304-8391-c95fa145818c"
  },
  "cmsd": {
    "enabled": false
  }
}

What did you do?
Play a DASH stream with the correct JOC SupplementalProperty for Spatial Audio (Dolby Atmos) signaling.

What did you expect to happen?
Respect the preferSpatialAudio setting and ABR to not switch to non-spatial audio tracks like Dolby Digital Plus even though codecs are the same (ec-3).

What actually happened?
ABR switches between Dolby Atmos and Dolby Digital Plus because both tracks are marked as spatial.

Are you planning to send a PR to fix it?
I could do, but I'm not sure why this change has been done that breaks it: #7847

This specific change causes the issue:

const isAtmos = codecs.includes('ec-3') && context.bandwidth >= 384000;

Our Dolby Digital Plus track is 384000. So maybe we can change the check to?

const isAtmos = codecs.includes('ec-3') && context.bandwidth > 384000;

Metadata

Metadata

Assignees

Labels

component: DASHThe issue involves the MPEG DASH manifest formatpriority: P2Smaller impact or easy workaroundstatus: archivedArchived and locked; will not be updatedtype: bugSomething isn't working correctly

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions