OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/audio_decoder_config.h" | 5 #include "media/base/audio_decoder_config.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "media/base/limits.h" | 8 #include "media/base/limits.h" |
9 | 9 |
10 namespace media { | 10 namespace media { |
11 | 11 |
| 12 // These names come from src/third_party/ffmpeg/libavcodec/codec_desc.c |
| 13 std::string GetCodecName(AudioCodec codec) { |
| 14 switch (codec) { |
| 15 case kUnknownAudioCodec: |
| 16 return "unknown"; |
| 17 case kCodecAAC: |
| 18 return "aac"; |
| 19 case kCodecMP3: |
| 20 return "mp3"; |
| 21 case kCodecPCM: |
| 22 case kCodecPCM_S16BE: |
| 23 case kCodecPCM_S24BE: |
| 24 return "pcm"; |
| 25 case kCodecVorbis: |
| 26 return "vorbis"; |
| 27 case kCodecFLAC: |
| 28 return "flac"; |
| 29 case kCodecAMR_NB: |
| 30 return "amr_nb"; |
| 31 case kCodecAMR_WB: |
| 32 return "amr_wb"; |
| 33 case kCodecPCM_MULAW: |
| 34 return "pcm_mulaw"; |
| 35 case kCodecGSM_MS: |
| 36 return "gsm_ms"; |
| 37 case kCodecOpus: |
| 38 return "opus"; |
| 39 case kCodecPCM_ALAW: |
| 40 return "pcm_alaw"; |
| 41 case kCodecEAC3: |
| 42 return "eac3"; |
| 43 case kCodecALAC: |
| 44 return "alac"; |
| 45 case kCodecAC3: |
| 46 return "ac3"; |
| 47 } |
| 48 NOTREACHED(); |
| 49 return ""; |
| 50 } |
| 51 |
12 AudioDecoderConfig::AudioDecoderConfig() | 52 AudioDecoderConfig::AudioDecoderConfig() |
13 : codec_(kUnknownAudioCodec), | 53 : codec_(kUnknownAudioCodec), |
14 sample_format_(kUnknownSampleFormat), | 54 sample_format_(kUnknownSampleFormat), |
15 bytes_per_channel_(0), | 55 bytes_per_channel_(0), |
16 channel_layout_(CHANNEL_LAYOUT_UNSUPPORTED), | 56 channel_layout_(CHANNEL_LAYOUT_UNSUPPORTED), |
17 samples_per_second_(0), | 57 samples_per_second_(0), |
18 bytes_per_frame_(0), | 58 bytes_per_frame_(0), |
19 is_encrypted_(false), | 59 is_encrypted_(false), |
20 codec_delay_(0) { | 60 codec_delay_(0) { |
21 } | 61 } |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
73 (samples_per_second() == config.samples_per_second()) && | 113 (samples_per_second() == config.samples_per_second()) && |
74 (extra_data() == config.extra_data()) && | 114 (extra_data() == config.extra_data()) && |
75 (is_encrypted() == config.is_encrypted()) && | 115 (is_encrypted() == config.is_encrypted()) && |
76 (sample_format() == config.sample_format()) && | 116 (sample_format() == config.sample_format()) && |
77 (seek_preroll() == config.seek_preroll()) && | 117 (seek_preroll() == config.seek_preroll()) && |
78 (codec_delay() == config.codec_delay())); | 118 (codec_delay() == config.codec_delay())); |
79 } | 119 } |
80 | 120 |
81 std::string AudioDecoderConfig::AsHumanReadableString() const { | 121 std::string AudioDecoderConfig::AsHumanReadableString() const { |
82 std::ostringstream s; | 122 std::ostringstream s; |
83 s << "codec: " << GetHumanReadableCodecName() | 123 s << "codec: " << GetCodecName(codec()) |
84 << " bytes_per_channel: " << bytes_per_channel() | 124 << " bytes_per_channel: " << bytes_per_channel() |
85 << " channel_layout: " << channel_layout() | 125 << " channel_layout: " << channel_layout() |
86 << " samples_per_second: " << samples_per_second() | 126 << " samples_per_second: " << samples_per_second() |
87 << " sample_format: " << sample_format() | 127 << " sample_format: " << sample_format() |
88 << " bytes_per_frame: " << bytes_per_frame() | 128 << " bytes_per_frame: " << bytes_per_frame() |
89 << " seek_preroll: " << seek_preroll().InMilliseconds() << "ms" | 129 << " seek_preroll: " << seek_preroll().InMilliseconds() << "ms" |
90 << " codec_delay: " << codec_delay() | 130 << " codec_delay: " << codec_delay() << " has extra data? " |
91 << " has extra data? " << (extra_data().empty() ? "false" : "true") | 131 << (extra_data().empty() ? "false" : "true") << " encrypted? " |
92 << " encrypted? " << (is_encrypted() ? "true" : "false"); | 132 << (is_encrypted() ? "true" : "false"); |
93 return s.str(); | 133 return s.str(); |
94 } | 134 } |
95 | 135 |
96 // These names come from src/third_party/ffmpeg/libavcodec/codec_desc.c | |
97 std::string AudioDecoderConfig::GetHumanReadableCodecName() const { | |
98 switch (codec()) { | |
99 case kUnknownAudioCodec: | |
100 return "unknown"; | |
101 case kCodecAAC: | |
102 return "aac"; | |
103 case kCodecMP3: | |
104 return "mp3"; | |
105 case kCodecPCM: | |
106 case kCodecPCM_S16BE: | |
107 case kCodecPCM_S24BE: | |
108 return "pcm"; | |
109 case kCodecVorbis: | |
110 return "vorbis"; | |
111 case kCodecFLAC: | |
112 return "flac"; | |
113 case kCodecAMR_NB: | |
114 return "amr_nb"; | |
115 case kCodecAMR_WB: | |
116 return "amr_wb"; | |
117 case kCodecPCM_MULAW: | |
118 return "pcm_mulaw"; | |
119 case kCodecGSM_MS: | |
120 return "gsm_ms"; | |
121 case kCodecOpus: | |
122 return "opus"; | |
123 case kCodecPCM_ALAW: | |
124 return "pcm_alaw"; | |
125 case kCodecEAC3: | |
126 return "eac3"; | |
127 case kCodecALAC: | |
128 return "alac"; | |
129 case kCodecAC3: | |
130 return "ac3"; | |
131 } | |
132 NOTREACHED(); | |
133 return ""; | |
134 } | |
135 | |
136 } // namespace media | 136 } // namespace media |
OLD | NEW |