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

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: rebase Created 4 years 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 "ui/gfx/ipc/geometry/gfx_param_traits.h" 13 #include "ui/gfx/ipc/geometry/gfx_param_traits.h"
13 #include "ui/gfx/ipc/gfx_param_traits.h" 14 #include "ui/gfx/ipc/gfx_param_traits.h"
14 #include "ui/gfx/ipc/skia/gfx_skia_param_traits.h" 15 #include "ui/gfx/ipc/skia/gfx_skia_param_traits.h"
15 16
16 using media::AudioParameters; 17 using media::AudioParameters;
17 using media::AudioLatency; 18 using media::AudioLatency;
18 using media::ChannelLayout; 19 using media::ChannelLayout;
19 20
20 namespace IPC { 21 namespace IPC {
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 74
74 *r = params; 75 *r = params;
75 return r->IsValid(); 76 return r->IsValid();
76 } 77 }
77 78
78 void ParamTraits<AudioParameters>::Log(const AudioParameters& p, 79 void ParamTraits<AudioParameters>::Log(const AudioParameters& p,
79 std::string* l) { 80 std::string* l) {
80 l->append(base::StringPrintf("<AudioParameters>")); 81 l->append(base::StringPrintf("<AudioParameters>"));
81 } 82 }
82 83
84 template <>
85 struct ParamTraits<media::EncryptionScheme::Pattern> {
86 typedef media::EncryptionScheme::Pattern param_type;
87 static void GetSize(base::PickleSizer* s, const param_type& p);
88 static void Write(base::Pickle* m, const param_type& p);
89 static bool Read(const base::Pickle* m,
90 base::PickleIterator* iter,
91 param_type* r);
92 static void Log(const param_type& p, std::string* l);
93 };
94
95 void ParamTraits<media::EncryptionScheme>::GetSize(base::PickleSizer* s,
96 const param_type& p) {
97 GetParamSize(s, p.mode());
98 GetParamSize(s, p.pattern());
99 }
100
101 void ParamTraits<media::EncryptionScheme>::Write(base::Pickle* m,
102 const param_type& p) {
103 WriteParam(m, p.mode());
104 WriteParam(m, p.pattern());
105 }
106
107 bool ParamTraits<media::EncryptionScheme>::Read(const base::Pickle* m,
108 base::PickleIterator* iter,
109 param_type* r) {
110 media::EncryptionScheme::CipherMode mode;
111 media::EncryptionScheme::Pattern pattern;
112 if (!ReadParam(m, iter, &mode) || !ReadParam(m, iter, &pattern))
113 return false;
114 *r = media::EncryptionScheme(mode, pattern);
115 return true;
116 }
117
118 void ParamTraits<media::EncryptionScheme>::Log(const param_type& p,
119 std::string* l) {
120 l->append(base::StringPrintf("<EncryptionScheme>"));
121 }
122
123 void ParamTraits<media::EncryptionScheme::Pattern>::GetSize(
124 base::PickleSizer* s,
125 const param_type& p) {
126 GetParamSize(s, p.encrypt_blocks());
127 GetParamSize(s, p.skip_blocks());
128 }
129
130 void ParamTraits<media::EncryptionScheme::Pattern>::Write(base::Pickle* m,
131 const param_type& p) {
132 WriteParam(m, p.encrypt_blocks());
133 WriteParam(m, p.skip_blocks());
134 }
135
136 bool ParamTraits<media::EncryptionScheme::Pattern>::Read(
137 const base::Pickle* m,
138 base::PickleIterator* iter,
139 param_type* r) {
140 uint8_t encrypt_blocks, skip_blocks;
141 if (!ReadParam(m, iter, &encrypt_blocks) || !ReadParam(m, iter, &skip_blocks))
142 return false;
143 *r = media::EncryptionScheme::Pattern(encrypt_blocks, skip_blocks);
144 return true;
145 }
146
147 void ParamTraits<media::EncryptionScheme::Pattern>::Log(const param_type& p,
148 std::string* l) {
149 l->append(base::StringPrintf("<Pattern>"));
150 }
151
83 } // namespace IPC 152 } // namespace IPC
84 153
85 // Generate param traits size methods. 154 // Generate param traits size methods.
86 #include "ipc/param_traits_size_macros.h" 155 #include "ipc/param_traits_size_macros.h"
87 namespace IPC { 156 namespace IPC {
88 #undef MEDIA_BASE_IPC_MEDIA_PARAM_TRAITS_MACROS_H_ 157 #undef MEDIA_BASE_IPC_MEDIA_PARAM_TRAITS_MACROS_H_
89 #include "media/base/ipc/media_param_traits_macros.h" 158 #include "media/base/ipc/media_param_traits_macros.h"
90 } 159 }
91 160
92 // Generate param traits write methods. 161 // Generate param traits write methods.
93 #include "ipc/param_traits_write_macros.h" 162 #include "ipc/param_traits_write_macros.h"
94 namespace IPC { 163 namespace IPC {
95 #undef MEDIA_BASE_IPC_MEDIA_PARAM_TRAITS_MACROS_H_ 164 #undef MEDIA_BASE_IPC_MEDIA_PARAM_TRAITS_MACROS_H_
96 #include "media/base/ipc/media_param_traits_macros.h" 165 #include "media/base/ipc/media_param_traits_macros.h"
97 } // namespace IPC 166 } // namespace IPC
98 167
99 // Generate param traits read methods. 168 // Generate param traits read methods.
100 #include "ipc/param_traits_read_macros.h" 169 #include "ipc/param_traits_read_macros.h"
101 namespace IPC { 170 namespace IPC {
102 #undef MEDIA_BASE_IPC_MEDIA_PARAM_TRAITS_MACROS_H_ 171 #undef MEDIA_BASE_IPC_MEDIA_PARAM_TRAITS_MACROS_H_
103 #include "media/base/ipc/media_param_traits_macros.h" 172 #include "media/base/ipc/media_param_traits_macros.h"
104 } // namespace IPC 173 } // namespace IPC
105 174
106 // Generate param traits log methods. 175 // Generate param traits log methods.
107 #include "ipc/param_traits_log_macros.h" 176 #include "ipc/param_traits_log_macros.h"
108 namespace IPC { 177 namespace IPC {
109 #undef MEDIA_BASE_IPC_MEDIA_PARAM_TRAITS_MACROS_H_ 178 #undef MEDIA_BASE_IPC_MEDIA_PARAM_TRAITS_MACROS_H_
110 #include "media/base/ipc/media_param_traits_macros.h" 179 #include "media/base/ipc/media_param_traits_macros.h"
111 } // namespace IPC 180 } // namespace IPC
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698