[minutes] Media WG Call - 2020-09-08

Hi all,

The minutes of yesterday's Media WG call are available at:
https://www.w3.org/2020/09/08-mediawg-minutes.html

... and copied as raw text below.

The call focused on getting consensus around the treatment of two 
clarifying EME issues (#451 on "usable-in-future" status and #473 on 
handling hardware context reset), and on triaging other issues with a 
"v2" milestone to clarify issues that the group intends to address. 
Similar triaging for MSE will start offline among MSE editors.

Thanks,
Francois.

-----
Media WG call
08 September 2020

    [2]Agenda. [3]IRC log.

       [2] 
https://github.com/w3c/media-wg/blob/master/meetings/2020-09-08-Media_Working_Group_Teleconference-agenda.md
       [3] https://www.w3.org/2020/09/08-mediawg-irc

Attendees

    Present
           Becca Hughes, Chris Needham, Francois Daoust, Gary
           Katsevman, Greg Freedman, Theresa O'Connor, Jean-Yves
           Avenard, Jer Noble, Joey Parrish, Mark Watson, Matt
           Wolenetz, Mounir Lamouri, Peng Liu, Xiaohan Wang

    Regrets
           -

    Chair
           Jer, Mounir

    Scribe
           tidoust

Contents

     1. [4]Add "usable-in-future" to MediaKeyStatus (#451)
     2. [5]Handling hardware context reset (#473)
     3. [6]Triage MSE/EME issues
          1. [7]EME issue #468
          2. [8]EME issue #466
          3. [9]EME issue #464
          4. [10]EME issue #461
          5. [11]EME issue #460
          6. [12]EME issues #453, #452
          7. [13]EME issue #450
          8. [14]EME issues #449
          9. [15]EME issues #448 and #447
         10. [16]EME issue #443
         11. [17]EME issue #442
         12. [18]EME issue #440
         13. [19]EME issue #438
         14. [20]EME issue #433
         15. [21]MSE issues
     4. [22]Next calls

Meeting minutes

   Add "usable-in-future" to MediaKeyStatus (#451)

    [23]Issue #451

      [23] https://github.com/w3c/encrypted-media/issues/451

    jernoble: A couple of "OK" in comments. Anything to discuss?

    Xiaohan_Wang: Originally filed the issue.
    … I see Greg and Joey agree. We just brought it to see if there
    is consensus, then we can work on actual text

    jernoble: Additional status field that represents a "future"
    state, right?

    Xiaohan_Wang: Correct.
    … Only "usable" or "expired" could be used and don't apply this
    status

    jernoble: No objection heard. I think we can go ahead

   Handling hardware context reset (#473)

    [24]Issue #473

      [24] https://github.com/w3c/encrypted-media/issues/473

    Xiaohan_Wang: For certain hardware based CDM systems, if the
    device enters suspend/resume, or if the user switches monitors,
    e.g. from one graphics card to another, the hardware context
    for the session would be lost.
    … In some cases, media playback will fail.
    … In Windows, the system will throw a special HResult status.
    … The current spec does not explain how to expose this.
    Application rely on workarounds.
    … These kind of errors are not real errors, just "normal"
    workflow for users.
    … If we retry, it should work.
    … No standard way to detect this case though.
    … I'm proposing to specify this process.
    … One aspect is MediaElement, firing a waitingForKey event
    while playback stalls.
    … Another aspect is on the EME side, to change the closed
    attribute. The closed promise does not return any parameter, so
    no way to know why the session got closed.
    … Idea is to return a reason.
    … Equipped with that, the application would know what happened
    and would be able to deal with it.
    … Same thing, looking to achieve consensus here.

    jernoble: How is this different to having all the key statuses
    set to expired?

    Xiaohan_Wang: expiration is misleading. The whole CDM set has
    been reset. In this case, the CDM will lose all its state, so
    it won't even know which keys it had.
    … The EME stack of the browser would have to remember all the
    key IDs that the EME session had before the hardware context
    reset happened.
    … That doesn't fit this case very well, and more work for
    implementations.

    jernoble: For context, Webkit already keeps a cache of key ids

    jernoble: From an ecosystem point of view, introducing a new
    status won't get a lot of adoption, especially if it
    essentially just happens on Windows.

    Xiaohan_Wang: I think the special media foundation error is
    Windows specific, but the hardware scenario is common to
    multiple platforms.
    … If I'm new to this and implement a JS player, why should I
    know that if all key IDs are expired, then we're in the
    hardware context reset case?
    … Session closed vs. all session keys expired. In both cases,
    we need to update the EME spec to explain what needs to happen
    in such a scenario.
    … My point of adding a status is that it would make things
    super clear.
    … I talked with people who did not realize that the session
    could be closed in such ways.

    jya_: Adding to what Jer said, the error is transparent. Why
    can't you resume playback once you have re-negotiated your
    keys?

    Xiaohan_Wang: Only the JS can re-negotiate the keys currently.
    … While the license is there, the media element can resume the
    playback.

    jya_: You should be able to totally hide that this error
    happened, and have the user agent do things under the hoods and
    resume playback later on.

    Xiaohan_Wang: For normal video playback, all the playback is
    happening on the client. User or JS won't see anything.
    … In this case, there must be network traffic going to
    JavaScript.
    … On the media element, the current proposal is to add a
    "waitingForKey" event. Other than that, there is no error.
    Then, if the JS re-negotiates some license, then then media
    element can resume the playback automatically.
    … Some JS players can also tear down everything and restart
    everything, but that will add some latency.
    … JS can also add a play button. Multiple ways to do it, the
    goal is to have a clear way to signal that this happens to the
    JS.

    JoeyParrish: Jean-Yves, the source of confusion may be that all
    network communications need to go through the application.
    There is no way to re-negotiate the licenses without involving
    the application.
    … To Jer's point about re-using expired, I can see the desire
    not to introduce new things to solve this problem.
    … But if the CDM can close itself, it can't hurt to have an
    enum to say why it closed itself. Certainly in Shaka Player, we
    would change behavior when we see expired statuses.
    … Also "expired" is confusing for developers.

    jernoble: Clarifying question, do we have a list of reasons why
    a CDM can close itself?

    JoeyParrish: That doesn't exist today. Right now, the spec says
    that the CDM can close itself, it doesn't say why.
    … There's a Promise<void> for now.
    … This proposal would return a Promise<Reason>

    gregfreedman: Joey clarified what I wanted to say. Nothing
    added to EME on top of the reason why the closed happens. More
    information about whether things got closed by the application
    or by the CDM. And if by the CDM, why?

    Xiaohan_Wang: We kind of talked about possible enum values last
    time as well. HARDWARE_CONTEXT_RESET. Also one for application
    reason when the session is closed by the application.
    … And a third one for the CDM.

    jernoble: I don't hear any objection to this idea, so it seems
    reasonable to prepare a PR for this, so that we can discuss
    with concrete text in front of us.
    … Does that sound reasonable?

    [Plenty of silence heard]

   Triage MSE/EME issues

    <mounir> [25]https://github.com/w3c/encrypted-media/issues

      [25] https://github.com/w3c/encrypted-media/issues

    mounir: We could either start with MSE/EME. EME should go fast
    because the charter is very specific about what we may be
    doing.
    … I see some already marked as v2.

    JoeyParrish: These are all relatively new, probably in the last
    month or so. 17 issues without milestones, the rest qualified
    as "backlog"

    mounir: Where backlog means not taken care of, right?

    JoeyParrish: Correct.

    mounir: I'm happy with that. I suggest we review [26]issues
    without milestones

      [26] 
https://github.com/w3c/encrypted-media/issues?q=is:open+is:issue+no:milestone

     EME issue #468

    [27]Issue #468

      [27] https://github.com/w3c/encrypted-media/issues/468

    JoeyParrish: Issue #468 seems to be more a broken TV than an
    issue with the spec.
    … This seems more to be a question, hence the "question" tag

     EME issue #466

    [28]Issue #466

      [28] https://github.com/w3c/encrypted-media/issues/466

    mounir: Issue #466 seems to be more an issue about the spec

    JoeyParrish: Not sure I understand and what would need to be
    done to clarify this in the spec.
    … Should this go to v2 or backlog?

    mounir: Seems either a bug or a clarification
    … I wonder whether other specs mention behavior after unload
    time

    Xiaohan_Wang: I know that we're already handling this in
    Chromium. We'll just reject the promise.

     EME issue #464

    [29]Issue #464

      [29] https://github.com/w3c/encrypted-media/issues/464

    mounir: Any input on that one?

    JoeyParrish: Do we know for Widevine and Fairplay?

    Xiaohan_Wang: I'll have to check.

    jernoble: It's... complicated. Even within the system CDM
    family, you have a wide range of keys available.

    JoeyParrish: Perhaps we need some type of editorial note that
    there is some variation on the length of acceptable keys.
    … Should we keep questions/bugs together, flagged as v2?

    mounir: I expect that the critical matter is new features that
    have to match the charter.

    JoeyParrish: Then I would suggest that such issues that should
    have us add some text to the spec, we put a v2 milestone to
    them, and then see later on whether we want to put them to the
    backlog

     EME issue #461

    [30]Issue #461

      [30] https://github.com/w3c/encrypted-media/issues/461

    mounir: Issue #461 seems to be editorial in nature.

    jernoble: I would make a generic recommendation to add a bug
    label, so that we can look at them offline afterwards. And then
    use a "v2bugs" milestone for instance.

     EME issue #460

    [31]Issue #460

      [31] https://github.com/w3c/encrypted-media/issues/460

    Xiaohan_Wang: Issue #460 seems to be clarification

    mounir: OK, I'll use the "bug" label too

     EME issues #453, #452

    [32]Issue #453

      [32] https://github.com/w3c/encrypted-media/issues/453

    [33]Issue #452

      [33] https://github.com/w3c/encrypted-media/issues/452

    mounir: Just a WebIDL update
    … Same for #452

     EME issue #450

    [34]Issue #450

      [34] https://github.com/w3c/encrypted-media/issues/450

    JoeyParrish: Actually matches an issue against Shaka Player. In
    short, there is no good way to figure that out. I suggest
    putting it to the backlog, but will look into it.

     EME issues #449

    [35]Issue #449

      [35] https://github.com/w3c/encrypted-media/issues/449

    JoeyParrish: #449 is a feature request, but in the backlog, not
    something we're planning to work on. It involves multiple CDMs
    working simultaneously, which seems a bit exotic.

     EME issues #448 and #447

    [36]Issue #448

      [36] https://github.com/w3c/encrypted-media/issues/448

    [37]Issue #447

      [37] https://github.com/w3c/encrypted-media/issues/447

    mounir: #448 and #447 are spec comments / IDL. I will add the
    bug labels. Right now, v2, but this can be adjusted as needed.

    Xiaohan_Wang: Right, not familiar with strings and enums.

     EME issue #443

    [38]Issue #443

      [38] https://github.com/w3c/encrypted-media/issues/443

    JoeyParrish: #443 is more a question

     EME issue #442

    [39]Issue #442

      [39] https://github.com/w3c/encrypted-media/issues/442

    mounir: #442 seems to be a new feature request.

    JoeyParrish: Right, if it were v2, we should discuss.

    jernoble: Isn't that a case where update will fail?

    JoeyParrish: Potentially, you might have one key that is usable
    and another one that is not.

    Xiaohan_Wang: Similar to scenarios we discussed. When update is
    called, maybe the key is usable but then becomes unusable later
    on

    mounir: should we move that to backlog?

    JoeyParrish: Sounds good

     EME issue #440

    [40]Issue #440

      [40] https://github.com/w3c/encrypted-media/issues/440

    JoeyParrish: Recurring conversation. We probably want to tweak
    the spec.

     EME issue #438

    [41]Issue #438

      [41] https://github.com/w3c/encrypted-media/issues/438

    JoeyParrish: I think #438 is "bug" and v2.

     EME issue #433

    [42]Issue #433

      [42] https://github.com/w3c/encrypted-media/issues/433

    mounir: bug and v2

     MSE issues

    mounir: Moving on to MSE.

    mattwolenetz_: There is a v2BugFixes milestone already

    mounir: 76 issues without milestone

    mattwolenetz_: I want to make sure that I have the input from
    my co-editor.
    … I see Mark dropped from the call.
    … I expect the bulk of triaging to happen offline.
    … MSE in workers feature is the main priority for now, because
    we expect that to be the bulk of v2. That should soon land.
    … We can look at other issues later on.

    mounir: Some of the other issues are rather old and could be
    closed rather quickly.
    … We may want to do MSE triaging at the end of next call.

    mattwolenetz_: I would support doing triaging of MSE issues in
    next call

    mounir: Yes, we need to get down to ~20 issues. 76 is too much
    to go over them in a call.

   Next calls

    mounir: The day after our next call, there will be a joint
    meeting with Timed Text and the Media & Entertainment IG. I
    recommend everyone to attend that call. I would like to get
    feedback on the API for TextTrack enhancements.

    [meeting adjourned]

Received on Wednesday, 9 September 2020 12:22:43 UTC