7 #include "packager/media/base/audio_stream_info.h"
11 #include "packager/base/logging.h"
12 #include "packager/base/strings/string_number_conversions.h"
13 #include "packager/base/strings/stringprintf.h"
14 #include "packager/media/base/limits.h"
20 std::string AudioCodecToString(Codec codec) {
45 NOTIMPLEMENTED() <<
"Unknown Audio Codec: " << codec;
46 return "UnknownCodec";
52 int track_id, uint32_t time_scale, uint64_t duration, Codec codec,
53 const std::string& codec_string,
const uint8_t* codec_config,
54 size_t codec_config_size, uint8_t sample_bits, uint8_t num_channels,
55 uint32_t sampling_frequency, uint64_t seek_preroll_ns,
56 uint64_t codec_delay_ns, uint32_t max_bitrate, uint32_t avg_bitrate,
57 const std::string& language,
bool is_encrypted)
58 :
StreamInfo(kStreamAudio, track_id, time_scale, duration, codec,
59 codec_string, codec_config, codec_config_size, language,
61 sample_bits_(sample_bits),
62 num_channels_(num_channels),
63 sampling_frequency_(sampling_frequency),
64 seek_preroll_ns_(seek_preroll_ns),
65 codec_delay_ns_(codec_delay_ns),
66 max_bitrate_(max_bitrate),
67 avg_bitrate_(avg_bitrate) {}
69 AudioStreamInfo::~AudioStreamInfo() {}
72 return codec() != kUnknownCodec && num_channels_ != 0 &&
73 num_channels_ <= limits::kMaxChannels && sample_bits_ > 0 &&
74 sample_bits_ <= limits::kMaxBitsPerSample && sampling_frequency_ > 0 &&
75 sampling_frequency_ <= limits::kMaxSampleRate;
79 std::string str = base::StringPrintf(
80 "%s codec: %s\n sample_bits: %d\n num_channels: %d\n "
81 "sampling_frequency: %d\n language: %s\n",
83 sample_bits_, num_channels_, sampling_frequency_, language().c_str());
84 if (seek_preroll_ns_ != 0) {
85 base::StringAppendF(&str,
" seek_preroll_ns: %" PRIu64
"\n",
88 if (codec_delay_ns_ != 0) {
89 base::StringAppendF(&str,
" codec_delay_ns: %" PRIu64
"\n",
100 uint8_t audio_object_type) {
107 return "mp4a.40." + base::UintToString(audio_object_type);
125 NOTIMPLEMENTED() <<
"Codec: " << codec;