OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "media/base/ipc/media_param_traits.h" | 5 #include "media/base/ipc/media_param_traits.h" |
6 | 6 |
7 #include "base/strings/stringprintf.h" | 7 #include "base/strings/stringprintf.h" |
8 #include "ipc/ipc_message_utils.h" | 8 #include "ipc/ipc_message_utils.h" |
9 #include "media/base/audio_parameters.h" | 9 #include "media/base/audio_parameters.h" |
10 #include "media/base/audio_point.h" | 10 #include "media/base/audio_point.h" |
| 11 #include "media/base/encryption_scheme.h" |
11 #include "media/base/limits.h" | 12 #include "media/base/limits.h" |
12 #include "media/base/video_capture_types.h" | 13 #include "media/base/video_capture_types.h" |
13 #include "ui/gfx/ipc/geometry/gfx_param_traits.h" | 14 #include "ui/gfx/ipc/geometry/gfx_param_traits.h" |
14 #include "ui/gfx/ipc/gfx_param_traits.h" | 15 #include "ui/gfx/ipc/gfx_param_traits.h" |
15 #include "ui/gfx/ipc/skia/gfx_skia_param_traits.h" | 16 #include "ui/gfx/ipc/skia/gfx_skia_param_traits.h" |
16 | 17 |
17 using media::AudioParameters; | 18 using media::AudioParameters; |
18 using media::ChannelLayout; | 19 using media::ChannelLayout; |
19 using media::VideoCaptureFormat; | 20 using media::VideoCaptureFormat; |
20 | 21 |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
103 } | 104 } |
104 return r->IsValid(); | 105 return r->IsValid(); |
105 } | 106 } |
106 | 107 |
107 void ParamTraits<VideoCaptureFormat>::Log(const VideoCaptureFormat& p, | 108 void ParamTraits<VideoCaptureFormat>::Log(const VideoCaptureFormat& p, |
108 std::string* l) { | 109 std::string* l) { |
109 l->append(base::StringPrintf("<VideoCaptureFormat> %s", | 110 l->append(base::StringPrintf("<VideoCaptureFormat> %s", |
110 media::VideoCaptureFormat::ToString(p).c_str())); | 111 media::VideoCaptureFormat::ToString(p).c_str())); |
111 } | 112 } |
112 | 113 |
| 114 template <> |
| 115 struct ParamTraits<media::EncryptionScheme::Pattern> { |
| 116 typedef media::EncryptionScheme::Pattern param_type; |
| 117 static void GetSize(base::PickleSizer* s, const param_type& p); |
| 118 static void Write(base::Pickle* m, const param_type& p); |
| 119 static bool Read(const base::Pickle* m, |
| 120 base::PickleIterator* iter, |
| 121 param_type* r); |
| 122 static void Log(const param_type& p, std::string* l); |
| 123 }; |
| 124 |
| 125 void ParamTraits<media::EncryptionScheme>::GetSize(base::PickleSizer* s, |
| 126 const param_type& p) { |
| 127 GetParamSize(s, p.mode()); |
| 128 GetParamSize(s, p.pattern()); |
| 129 } |
| 130 |
| 131 void ParamTraits<media::EncryptionScheme>::Write(base::Pickle* m, |
| 132 const param_type& p) { |
| 133 WriteParam(m, p.mode()); |
| 134 WriteParam(m, p.pattern()); |
| 135 } |
| 136 |
| 137 bool ParamTraits<media::EncryptionScheme>::Read(const base::Pickle* m, |
| 138 base::PickleIterator* iter, |
| 139 param_type* r) { |
| 140 media::EncryptionScheme::CipherMode mode; |
| 141 media::EncryptionScheme::Pattern pattern; |
| 142 if (!ReadParam(m, iter, &mode) || !ReadParam(m, iter, &pattern)) |
| 143 return false; |
| 144 *r = media::EncryptionScheme(mode, pattern); |
| 145 return true; |
| 146 } |
| 147 |
| 148 void ParamTraits<media::EncryptionScheme>::Log(const param_type& p, |
| 149 std::string* l) { |
| 150 l->append(base::StringPrintf("<EncryptionScheme>")); |
| 151 } |
| 152 |
| 153 void ParamTraits<media::EncryptionScheme::Pattern>::GetSize( |
| 154 base::PickleSizer* s, |
| 155 const param_type& p) { |
| 156 GetParamSize(s, p.encrypt_blocks()); |
| 157 GetParamSize(s, p.skip_blocks()); |
| 158 } |
| 159 |
| 160 void ParamTraits<media::EncryptionScheme::Pattern>::Write(base::Pickle* m, |
| 161 const param_type& p) { |
| 162 WriteParam(m, p.encrypt_blocks()); |
| 163 WriteParam(m, p.skip_blocks()); |
| 164 } |
| 165 |
| 166 bool ParamTraits<media::EncryptionScheme::Pattern>::Read( |
| 167 const base::Pickle* m, |
| 168 base::PickleIterator* iter, |
| 169 param_type* r) { |
| 170 uint8_t encrypt_blocks, skip_blocks; |
| 171 if (!ReadParam(m, iter, &encrypt_blocks) || !ReadParam(m, iter, &skip_blocks)) |
| 172 return false; |
| 173 *r = media::EncryptionScheme::Pattern(encrypt_blocks, skip_blocks); |
| 174 return true; |
| 175 } |
| 176 |
| 177 void ParamTraits<media::EncryptionScheme::Pattern>::Log(const param_type& p, |
| 178 std::string* l) { |
| 179 l->append(base::StringPrintf("<Pattern>")); |
| 180 } |
| 181 |
113 } // namespace IPC | 182 } // namespace IPC |
114 | 183 |
115 // Generate param traits size methods. | 184 // Generate param traits size methods. |
116 #include "ipc/param_traits_size_macros.h" | 185 #include "ipc/param_traits_size_macros.h" |
117 namespace IPC { | 186 namespace IPC { |
118 #undef MEDIA_BASE_IPC_COMMON_MEDIA_PARAM_TRAITS_MACROS_H_ | 187 #undef MEDIA_BASE_IPC_COMMON_MEDIA_PARAM_TRAITS_MACROS_H_ |
119 #include "media/base/ipc/media_param_traits_macros.h" | 188 #include "media/base/ipc/media_param_traits_macros.h" |
120 } | 189 } |
121 | 190 |
122 // Generate param traits write methods. | 191 // Generate param traits write methods. |
123 #include "ipc/param_traits_write_macros.h" | 192 #include "ipc/param_traits_write_macros.h" |
124 namespace IPC { | 193 namespace IPC { |
125 #undef MEDIA_BASE_IPC_COMMON_MEDIA_PARAM_TRAITS_MACROS_H_ | 194 #undef MEDIA_BASE_IPC_COMMON_MEDIA_PARAM_TRAITS_MACROS_H_ |
126 #include "media/base/ipc/media_param_traits_macros.h" | 195 #include "media/base/ipc/media_param_traits_macros.h" |
127 } // namespace IPC | 196 } // namespace IPC |
128 | 197 |
129 // Generate param traits read methods. | 198 // Generate param traits read methods. |
130 #include "ipc/param_traits_read_macros.h" | 199 #include "ipc/param_traits_read_macros.h" |
131 namespace IPC { | 200 namespace IPC { |
132 #undef MEDIA_BASE_IPC_COMMON_MEDIA_PARAM_TRAITS_MACROS_H_ | 201 #undef MEDIA_BASE_IPC_COMMON_MEDIA_PARAM_TRAITS_MACROS_H_ |
133 #include "media/base/ipc/media_param_traits_macros.h" | 202 #include "media/base/ipc/media_param_traits_macros.h" |
134 } // namespace IPC | 203 } // namespace IPC |
135 | 204 |
136 // Generate param traits log methods. | 205 // Generate param traits log methods. |
137 #include "ipc/param_traits_log_macros.h" | 206 #include "ipc/param_traits_log_macros.h" |
138 namespace IPC { | 207 namespace IPC { |
139 #undef MEDIA_BASE_IPC_COMMON_MEDIA_PARAM_TRAITS_MACROS_H_ | 208 #undef MEDIA_BASE_IPC_COMMON_MEDIA_PARAM_TRAITS_MACROS_H_ |
140 #include "media/base/ipc/media_param_traits_macros.h" | 209 #include "media/base/ipc/media_param_traits_macros.h" |
141 } // namespace IPC | 210 } // namespace IPC |
OLD | NEW |