Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "chromecast/common/media/cma_param_traits.h" | |
| 6 | |
| 7 #include <vector> | |
| 8 | |
| 9 #include "content/public/common/common_param_traits.h" | |
| 10 #include "ipc/ipc_message_macros.h" | |
| 11 #include "ipc/param_traits_macros.h" | |
| 12 #include "media/base/audio_decoder_config.h" | |
| 13 #include "media/base/video_decoder_config.h" | |
| 14 #include "ui/gfx/ipc/gfx_param_traits.h" | |
| 15 | |
| 16 IPC_ENUM_TRAITS_MIN_MAX_VALUE(media::AudioCodec, | |
| 17 media::AudioCodec::kUnknownAudioCodec, | |
| 18 media::AudioCodec::kAudioCodecMax) | |
| 19 IPC_ENUM_TRAITS_MIN_MAX_VALUE(media::SampleFormat, | |
| 20 media::SampleFormat::kUnknownSampleFormat, | |
| 21 media::SampleFormat::kSampleFormatMax) | |
| 22 IPC_ENUM_TRAITS_MIN_MAX_VALUE(media::ChannelLayout, | |
| 23 media::ChannelLayout::CHANNEL_LAYOUT_NONE, | |
| 24 media::ChannelLayout::CHANNEL_LAYOUT_MAX) | |
| 25 IPC_ENUM_TRAITS_MIN_MAX_VALUE(media::VideoCodec, | |
| 26 media::VideoCodec::kUnknownVideoCodec, | |
| 27 media::VideoCodec::kVideoCodecMax) | |
| 28 IPC_ENUM_TRAITS_MIN_MAX_VALUE(media::VideoCodecProfile, | |
| 29 media::VIDEO_CODEC_PROFILE_MIN, | |
| 30 media::VIDEO_CODEC_PROFILE_MAX) | |
| 31 IPC_ENUM_TRAITS_MAX_VALUE(media::VideoFrame::Format, | |
| 32 media::VideoFrame::FORMAT_MAX) | |
| 33 | |
| 34 namespace IPC { | |
| 35 | |
| 36 void ParamTraits<media::AudioDecoderConfig>::Write( | |
| 37 Message* m, const media::AudioDecoderConfig& p) { | |
| 38 ParamTraits<media::AudioCodec>::Write(m, p.codec()); | |
| 39 ParamTraits<media::SampleFormat>::Write(m, p.sample_format()); | |
| 40 ParamTraits<media::ChannelLayout>::Write(m, p.channel_layout()); | |
| 41 ParamTraits<int>::Write(m, p.samples_per_second()); | |
| 42 ParamTraits<bool>::Write(m, p.is_encrypted()); | |
| 43 std::vector<uint8> extra_data; | |
| 44 if (p.extra_data_size() > 0) { | |
| 45 extra_data = | |
| 46 std::vector<uint8>(p.extra_data(), | |
| 47 p.extra_data() + p.extra_data_size()); | |
| 48 } | |
| 49 ParamTraits<std::vector<uint8> >::Write(m, extra_data); | |
| 50 } | |
| 51 | |
| 52 bool ParamTraits<media::AudioDecoderConfig>::Read( | |
| 53 const Message* m, PickleIterator* iter, | |
| 54 media::AudioDecoderConfig* r) { | |
| 55 media::AudioCodec codec; | |
| 56 media::SampleFormat sample_format; | |
| 57 media::ChannelLayout channel_layout; | |
| 58 int samples_per_second; | |
| 59 bool is_encrypted; | |
| 60 if (!ParamTraits<media::AudioCodec>::Read(m, iter, &codec) || | |
| 61 !ParamTraits<media::SampleFormat>::Read(m, iter, &sample_format) || | |
| 62 !ParamTraits<media::ChannelLayout>::Read(m, iter, &channel_layout) || | |
| 63 !ParamTraits<int>::Read(m, iter, &samples_per_second) || | |
| 64 !ParamTraits<bool>::Read(m, iter, &is_encrypted)) | |
|
damienv1
2014/12/12 02:30:16
nit: Curly braces needed (multiple line if stateme
| |
| 65 return false; | |
| 66 std::vector<uint8> extra_data; | |
| 67 if (!ParamTraits<std::vector<uint8> >::Read(m, iter, &extra_data)) | |
| 68 return false; | |
| 69 const uint8* extra_data_ptr = NULL; | |
| 70 if (extra_data.size() > 0) | |
| 71 extra_data_ptr = &extra_data[0]; | |
| 72 *r = media::AudioDecoderConfig(codec, sample_format, channel_layout, | |
| 73 samples_per_second, | |
| 74 extra_data_ptr, extra_data.size(), | |
| 75 is_encrypted); | |
| 76 return true; | |
| 77 } | |
| 78 | |
| 79 void ParamTraits<media::AudioDecoderConfig>::Log( | |
| 80 const media::AudioDecoderConfig& p, std::string* l) { | |
| 81 l->append(base::StringPrintf("<AudioDecoderConfig>")); | |
| 82 } | |
| 83 | |
| 84 void ParamTraits<media::VideoDecoderConfig>::Write( | |
| 85 Message* m, const media::VideoDecoderConfig& p) { | |
| 86 ParamTraits<media::VideoCodec>::Write(m, p.codec()); | |
| 87 ParamTraits<media::VideoCodecProfile>::Write(m, p.profile()); | |
| 88 ParamTraits<media::VideoFrame::Format>::Write(m, p.format()); | |
| 89 ParamTraits<gfx::Size>::Write(m, p.coded_size()); | |
| 90 ParamTraits<gfx::Rect>::Write(m, p.visible_rect()); | |
| 91 ParamTraits<gfx::Size>::Write(m, p.natural_size()); | |
| 92 ParamTraits<bool>::Write(m, p.is_encrypted()); | |
| 93 std::vector<uint8> extra_data; | |
| 94 if (p.extra_data_size() > 0) { | |
| 95 extra_data = | |
| 96 std::vector<uint8>(p.extra_data(), | |
| 97 p.extra_data() + p.extra_data_size()); | |
| 98 } | |
| 99 ParamTraits<std::vector<uint8> >::Write(m, extra_data); | |
| 100 } | |
| 101 | |
| 102 bool ParamTraits<media::VideoDecoderConfig>::Read( | |
| 103 const Message* m, PickleIterator* iter, | |
| 104 media::VideoDecoderConfig* r) { | |
| 105 media::VideoCodec codec; | |
| 106 media::VideoCodecProfile profile; | |
| 107 media::VideoFrame::Format format; | |
| 108 gfx::Size coded_size; | |
| 109 gfx::Rect visible_rect; | |
| 110 gfx::Size natural_size; | |
| 111 bool is_encrypted; | |
| 112 if (!ParamTraits<media::VideoCodec>::Read(m, iter, &codec) || | |
| 113 !ParamTraits<media::VideoCodecProfile>::Read(m, iter, &profile) || | |
| 114 !ParamTraits<media::VideoFrame::Format>::Read(m, iter, &format) || | |
| 115 !ParamTraits<gfx::Size>::Read(m, iter, &coded_size) || | |
| 116 !ParamTraits<gfx::Rect>::Read(m, iter, &visible_rect) || | |
| 117 !ParamTraits<gfx::Size>::Read(m, iter, &natural_size) || | |
| 118 !ParamTraits<bool>::Read(m, iter, &is_encrypted)) | |
|
damienv1
2014/12/12 02:30:16
ditto
gunsch
2014/12/12 22:40:53
Done.
gunsch
2014/12/12 22:40:53
Done.
| |
| 119 return false; | |
| 120 std::vector<uint8> extra_data; | |
| 121 if (!ParamTraits<std::vector<uint8> >::Read(m, iter, &extra_data)) | |
| 122 return false; | |
| 123 const uint8* extra_data_ptr = NULL; | |
| 124 if (extra_data.size() > 0) | |
| 125 extra_data_ptr = &extra_data[0]; | |
| 126 *r = media::VideoDecoderConfig(codec, profile, format, | |
| 127 coded_size, visible_rect, natural_size, | |
| 128 extra_data_ptr, extra_data.size(), | |
| 129 is_encrypted); | |
| 130 return true; | |
| 131 } | |
| 132 | |
| 133 void ParamTraits<media::VideoDecoderConfig>::Log( | |
| 134 const media::VideoDecoderConfig& p, std::string* l) { | |
| 135 l->append(base::StringPrintf("<VideoDecoderConfig>")); | |
| 136 } | |
| 137 | |
| 138 } // namespace IPC | |
| OLD | NEW |