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

Unified Diff: media/base/decrypt_config.cc

Issue 10651006: Add Common Encryption support to BMFF, including subsample decryption. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Remove references to non-public encrypted files in tests Created 8 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 side-by-side diff with in-line comments
Download patch
Index: media/base/decrypt_config.cc
diff --git a/media/base/decrypt_config.cc b/media/base/decrypt_config.cc
index 9ae5f195e5d4cfab2be9a45108b23d329d2732e4..9e9a46cd3b5bcdb090649e256cb18acb2ebde52d 100644
--- a/media/base/decrypt_config.cc
+++ b/media/base/decrypt_config.cc
@@ -8,11 +8,55 @@
namespace media {
+// TODO(strobe): Remove along with CBC mode.
+static const char kDefaultIV[] = "0000000000000000";
fgalligan1 2012/06/27 00:28:36 s/kDefaultIV/kDefaultIv/
strobe_ 2012/06/27 02:01:21 Done.
+static const int kDefaultIVSize = 16;
fgalligan1 2012/06/27 00:28:36 s/kDefaultIVSize/kDefaultIvSize/
strobe_ 2012/06/27 02:01:21 Done.
+
DecryptConfig::DecryptConfig(const uint8* key_id, int key_id_size)
- : key_id_size_(key_id_size) {
+ : key_id_size_(key_id_size),
+ iv_size_(kDefaultIVSize),
+ subsample_count_(0),
+ use_cbc_(true) {
+ CHECK_GT(key_id_size, 0);
+ key_id_.reset(new uint8[key_id_size]);
+ memcpy(key_id_.get(), key_id, key_id_size);
+ iv_.reset(new uint8[iv_size_]);
+ memcpy(iv_.get(), kDefaultIV, iv_size_);
+}
+
+DecryptConfig::DecryptConfig(const uint8* key_id, int key_id_size,
+ const uint8* iv, int iv_size)
+ : key_id_size_(key_id_size),
+ iv_size_(iv_size),
+ subsample_count_(0),
+ use_cbc_(false) {
+ CHECK_GT(key_id_size, 0);
+ CHECK_GT(iv_size, 0);
+ key_id_.reset(new uint8[key_id_size]);
+ memcpy(key_id_.get(), key_id, key_id_size);
+ iv_.reset(new uint8[iv_size]);
+ memcpy(iv_.get(), iv, iv_size);
+}
+
+DecryptConfig::DecryptConfig(const uint8* key_id, int key_id_size,
+ const uint8* iv, int iv_size,
+ const SubsampleEntry* subsamples,
+ int subsample_count)
+ : key_id_size_(key_id_size),
+ iv_size_(iv_size),
+ subsample_count_(subsample_count),
+ use_cbc_(false) {
CHECK_GT(key_id_size, 0);
+ CHECK_GT(iv_size, 0);
key_id_.reset(new uint8[key_id_size]);
memcpy(key_id_.get(), key_id, key_id_size);
+ iv_.reset(new uint8[iv_size]);
+ memcpy(iv_.get(), iv, iv_size);
+ if (subsample_count > 0) {
+ subsamples_.reset(new SubsampleEntry[subsample_count]);
+ memcpy(subsamples_.get(), subsamples,
+ subsample_count * sizeof(SubsampleEntry));
+ }
}
DecryptConfig::~DecryptConfig() {}

Powered by Google App Engine
This is Rietveld 408576698