feat: add missing DASH roles from ISO/IEC 23009-1 section 5.8.5.5 (#1390)

Fixes #1149

---------

Co-authored-by: Joey Parrish <joeyparrish@users.noreply.github.com>
This commit is contained in:
Cosmin Stejerean 2024-04-30 14:10:23 -07:00 committed by GitHub
parent 4b5e80d02c
commit fe885b3ade
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 30 additions and 8 deletions

View File

@ -10,7 +10,10 @@ DASH specific stream descriptor fields
:dash_roles (roles): :dash_roles (roles):
Optional semicolon separated list of values for DASH Role element. The optional semicolon separated list of values for DASH Role element. The
value should be one of: **caption**, **subtitle**, **main**, **alternate**, value should be one of: **caption**, **subtitle**, **main**, **alternate**,
**supplementary**, **commentary**, **description**, **dub** and **forced-subtitle** . **supplementary**, **commentary**, **dub**, **description**, **sign**,
**metadata**, **enhanced-audio- intelligibility**, **emergency**,
**forced-subtitle**, **easyreader**, and **karaoke**.
See DASH (ISO/IEC 23009-1) specification for details. See DASH (ISO/IEC 23009-1) specification for details.

View File

@ -126,9 +126,10 @@ const char kUsage[] =
" list of values for DASH Accessibility elements. The value should be\n" " list of values for DASH Accessibility elements. The value should be\n"
" in the format: scheme_id_uri=value.\n" " in the format: scheme_id_uri=value.\n"
" - dash_roles (roles): Optional semicolon separated list of values for\n" " - dash_roles (roles): Optional semicolon separated list of values for\n"
" DASH Role elements. The value should be one of: caption, subtitle,\n" " DASH Role elements. The value should be one of: caption, subtitle, \n"
" forced-subtitle, main, alternate, supplementary, commentary, \n" " main, alternate, supplementary, commentary, dub, description, sign, \n"
" description and dub. See DASH\n" " metadata, enhanced-audio- intelligibility, emergency, \n"
" forced-subtitle, easyreader, and karaoke. See DASH\n"
" (ISO/IEC 23009-1) specification for details.\n" " (ISO/IEC 23009-1) specification for details.\n"
" - forced_subtitle: Optional boolean value (0|1). If set to 1 \n" " - forced_subtitle: Optional boolean value (0|1). If set to 1 \n"
" indicates that this stream is a Forced Narrative subtitle that \n" " indicates that this stream is a Forced Narrative subtitle that \n"

View File

@ -59,10 +59,22 @@ std::string RoleToText(AdaptationSet::Role role) {
return "commentary"; return "commentary";
case AdaptationSet::kRoleDub: case AdaptationSet::kRoleDub:
return "dub"; return "dub";
case AdaptationSet::kRoleForcedSubtitle:
return "forced-subtitle";
case AdaptationSet::kRoleDescription: case AdaptationSet::kRoleDescription:
return "description"; return "description";
case AdaptationSet::kRoleSign:
return "sign";
case AdaptationSet::kRoleMetadata:
return "metadata";
case AdaptationSet::kRoleEnhancedAudioIntelligibility:
return "enhanced-audio-intelligibility";
case AdaptationSet::kRoleEmergency:
return "emergency";
case AdaptationSet::kRoleForcedSubtitle:
return "forced-subtitle";
case AdaptationSet::kRoleEasyreader:
return "easyreader";
case AdaptationSet::kRoleKaraoke:
return "karaoke";
default: default:
return "unknown"; return "unknown";
} }

View File

@ -43,8 +43,14 @@ class AdaptationSet {
kRoleSupplementary, kRoleSupplementary,
kRoleCommentary, kRoleCommentary,
kRoleDub, kRoleDub,
kRoleDescription,
kRoleSign,
kRoleMetadata,
kRoleEnhancedAudioIntelligibility,
kRoleEmergency,
kRoleForcedSubtitle, kRoleForcedSubtitle,
kRoleDescription kRoleEasyreader,
kRoleKaraoke,
}; };
virtual ~AdaptationSet(); virtual ~AdaptationSet();