New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 707128 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Oct 26
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Feature

Blocked on:
issue 604566
issue 734830
issue 823904

Blocking:
issue 707127



Sign in to add a comment

Support encrypted VP9 with profile 1/2/3

Project Member Reported by xhw...@chromium.org, Mar 31 2017

Issue description

Currently encrypted VP9 profile 1/2/3 is not supported. This bug tracks all the work needs to be done to provide support:
- Update CDM interface to support more video pixel format
- Update the CDM to support VP9 profile 1/2/3
- Update Chrome to support VP9 profile 1/2/3
 

Comment 1 by xhw...@chromium.org, Mar 31 2017

Issue 705105 has been merged into this issue.
kqyang@ will help generate encrypted vp9 profile 2 files (in webm and in mp4) for testing. Thanks!
Cc: xhw...@chromium.org
Owner: hmchen@chromium.org
Assign to hmchen@ to generate the test contents as haoming already has vpxenc installed.

Haoming, you can follow the below steps:

(1) Generate vp9 profile 2 webm content bear-320x240-vp9_profile2.webm from bear-320x240.webm or bear-vp9.webm (using ffmpeg and vpxenc)

(2) Generate a subsample encrypted vp9 profile 2 webm bear-320x240-v-vp9_profile2_subsample_enc-v.webm using shaka packager from bear-320x240-vp9_profile2.webm: --enable_fixed_key_encryption --key_id 30313233343536373839303132333435 --key ebdd62f16814d27b68ef122afce4ae3c --clear_lead 0

(3) Generate an encrypted vp9 profile 2 mp4 using shaka packager: https://cs.chromium.org/chromium/src/media/test/data/README?rcl=d654ee5a83218d46fb8198d1787100f515014932&l=69

Thanks.

Project Member

Comment 4 by bugdroid1@chromium.org, May 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/443ea5e342701a3b20212c655c7816cbd28b53c8

commit 443ea5e342701a3b20212c655c7816cbd28b53c8
Author: xhwang <xhwang@chromium.org>
Date: Thu May 11 05:42:17 2017

media: Set ColorSpace on decoded frames in DecryptingVideoDecoder

If ColorSpace is not set in the decoded VideoFrame, and if the
VideoDecoderConfig has a valid ColorSpace, use the ColorSpace in the
config to set the ColorSpace of the VideoFrame.

BUG= 707128 

Review-Url: https://codereview.chromium.org/2872223002
Cr-Commit-Position: refs/heads/master@{#470826}

[modify] https://crrev.com/443ea5e342701a3b20212c655c7816cbd28b53c8/media/base/test_helpers.cc
[modify] https://crrev.com/443ea5e342701a3b20212c655c7816cbd28b53c8/media/filters/decrypting_video_decoder.cc
[modify] https://crrev.com/443ea5e342701a3b20212c655c7816cbd28b53c8/media/filters/decrypting_video_decoder_unittest.cc

Comment 5 by xhw...@chromium.org, May 16 2017

Blockedon: 604566
Not sure what you'll need to unblock, but just FYI on how to query libvpx for profile 2 support.

https://codereview.chromium.org/2803823003/

Not planning to land that, but something similar will land eventually (following MediaCapapbilities design discussions we've had recently). 

Comment 7 by xhw...@chromium.org, May 16 2017

Today "Maybe" will be translated to "Not Supported" in EME. We need to update the implementation to return "Supported" to enable it for encrypted pipeline. That's why I mark  issue 604566  as blocking.

Note that before we enable it for EME, we need to update the CDM and Chrome to support it. That's tracked in this issue.
Project Member

Comment 8 by bugdroid1@chromium.org, May 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/75d512cf05fd123c31d73ff55bc782e3cde766d6

commit 75d512cf05fd123c31d73ff55bc782e3cde766d6
Author: xhwang <xhwang@chromium.org>
Date: Wed May 17 02:28:49 2017

media: Add test to ensure encrypted VP9 profile 1/2/3 are not supported

The support in Chromium is still under development. Adding test to make
sure we don't accidentally enable them before we can actually handle
them.

BUG= 707128 
TEST=This CL addes more test cases.

Review-Url: https://codereview.chromium.org/2889653003
Cr-Commit-Position: refs/heads/master@{#472289}

[modify] https://crrev.com/75d512cf05fd123c31d73ff55bc782e3cde766d6/chrome/browser/media/encrypted_media_supported_types_browsertest.cc

Issue 728459 has been merged into this issue.
Summary: Support encrypted VP9 with profile 1/2/3 (was: Support encrypted VP9 with profile 2/3)
Description: Show this description
Blockedon: 734830
Blockedon: 823904
Status: Assigned (was: Available)
Blockedon: 811942
Blockedon: -811942
Project Member

Comment 18 by bugdroid1@chromium.org, Oct 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0a9bf07fe2f2e3b523bde46e45efcd03d3a8f5e2

commit 0a9bf07fe2f2e3b523bde46e45efcd03d3a8f5e2
Author: Xiaohan Wang <xhwang@chromium.org>
Date: Wed Oct 03 21:04:21 2018

media: Call MediaBrowserTest::SetUpCommandLine() in subclasses

When overridding SetUpCommandLine(), subclasses of MediaBrowserTest
should always call MediaBrowserTest::SetUpCommandLine(). This also helps
remove duplicate code in setting autoplay policy in these tests.

Bug:  707128 
Test: Clean up only. No functionality change.
Change-Id: Ic06ba4b48e20cf342db7f60a32565766f5d1a1d5
Reviewed-on: https://chromium-review.googlesource.com/c/1257599
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Xiaohan Wang <xhwang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#596358}
[modify] https://crrev.com/0a9bf07fe2f2e3b523bde46e45efcd03d3a8f5e2/chrome/browser/media/encrypted_media_browsertest.cc
[modify] https://crrev.com/0a9bf07fe2f2e3b523bde46e45efcd03d3a8f5e2/chrome/browser/media/media_browsertest.cc
[modify] https://crrev.com/0a9bf07fe2f2e3b523bde46e45efcd03d3a8f5e2/chrome/browser/media/media_browsertest.h
[modify] https://crrev.com/0a9bf07fe2f2e3b523bde46e45efcd03d3a8f5e2/content/browser/media/encrypted_media_browsertest.cc
[modify] https://crrev.com/0a9bf07fe2f2e3b523bde46e45efcd03d3a8f5e2/content/browser/media/media_source_browsertest.cc
[modify] https://crrev.com/0a9bf07fe2f2e3b523bde46e45efcd03d3a8f5e2/content/browser/media/media_suspend_browsertest.cc

Project Member

Comment 19 by bugdroid1@chromium.org, Oct 5

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/164391c524af32c9fdc4f218a8d94097e3e89044

commit 164391c524af32c9fdc4f218a8d94097e3e89044
Author: Xiaohan Wang <xhwang@chromium.org>
Date: Fri Oct 05 22:28:12 2018

media: Move library CDM type converters to a central file

Adds cdm_type_converters.{h,cc} which collects all type converters
between cdm:: and media:: types.

Some conversion functions are renamed for consistency.

Bug:  707128 
Test: No functionality change.
Change-Id: I0ac755f8820d4cf719f3b2c6c6885ec21f45f129
Reviewed-on: https://chromium-review.googlesource.com/c/1260488
Commit-Queue: Xiaohan Wang <xhwang@chromium.org>
Reviewed-by: John Rummell <jrummell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#597347}
[modify] https://crrev.com/164391c524af32c9fdc4f218a8d94097e3e89044/media/cdm/BUILD.gn
[modify] https://crrev.com/164391c524af32c9fdc4f218a8d94097e3e89044/media/cdm/cdm_adapter.cc
[add] https://crrev.com/164391c524af32c9fdc4f218a8d94097e3e89044/media/cdm/cdm_type_conversion.cc
[add] https://crrev.com/164391c524af32c9fdc4f218a8d94097e3e89044/media/cdm/cdm_type_conversion.h
[modify] https://crrev.com/164391c524af32c9fdc4f218a8d94097e3e89044/media/cdm/library_cdm/clear_key_cdm/cdm_video_decoder.cc
[modify] https://crrev.com/164391c524af32c9fdc4f218a8d94097e3e89044/media/cdm/library_cdm/clear_key_cdm/clear_key_cdm.cc
[modify] https://crrev.com/164391c524af32c9fdc4f218a8d94097e3e89044/media/mojo/services/mojo_cdm_allocator.cc

Cc: -xhw...@chromium.org
Owner: xhw...@chromium.org
Project Member

Comment 21 by bugdroid1@chromium.org, Oct 8

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9a301b003c3c9e8019ba379ff084cfb785fa89bd

commit 9a301b003c3c9e8019ba379ff084cfb785fa89bd
Author: Xiaohan Wang <xhwang@chromium.org>
Date: Mon Oct 08 21:40:23 2018

media: Skip Widevine VP9 profile 2 browser tests

Currently Widevine CDM doesn't support VP9 profile 2 yet. So skip these
tests for now.

Bug:  707128 ,893114
Test: Fix failing tests
Change-Id: Ibdedfda02d1e47831569b44c03a6cdd2caa53730
Reviewed-on: https://chromium-review.googlesource.com/c/1268961
Commit-Queue: Xiaohan Wang <xhwang@chromium.org>
Reviewed-by: John Rummell <jrummell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#597688}
[modify] https://crrev.com/9a301b003c3c9e8019ba379ff084cfb785fa89bd/chrome/browser/media/encrypted_media_browsertest.cc

Project Member

Comment 22 by bugdroid1@chromium.org, Oct 9

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/153df6b0dc8843062add4bec9b44b4bc58e16df1

commit 153df6b0dc8843062add4bec9b44b4bc58e16df1
Author: Xiaohan Wang <xhwang@chromium.org>
Date: Tue Oct 09 17:23:18 2018

media: Split SplitCodecsToVector() into two functions

Currently this function takes a boolean parameter "strip" which when
true will also strip the codecs. However, since it's a boolean, every
time I see SplitCodecsToVector(..., false) or SplitCodecsToVector(...,
true), I have to think twice what it means. This CL splits this function
into two functions: SplitCodecs() and StripCodecs() to make it clear.

This also make it easier to override a codec string after split but
before strip, which may be useful in some special cases, e.g. treat
"vp09.00.10.08" the same as "vp9.0".

TBR=haraken@chromium.org

Bug:  707128 
Test: Unittests updated.
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I2863ea6ca84bb4717f732257b12010bd823fafac
Reviewed-on: https://chromium-review.googlesource.com/c/1269807
Commit-Queue: Xiaohan Wang <xhwang@chromium.org>
Reviewed-by: Chrome Cunningham <chcunningham@chromium.org>
Cr-Commit-Position: refs/heads/master@{#597971}
[modify] https://crrev.com/153df6b0dc8843062add4bec9b44b4bc58e16df1/content/renderer/media_recorder/media_recorder_handler.cc
[modify] https://crrev.com/153df6b0dc8843062add4bec9b44b4bc58e16df1/media/base/mime_util.cc
[modify] https://crrev.com/153df6b0dc8843062add4bec9b44b4bc58e16df1/media/base/mime_util.h
[modify] https://crrev.com/153df6b0dc8843062add4bec9b44b4bc58e16df1/media/base/mime_util_internal.cc
[modify] https://crrev.com/153df6b0dc8843062add4bec9b44b4bc58e16df1/media/base/mime_util_internal.h
[modify] https://crrev.com/153df6b0dc8843062add4bec9b44b4bc58e16df1/media/base/mime_util_unittest.cc
[modify] https://crrev.com/153df6b0dc8843062add4bec9b44b4bc58e16df1/media/blink/key_system_config_selector.cc
[modify] https://crrev.com/153df6b0dc8843062add4bec9b44b4bc58e16df1/media/blink/key_system_config_selector_unittest.cc
[modify] https://crrev.com/153df6b0dc8843062add4bec9b44b4bc58e16df1/media/filters/chunk_demuxer.cc
[modify] https://crrev.com/153df6b0dc8843062add4bec9b44b4bc58e16df1/media/filters/source_buffer_state.cc
[modify] https://crrev.com/153df6b0dc8843062add4bec9b44b4bc58e16df1/third_party/blink/renderer/platform/network/mime/mime_type_registry.cc

Status: Fixed (was: Assigned)
All changes in Chromium have been landed. The CDM change is tracked by issue 899403.

Sign in to add a comment