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

Unified Diff: media/webm/webm_cluster_parser.cc

Issue 119203003: Drop DecryptConfig::data_offset_. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix test Created 7 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/webm/webm_cluster_parser.cc
diff --git a/media/webm/webm_cluster_parser.cc b/media/webm/webm_cluster_parser.cc
index df9e4ce244bb17d3f7bda4b39d16bbc71dd33e18..4ac888df859d93acfb39f8f327e41140dccd9ad1 100644
--- a/media/webm/webm_cluster_parser.cc
+++ b/media/webm/webm_cluster_parser.cc
@@ -345,13 +345,30 @@ bool WebMClusterParser::OnBlock(bool is_simple_block, int track_num,
scoped_refptr<StreamParserBuffer> buffer;
if (!is_text) {
- buffer = StreamParserBuffer::CopyFrom(data, size,
- additional, additional_size,
- is_keyframe);
+ // Every encrypted Block has a signal byte and IV prepended to it. Current
+ // encrypted WebM request for comments specification is here
+ // http://wiki.webmproject.org/encryption/webm-encryption-rfc
+ scoped_ptr<DecryptConfig> decrypt_config;
+ int data_offset = 0;
+ if (!encryption_key_id.empty() &&
+ !WebMCreateDecryptConfig(
+ data, size,
+ reinterpret_cast<const uint8*>(encryption_key_id.data()),
+ encryption_key_id.size(),
+ &decrypt_config, &data_offset)) {
+ return false;
+ }
+
+ buffer = StreamParserBuffer::CopyFrom(
+ data + data_offset, size - data_offset,
+ additional, additional_size,
+ is_keyframe);
+
+ if (decrypt_config)
+ buffer->set_decrypt_config(decrypt_config.Pass());
} else {
DaleCurtis 2014/01/02 19:31:09 Does this not need a DecryptConfig? Presumably we
xhwang 2014/01/08 00:43:36 As you can see from l.314-l.319, encryption_key_id
std::string id, settings, content;
- WebMWebVTTParser::Parse(data, size,
- &id, &settings, &content);
+ WebMWebVTTParser::Parse(data, size, &id, &settings, &content);
std::vector<uint8> side_data;
MakeSideData(id.begin(), id.end(),
@@ -366,19 +383,6 @@ bool WebMClusterParser::OnBlock(bool is_simple_block, int track_num,
is_keyframe);
}
- // Every encrypted Block has a signal byte and IV prepended to it. Current
- // encrypted WebM request for comments specification is here
- // http://wiki.webmproject.org/encryption/webm-encryption-rfc
- if (!encryption_key_id.empty()) {
- scoped_ptr<DecryptConfig> config(WebMCreateDecryptConfig(
- data, size,
- reinterpret_cast<const uint8*>(encryption_key_id.data()),
- encryption_key_id.size()));
- if (!config)
- return false;
- buffer->set_decrypt_config(config.Pass());
- }
-
buffer->set_timestamp(timestamp);
if (cluster_start_time_ == kNoTimestamp())
cluster_start_time_ = timestamp;

Powered by Google App Engine
This is Rietveld 408576698