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

Unified Diff: media/formats/mp4/box_definitions.h

Issue 1998333002: MP4 support for Common Encryption 'cbcs' scheme. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: kq nits Created 4 years, 2 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/formats/mp4/box_definitions.h
diff --git a/media/formats/mp4/box_definitions.h b/media/formats/mp4/box_definitions.h
index 1493edc8dbf8bdcca89349b5e7a2a9c05686bf18..de80b7513a7586b88db846fc96b5c8c03ec40efd 100644
--- a/media/formats/mp4/box_definitions.h
+++ b/media/formats/mp4/box_definitions.h
@@ -20,10 +20,13 @@
#include "media/formats/mp4/avc.h"
#include "media/formats/mp4/box_reader.h"
#include "media/formats/mp4/fourccs.h"
+#include "media/media_features.h"
namespace media {
namespace mp4 {
+const int kInitializationVectorSize = 16;
ddorwin 2016/11/06 00:57:51 Is this always constant for all types of CENC?
dougsteed 2016/12/01 19:45:32 Added comment. IV may be shorter but this is the s
+
enum TrackType { kInvalid = 0, kVideo, kAudio, kText, kHint };
enum SampleFlags {
@@ -91,7 +94,7 @@ struct MEDIA_EXPORT SampleEncryptionEntry {
// anywhere.
bool GetTotalSizeOfSubsamples(size_t* total_size) const;
- uint8_t initialization_vector[16];
+ uint8_t initialization_vector[kInitializationVectorSize];
std::vector<SubsampleEntry> subsamples;
};
@@ -129,6 +132,12 @@ struct MEDIA_EXPORT TrackEncryption : Box {
bool is_encrypted;
uint8_t default_iv_size;
std::vector<uint8_t> default_kid;
+#if BUILDFLAG(ENABLE_CBCS_ENCRYPTION_SCHEME)
+ uint8_t default_crypt_byte_block;
+ uint8_t default_skip_byte_block;
+ uint8_t default_constant_iv_size;
+ uint8_t default_constant_iv[kInitializationVectorSize];
+#endif
};
struct MEDIA_EXPORT SchemeInfo : Box {
@@ -143,6 +152,8 @@ struct MEDIA_EXPORT ProtectionSchemeInfo : Box {
OriginalFormat format;
SchemeType type;
SchemeInfo info;
+
+ bool HasSupportedScheme() const;
};
struct MEDIA_EXPORT MovieHeader : Box {
@@ -289,10 +300,17 @@ struct MEDIA_EXPORT CencSampleEncryptionInfoEntry {
CencSampleEncryptionInfoEntry();
CencSampleEncryptionInfoEntry(const CencSampleEncryptionInfoEntry& other);
~CencSampleEncryptionInfoEntry();
+ bool Parse(BoxReader* reader);
bool is_encrypted;
uint8_t iv_size;
std::vector<uint8_t> key_id;
+#if BUILDFLAG(ENABLE_CBCS_ENCRYPTION_SCHEME)
+ uint8_t crypt_byte_block;
+ uint8_t skip_byte_block;
+ uint8_t constant_iv_size;
+ uint8_t constant_iv[kInitializationVectorSize];
+#endif
};
struct MEDIA_EXPORT SampleGroupDescription : Box { // 'sgpd'.

Powered by Google App Engine
This is Rietveld 408576698