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

Side by Side Diff: media/base/ipc/media_param_traits.cc

Issue 2058113002: Add 'cbcs' encryption scheme support in Android media. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: change Android version probing Created 4 years, 2 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 unified diff | Download patch
OLDNEW
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::AudioLatency; 19 using media::AudioLatency;
19 using media::ChannelLayout; 20 using media::ChannelLayout;
20 using media::VideoCaptureFormat; 21 using media::VideoCaptureFormat;
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 } 110 }
110 return r->IsValid(); 111 return r->IsValid();
111 } 112 }
112 113
113 void ParamTraits<VideoCaptureFormat>::Log(const VideoCaptureFormat& p, 114 void ParamTraits<VideoCaptureFormat>::Log(const VideoCaptureFormat& p,
114 std::string* l) { 115 std::string* l) {
115 l->append(base::StringPrintf("<VideoCaptureFormat> %s", 116 l->append(base::StringPrintf("<VideoCaptureFormat> %s",
116 media::VideoCaptureFormat::ToString(p).c_str())); 117 media::VideoCaptureFormat::ToString(p).c_str()));
117 } 118 }
118 119
120 template <>
121 struct ParamTraits<media::EncryptionScheme::Pattern> {
122 typedef media::EncryptionScheme::Pattern param_type;
123 static void GetSize(base::PickleSizer* s, const param_type& p);
124 static void Write(base::Pickle* m, const param_type& p);
125 static bool Read(const base::Pickle* m,
126 base::PickleIterator* iter,
127 param_type* r);
128 static void Log(const param_type& p, std::string* l);
129 };
130
131 void ParamTraits<media::EncryptionScheme>::GetSize(base::PickleSizer* s,
132 const param_type& p) {
133 GetParamSize(s, p.mode());
134 GetParamSize(s, p.pattern());
135 }
136
137 void ParamTraits<media::EncryptionScheme>::Write(base::Pickle* m,
138 const param_type& p) {
139 WriteParam(m, p.mode());
140 WriteParam(m, p.pattern());
141 }
142
143 bool ParamTraits<media::EncryptionScheme>::Read(const base::Pickle* m,
144 base::PickleIterator* iter,
145 param_type* r) {
146 media::EncryptionScheme::CipherMode mode;
147 media::EncryptionScheme::Pattern pattern;
148 if (!ReadParam(m, iter, &mode) || !ReadParam(m, iter, &pattern))
149 return false;
150 *r = media::EncryptionScheme(mode, pattern);
151 return true;
152 }
153
154 void ParamTraits<media::EncryptionScheme>::Log(const param_type& p,
155 std::string* l) {
156 l->append(base::StringPrintf("<EncryptionScheme>"));
157 }
158
159 void ParamTraits<media::EncryptionScheme::Pattern>::GetSize(
160 base::PickleSizer* s,
161 const param_type& p) {
162 GetParamSize(s, p.encrypt_blocks());
163 GetParamSize(s, p.skip_blocks());
164 }
165
166 void ParamTraits<media::EncryptionScheme::Pattern>::Write(base::Pickle* m,
167 const param_type& p) {
168 WriteParam(m, p.encrypt_blocks());
169 WriteParam(m, p.skip_blocks());
170 }
171
172 bool ParamTraits<media::EncryptionScheme::Pattern>::Read(
173 const base::Pickle* m,
174 base::PickleIterator* iter,
175 param_type* r) {
176 uint8_t encrypt_blocks, skip_blocks;
177 if (!ReadParam(m, iter, &encrypt_blocks) || !ReadParam(m, iter, &skip_blocks))
178 return false;
179 *r = media::EncryptionScheme::Pattern(encrypt_blocks, skip_blocks);
180 return true;
181 }
182
183 void ParamTraits<media::EncryptionScheme::Pattern>::Log(const param_type& p,
184 std::string* l) {
185 l->append(base::StringPrintf("<Pattern>"));
186 }
187
119 } // namespace IPC 188 } // namespace IPC
120 189
121 // Generate param traits size methods. 190 // Generate param traits size methods.
122 #include "ipc/param_traits_size_macros.h" 191 #include "ipc/param_traits_size_macros.h"
123 namespace IPC { 192 namespace IPC {
124 #undef MEDIA_BASE_IPC_MEDIA_PARAM_TRAITS_MACROS_H_ 193 #undef MEDIA_BASE_IPC_MEDIA_PARAM_TRAITS_MACROS_H_
125 #include "media/base/ipc/media_param_traits_macros.h" 194 #include "media/base/ipc/media_param_traits_macros.h"
126 } 195 }
127 196
128 // Generate param traits write methods. 197 // Generate param traits write methods.
129 #include "ipc/param_traits_write_macros.h" 198 #include "ipc/param_traits_write_macros.h"
130 namespace IPC { 199 namespace IPC {
131 #undef MEDIA_BASE_IPC_MEDIA_PARAM_TRAITS_MACROS_H_ 200 #undef MEDIA_BASE_IPC_MEDIA_PARAM_TRAITS_MACROS_H_
132 #include "media/base/ipc/media_param_traits_macros.h" 201 #include "media/base/ipc/media_param_traits_macros.h"
133 } // namespace IPC 202 } // namespace IPC
134 203
135 // Generate param traits read methods. 204 // Generate param traits read methods.
136 #include "ipc/param_traits_read_macros.h" 205 #include "ipc/param_traits_read_macros.h"
137 namespace IPC { 206 namespace IPC {
138 #undef MEDIA_BASE_IPC_MEDIA_PARAM_TRAITS_MACROS_H_ 207 #undef MEDIA_BASE_IPC_MEDIA_PARAM_TRAITS_MACROS_H_
139 #include "media/base/ipc/media_param_traits_macros.h" 208 #include "media/base/ipc/media_param_traits_macros.h"
140 } // namespace IPC 209 } // namespace IPC
141 210
142 // Generate param traits log methods. 211 // Generate param traits log methods.
143 #include "ipc/param_traits_log_macros.h" 212 #include "ipc/param_traits_log_macros.h"
144 namespace IPC { 213 namespace IPC {
145 #undef MEDIA_BASE_IPC_MEDIA_PARAM_TRAITS_MACROS_H_ 214 #undef MEDIA_BASE_IPC_MEDIA_PARAM_TRAITS_MACROS_H_
146 #include "media/base/ipc/media_param_traits_macros.h" 215 #include "media/base/ipc/media_param_traits_macros.h"
147 } // namespace IPC 216 } // namespace IPC
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698