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

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: Created 4 years, 6 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::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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698