Line data Source code
1 : /// Format of an HLS audio segment.
2 : ///
3 : /// Represents the different audio codec formats that can be used
4 : /// in HLS (HTTP Live Streaming) segments for Google Cast media.
5 : enum CastHlsSegmentFormat {
6 : /// Advanced Audio Coding format.
7 : aac,
8 :
9 : /// Dolby Digital (AC-3) format.
10 : ac3,
11 :
12 : /// MPEG-1 Audio Layer III format.
13 : mp3,
14 :
15 : /// MPEG Transport Stream format.
16 : ts,
17 :
18 : /// Transport Stream with AAC audio.
19 : tsAac,
20 :
21 : /// Enhanced AC-3 (Dolby Digital Plus) format.
22 : eAc3,
23 :
24 : /// Fragmented MP4 format.
25 : fmp4,
26 :
27 : /// No specific format or unknown format.
28 : none;
29 :
30 0 : factory CastHlsSegmentFormat.fromMap(String value) {
31 : // Try matching by name (lowerCamelCase)
32 0 : for (final v in values) {
33 0 : if (v.name == value) return v;
34 : }
35 : // Fallback: match legacy UPPER_SNAKE_CASE
36 : switch (value) {
37 0 : case 'AAC':
38 : return CastHlsSegmentFormat.aac;
39 0 : case 'AC3':
40 : return CastHlsSegmentFormat.ac3;
41 0 : case 'MP3':
42 : return CastHlsSegmentFormat.mp3;
43 0 : case 'TS':
44 : return CastHlsSegmentFormat.ts;
45 0 : case 'TS_AAC':
46 : return CastHlsSegmentFormat.tsAac;
47 0 : case 'E_AC3':
48 : return CastHlsSegmentFormat.eAc3;
49 0 : case 'FMP4':
50 : return CastHlsSegmentFormat.fmp4;
51 0 : case 'NONE':
52 : return CastHlsSegmentFormat.none;
53 : default:
54 : return CastHlsSegmentFormat.none;
55 : }
56 : }
57 : }
|