How Audio Track Labels are Displayed in Player

Client Side Audio Track Name Display Logic

How the player displays the audio track labels has a lot of variables. Currently, these are limited by the output options of the encoders, so the selection logic has a lot of conditions. There are additional nuances or constraints for certain platforms as well. The general logic, however, is as follows:

  • If only one track exists for a given language, display the language.
  • If multiple tracks exist for the same language, additional fields other than language, such as NAME or ROLE, must be used to describe the stream.

HLS Streams

Case 1 Output contains distinct audio track with distinct and valid language (not und) with name attribute.
Note: We cannot remove this attribute.
Player to consider only the ISO 639 code in the language Attribute and convert to readable string.

Example (iOS, Android, Web):

  • eng -> English
  • ger -> German
  • fra -> French
  • spa -> Spanish
This accounts for approximately 95% of cases.
Case 2 Output contains duplicate valid Language codes (not und) with Name attribute. Player to consider ISO 639 code in language attribute and covnert to readable string + Name value.

Acceptance Criteria (iOS, Android, Web):

  • eng -> English + Name
  • eng -> English + Name + Id (1, 2, 3, ...)
  • ger -> German + Name
  • ger -> German + Name + Id (1, 2, 3,...)
ID is added when "English + Name" is not unique.
Case 3 Output contains duplicate und language code with Name attribute. Player to pick the Name and Display (no translation is required)

Acceptance Criteria (iOS, Android, Web):

  • eng -> English
  • ger -> German
  • und -> Name (if there is no Name -> "Undefined language")
  • und -> Name + Id (1, 2, 3,...) (if there is no Name value -> "Undefined language" + Id)

    ID is added when "Name" is not unique for und tracks.

 

Dash Streams

Case 1 Output contains distinct audio track with distinct and valid language (not und) with no Role attribute. Player to consider only the ISO 639 code in the language attribute and covnert to readable string.

Acceptance Criteria (iOS, Android, Web):

  • eng -> English
  • ger -> German
  • fra -> French
  • spa -> Spanish
This is the same as for HLS (true for all platforms).
Case 2 Output contains distinct audio track with distinct and valid language (not und) with Role attribute. Player to consider only the ISO 639 code in the language attribute and convert to readable string + Role Description.

Acceptance Criteria (Web only):

  • eng -> English + Role
  • ger -> German + Role
  • fra -> French + Role
  • spa -> Spanish + Role

Acceptance Criteria (Android only) as for Case 1:

  • eng -> English
  • ger -> German
  • fra -> French
  • spa -> Spanish
 
Case 3 Output contains duplicate valid Language codes (not und) with Role attribute. Player to consider ISO 639 code in language attribute and convert to readable string + Role value.
  • Acceptance Criteria (Web Only):

    • eng -> English + Role
    • eng -> English + Role + Id (1, 2, 3, ...)
    • ger -> German + Role
    • ger -> German + Role + Id (1, 2, 3,...)

    Acceptance Criteria (Android Only):

    • eng -> English
    • eng -> English + Id (1, 2, 3, ...)
    • ger -> German
    • ger -> German + Id (1, 2, 3,...)
 
Case 4 Output contains duplicate tracks with und language code with Role attribute. Player to pick the Role and Display (no translation is required)

Acceptance Criteria (Web Only):

  • und -> Role
  • und -> Role + Id (1, 2, 3, ...)

Acceptance Criteria (Android Only):

  • und -> Undefined language
  • und -> Undefined language + Id (1, 2, 3,...)
 
Case 5 Output contains duplicate tracks with und language code with no Role attribute. Player just uses Undefined Lan-1, undefined-Lan-2

Acceptance Criteria (Android, Web):

  • und -> Undefined language
  • und -> Undefined language + Id (1, 2, 3, ...)
 
https://help.ooyala.com/sites/all/libraries/dita/en/video-platform/concepts/multi_display.html

Was this article helpful?