| // 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 "services/media/framework_mojo/mojo_formatting.h" |
| |
| namespace mojo { |
| namespace media { |
| |
| template<typename T> |
| std::ostream& operator<<(std::ostream& os, const InterfacePtr<T>& value) { |
| if (!value.is_bound()) { |
| return os << "<not bound>" << std::endl; |
| } else { |
| return os << "<bound>" << std::endl; |
| } |
| } |
| |
| std::ostream& operator<<( |
| std::ostream& os, |
| const MediaSourceStreamDescriptorPtr& value) { |
| if (!value) { |
| return os << "<nullptr>" << std::endl; |
| } else { |
| os << std::endl; |
| } |
| |
| os << indent; |
| os << begl << "uint32_t index: " << int(value->index) << std::endl; |
| os << begl << "MediaTypePtr media_type: " << value->media_type; |
| os << begl << "MediaTypePtr original_media_type: " << |
| value->original_media_type; |
| return os << outdent; |
| } |
| |
| std::ostream& operator<<(std::ostream& os, const MediaTypePtr& value) { |
| if (!value) { |
| return os << "<nullptr>" << std::endl; |
| } else { |
| os << std::endl; |
| } |
| |
| os << indent; |
| os << begl << "MediaTypeScheme scheme: " << |
| StringFromMediaTypeScheme(value->scheme) << std::endl; |
| os << begl << "MediaTypeDetailsPtr details: " << value->details; |
| return os << outdent; |
| } |
| |
| std::ostream& operator<<(std::ostream& os, const MediaTypeSetPtr& value) { |
| if (!value) { |
| return os << "<nullptr>" << std::endl; |
| } else { |
| os << std::endl; |
| } |
| |
| os << indent; |
| os << begl << "MediaTypeScheme scheme: " << |
| StringFromMediaTypeScheme(value->scheme) << std::endl; |
| os << begl << "MediaTypeSetDetailsPtr details: " << value->details; |
| return os << outdent; |
| } |
| |
| std::ostream& operator<<(std::ostream& os, const MediaTypeDetailsPtr& value) { |
| if (!value) { |
| return os << "<nullptr>" << std::endl; |
| } else if (value->has_unknown_tag()) { |
| return os << "<empty>" << std::endl; |
| } else { |
| os << std::endl; |
| } |
| |
| os << indent; |
| if (value->is_multiplexed()) { |
| return os << begl << "MultiplexedMediaTypeDetailsPtr* multiplexed: " << |
| value->get_multiplexed() << outdent; |
| } |
| if (value->is_lpcm()) { |
| return os << begl << "LpcmMediaTypeDetailsPtr* lpcm: " << |
| value->get_lpcm() << outdent; |
| } |
| if (value->is_compressed_audio()) { |
| return os << begl << |
| "CompressedAudiomMediaTypeDetailsPtr* compressed_audio: " << |
| value->get_compressed_audio() << outdent; |
| } |
| if (value->is_video()) { |
| return os << begl << "VideoMediaTypeDetailsPtr* video: " << |
| value->get_video() << outdent; |
| } |
| return os << begl << "UNKNOWN TAG" << std::endl << outdent; |
| } |
| |
| std::ostream& operator<<( |
| std::ostream& os, |
| const MediaTypeSetDetailsPtr& value) { |
| if (!value) { |
| return os << "<nullptr>" << std::endl; |
| } else if (value->has_unknown_tag()) { |
| return os << "<empty>" << std::endl; |
| } else { |
| os << std::endl; |
| } |
| |
| os << indent; |
| if (value->is_multiplexed()) { |
| return os << begl << "MultiplexedMediaTypeSetDetailsPtr* multiplexed: " << |
| value->get_multiplexed() << outdent; |
| } |
| if (value->is_lpcm()) { |
| return os << begl << "LpcmMediaTypeSetDetailsPtr* lpcm: " << |
| value->get_lpcm() << outdent; |
| } |
| if (value->is_compressed_audio()) { |
| return os << begl << |
| "CompressedAudioMediaTypeSetDetailsPtr* compressed_audio: " << |
| value->get_compressed_audio() << outdent; |
| } |
| if (value->is_video()) { |
| return os << begl << "VideoMediaTypeSetDetailsPtr* video: " << |
| value->get_video() << outdent; |
| } |
| return os << begl << "UNKNOWN TAG" << std::endl << outdent; |
| } |
| |
| std::ostream& operator<<( |
| std::ostream& os, |
| const MultiplexedMediaTypeDetailsPtr& value) { |
| if (!value) { |
| return os << "<nullptr>" << std::endl; |
| } else { |
| os << std::endl; |
| } |
| |
| os << indent; |
| os << begl << "MediaTypePtr multiplex_type: " << value->multiplex_type; |
| os << begl << "Array<MediaTypePtr> substream_types: " << |
| value->substream_types; |
| return os << outdent; |
| } |
| |
| std::ostream& operator<<( |
| std::ostream& os, |
| const MultiplexedMediaTypeSetDetailsPtr& value) { |
| if (!value) { |
| return os << "<nullptr>" << std::endl; |
| } else { |
| os << std::endl; |
| } |
| |
| os << indent; |
| os << begl << "MediaTypeSetPtr multiplex_type_set: " << |
| value->multiplex_type_set; |
| os << begl << "Array<MediaTypeSetPtr> substream_type_sets: " << |
| value->substream_type_sets; |
| return os << outdent; |
| } |
| |
| std::ostream& operator<<( |
| std::ostream& os, |
| const LpcmMediaTypeDetailsPtr& value) { |
| if (!value) { |
| return os << "<nullptr>" << std::endl; |
| } else { |
| os << std::endl; |
| } |
| |
| os << indent; |
| os << begl << "LpcmSampleFormat sample_format: " << |
| StringFromLpcmSampleFormat(value->sample_format) << std::endl; |
| os << begl << "uint32_t channels: " << int(value->channels) << std::endl; |
| os << begl << "uint32_t frames_per_second: " << value->frames_per_second << |
| std::endl; |
| return os << outdent; |
| } |
| |
| std::ostream& operator<<( |
| std::ostream& os, |
| const LpcmMediaTypeSetDetailsPtr& value) { |
| if (!value) { |
| return os << "<nullptr>" << std::endl; |
| } else { |
| os << std::endl; |
| } |
| |
| os << indent; |
| os << begl << "LpcmSampleFormat sample_format: " << |
| StringFromLpcmSampleFormat(value->sample_format) << std::endl; |
| os << begl << "uint32_t min_channels: " << int(value->min_channels) << |
| std::endl; |
| os << begl << "uint32_t max_channels: " << int(value->max_channels) << |
| std::endl; |
| os << begl << "uint32_t min_frames_per_second: " << |
| value->min_frames_per_second << std::endl; |
| os << begl << "uint32_t max_cframes_per_second: " << |
| value->max_frames_per_second << std::endl; |
| return os << outdent; |
| } |
| |
| std::ostream& operator<<( |
| std::ostream& os, |
| const CompressedAudioMediaTypeDetailsPtr& value) { |
| if (!value) { |
| return os << "<nullptr>" << std::endl; |
| } else { |
| os << std::endl; |
| } |
| |
| os << indent; |
| os << begl << "AudioEncoding encoding: " << |
| StringFromAudioEncoding(value->encoding) << std::endl; |
| os << begl << "LpcmSampleFormat sample_format: " << |
| StringFromLpcmSampleFormat(value->sample_format) << std::endl; |
| os << begl << "uint32_t channels: " << int(value->channels) << std::endl; |
| os << begl << "uint32_t frames_per_second: " << value->frames_per_second << |
| std::endl; |
| return os << outdent; |
| } |
| |
| std::ostream& operator<<( |
| std::ostream& os, |
| const CompressedAudioMediaTypeSetDetailsPtr& value) { |
| if (!value) { |
| return os << "<nullptr>" << std::endl; |
| } else { |
| os << std::endl; |
| } |
| |
| os << indent; |
| os << begl << "AudioEncoding encoding: " << |
| StringFromAudioEncoding(value->encoding) << std::endl; |
| os << begl << "LpcmSampleFormat sample_format: " << |
| StringFromLpcmSampleFormat(value->sample_format) << std::endl; |
| os << begl << "uint32_t min_channels: " << int(value->min_channels) << |
| std::endl; |
| os << begl << "uint32_t max_channels: " << int(value->max_channels) << |
| std::endl; |
| os << begl << "uint32_t min_frames_per_second: " << |
| value->min_frames_per_second << std::endl; |
| os << begl << "uint32_t max_cframes_per_second: " << |
| value->max_frames_per_second << std::endl; |
| return os << outdent; |
| } |
| |
| std::ostream& operator<<( |
| std::ostream& os, |
| const VideoMediaTypeDetailsPtr& value) { |
| if (!value) { |
| return os << "<nullptr>" << std::endl; |
| } else { |
| os << std::endl; |
| } |
| |
| os << indent; |
| os << begl << "VideoEncoding encoding: " << |
| StringFromVideoEncoding(value->encoding) << std::endl; |
| os << begl << "VideoProfile profile: " << value->profile << std::endl; |
| os << begl << "PixelFormat pixel_format: " << |
| value->pixel_format << std::endl; |
| os << begl << "ColorSpace color_space: " << value->color_space << std::endl; |
| os << begl << "uint32_t width: " << value->width << std::endl; |
| os << begl << "uint32_t height: " << value->height << std::endl; |
| os << begl << "uint32_t coded_width: " << value->coded_width << std::endl; |
| os << begl << "uint32_t coded_height: " << value->coded_height << std::endl; |
| return os << outdent; |
| } |
| |
| std::ostream& operator<<( |
| std::ostream& os, |
| const VideoMediaTypeSetDetailsPtr& value) { |
| if (!value) { |
| return os << "<nullptr>" << std::endl; |
| } else { |
| os << std::endl; |
| } |
| |
| os << indent; |
| os << begl << "VideoEncoding encoding: " << |
| StringFromVideoEncoding(value->encoding) << std::endl; |
| os << begl << "uint32_t min_width: " << value->min_width << std::endl; |
| os << begl << "uint32_t max_width: " << value->max_width << std::endl; |
| os << begl << "uint32_t min_height: " << value->min_height << std::endl; |
| os << begl << "uint32_t max_height: " << value->max_height << std::endl; |
| return os << outdent; |
| } |
| |
| std::ostream& operator<<( |
| std::ostream& os, |
| const TimelineQuadPtr& value) { |
| if (!value) { |
| return os << "<nullptr>" << std::endl; |
| } else { |
| os << std::endl; |
| } |
| |
| os << indent; |
| os << begl << "int64 reference_offset: " |
| << value->reference_offset << std::endl; |
| os << begl << "int64 target_offset: " |
| << value->target_offset << std::endl; |
| os << begl << "int32 reference_delta: " |
| << value->reference_delta << std::endl; |
| os << begl << "uint32 target_delta: " |
| << value->target_delta << std::endl; |
| return os << outdent; |
| } |
| |
| std::ostream& operator<<( |
| std::ostream& os, |
| const TimelineTransformPtr& value) { |
| if (!value) { |
| return os << "<nullptr>" << std::endl; |
| } else { |
| os << std::endl; |
| } |
| |
| os << indent; |
| os << begl << "TimelineQuad quad: " << value->quad; |
| os << begl << "uint32 reference_timeline_id: " |
| << value->reference_timeline_id << std::endl; |
| os << begl << "uint32 target_timeline_id: " |
| << value->target_timeline_id << std::endl; |
| return os << outdent; |
| } |
| |
| const char* StringFromMediaTypeScheme(MediaTypeScheme value) { |
| switch (value) { |
| case MediaTypeScheme::UNKNOWN: |
| return "UNKNOWN"; |
| case MediaTypeScheme::NONE: |
| return "NONE"; |
| case MediaTypeScheme::ANY_ELEMENTARY: |
| return "ANY_ELEMENTARY"; |
| case MediaTypeScheme::ANY_AUDIO: |
| return "ANY_AUDIO"; |
| case MediaTypeScheme::ANY_VIDEO: |
| return "ANY_VIDEO"; |
| case MediaTypeScheme::ANY_TEXT: |
| return "ANY_TEXT"; |
| case MediaTypeScheme::ANY_SUBPICTURE: |
| return "ANY_SUBPICTURE"; |
| case MediaTypeScheme::ANY_MULTIPLEXED: |
| return "ANY_MULTIPLEXED"; |
| case MediaTypeScheme::MULTIPLEXED: |
| return "MULTIPLEXED"; |
| case MediaTypeScheme::ANY: |
| return "ANY"; |
| case MediaTypeScheme::LPCM: |
| return "LPCM"; |
| case MediaTypeScheme::COMPRESSED_AUDIO: |
| return "COMPRESSED_AUDIO"; |
| case MediaTypeScheme::VIDEO: |
| return "VIDEO"; |
| } |
| return "UNKNOWN SCHEME"; |
| } |
| |
| const char* StringFromLpcmSampleFormat(LpcmSampleFormat value) { |
| switch (value) { |
| case LpcmSampleFormat::UNKNOWN: |
| return "UNKNOWN"; |
| case LpcmSampleFormat::ANY: |
| return "ANY"; |
| case LpcmSampleFormat::UNSIGNED_8: |
| return "UNSIGNED_8"; |
| case LpcmSampleFormat::SIGNED_16: |
| return "SIGNED_16"; |
| case LpcmSampleFormat::SIGNED_24_IN_32: |
| return "SIGNED_24_IN_32"; |
| case LpcmSampleFormat::FLOAT: |
| return "FLOAT"; |
| } |
| return "UNKNOWN FORMAT"; |
| } |
| |
| const char* StringFromAudioEncoding(AudioEncoding value) { |
| switch (value) { |
| case AudioEncoding::UNKNOWN: |
| return "UNKNOWN"; |
| case AudioEncoding::ANY: |
| return "ANY"; |
| case AudioEncoding::VORBIS: |
| return "VORBIS"; |
| } |
| return "UNKNOWN AUDIO ENCODING"; |
| } |
| |
| const char* StringFromVideoEncoding(VideoEncoding value) { |
| switch (value) { |
| case VideoEncoding::UNKNOWN: |
| return "UNKNOWN"; |
| case VideoEncoding::ANY: |
| return "ANY"; |
| case VideoEncoding::THEORA: |
| return "THEORA"; |
| case VideoEncoding::VP8: |
| return "VP8"; |
| } |
| return "UNKNOWN VIDEO ENCODING"; |
| } |
| |
| const char* StringFromMediaState(MediaState value) { |
| switch (value) { |
| case MediaState::FAULT: |
| return "FAULT"; |
| case MediaState::UNPREPARED: |
| return "UNPREPARED"; |
| case MediaState::PAUSED: |
| return "PAUSED"; |
| case MediaState::PLAYING: |
| return "PLAYING"; |
| case MediaState::ENDED: |
| return "ENDED"; |
| } |
| return "UNKNOWN MEDIA STATE"; |
| } |
| |
| } // namespace media |
| } // namespace mojo |