123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- // Copyright 2016 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #include "media/base/audio_codecs.h"
- #include <ostream>
- #include "base/strings/string_util.h"
- namespace media {
- // These names come from src/third_party/ffmpeg/libavcodec/codec_desc.c
- std::string GetCodecName(AudioCodec codec) {
- switch (codec) {
- case AudioCodec::kUnknown:
- return "unknown";
- case AudioCodec::kAAC:
- return "aac";
- case AudioCodec::kMP3:
- return "mp3";
- case AudioCodec::kPCM:
- case AudioCodec::kPCM_S16BE:
- case AudioCodec::kPCM_S24BE:
- return "pcm";
- case AudioCodec::kVorbis:
- return "vorbis";
- case AudioCodec::kFLAC:
- return "flac";
- case AudioCodec::kAMR_NB:
- return "amr_nb";
- case AudioCodec::kAMR_WB:
- return "amr_wb";
- case AudioCodec::kPCM_MULAW:
- return "pcm_mulaw";
- case AudioCodec::kGSM_MS:
- return "gsm_ms";
- case AudioCodec::kOpus:
- return "opus";
- case AudioCodec::kPCM_ALAW:
- return "pcm_alaw";
- case AudioCodec::kEAC3:
- return "eac3";
- case AudioCodec::kALAC:
- return "alac";
- case AudioCodec::kAC3:
- return "ac3";
- case AudioCodec::kMpegHAudio:
- return "mpeg-h-audio";
- case AudioCodec::kDTS:
- return "dts";
- case AudioCodec::kDTSXP2:
- return "dtsx-p2";
- }
- }
- std::string GetProfileName(AudioCodecProfile profile) {
- switch (profile) {
- case AudioCodecProfile::kUnknown:
- return "unknown";
- case AudioCodecProfile::kXHE_AAC:
- return "xhe-aac";
- }
- }
- AudioCodec StringToAudioCodec(const std::string& codec_id) {
- if (codec_id == "aac")
- return AudioCodec::kAAC;
- if (codec_id == "ac-3" || codec_id == "mp4a.A5" || codec_id == "mp4a.a5")
- return AudioCodec::kAC3;
- if (codec_id == "ec-3" || codec_id == "mp4a.A6" || codec_id == "mp4a.a6")
- return AudioCodec::kEAC3;
- if (codec_id == "dtsc")
- return AudioCodec::kDTS;
- if (codec_id == "dtsx")
- return AudioCodec::kDTSXP2;
- if (codec_id == "mp3" || codec_id == "mp4a.69" || codec_id == "mp4a.6B")
- return AudioCodec::kMP3;
- if (codec_id == "alac")
- return AudioCodec::kALAC;
- if (codec_id == "flac")
- return AudioCodec::kFLAC;
- if (base::StartsWith(codec_id, "mhm1.", base::CompareCase::SENSITIVE) ||
- base::StartsWith(codec_id, "mha1.", base::CompareCase::SENSITIVE)) {
- return AudioCodec::kMpegHAudio;
- }
- if (codec_id == "opus")
- return AudioCodec::kOpus;
- if (codec_id == "vorbis")
- return AudioCodec::kVorbis;
- if (codec_id == "dtsc")
- return AudioCodec::kDTS;
- if (codec_id == "dtsx")
- return AudioCodec::kDTSXP2;
- if (base::StartsWith(codec_id, "mp4a.40.", base::CompareCase::SENSITIVE))
- return AudioCodec::kAAC;
- return AudioCodec::kUnknown;
- }
- std::ostream& operator<<(std::ostream& os, const AudioCodec& codec) {
- return os << GetCodecName(codec);
- }
- } // namespace media
|