7#include <packager/media/base/stream_info.h>
14#include <absl/strings/str_format.h>
16#include <packager/macros/logging.h>
17#include <packager/media/base/timestamp.h>
22std::string StreamTypeToString(StreamType type) {
34 NOTIMPLEMENTED() <<
"Unhandled StreamType with value "
35 <<
static_cast<int>(type);
39StreamInfo::StreamInfo(StreamType stream_type,
44 const std::string& codec_string,
45 const uint8_t* codec_config,
46 size_t codec_config_size,
47 const std::string& language,
49 : stream_type_(stream_type),
51 time_scale_(time_scale),
54 codec_string_(codec_string),
56 is_encrypted_(is_encrypted) {
57 if (codec_config_size > 0) {
58 codec_config_.assign(codec_config, codec_config + codec_config_size);
62StreamInfo::~StreamInfo() {}
64std::string StreamInfo::ToString()
const {
66 if (duration_ == kInfiniteDuration) {
67 duration =
"Infinite";
69 duration = absl::StrFormat(
"%" PRIu64
" (%.1f seconds)", duration_,
70 static_cast<double>(duration_) / time_scale_);
73 return absl::StrFormat(
74 "type: %s\n codec_string: %s\n time_scale: %d\n duration: "
75 "%s\n is_encrypted: %s\n",
76 StreamTypeToString(stream_type_).c_str(), codec_string_.c_str(),
77 time_scale_, duration.c_str(), is_encrypted_ ?
"true" :
"false");
All the methods that are virtual are virtual for mocking.