Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(632)

Unified Diff: services/media/framework/ostream.cc

Issue 1577953002: Motown in-proc streaming framework used to implement media services. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Changed lpcm input/output to use packets for supplying frames. Some name changes. Synced to master. Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: services/media/framework/ostream.cc
diff --git a/services/media/framework/ostream.cc b/services/media/framework/ostream.cc
new file mode 100644
index 0000000000000000000000000000000000000000..fbdaa9dbdf7293df8ecddb21e1655f2281fd9e6e
--- /dev/null
+++ b/services/media/framework/ostream.cc
@@ -0,0 +1,383 @@
+// 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 <iostream>
+
+#include "services/media/framework/ostream.h"
+
+namespace mojo {
+namespace media {
+
+std::string Indenter::by = " ";
+int Indenter::level = 0;
+
+std::ostream& operator<<(std::ostream& os, Result value) {
+ switch (value) {
+ case Result::kOk:
+ return os << "kOk";
+ case Result::kUnknownError:
+ return os << "kUnknownError";
+ case Result::kInternalError:
+ return os << "kInternalError";
+ case Result::kUnsupportedOperation:
+ return os << "kUnsupportedOperation";
+ case Result::kInvalidArgument:
+ return os << "kInvalidArgument";
+ case Result::kNotFound:
+ return os << "kNotFound";
+ }
+}
+
+std::ostream& operator<<(std::ostream& os, Demand value) {
+ switch (value) {
+ case Demand::kNegative:
+ return os << "kNegative";
+ case Demand::kNeutral:
+ return os << "kNeutral";
+ case Demand::kPositive:
+ return os << "kPositive";
+ }
+}
+
+std::ostream& operator<<(std::ostream& os, const PacketPtr& value) {
+ if (!value) {
+ return os << "<nullptr>";
+ }
+
+ os << "&" << std::hex << uint64_t(value.get()) << std::dec;
+ os << "/pts:" << value->presentation_time();
+ os << "/dur:" << value->duration();
+ os << "/eos:" << (value->end_of_stream() ? "t" : "f");
+ os << "/size:" << value->size();
+ os << "/payload:" << std::hex << uint64_t(value->payload()) << std::dec;
+ return os;
+}
+
+std::ostream& operator<<(std::ostream& os, const StreamTypePtr& value) {
+ if (!value) {
+ return os << "<nullptr>" << std::endl;
+ } else {
+ os << std::endl;
+ }
+
+ Indenter indenter;
+ os << begl << "Scheme scheme(): " << value->scheme() << std::endl;
+ switch (value->scheme()) {
+ case StreamType::Scheme::kMultiplexed:
+ os << begl << "StreamTypePtr multiplex_type: "
+ << value->multiplexed()->multiplex_type();
+ os << begl << "StreamTypesPtr substream_types: "
+ << value->multiplexed()->substream_types();
+ break;
+ case StreamType::Scheme::kLpcm:
+ os << begl << "SampleFormat sample_format: "
+ << value->lpcm()->sample_format() << std::endl;
+ os << begl << "uint32_t channels: "
+ << value->lpcm()->channels() << std::endl;
+ os << begl << "uint32_t frames_per_second: "
+ << value->lpcm()->frames_per_second() << std::endl;
+ break;
+ case StreamType::Scheme::kCompressedAudio:
+ os << begl << "AudioEncoding encoding: "
+ << value->compressed_audio()->encoding() << std::endl;
+ os << begl << "SampleFormat sample_format: "
+ << value->compressed_audio()->sample_format() << std::endl;
+ os << begl << "uint32_t channels: "
+ << value->compressed_audio()->channels() << std::endl;
+ os << begl << "uint32_t frames_per_second: "
+ << value->compressed_audio()->frames_per_second() << std::endl;
+ os << begl << "BytesPtr encoding_details: "
+ << value->compressed_audio()->encoding_details() << std::endl;
+ break;
+ case StreamType::Scheme::kVideo:
+ os << begl << "VideoEncoding encoding: "
+ << value->video()->encoding() << std::endl;
+ os << begl << "VideoProfile profile: "
+ << value->video()->profile() << std::endl;
+ os << begl << "PixelFormat pixel_format: "
+ << value->video()->pixel_format() << std::endl;
+ os << begl << "ColorSpace color_space: "
+ << value->video()->color_space() << std::endl;
+ os << begl << "uint32_t width: "
+ << value->video()->width() << std::endl;
+ os << begl << "uint32_t height: "
+ << value->video()->height() << std::endl;
+ os << begl << "uint32_t coded_width: "
+ << value->video()->coded_width() << std::endl;
+ os << begl << "uint32_t coded_height: "
+ << value->video()->coded_height() << std::endl;
+ os << begl << "BytesPtr encoding_details: "
+ << value->video()->encoding_details() << std::endl;
+ break;
+ default:
+ break;
+ }
+
+ return os;
+}
+
+std::ostream& operator<<(std::ostream& os, const StreamTypeSetPtr& value) {
+ if (!value) {
+ return os << "<nullptr>" << std::endl;
+ } else {
+ os << std::endl;
+ }
+
+ Indenter indenter;
+ os << begl << "Scheme scheme(): " << value->scheme() << std::endl;
+ switch (value->scheme()) {
+ case StreamType::Scheme::kMultiplexed:
+ os << begl << "StreamTypeSetPtr multiplex_type_set: "
+ << value->multiplexed()->multiplex_type_set();
+ os << begl << "StreamTypeSetsPtr substream_type_sets: "
+ << value->multiplexed()->substream_type_sets();
+ break;
+ case StreamType::Scheme::kLpcm:
+ os << begl << "SampleFormat sample_format: "
+ << value->lpcm()->sample_format() << std::endl;
+ os << begl << "Range<uint32_t> channels: "
+ << value->lpcm()->channels() << std::endl;
+ os << begl << "Range<uint32_t> frames_per_second: "
+ << value->lpcm()->frames_per_second() << std::endl;
+ break;
+ case StreamType::Scheme::kCompressedAudio:
+ os << begl << "AudioEncoding encoding: "
+ << value->compressed_audio()->encoding() << std::endl;
+ os << begl << "SampleFormat sample_format: "
+ << value->compressed_audio()->sample_format() << std::endl;
+ os << begl << "Range<uint32_t> channels: "
+ << value->compressed_audio()->channels() << std::endl;
+ os << begl << "Range<uint32_t> frames_per_second: "
+ << value->compressed_audio()->frames_per_second() << std::endl;
+ break;
+ case StreamType::Scheme::kVideo:
+ os << begl << "VideoEncoding encoding: "
+ << value->video()->encoding() << std::endl;
+ os << begl << "Range<uint32_t> width: "
+ << value->video()->width() << std::endl;
+ os << begl << "Range<uint32_t> height: "
+ << value->video()->height() << std::endl;
+ break;
+ default:
+ break;
+ }
+
+ return os;
+}
+
+std::ostream& operator<<(std::ostream& os, const StreamTypesPtr& value) {
+ if (!value) {
+ return os << "<nullptr>" << std::endl;
+ } else if (value->size() == 0) {
+ return os << "<empty>" << std::endl;
+ } else {
+ os << std::endl;
+ }
+
+ int index = 0;
+ for (const StreamTypePtr& element : *value) {
+ os << "[" << index++ << "]: " << element;
+ }
+
+ return os;
+}
+
+std::ostream& operator<<(std::ostream& os, const StreamTypeSetsPtr& value) {
+ if (!value) {
+ return os << "<nullptr>" << std::endl;
+ } else if (value->size() == 0) {
+ return os << "<empty>" << std::endl;
+ } else {
+ os << std::endl;
+ }
+
+ int index = 0;
+ for (const StreamTypeSetPtr& element : *value) {
+ os << "[" << index++ << "]: " << element;
+ }
+
+ return os;
+}
+
+std::ostream& operator<<(std::ostream& os, StreamType::Scheme value) {
+ switch (value) {
+ case StreamType::Scheme::kUnknown:
+ return os << "kUnknown";
+ case StreamType::Scheme::kNone:
+ return os << "kNone";
+ case StreamType::Scheme::kAnyElementary:
+ return os << "kAnyElementary";
+ case StreamType::Scheme::kAnyAudio:
+ return os << "kAnyAudio";
+ case StreamType::Scheme::kAnyVideo:
+ return os << "kAnyVideo";
+ case StreamType::Scheme::kAnySubpicture:
+ return os << "kAnySubpicture";
+ case StreamType::Scheme::kAnyText:
+ return os << "kAnyText";
+ case StreamType::Scheme::kAnyMultiplexed:
+ return os << "kAnyMultiplexed";
+ case StreamType::Scheme::kAny:
+ return os << "kAny";
+ case StreamType::Scheme::kMultiplexed:
+ return os << "kMultiplexed";
+ case StreamType::Scheme::kLpcm:
+ return os << "kLpcm";
+ case StreamType::Scheme::kCompressedAudio:
+ return os << "kCompressedAudio";
+ case StreamType::Scheme::kVideo:
+ return os << "kVideo";
+ }
+}
+
+std::ostream& operator<<(std::ostream& os, LpcmStreamType::SampleFormat value) {
+ switch (value) {
+ case LpcmStreamType::SampleFormat::kUnknown:
+ return os << "kUnknown";
+ case LpcmStreamType::SampleFormat::kAny:
+ return os << "kAny";
+ case LpcmStreamType::SampleFormat::kUnsigned8:
+ return os << "kUnsigned8";
+ case LpcmStreamType::SampleFormat::kSigned16:
+ return os << "kSigned16";
+ case LpcmStreamType::SampleFormat::kSigned24In32:
+ return os << "kSigned24In32";
+ case LpcmStreamType::SampleFormat::kFloat:
+ return os << "kFloat";
+ }
+}
+
+std::ostream& operator<<(
+ std::ostream& os,
+ CompressedAudioStreamType::AudioEncoding value) {
+ switch (value) {
+ case CompressedAudioStreamType::AudioEncoding::kUnknown:
+ return os << "kUnknown";
+ case CompressedAudioStreamType::AudioEncoding::kAny:
+ return os << "kAny";
+ case CompressedAudioStreamType::AudioEncoding::kVorbis:
+ return os << "kVorbis";
+ }
+}
+
+std::ostream& operator<<(
+ std::ostream& os,
+ VideoStreamType::VideoEncoding value) {
+ switch (value) {
+ case VideoStreamType::VideoEncoding::kUnknown:
+ return os << "kUnknown";
+ case VideoStreamType::VideoEncoding::kAny:
+ return os << "kAny";
+ case VideoStreamType::VideoEncoding::kTheora:
+ return os << "kTheora";
+ case VideoStreamType::VideoEncoding::kVp8:
+ return os << "kVp8";
+ }
+}
+
+std::ostream& operator<<(
+ std::ostream& os,
+ VideoStreamType::VideoProfile value) {
+ switch (value) {
+ case VideoStreamType::VideoProfile::kUnknown:
+ return os << "kUnknown";
+ case VideoStreamType::VideoProfile::kNotApplicable:
+ return os << "kNotApplicable";
+ case VideoStreamType::VideoProfile::kH264Baseline:
+ return os << "kH264Baseline";
+ case VideoStreamType::VideoProfile::kH264Main:
+ return os << "kH264Main";
+ case VideoStreamType::VideoProfile::kH264Extended:
+ return os << "kH264Extended";
+ case VideoStreamType::VideoProfile::kH264High:
+ return os << "kH264High";
+ case VideoStreamType::VideoProfile::kH264High10:
+ return os << "kH264High10";
+ case VideoStreamType::VideoProfile::kH264High422:
+ return os << "kH264High422";
+ case VideoStreamType::VideoProfile::kH264High444Predictive:
+ return os << "kH264High444Predictive";
+ case VideoStreamType::VideoProfile::kH264ScalableBaseline:
+ return os << "kH264ScalableBaseline";
+ case VideoStreamType::VideoProfile::kH264ScalableHigh:
+ return os << "kH264ScalableHigh";
+ case VideoStreamType::VideoProfile::kH264StereoHigh:
+ return os << "kH264StereoHigh";
+ case VideoStreamType::VideoProfile::kH264MultiviewHigh:
+ return os << "kH264MultiviewHigh";
+ }
+}
+
+std::ostream& operator<<(std::ostream& os, VideoStreamType::PixelFormat value) {
+ switch (value) {
+ case VideoStreamType::PixelFormat::kUnknown:
+ return os << "kUnknown";
+ case VideoStreamType::PixelFormat::kI420:
+ return os << "kI420";
+ case VideoStreamType::PixelFormat::kYv12:
+ return os << "kYv12";
+ case VideoStreamType::PixelFormat::kYv16:
+ return os << "kYv16";
+ case VideoStreamType::PixelFormat::kYv12A:
+ return os << "kYv12A";
+ case VideoStreamType::PixelFormat::kYv24:
+ return os << "kYv24";
+ case VideoStreamType::PixelFormat::kNv12:
+ return os << "kNv12";
+ case VideoStreamType::PixelFormat::kNv21:
+ return os << "kNv21";
+ case VideoStreamType::PixelFormat::kUyvy:
+ return os << "kUyvy";
+ case VideoStreamType::PixelFormat::kYuy2:
+ return os << "kYuy2";
+ case VideoStreamType::PixelFormat::kArgb:
+ return os << "kArgb";
+ case VideoStreamType::PixelFormat::kXrgb:
+ return os << "kXrgb";
+ case VideoStreamType::PixelFormat::kRgb24:
+ return os << "kRgb24";
+ case VideoStreamType::PixelFormat::kRgb32:
+ return os << "kRgb24";
+ case VideoStreamType::PixelFormat::kMjpeg:
+ return os << "kRgb24";
+ case VideoStreamType::PixelFormat::kMt21:
+ return os << "kRgb24";
+ }
+}
+
+std::ostream& operator<<(std::ostream& os, VideoStreamType::ColorSpace value) {
+ switch (value) {
+ case VideoStreamType::ColorSpace::kUnknown:
+ return os << "kUnknown";
+ case VideoStreamType::ColorSpace::kNotApplicable:
+ return os << "kNotApplicable";
+ case VideoStreamType::ColorSpace::kJpeg:
+ return os << "kJpeg";
+ case VideoStreamType::ColorSpace::kHdRec709:
+ return os << "kHdRec709";
+ case VideoStreamType::ColorSpace::kSdRec601:
+ return os << "kSdRec601";
+ }
+}
+
+std::ostream& operator<<(std::ostream& os, const BytesPtr& value) {
+ if (value == nullptr) {
+ return os << "<nullptr>";
+ } else {
+ return os << value->size() << " bytes";
+ }
+}
+
+std::ostream& operator<<(std::ostream& os, Range<bool> value) {
+ if (value.min) {
+ return os << "true";
+ } else if (value.max) {
+ return os << "false..true";
+ } else {
+ return os << "false";
+ }
+}
+
+} // namespace media
+} // namespace mojo

Powered by Google App Engine
This is Rietveld 408576698