LGTM2

On Mon, Dec 20, 2021, 6:41 AM Mike Taylor <miketa...@chromium.org> wrote:

> On 12/19/21 7:03 PM, Chris Cunningham wrote:
>
> Hi Mike,
>
> > And the proposed change here is to remove temporalLayderId as a
> top-level key on EncodedVideoChunkMetadata, right?
>
> That's right.
>
> > The proposed change here is to start throwing without a timestamp key in
> the VideoFrameInit dictionary, for all "image" types except VideoFrame and
> HTMLVideoElement, correct?
>
> That's also right.
>
> > Can you clarify the timing of the proposed removal? Do you intend to
> send deprecation messages in M99, and if so, for how long? Or do you intend
> to deprecate and remove all at once in M99?
>
> My ideal timing would be to remove in 99. We've just landed a flag (
> --enable-features=RemoveWebCodecsSpecViolations
> <https://chromium-review.googlesource.com/c/chromium/src/+/3347023>) to
> simulate the removal, which I should be able to merge back to 98. We landed
> a "may deprecate" message for the VideoFrame constructor in 97. I could
> merge a change to 98 that hardens language to "is deprecated". I'm not sure
> we can add a message for the metadata.temporalLayerId deprecation since
> it's just an output dictionary member.
>
> Happy to be flexible if this timeline is problematic. At this point I
> think the usage of the bad paths is actually near zero, so a faster
> timeline has advantages too.
>
> Given that usage is around .00015% right now, I agree that moving faster
> on this change is probably smart. *LGTM1* if we can change the
> deprecation message to "is deprecated".
>
> Merging back the flag back to M98 seems useful if we can make developers
> aware it exists, perhaps by updating https://web.dev/webcodecs/ with an
> "update" blurb up to mentioning the changes and the flag?
>
> (Before I hit send, I went and searched for `temporalLayerId` in the
> httparchive.latest.requests_desktop dataset and got zero results - that
> makes me feel better about hitting send).
>
> Best,
> Chris
>
>
>
> On Sat, Dec 18, 2021 at 12:30 PM Mike Taylor <miketa...@chromium.org>
> wrote:
>
>> Hi Chris,
>>
>> On 12/17/21 3:24 PM, Chris Cunningham wrote:
>>
>> Contact emails
>>
>>
>> * chcunning...@chromium.org <chcunning...@chromium.org> * Explainer
>>
>>
>> * https://github.com/w3c/webcodecs/blob/main/explainer.md
>> <https://github.com/w3c/webcodecs/blob/main/explainer.md>   *
>> Specification
>>
>>
>> * https://w3c.github.io/webcodecs/ <https://w3c.github.io/webcodecs/> *
>> Summary
>>
>>
>> * We've identified two areas where our implementation violates the
>> specification. We've implemented parallel correct paths for authors to use
>> and would like to deprecate the original bad paths. The issues affect
>> VideoFrame construction and the EncodedVideoChunkMetadata dictionary. * Blink
>> component
>>
>>
>> * Blink>Media>WebCodecs
>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EMedia%3EWebCodecs>
>> * Motivation
>>
>>
>>
>> * We've identified two areas where our implementation of WebCodecs
>> violates the specification. We've considered changing the spec, but prefer
>> to instead fix the implementation. The specified behavior is cleaner and
>> less error prone. The changes are breaking, but the workarounds are trivial
>> and WebCodecs usage is currently very low (we just shipped in Chrome 94,
>> only engine to ship so far).
>> https://chromestatus.com/metrics/feature/timeline/popularity/3464
>> <https://chromestatus.com/metrics/feature/timeline/popularity/3464>
>> Details: 1. The spec defines the temporalLayerId attribute as a member of
>> the SvcOutputMetadata dictionary which is nested under the
>> EncodedVideoChunkMetadata dictionary (metadata.svc.temporalLayerId). But
>> Chrome places the temporalLayerId directly on the top level
>> EncodedVideoChunkMetadata dictionary (metadata.temporalLayerId). As of
>> Chrome 98, either option is available.  *
>>
>> And the proposed change here is to remove temporalLayderId as a top-level
>> key on EncodedVideoChunkMetadata, right?
>>
>> * 2. The spec requires that the VideoFrame(CanvasImageSource, ...)
>> constructor include a timestamp argument (VideoFrameInit.timestamp) for
>> CanvasImageSource types that don't implicitly have a timestamp (e.g.
>> HTMLCanvasElement). Failing to include the timestamp should result in a
>> TypeError, but Chrome currently defaults the timestamp to zero. Chrome will
>> respect the timestamp if one is given. *
>>
>> The proposed change here is to start throwing without a timestamp key in
>> the VideoFrameInit dictionary, for all "image" types except VideoFrame and
>> HTMLVideoElement, correct?
>>
>> Initial public proposal
>>
>>
>> *
>> https://groups.google.com/a/chromium.org/g/blink-dev/c/7UlTzFMbTFs/m/Rib4ca4-BQAJ
>> <https://groups.google.com/a/chromium.org/g/blink-dev/c/7UlTzFMbTFs/m/Rib4ca4-BQAJ>
>> * TAG review
>>
>>
>> * https://github.com/w3ctag/design-reviews/issues/612
>> <https://github.com/w3ctag/design-reviews/issues/612> * TAG review status
>>
>>
>> * Complete * Risks
>> Site breakage
>>
>>
>>
>>
>> * Both changes can break sites.  For temporalLayerId, we're not able to
>> add metrics for it's usage (dictionary member), but we have a reasonable
>> sense for which sites may be affected and will reach out directly.  For the
>> VideoFrame constructor, we added UKM metrics to count usage of the bad path
>> and a "may deprecate" warning. These metrics landed in M97 (beta). So far,
>> no usage of the bad path.  * Interoperability and Compatibility
>>
>>
>>
>>
>> * Gecko: Supportive. Paul Adenot approved the PRs that defined the
>> specified behavior. We discussed changing the behavior of the VideoFrame
>> constructor but both prefer to fix the implementation if that can be done
>> without huge developer pain.  WebKit: No signal Web developers: No
>> signals.  * Debuggability
>>
>>
>> * Fixing the VideoFrame constructor may reduce the need for author
>> debugging. The current defaulting behavior (timestamp = 0) may at first
>> seem helpful, but is problematic if you then send the VideoFrame to a
>> VideoEncoder, where timestamps are used to guide bitrate control.  * Is
>> this feature fully tested by web-platform-tests
>> <https://chromium.googlesource.com/chromium/src/+/master/docs/testing/web_platform_tests.md>
>> ?
>>
>>
>> * Yes. https://github.com/web-platform-tests/wpt/tree/master/webcodecs
>> <https://github.com/web-platform-tests/wpt/tree/master/webcodecs>  * Flag
>> name
>>
>>
>> * None yet. We'll implement a flag and announce in a follow up "Ready for
>> Trial" thread. * Requires code in //chrome?
>>
>>
>> * False * Estimated milestones
>>
>> * 99 *
>>
>> Can you clarify the timing of the proposed removal? Do you intend to send
>> deprecation messages in M99, and if so, for how long? Or do you intend to
>> deprecate and remove all at once in M99?
>>
>>
>> Link to entry on the Chrome Platform Status
>>
>> https://chromestatus.com/feature/5667793157488640
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "blink-dev" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to blink-dev+unsubscr...@chromium.org.
>> To view this discussion on the web visit
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALG6eSpjBUfdEUsQk0ekp9W1dAZHJNoeEFL8tDBR9PR%3DZhbjMQ%40mail.gmail.com
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALG6eSpjBUfdEUsQk0ekp9W1dAZHJNoeEFL8tDBR9PR%3DZhbjMQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>>
>>
> --
> You received this message because you are subscribed to the Google Groups
> "blink-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to blink-dev+unsubscr...@chromium.org.
> To view this discussion on the web visit
> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/54b7584d-edb1-d92d-4a84-b499593a1710%40chromium.org
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/54b7584d-edb1-d92d-4a84-b499593a1710%40chromium.org?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw9H6bNvtexHGxuKqdWsHgjv-A%3DnFFPq4knsdawDYG1JLw%40mail.gmail.com.

Reply via email to