* The output of a MediaStream object MUST correspond to the tracks in its input. > Not clear how to test (or what it means) * Muted audio tracks MUST be replaced with silence. = disabled-audio-silence.html * Muted video tracks MUST be replaced with blackness. = disabled-video-black.html * MediaStream constructor algorithm = mediastream-constructor.html * The track set MUST contain the MediaStreamTrack objects that correspond to the tracks of the stream. > Not clear how to test (or what it means) * MediaStream end algorithm, incl. network vs user interaction task source * MediaStream interface WebIDL = mediastream-idl.html * The MediaStream.ended attribute MUST return true if the MediaStream has finished, and false otherwise. = stream-ended.html = mediastream-finished-add.html * When a MediaStream object is created, its ended attribute MUST be set to false = stream-ended.html * [If a MediaStream] is being created using the MediaStream() constructor whose arguments are lists of MediaStreamTrack objects that are all ended, in which case the MediaStream object MUST be created with its ended attribute set to true. = mediastream-constructor.html * When a MediaStream object is created, the user agent MUST generate a globally unique identifier string, and MUST initialize the object's id attribute to that string. Such strings MUST only use characters in the ranges U+0021, U+0023 to U+0027, U+002A to U+002B, U+002D to U+002E, U+0030 to U+0039, U+0041 to U+005A, U+005E to U+007E, and MUST be 36 characters long. The id attribute MUST return the value to which it was initialized when the object was created. = mediastream-id.html * mediastream addtrack events (addEventListener + onaddtrack) = mediastream-addtrack.html * mediastream removetrack events (addEventListener + onremovetrack) = mediastream-removetrack.html * mediastream onended events (addEventListener + onended) = stream-ended.html * mediastream addTrack algorithm = mediastream-addtrack.html = mediastream-finished-add.html * mediastream clone algorithm > dependent on mediastreamtrack clone algorithm * The getAudioTracks() method MUST return a sequence that represents a snapshot of all the MediaStreamTrack objects in this stream's track set whose kind is equal to "audio" = audio.html * The getTrackById() method MUST return the first MediaStreamTrack object in this stream's track set whose id is equal to trackId. The method MUST return null if no track matches the trackId argument. = mediastream-gettrackid.html * The getVideoTracks() method MUST return a sequence that represents a snapshot of all the MediaStreamTrack objects in this stream's track set whose kind is equal to "video". = video.html * removeTrack algorithm = mediastream-removetrack.html = mediastream-finished-add.html * mediastreamtrack end algorithm = mediastreamtrack-end.html * When track constraints change, a user agent must queue a task to evaluate those changes when the task queue is next serviced > lacks proper algorithm, see https://www.w3.org/Bugs/Public/show_bug.cgi?id=22273 * idl = mediastreamtrack-init.html * If the track (audio or video) is backed by a read-only source such as a file, or the track source is a local microphone or camera, but is shared so that this track cannot modify any of the source's settings, the readonly attribute MUST return the value true. > unclear what it means to be a read-only track see https://www.w3.org/Bugs/Public/show_bug.cgi?id=22243 * The MediaStreamTrack.enabled attribute, on getting, MUST return the last value to which it was set. On setting, it MUST be set to the new value, and then, if the MediaStreamTrack object is still associated with a track, MUST enable the track if the new value is true, and disable it otherwise. = stream-api/introduction/disabled-video-black.html = stream-api/introduction/disabled-audio-silence.html * Unless a MediaStreamTrack object is created as a part a of special purpose algorithm that specifies how the track id must be initialized, the user agent MUST generate a globally unique identifier string and initialize the object's id attribute to that string. ? test webrtc obtained mediastreamtrack id * The MediaStreamTrack.kind attribute MUST return the string "audio" if the object represents an audio track or "video" if object represents a video track. = stream-api/mediastream/video.html = stream-api/mediastream/audio.html