| Index: media/formats/mp4/box_definitions.cc
|
| diff --git a/media/formats/mp4/box_definitions.cc b/media/formats/mp4/box_definitions.cc
|
| index 72809cfdffdd542a7c97b2563f97bb935bc79779..5a15240ebbc0f8b860fa55dba16daaa63d9fe68d 100644
|
| --- a/media/formats/mp4/box_definitions.cc
|
| +++ b/media/formats/mp4/box_definitions.cc
|
| @@ -26,62 +26,13 @@
|
| FourCC ProtectionSystemSpecificHeader::BoxType() const { return FOURCC_PSSH; }
|
|
|
| bool ProtectionSystemSpecificHeader::Parse(BoxReader* reader) {
|
| - // Don't bother validating the box's contents.
|
| + // Validate the box's contents and hang on to the system ID.
|
| + RCHECK(reader->ReadFullBoxHeader() &&
|
| + reader->ReadVec(&system_id, 16));
|
| +
|
| // Copy the entire box, including the header, for passing to EME as initData.
|
| DCHECK(raw_box.empty());
|
| raw_box.assign(reader->data(), reader->data() + reader->size());
|
| - return true;
|
| -}
|
| -
|
| -FullProtectionSystemSpecificHeader::FullProtectionSystemSpecificHeader() {}
|
| -FullProtectionSystemSpecificHeader::~FullProtectionSystemSpecificHeader() {}
|
| -FourCC FullProtectionSystemSpecificHeader::BoxType() const {
|
| - return FOURCC_PSSH;
|
| -}
|
| -
|
| -// The format of a 'pssh' box is as follows:
|
| -// unsigned int(32) size;
|
| -// unsigned int(32) type = "pssh";
|
| -// if (size==1) {
|
| -// unsigned int(64) largesize;
|
| -// } else if (size==0) {
|
| -// -- box extends to end of file
|
| -// }
|
| -// unsigned int(8) version;
|
| -// bit(24) flags;
|
| -// unsigned int(8)[16] SystemID;
|
| -// if (version > 0)
|
| -// {
|
| -// unsigned int(32) KID_count;
|
| -// {
|
| -// unsigned int(8)[16] KID;
|
| -// } [KID_count]
|
| -// }
|
| -// unsigned int(32) DataSize;
|
| -// unsigned int(8)[DataSize] Data;
|
| -
|
| -bool FullProtectionSystemSpecificHeader::Parse(mp4::BoxReader* reader) {
|
| - RCHECK(reader->type() == BoxType() && reader->ReadFullBoxHeader());
|
| -
|
| - // Only versions 0 and 1 of the 'pssh' boxes are supported. Any other
|
| - // versions are ignored.
|
| - RCHECK(reader->version() == 0 || reader->version() == 1);
|
| - RCHECK(reader->flags() == 0);
|
| - RCHECK(reader->ReadVec(&system_id, 16));
|
| -
|
| - if (reader->version() > 0) {
|
| - uint32_t kid_count;
|
| - RCHECK(reader->Read4(&kid_count));
|
| - for (uint32_t i = 0; i < kid_count; ++i) {
|
| - std::vector<uint8_t> kid;
|
| - RCHECK(reader->ReadVec(&kid, 16));
|
| - key_ids.push_back(kid);
|
| - }
|
| - }
|
| -
|
| - uint32_t data_size;
|
| - RCHECK(reader->Read4(&data_size));
|
| - RCHECK(reader->ReadVec(&data, data_size));
|
| return true;
|
| }
|
|
|
|
|