Chromium Code Reviews| Index: media/base/android/demuxer_stream_player_params.cc |
| diff --git a/media/base/android/demuxer_stream_player_params.cc b/media/base/android/demuxer_stream_player_params.cc |
| index 5c2a11fc28498ec31a40e71158b8da4181d1fd8e..7929ff8500710d397c4c02d7df81f3458cb50bd8 100644 |
| --- a/media/base/android/demuxer_stream_player_params.cc |
| +++ b/media/base/android/demuxer_stream_player_params.cc |
| @@ -26,4 +26,84 @@ DemuxerData::DemuxerData() : type(DemuxerStream::UNKNOWN) {} |
| DemuxerData::~DemuxerData() {} |
| +namespace { |
| + |
| +#undef RETURN_STRING |
| +#define RETURN_STRING(x) \ |
| + case x: \ |
| + return #x; |
| + |
| +const char* AsString(AudioCodec codec) { |
| + switch (codec) { |
| + RETURN_STRING(kUnknownAudioCodec); |
| + RETURN_STRING(kCodecAAC); |
| + RETURN_STRING(kCodecMP3); |
| + RETURN_STRING(kCodecPCM); |
| + RETURN_STRING(kCodecVorbis); |
| + RETURN_STRING(kCodecFLAC); |
| + RETURN_STRING(kCodecAMR_NB); |
| + RETURN_STRING(kCodecAMR_WB); |
| + RETURN_STRING(kCodecPCM_MULAW); |
| + RETURN_STRING(kCodecGSM_MS); |
| + RETURN_STRING(kCodecPCM_S16BE); |
| + RETURN_STRING(kCodecPCM_S24BE); |
| + RETURN_STRING(kCodecOpus); |
| + RETURN_STRING(kCodecPCM_ALAW); |
| + RETURN_STRING(kCodecALAC); |
| + } |
| + NOTREACHED(); |
| + return nullptr; // crash early |
| +} |
| + |
| +const char* AsString(VideoCodec codec) { |
| + switch (codec) { |
| + RETURN_STRING(kUnknownVideoCodec); |
| + RETURN_STRING(kCodecH264); |
| + RETURN_STRING(kCodecVC1); |
| + RETURN_STRING(kCodecMPEG2); |
| + RETURN_STRING(kCodecMPEG4); |
| + RETURN_STRING(kCodecTheora); |
| + RETURN_STRING(kCodecVP8); |
| + RETURN_STRING(kCodecVP9); |
| + } |
| + NOTREACHED(); |
| + return nullptr; // crash early |
| +} |
| + |
| +#undef RETURN_STRING |
| + |
| +} // namespace (anonymous) |
| + |
| } // namespace media |
| + |
| +std::ostream& operator<<(std::ostream& os, const media::AccessUnit& au) { |
| + os << "status:" << au.status << (au.is_end_of_stream ? " EOS" : "") |
| + << (au.is_key_frame ? " KEY_FRAME" : "") << " pts:" << au.timestamp |
| + << " size:" << au.data.size(); |
| + return os; |
| +} |
| + |
| +std::ostream& operator<<(std::ostream& os, const media::DemuxerConfigs& conf) { |
| + os << conf.duration; |
|
wolenetz
2015/06/22 22:43:46
nit (sorry, didn't see this earlier):
os << "durat
|
| + |
| + if (conf.audio_codec == media::kUnknownAudioCodec && |
| + conf.video_codec == media::kUnknownVideoCodec) { |
| + os << " no audio, no video"; |
| + return os; |
| + } |
| + |
| + if (conf.audio_codec != media::kUnknownAudioCodec) { |
| + os << " audio:" << media::AsString(conf.audio_codec) |
| + << " channels:" << conf.audio_channels |
| + << " rate:" << conf.audio_sampling_rate |
| + << (conf.is_audio_encrypted ? " encrypted" : ""); |
| + } |
| + |
| + if (conf.video_codec != media::kUnknownVideoCodec) { |
| + os << " video:" << media::AsString(conf.video_codec) << " " |
| + << conf.video_size.width() << "x" << conf.video_size.height() |
| + << (conf.is_video_encrypted ? " encrypted" : ""); |
| + } |
| + |
| + return os; |
| +} |