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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: media/base/ipc/media_param_traits.cc
diff --git a/media/base/ipc/media_param_traits.cc b/media/base/ipc/media_param_traits.cc
index 6de97b325dd0d4a22b8d1e640435cff97daa6c57..8233f3d53625bb6185caf7cb29329a98a56dfe5f 100644
--- a/media/base/ipc/media_param_traits.cc
+++ b/media/base/ipc/media_param_traits.cc
@@ -8,6 +8,7 @@
#include "ipc/ipc_message_utils.h"
#include "media/base/audio_parameters.h"
#include "media/base/audio_point.h"
+#include "media/base/encryption_scheme.h"
#include "media/base/limits.h"
#include "ui/gfx/ipc/geometry/gfx_param_traits.h"
#include "ui/gfx/ipc/gfx_param_traits.h"
@@ -80,6 +81,74 @@ void ParamTraits<AudioParameters>::Log(const AudioParameters& p,
l->append(base::StringPrintf("<AudioParameters>"));
}
+template <>
+struct ParamTraits<media::EncryptionScheme::Pattern> {
+ typedef media::EncryptionScheme::Pattern param_type;
+ static void GetSize(base::PickleSizer* s, const param_type& p);
+ static void Write(base::Pickle* m, const param_type& p);
+ static bool Read(const base::Pickle* m,
+ base::PickleIterator* iter,
+ param_type* r);
+ static void Log(const param_type& p, std::string* l);
+};
+
+void ParamTraits<media::EncryptionScheme>::GetSize(base::PickleSizer* s,
+ const param_type& p) {
+ GetParamSize(s, p.mode());
+ GetParamSize(s, p.pattern());
+}
+
+void ParamTraits<media::EncryptionScheme>::Write(base::Pickle* m,
+ const param_type& p) {
+ WriteParam(m, p.mode());
+ WriteParam(m, p.pattern());
+}
+
+bool ParamTraits<media::EncryptionScheme>::Read(const base::Pickle* m,
+ base::PickleIterator* iter,
+ param_type* r) {
+ media::EncryptionScheme::CipherMode mode;
+ media::EncryptionScheme::Pattern pattern;
+ if (!ReadParam(m, iter, &mode) || !ReadParam(m, iter, &pattern))
+ return false;
+ *r = media::EncryptionScheme(mode, pattern);
+ return true;
+}
+
+void ParamTraits<media::EncryptionScheme>::Log(const param_type& p,
+ std::string* l) {
+ l->append(base::StringPrintf("<EncryptionScheme>"));
+}
+
+void ParamTraits<media::EncryptionScheme::Pattern>::GetSize(
+ base::PickleSizer* s,
+ const param_type& p) {
+ GetParamSize(s, p.encrypt_blocks());
+ GetParamSize(s, p.skip_blocks());
+}
+
+void ParamTraits<media::EncryptionScheme::Pattern>::Write(base::Pickle* m,
+ const param_type& p) {
+ WriteParam(m, p.encrypt_blocks());
+ WriteParam(m, p.skip_blocks());
+}
+
+bool ParamTraits<media::EncryptionScheme::Pattern>::Read(
+ const base::Pickle* m,
+ base::PickleIterator* iter,
+ param_type* r) {
+ uint8_t encrypt_blocks, skip_blocks;
+ if (!ReadParam(m, iter, &encrypt_blocks) || !ReadParam(m, iter, &skip_blocks))
+ return false;
+ *r = media::EncryptionScheme::Pattern(encrypt_blocks, skip_blocks);
+ return true;
+}
+
+void ParamTraits<media::EncryptionScheme::Pattern>::Log(const param_type& p,
+ std::string* l) {
+ l->append(base::StringPrintf("<Pattern>"));
+}
+
} // namespace IPC
// Generate param traits size methods.

Powered by Google App Engine
This is Rietveld 408576698