| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "media/cdm/cenc_utils.h" | 5 #include "media/cdm/cenc_utils.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 152 box.push_back(0); | 152 box.push_back(0); |
| 153 return box; | 153 return box; |
| 154 } | 154 } |
| 155 | 155 |
| 156 void AppendData(std::vector<uint8_t>& pssh_box, | 156 void AppendData(std::vector<uint8_t>& pssh_box, |
| 157 const std::vector<uint8_t>& data) { | 157 const std::vector<uint8_t>& data) { |
| 158 // This assumes that |pssh_box| has been created using the routines above, | 158 // This assumes that |pssh_box| has been created using the routines above, |
| 159 // and simply appends the data to the end of it. It updates the box size | 159 // and simply appends the data to the end of it. It updates the box size |
| 160 // and sets the data size. | 160 // and sets the data size. |
| 161 DCHECK(data.size() < 100); | 161 DCHECK(data.size() < 100); |
| 162 pssh_box[3] += data.size(); | 162 pssh_box[3] += static_cast<uint8_t>(data.size()); |
| 163 pssh_box.pop_back(); | 163 pssh_box.pop_back(); |
| 164 pssh_box.push_back(data.size()); | 164 pssh_box.push_back(static_cast<uint8_t>(data.size())); |
| 165 pssh_box.insert(pssh_box.end(), data.begin(), data.end()); | 165 pssh_box.insert(pssh_box.end(), data.begin(), data.end()); |
| 166 } | 166 } |
| 167 | 167 |
| 168 const std::vector<uint8_t>& Key1() { return key1_; } | 168 const std::vector<uint8_t>& Key1() { return key1_; } |
| 169 const std::vector<uint8_t>& Key2() { return key2_; } | 169 const std::vector<uint8_t>& Key2() { return key2_; } |
| 170 const std::vector<uint8_t>& Key3() { return key3_; } | 170 const std::vector<uint8_t>& Key3() { return key3_; } |
| 171 const std::vector<uint8_t>& Key4() { return key4_; } | 171 const std::vector<uint8_t>& Key4() { return key4_; } |
| 172 const std::vector<uint8_t>& CommonSystemSystemId() { | 172 const std::vector<uint8_t>& CommonSystemSystemId() { |
| 173 return common_system_system_id_; | 173 return common_system_system_id_; |
| 174 } | 174 } |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 277 } | 277 } |
| 278 } | 278 } |
| 279 | 279 |
| 280 TEST_F(CencUtilsTest, PsshBoxLargerThanSize) { | 280 TEST_F(CencUtilsTest, PsshBoxLargerThanSize) { |
| 281 std::vector<uint8_t> box = MakePSSHBox(1, Key1(), Key2()); | 281 std::vector<uint8_t> box = MakePSSHBox(1, Key1(), Key2()); |
| 282 KeyIdList key_ids; | 282 KeyIdList key_ids; |
| 283 | 283 |
| 284 // Add 20 additional bytes to |box|. | 284 // Add 20 additional bytes to |box|. |
| 285 size_t original_size = box.size(); | 285 size_t original_size = box.size(); |
| 286 for (size_t i = 0; i < 20; ++i) | 286 for (size_t i = 0; i < 20; ++i) |
| 287 box.push_back(i); | 287 box.push_back(static_cast<uint8_t>(i)); |
| 288 | 288 |
| 289 // Tries every size greater than |original_size|. | 289 // Tries every size greater than |original_size|. |
| 290 for (size_t i = original_size + 1; i < box.size(); ++i) { | 290 for (size_t i = original_size + 1; i < box.size(); ++i) { |
| 291 // Modify size of box passed to be less than current size. | 291 // Modify size of box passed to be less than current size. |
| 292 std::vector<uint8_t> truncated(&box[0], &box[0] + i); | 292 std::vector<uint8_t> truncated(&box[0], &box[0] + i); |
| 293 EXPECT_FALSE(ValidatePsshInput(truncated)) << "Failed for length " << i; | 293 EXPECT_FALSE(ValidatePsshInput(truncated)) << "Failed for length " << i; |
| 294 EXPECT_FALSE(GetKeyIdsForCommonSystemId(truncated, &key_ids)); | 294 EXPECT_FALSE(GetKeyIdsForCommonSystemId(truncated, &key_ids)); |
| 295 } | 295 } |
| 296 } | 296 } |
| 297 | 297 |
| (...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 547 EXPECT_FALSE(ValidatePsshInput(boxes)); | 547 EXPECT_FALSE(ValidatePsshInput(boxes)); |
| 548 | 548 |
| 549 // Repeat with |non_pssh_box| first. | 549 // Repeat with |non_pssh_box| first. |
| 550 boxes.clear(); | 550 boxes.clear(); |
| 551 boxes.insert(boxes.end(), non_pssh_box.begin(), non_pssh_box.end()); | 551 boxes.insert(boxes.end(), non_pssh_box.begin(), non_pssh_box.end()); |
| 552 boxes.insert(boxes.end(), pssh_box.begin(), pssh_box.end()); | 552 boxes.insert(boxes.end(), pssh_box.begin(), pssh_box.end()); |
| 553 EXPECT_FALSE(ValidatePsshInput(boxes)); | 553 EXPECT_FALSE(ValidatePsshInput(boxes)); |
| 554 } | 554 } |
| 555 | 555 |
| 556 } // namespace media | 556 } // namespace media |
| OLD | NEW |