OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "content/browser/media/cdm/browser_cdm_manager.h" | 5 #include "content/browser/media/cdm/browser_cdm_manager.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
340 scoped_ptr<NewSessionPromise> promise( | 340 scoped_ptr<NewSessionPromise> promise( |
341 new NewSessionPromise(this, render_frame_id, cdm_id, promise_id)); | 341 new NewSessionPromise(this, render_frame_id, cdm_id, promise_id)); |
342 | 342 |
343 if (init_data.size() > kMaxInitDataLength) { | 343 if (init_data.size() > kMaxInitDataLength) { |
344 LOG(WARNING) << "InitData for ID: " << cdm_id | 344 LOG(WARNING) << "InitData for ID: " << cdm_id |
345 << " too long: " << init_data.size(); | 345 << " too long: " << init_data.size(); |
346 promise->reject(MediaKeys::INVALID_ACCESS_ERROR, 0, "Init data too long."); | 346 promise->reject(MediaKeys::INVALID_ACCESS_ERROR, 0, "Init data too long."); |
347 return; | 347 return; |
348 } | 348 } |
349 | 349 |
350 media::EmeInitDataType eme_init_data_type = media::EME_INIT_DATA_TYPE_NONE; | 350 media::EmeInitDataType eme_init_data_type; |
351 switch (init_data_type) { | 351 switch (init_data_type) { |
352 case INIT_DATA_TYPE_WEBM: | 352 case INIT_DATA_TYPE_WEBM: |
353 eme_init_data_type = media::EME_INIT_DATA_TYPE_WEBM; | 353 eme_init_data_type = media::EmeInitDataType::WEBM; |
354 break; | 354 break; |
355 #if defined(USE_PROPRIETARY_CODECS) | 355 #if defined(USE_PROPRIETARY_CODECS) |
356 case INIT_DATA_TYPE_CENC: | 356 case INIT_DATA_TYPE_CENC: |
357 eme_init_data_type = media::EME_INIT_DATA_TYPE_CENC; | 357 eme_init_data_type = media::EmeInitDataType::CENC; |
358 break; | 358 break; |
359 #endif | 359 #endif |
360 default: | 360 default: |
361 NOTREACHED(); | 361 NOTREACHED(); |
362 promise->reject(MediaKeys::INVALID_ACCESS_ERROR, 0, | 362 promise->reject(MediaKeys::INVALID_ACCESS_ERROR, 0, |
363 "Invalid init data type."); | 363 "Invalid init data type."); |
364 return; | 364 return; |
365 } | 365 } |
366 | 366 |
367 BrowserCdm* cdm = GetCdm(render_frame_id, cdm_id); | 367 BrowserCdm* cdm = GetCdm(render_frame_id, cdm_id); |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
553 if (!cdm) { | 553 if (!cdm) { |
554 promise->reject(MediaKeys::INVALID_STATE_ERROR, 0, "CDM not found."); | 554 promise->reject(MediaKeys::INVALID_STATE_ERROR, 0, "CDM not found."); |
555 return; | 555 return; |
556 } | 556 } |
557 | 557 |
558 // TODO(ddorwin): Move this conversion to MediaDrmBridge when fixing | 558 // TODO(ddorwin): Move this conversion to MediaDrmBridge when fixing |
559 // crbug.com/417440. | 559 // crbug.com/417440. |
560 // "audio"/"video" does not matter, so use "video". | 560 // "audio"/"video" does not matter, so use "video". |
561 std::string init_data_type_string; | 561 std::string init_data_type_string; |
562 switch (init_data_type) { | 562 switch (init_data_type) { |
563 case media::EME_INIT_DATA_TYPE_WEBM: | 563 case media::EmeInitDataType::WEBM: |
564 init_data_type_string = "video/webm"; | 564 init_data_type_string = "video/webm"; |
565 break; | 565 break; |
566 #if defined(USE_PROPRIETARY_CODECS) | 566 #if defined(USE_PROPRIETARY_CODECS) |
567 case media::EME_INIT_DATA_TYPE_CENC: | 567 case media::EmeInitDataType::CENC: |
568 init_data_type_string = "video/mp4"; | 568 init_data_type_string = "video/mp4"; |
569 break; | 569 break; |
570 #endif | 570 #endif |
571 default: | 571 default: |
572 NOTREACHED(); | 572 NOTREACHED(); |
573 } | 573 } |
574 | 574 |
575 // Only the temporary session type is supported in browser CDM path. | 575 // Only the temporary session type is supported in browser CDM path. |
576 // TODO(xhwang): Add SessionType support if needed. | 576 // TODO(xhwang): Add SessionType support if needed. |
577 cdm->CreateSessionAndGenerateRequest(media::MediaKeys::TEMPORARY_SESSION, | 577 cdm->CreateSessionAndGenerateRequest(media::MediaKeys::TEMPORARY_SESSION, |
578 init_data_type_string, &init_data[0], | 578 init_data_type_string, &init_data[0], |
579 init_data.size(), promise.Pass()); | 579 init_data.size(), promise.Pass()); |
580 } | 580 } |
581 | 581 |
582 } // namespace content | 582 } // namespace content |
OLD | NEW |