New issue
Advanced search Search tips

Issue 783153 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

"video/webm; codecs="vp9" should reject with navigator.mediaCapabilities.decodingInfo

Project Member Reported by fbeaufort@chromium.org, Nov 9 2017

Issue description

Chrome Version       : 64.0.3261.0
OS Version: 10109.0.0

What steps will reproduce the problem?
1. Open DevTools JS console and run code below:

    await navigator.mediaCapabilities.decodingInfo({type: 'file', video: {
      contentType: 'video/webm; codecs="vp9"',
      width: 800,
      height: 600,
      bitrate: 3000,
      framerate: 24,
    }})


What is the expected result?
It should tell me what the contentType is not precise enough by rejecting the promise.

What happens instead of that?
It says it is not supported while VP9 profile 0, profile 1 and profile 2 are all supported when I pass the appropriate contentType.

You can see it as well at https://beaufortfrancois.github.io/sandbox/media-capabilities/decoding-info.html


 
Components: Blink>Media>Capabilities
Labels: -Pri-3 M-64 Pri-1
Status: Assigned (was: Unconfirmed)
I agree with this. chcunningham@, any concern? I think we might need to make the spec clearer about this though.
Agree with the above (and making spec clear on this point). 

The plumbing to reject vp9 as ambiguous is all in place - it just needs a one line change in some mime util code. Mounir, I can have a CL ready shortly.
Cc: -chcunningham@chromium.org mlamouri@chromium.org
Owner: chcunningham@chromium.org
Thanks :) I was thinking of moving some code a bit. I think we could remove the media/blink/ layer but that's probably something for me to play with one evening :)
Turns out we already mark "vp9" as unsupported. We don't reject the promise in these cases, just return an info object that says is_supported = false. I added a browser test for this here:

https://cs.chromium.org/chromium/src/content/browser/media/media_capabilities_browsertest.cc?l=91

The spec text seems OK with this. We had some discussion a long time back about exceptions vs supported = false for mimes that are valid, but not supported. 

https://github.com/WICG/media-capabilities/pull/35#discussion_r110692091

I'll update the layout tests to use the vp09 codec string to avoid confusion. 


Quick thought: Shall we just assume codecs="vp9" is equal to codecs="vp09.00.10.08" so that it returns supported = true at least in Chrome?
Project Member

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

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

commit 759bef183623c913a786482868446481fdd7cc89
Author: Chris Cunningham <chcunningham@chromium.org>
Date: Fri Nov 17 11:38:06 2017

Replace vp9 with vp09... in MediaCapabilities LayoutTests

vp9 is ambiguous about important details like codec profile.
vp09.... specifies the missing details.

http://www.webmproject.org/vp9/mp4/#codecs-parameter-string

Using the ambiguous vp9 string will cause the returned
MediaCapabilitiesInfo to mark is_supported=false. The tests don't
actually check this value, but we should use the right string to
set a good example.

Bug:  783153 
Change-Id: I51a00c0ef3a3efedb70336894d3b17f786284156
Reviewed-on: https://chromium-review.googlesource.com/775903
Reviewed-by: Mounir Lamouri <mlamouri@chromium.org>
Commit-Queue: Mounir Lamouri <mlamouri@chromium.org>
Cr-Commit-Position: refs/heads/master@{#517382}
[modify] https://crrev.com/759bef183623c913a786482868446481fdd7cc89/third_party/WebKit/LayoutTests/external/wpt/media-capabilities/decodingInfo.html

> Quick thought: Shall we just assume codecs="vp9" is equal to codecs="vp09.00.10.08" so that it returns supported = true at least in Chrome?

I'd prefer not to. "vp9" has been used for some time to describe the full umbrella of vp9 profiles, levels, and bit depths - its not associated with vp09.00.10.08 (profile 0, level 1, bitdepth 8). I'd like to hold line on MediaCapabilities requiring fully specified mime strings. 

But I think this is another thing we could surface via a chrome://media-internals tab for media capabilities. The tab could contain logs to explain why support was rejected for a given query. 
Status: Fixed (was: Assigned)

Sign in to add a comment