Changeset 105138 in webkit


Ignore:
Timestamp:
Jan 17, 2012 3:13:00 AM (12 years ago)
Author:
tommyw@google.com
Message:

MediaStream API: Add the mediaStream constructor
https://bugs.webkit.org/show_bug.cgi?id=76436

Adding support for creating a MediaStream using a collection of MediaStreamTracks.

Reviewed by Adam Barth.

Tests for the Media Stream API will be provided by the bug 56587, pending enough landed code.

  • mediastream/MediaStream.cpp:

(WebCore::MediaStream::create):

  • mediastream/MediaStream.h:
  • mediastream/MediaStream.idl:
  • mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::component):

  • mediastream/MediaStreamTrack.h:
  • platform/mediastream/MediaStreamCenter.cpp:

(WebCore::MediaStreamCenter::didConstructMediaStream):

  • platform/mediastream/MediaStreamCenter.h:
Location:
trunk/Source/WebCore
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r105137 r105138  
     12012-01-17  Tommy Widenflycht  <tommyw@google.com>
     2
     3        MediaStream API: Add the mediaStream constructor
     4        https://bugs.webkit.org/show_bug.cgi?id=76436
     5
     6        Adding support for creating a MediaStream using a collection of MediaStreamTracks.
     7
     8        Reviewed by Adam Barth.
     9
     10        Tests for the Media Stream API will be provided by the bug 56587, pending enough landed code.
     11
     12        * mediastream/MediaStream.cpp:
     13        (WebCore::MediaStream::create):
     14        * mediastream/MediaStream.h:
     15        * mediastream/MediaStream.idl:
     16        * mediastream/MediaStreamTrack.cpp:
     17        (WebCore::MediaStreamTrack::component):
     18        * mediastream/MediaStreamTrack.h:
     19        * platform/mediastream/MediaStreamCenter.cpp:
     20        (WebCore::MediaStreamCenter::didConstructMediaStream):
     21        * platform/mediastream/MediaStreamCenter.h:
     22
    1232012-01-17  Joshua Bell  <jsbell@chromium.org>
    224
  • trunk/Source/WebCore/mediastream/MediaStream.cpp

    r98388 r105138  
    3030
    3131#include "Event.h"
     32#include "MediaStreamCenter.h"
    3233#include "ScriptExecutionContext.h"
     34#include "UUID.h"
    3335
    3436namespace WebCore {
     37
     38PassRefPtr<MediaStream> MediaStream::create(ScriptExecutionContext* context, PassRefPtr<MediaStreamTrackList> prpTracks)
     39{
     40    RefPtr<MediaStreamTrackList> tracks = prpTracks;
     41    MediaStreamSourceVector sources;
     42    for (unsigned i = 0; i < tracks->length(); ++i)
     43        sources.append(tracks->item(i)->component()->source());
     44
     45    RefPtr<MediaStreamDescriptor> descriptor = MediaStreamDescriptor::create(createCanonicalUUIDString(), sources);
     46    MediaStreamCenter::instance().didConstructMediaStream(descriptor.get());
     47    return adoptRef(new MediaStream(context, descriptor.release()));
     48}
    3549
    3650PassRefPtr<MediaStream> MediaStream::create(ScriptExecutionContext* context, PassRefPtr<MediaStreamDescriptor> streamDescriptor)
  • trunk/Source/WebCore/mediastream/MediaStream.h

    r100997 r105138  
    4848
    4949    static PassRefPtr<MediaStream> create(ScriptExecutionContext*, PassRefPtr<MediaStreamDescriptor>);
     50    static PassRefPtr<MediaStream> create(ScriptExecutionContext*, PassRefPtr<MediaStreamTrackList>);
    5051    virtual ~MediaStream();
    5152
  • trunk/Source/WebCore/mediastream/MediaStream.idl

    r98196 r105138  
    2727    interface [
    2828        Conditional=MEDIA_STREAM,
    29         EventTarget
    30     ] MediaStream {
     29        EventTarget,
     30        Constructor(in MediaStreamTrackList trackList),
     31        CallWith=ScriptExecutionContext
     32   ] MediaStream {
    3133        readonly attribute DOMString label;
    3234        readonly attribute MediaStreamTrackList tracks;
  • trunk/Source/WebCore/mediastream/MediaStreamTrack.cpp

    r100997 r105138  
    3030
    3131#include "MediaStreamCenter.h"
     32#include "MediaStreamComponent.h"
    3233
    3334namespace WebCore {
     
    8485}
    8586
     87MediaStreamComponent* MediaStreamTrack::component()
     88{
     89    return m_streamDescriptor->component(m_trackIndex);
     90}
     91
    8692} // namespace WebCore
    8793
  • trunk/Source/WebCore/mediastream/MediaStreamTrack.h

    r98196 r105138  
    3737namespace WebCore {
    3838
     39class MediaStreamComponent;
     40
    3941class MediaStreamTrack : public RefCounted<MediaStreamTrack> {
    4042public:
     
    4749    bool enabled() const;
    4850    void setEnabled(bool);
     51
     52    MediaStreamComponent* component();
    4953
    5054private:
  • trunk/Source/WebCore/platform/mediastream/MediaStreamCenter.cpp

    r100997 r105138  
    5858// FIXME: remove when real implementations are available
    5959// Empty implementations for ports that build with MEDIA_STREAM enabled by default.
     60
    6061MediaStreamCenter::MediaStreamCenter()
    6162{
     
    8081}
    8182
     83void MediaStreamCenter::didConstructMediaStream(MediaStreamDescriptor*)
     84{
     85}
     86
    8287} // namespace WebCore
    8388
  • trunk/Source/WebCore/platform/mediastream/MediaStreamCenter.h

    r100997 r105138  
    6666    void didSetMediaStreamTrackEnabled(MediaStreamDescriptor*, unsigned componentIndex);
    6767    void didStopLocalMediaStream(MediaStreamDescriptor*);
     68    void didConstructMediaStream(MediaStreamDescriptor*);
    6869
    6970    // Calls from the platform to update the DOM objects
Note: See TracChangeset for help on using the changeset viewer.