[webkit-reviews] review denied: [Bug 123477] Adding addRemoteTrack and removeRemoteTrack functions to MediaStreamDescriptor and MediaStream : [Attachment 215441] Patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Oct 30 18:14:29 PDT 2013


Eric Carlson <eric.carlson at apple.com> has denied Thiago de Barros Lacerda
<thiago.lacerda at openbossa.org>'s request for review:
Bug 123477: Adding addRemoteTrack and removeRemoteTrack functions to
MediaStreamDescriptor and MediaStream
https://bugs.webkit.org/show_bug.cgi?id=123477

Attachment 215441: Patch
https://bugs.webkit.org/attachment.cgi?id=215441&action=review

------- Additional Comments from Eric Carlson <eric.carlson at apple.com>
View in context: https://bugs.webkit.org/attachment.cgi?id=215441&action=review


As we talked about on irc, it would be good to get rid of
MediaStreamDescriptor::addSource and MediaStreamDescriptor::removeSource.

> Source/WebCore/ChangeLog:27
> +	   * Modules/mediastream/MediaStream.cpp:
> +	   (WebCore::MediaStream::addTrack):
> +	   (WebCore::MediaStream::removeTrack):
> +	   (WebCore::MediaStream::addRemoteSource):
> +	   (WebCore::MediaStream::removeRemoteSource):
> +	   (WebCore::MediaStream::addRemoteTrack):
> +	   (WebCore::MediaStream::removeRemoteTrack):
> +	   (WebCore::MediaStream::getTrackVector):
> +	   * Modules/mediastream/MediaStream.h:
> +	   * Modules/mediastream/MediaStreamTrack.h:
> +	   (WebCore::MediaStreamTrack::privateTrack):
> +	   * platform/mediastream/MediaStreamDescriptor.cpp:
> +	   (WebCore::MediaStreamDescriptor::addRemoteTrack):
> +	   (WebCore::MediaStreamDescriptor::removeRemoteTrack):
> +	   * platform/mediastream/MediaStreamDescriptor.h:

Comments please.

> Source/WebCore/Modules/mediastream/MediaStream.cpp:163
> +    MediaStreamTrackVector* tracks =
getTrackVector(track->source()->type());

This won't work because "track" is NULL after begin used above. You need to add
something like "RefPtr<MediaStreamTrack> track = prpTrack" before the
PassRefPtr is dereferenced.

Nit: maybe change the name to "getTrackVectorForType"?

> Source/WebCore/Modules/mediastream/MediaStream.cpp:196
> +    MediaStreamTrackVector* tracks =
getTrackVector(track->source()->type());
> +
> +    if (!tracks)
> +	   return false;
>  
> +    size_t pos = tracks->find(track);

Ditto about using a PassRefPtr.

> Source/WebCore/Modules/mediastream/MediaStream.cpp:279
> +    RefPtr<MediaStreamTrackPrivate> track =
MediaStreamTrackPrivate::create(source);
> +    addRemoteTrack(track.get());

Nit: this can be done on a single line.

> Source/WebCore/Modules/mediastream/MediaStream.cpp:342
>	  
scheduleDispatchEvent(MediaStreamTrackEvent::create(eventNames().removetrackEve
nt, false, false, track.release()));

Why don't we dispatch the event in removeTrack?

> Source/WebCore/Modules/mediastream/MediaStream.h:101
>      virtual void addRemoteSource(MediaStreamSource*) OVERRIDE FINAL;
>      virtual void removeRemoteSource(MediaStreamSource*) OVERRIDE FINAL;
> +    virtual void addRemoteTrack(MediaStreamTrackPrivate*) OVERRIDE FINAL;
> +    virtual void removeRemoteTrack(MediaStreamTrackPrivate*) OVERRIDE FINAL;


Why do we need both versions, can we just have add/removeRemoteTrack?

> Source/WebCore/platform/mediastream/MediaStreamDescriptor.h:53
>      virtual void addRemoteSource(MediaStreamSource*) = 0;
>      virtual void removeRemoteSource(MediaStreamSource*) = 0;

Can these be removed - is there ever a reason to pass the source directly to
MediaStream instead of creating the private track and passing that?


More information about the webkit-reviews mailing list