- From: Adam Bergkvist <adam.bergkvist@ericsson.com>
- Date: Thu, 11 Jun 2015 08:36:38 +0000
- To: "public-webrtc-editors@w3.org" <public-webrtc-editors@w3.org>
Hi
I've done some investigating. My initial thought is that this will
require some more work.
/Adam
=================
# srcObject attribute description in the Media Capture and Streams spec
"This attribute overrides both the src attribute and any <source>
elements. Specifically, if srcObject is specified, the User Agent MUST
use it as the source of media, even if the src attribute is also set or
<source> children are present."
Comment: Covered.
"If the value of srcObject is replaced or set to null the User Agent
MUST re-run the media element load algorithm"
Comment: Covered
# Modifications/restrictions mentioned in the Media Capture and Streams
spec:
"Whenever the User Agent runs the media element load algorithm, if
srcObject is specified, the User Agent must immediately go to the
resource fetch phase of the algorithm."
Comment: The HTML5.1 document simply says that the "media element load
algorithm" should be run when the srcObject is set. This will be a
change in behavior since step 3 (of the "media element load algorithm")
will fire an "abort" event (networkState is always NETWORK_IDLE). Step 4
will queue a task that fires an additional event ("emptied") (also
because of the network state). One way to avoid these events would be to
force the NETWORK_EMPTY state ahead of running the "media element load
algorithm". The state would be set back to NETWORK_IDLE later in the
"resource fetch algorithm".
"Whenever the User Agent runs the media element load algorithm, and
reaches the resource fetch phase of this algorithm, if it determines
that the media resource in question is a MediaStream, it MUST
immediately abort the resource selection algorithm, and set the
media.readyState to HAVE_NOTHING if the MediaStream is inactive, or
HAVE_ENOUGH_DATA if it is active."
Comment: The HTML5.1 document doesn't prevent the "resource selection
algorithm" from running for srcObject=MediaStream. Instead, the
algorithm has a special mode (mode=object) if the element has an
"assigned media provider object". The "resource selection algorithm"
also updates the networkState to values not supported by the attribute
table in the MediaCap spec (NETWORK_NO_SOURCE and NETWORK_LOADING).
"Let the media resource, represented by the MediaStream object, indicate
to the media element load algorithm that all audio tracks and all live
video tracks (represented by a MediaStreamTrack with the readyState
attribute set to live) should be enabled. This allows the media element
load algorithm to set AudioTrack.enabled, VideoTrack.selected and
VideoTrackList.selectedIndex accordingly."
Comment: Covered ("if the user agent has information that would
facilitate the selection of specific audio tracks to improve the user's
experience")
"If a MediaStreamTrack is removed from a MediaStream, played by a media
element, the corresponding AudioTrack or VideoTrack MUST be removed as
well."
Comment: Not covered (at least directly).
"The User Agent MUST NOT buffer data from a MediaStream. When playing,
the User Agent MUST always play the current data from the stream."
Comment: Not covered (at least directly).
"When the MediaStream state moves from the active to the inactive state,
the User Agent MUST raise an ended event on the media element and set
its ended attribute to true. Note that once ended equals true the media
element will not play media even if new Tracks are added to the
MediaStream (causing it to return to the active state) unless autoplay
is true or the JavaScript restarts the element, e.g., by calling play()."
Comment: Not covered (at least directly).
Received on Thursday, 11 June 2015 08:37:05 UTC