OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "media/base/sample_format.h" | 5 #include "media/base/sample_format.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 | 8 |
9 namespace media { | 9 namespace media { |
10 | 10 |
11 int SampleFormatToBytesPerChannel(SampleFormat sample_format) { | 11 int SampleFormatToBytesPerChannel(SampleFormat sample_format) { |
12 switch (sample_format) { | 12 switch (sample_format) { |
13 case kUnknownSampleFormat: | 13 case kUnknownSampleFormat: |
14 return 0; | 14 return 0; |
15 case kSampleFormatU8: | 15 case kSampleFormatU8: |
| 16 case kSampleFormatAc3: |
| 17 case kSampleFormatEac3: |
16 return 1; | 18 return 1; |
17 case kSampleFormatS16: | 19 case kSampleFormatS16: |
18 case kSampleFormatPlanarS16: | 20 case kSampleFormatPlanarS16: |
19 return 2; | 21 return 2; |
20 case kSampleFormatS24: | 22 case kSampleFormatS24: |
21 case kSampleFormatS32: | 23 case kSampleFormatS32: |
22 case kSampleFormatF32: | 24 case kSampleFormatF32: |
23 case kSampleFormatPlanarF32: | 25 case kSampleFormatPlanarF32: |
24 case kSampleFormatPlanarS32: | 26 case kSampleFormatPlanarS32: |
25 return 4; | 27 return 4; |
(...skipping 16 matching lines...) Expand all Loading... |
42 case kSampleFormatS32: | 44 case kSampleFormatS32: |
43 return "Signed 32-bit"; | 45 return "Signed 32-bit"; |
44 case kSampleFormatF32: | 46 case kSampleFormatF32: |
45 return "Float 32-bit"; | 47 return "Float 32-bit"; |
46 case kSampleFormatPlanarS16: | 48 case kSampleFormatPlanarS16: |
47 return "Signed 16-bit planar"; | 49 return "Signed 16-bit planar"; |
48 case kSampleFormatPlanarF32: | 50 case kSampleFormatPlanarF32: |
49 return "Float 32-bit planar"; | 51 return "Float 32-bit planar"; |
50 case kSampleFormatPlanarS32: | 52 case kSampleFormatPlanarS32: |
51 return "Signed 32-bit planar"; | 53 return "Signed 32-bit planar"; |
| 54 case kSampleFormatAc3: |
| 55 return "Compressed AC3 bitstream"; |
| 56 case kSampleFormatEac3: |
| 57 return "Compressed E-AC3 bitstream"; |
52 } | 58 } |
53 NOTREACHED() << "Invalid sample format provided: " << sample_format; | 59 NOTREACHED() << "Invalid sample format provided: " << sample_format; |
54 return ""; | 60 return ""; |
55 } | 61 } |
56 | 62 |
57 bool IsPlanar(SampleFormat sample_format) { | 63 bool IsPlanar(SampleFormat sample_format) { |
58 switch (sample_format) { | 64 switch (sample_format) { |
59 case kSampleFormatPlanarS16: | 65 case kSampleFormatPlanarS16: |
60 case kSampleFormatPlanarF32: | 66 case kSampleFormatPlanarF32: |
61 case kSampleFormatPlanarS32: | 67 case kSampleFormatPlanarS32: |
62 return true; | 68 return true; |
63 case kUnknownSampleFormat: | 69 case kUnknownSampleFormat: |
64 case kSampleFormatU8: | 70 case kSampleFormatU8: |
65 case kSampleFormatS16: | 71 case kSampleFormatS16: |
66 case kSampleFormatS24: | 72 case kSampleFormatS24: |
67 case kSampleFormatS32: | 73 case kSampleFormatS32: |
68 case kSampleFormatF32: | 74 case kSampleFormatF32: |
| 75 case kSampleFormatAc3: |
| 76 case kSampleFormatEac3: |
69 return false; | 77 return false; |
70 } | 78 } |
71 | 79 |
72 NOTREACHED() << "Invalid sample format provided: " << sample_format; | 80 NOTREACHED() << "Invalid sample format provided: " << sample_format; |
73 return false; | 81 return false; |
74 } | 82 } |
75 | 83 |
76 bool IsInterleaved(SampleFormat sample_format) { | 84 bool IsInterleaved(SampleFormat sample_format) { |
77 switch (sample_format) { | 85 switch (sample_format) { |
78 case kSampleFormatU8: | 86 case kSampleFormatU8: |
79 case kSampleFormatS16: | 87 case kSampleFormatS16: |
80 case kSampleFormatS24: | 88 case kSampleFormatS24: |
81 case kSampleFormatS32: | 89 case kSampleFormatS32: |
82 case kSampleFormatF32: | 90 case kSampleFormatF32: |
| 91 case kSampleFormatAc3: |
| 92 case kSampleFormatEac3: |
83 return true; | 93 return true; |
84 case kUnknownSampleFormat: | 94 case kUnknownSampleFormat: |
85 case kSampleFormatPlanarS16: | 95 case kSampleFormatPlanarS16: |
86 case kSampleFormatPlanarF32: | 96 case kSampleFormatPlanarF32: |
87 case kSampleFormatPlanarS32: | 97 case kSampleFormatPlanarS32: |
88 return false; | 98 return false; |
89 } | 99 } |
90 | 100 |
91 NOTREACHED() << "Invalid sample format provided: " << sample_format; | 101 NOTREACHED() << "Invalid sample format provided: " << sample_format; |
92 return false; | 102 return false; |
93 } | 103 } |
94 | 104 |
| 105 bool IsBitstream(SampleFormat sample_format) { |
| 106 switch (sample_format) { |
| 107 case kSampleFormatAc3: |
| 108 case kSampleFormatEac3: |
| 109 return true; |
| 110 case kUnknownSampleFormat: |
| 111 case kSampleFormatU8: |
| 112 case kSampleFormatS16: |
| 113 case kSampleFormatS24: |
| 114 case kSampleFormatS32: |
| 115 case kSampleFormatF32: |
| 116 case kSampleFormatPlanarS16: |
| 117 case kSampleFormatPlanarF32: |
| 118 case kSampleFormatPlanarS32: |
| 119 return false; |
| 120 } |
| 121 |
| 122 NOTREACHED() << "Invalid sample format provided: " << sample_format; |
| 123 return false; |
| 124 } |
| 125 |
95 } // namespace media | 126 } // namespace media |
OLD | NEW |