Diff
Modified: trunk/Source/WebCore/CMakeLists.txt (156487 => 156488)
--- trunk/Source/WebCore/CMakeLists.txt 2013-09-26 19:23:11 UTC (rev 156487)
+++ trunk/Source/WebCore/CMakeLists.txt 2013-09-26 19:37:48 UTC (rev 156488)
@@ -216,6 +216,7 @@
Modules/mediasource/WebKitSourceBuffer.idl
Modules/mediasource/WebKitSourceBufferList.idl
+ Modules/mediastream/AudioStreamTrack.idl
Modules/mediastream/MediaStream.idl
Modules/mediastream/MediaStreamEvent.idl
Modules/mediastream/MediaStreamTrack.idl
@@ -239,6 +240,7 @@
Modules/mediastream/RTCStatsReport.idl
Modules/mediastream/RTCStatsResponse.idl
Modules/mediastream/SourceInfo.idl
+ Modules/mediastream/VideoStreamTrack.idl
Modules/navigatorcontentutils/NavigatorContentUtils.idl
@@ -837,6 +839,7 @@
Modules/mediasource/SourceBuffer.cpp
Modules/mediasource/SourceBufferList.cpp
+ Modules/mediastream/AudioStreamTrack.cpp
Modules/mediastream/MediaConstraintsImpl.cpp
Modules/mediastream/MediaStream.cpp
Modules/mediastream/MediaStreamEvent.cpp
@@ -862,6 +865,7 @@
Modules/mediastream/SourceInfo.cpp
Modules/mediastream/UserMediaController.cpp
Modules/mediastream/UserMediaRequest.cpp
+ Modules/mediastream/VideoStreamTrack.cpp
Modules/navigatorcontentutils/NavigatorContentUtils.cpp
Modified: trunk/Source/WebCore/ChangeLog (156487 => 156488)
--- trunk/Source/WebCore/ChangeLog 2013-09-26 19:23:11 UTC (rev 156487)
+++ trunk/Source/WebCore/ChangeLog 2013-09-26 19:37:48 UTC (rev 156488)
@@ -1,3 +1,34 @@
+2013-09-26 Eric Carlson <[email protected]>
+
+ [MediaStream API] implement VideoStreamTrack and AudioStreamTrack
+ https://bugs.webkit.org/show_bug.cgi?id=121950
+
+ Reviewed by Dean Jackson.
+
+ No new tests, blocked by https://bugs.webkit.org/show_bug.cgi?id=121967
+
+ * CMakeLists.txt: Add new files.
+ * DerivedSources.make: Ditto.
+ * GNUmakefile.list.am: Ditto.
+
+ * Modules/mediastream/AudioStreamTrack.cpp: Added.
+ * Modules/mediastream/AudioStreamTrack.h: Added.
+ * Modules/mediastream/AudioStreamTrack.idl: Added.
+
+ * Modules/mediastream/MediaStream.cpp:
+ (WebCore::MediaStream::MediaStream): Create an AudioStreamTrack or a VideoStreamTrack.
+ (WebCore::MediaStream::addRemoteSource): Ditto.
+
+ * Modules/mediastream/MediaStreamTrack.cpp:
+ (WebCore::MediaStreamTrack::create): Removed.
+ * Modules/mediastream/MediaStreamTrack.h:
+
+ * Modules/mediastream/VideoStreamTrack.cpp: Added.
+ * Modules/mediastream/VideoStreamTrack.h: Added.
+ * Modules/mediastream/VideoStreamTrack.idl: Added.
+
+ * WebCore.xcodeproj/project.pbxproj: Add new files.
+
2013-09-26 Anders Carlsson <[email protected]>
Stop using PassWeak
Modified: trunk/Source/WebCore/DerivedSources.make (156487 => 156488)
--- trunk/Source/WebCore/DerivedSources.make 2013-09-26 19:23:11 UTC (rev 156487)
+++ trunk/Source/WebCore/DerivedSources.make 2013-09-26 19:37:48 UTC (rev 156488)
@@ -124,7 +124,8 @@
$(WebCore)/Modules/mediasource/WebKitSourceBufferList.idl \
$(WebCore)/Modules/mediasource/SourceBuffer.idl \
$(WebCore)/Modules/mediasource/SourceBufferList.idl \
- $(WebCore)/Modules/mediastream/MediaStream.idl \
+ $(WebCore)/Modules/mediastream/AudioStreamTrack.idl \
+ $(WebCore)/Modules/mediastream/MediaStream.idl \
$(WebCore)/Modules/mediastream/MediaStreamEvent.idl \
$(WebCore)/Modules/mediastream/MediaStreamTrack.idl \
$(WebCore)/Modules/mediastream/MediaStreamTrackEvent.idl \
@@ -146,6 +147,7 @@
$(WebCore)/Modules/mediastream/RTCStatsCallback.idl \
$(WebCore)/Modules/mediastream/RTCStatsReport.idl \
$(WebCore)/Modules/mediastream/RTCStatsResponse.idl \
+ $(WebCore)/Modules/mediastream/VideoStreamTrack.idl \
$(WebCore)/Modules/mediastream/SourceInfo.idl \
$(WebCore)/Modules/notifications/DOMWindowNotifications.idl \
$(WebCore)/Modules/notifications/Notification.idl \
Modified: trunk/Source/WebCore/GNUmakefile.list.am (156487 => 156488)
--- trunk/Source/WebCore/GNUmakefile.list.am 2013-09-26 19:23:11 UTC (rev 156487)
+++ trunk/Source/WebCore/GNUmakefile.list.am 2013-09-26 19:37:48 UTC (rev 156488)
@@ -59,6 +59,8 @@
DerivedSources/WebCore/JSAudioParam.h \
DerivedSources/WebCore/JSAudioProcessingEvent.cpp \
DerivedSources/WebCore/JSAudioProcessingEvent.h \
+ DerivedSources/WebCore/JSAudioStreamTrack.cpp \
+ DerivedSources/WebCore/JSAudioStreamTrack.h \
DerivedSources/WebCore/JSAudioTrack.cpp \
DerivedSources/WebCore/JSAudioTrack.h \
DerivedSources/WebCore/JSAudioTrackList.cpp \
@@ -758,6 +760,8 @@
DerivedSources/WebCore/JSValidityState.h \
DerivedSources/WebCore/JSVoidCallback.cpp \
DerivedSources/WebCore/JSVoidCallback.h \
+ DerivedSources/WebCore/JSVideoStreamTrack.h \
+ DerivedSources/WebCore/JSVideoStreamTrack.cpp \
DerivedSources/WebCore/JSVideoTrack.cpp \
DerivedSources/WebCore/JSVideoTrack.h \
DerivedSources/WebCore/JSVideoTrackList.cpp \
@@ -1250,6 +1254,7 @@
$(WebCore)/Modules/mediasource/WebKitMediaSource.idl \
$(WebCore)/Modules/mediasource/WebKitSourceBuffer.idl \
$(WebCore)/Modules/mediasource/WebKitSourceBufferList.idl \
+ $(WebCore)/Modules/mediastream/AudioStreamTrack.idl \
$(WebCore)/Modules/mediastream/MediaStream.idl \
$(WebCore)/Modules/mediastream/MediaStreamEvent.idl \
$(WebCore)/Modules/mediastream/MediaStreamTrack.idl \
@@ -1273,6 +1278,7 @@
$(WebCore)/Modules/mediastream/RTCStatsReport.idl \
$(WebCore)/Modules/mediastream/RTCStatsResponse.idl \
$(WebCore)/Modules/mediastream/SourceInfo.idl \
+ $(WebCore)/Modules/mediastream/VideoStreamTrack.idl \
$(WebCore)/Modules/navigatorcontentutils/NavigatorContentUtils.idl \
$(WebCore)/Modules/notifications/DOMWindowNotifications.idl \
$(WebCore)/Modules/notifications/Notification.idl \
@@ -1965,6 +1971,8 @@
Source/WebCore/Modules/mediasource/WebKitSourceBuffer.h \
Source/WebCore/Modules/mediasource/WebKitSourceBufferList.cpp \
Source/WebCore/Modules/mediasource/WebKitSourceBufferList.h \
+ Source/WebCore/Modules/mediastream/AudioStreamTrack.cpp \
+ Source/WebCore/Modules/mediastream/AudioStreamTrack.h \
Source/WebCore/Modules/mediastream/MediaConstraintsImpl.cpp \
Source/WebCore/Modules/mediastream/MediaConstraintsImpl.h \
Source/WebCore/Modules/mediastream/MediaStream.cpp \
@@ -2022,6 +2030,8 @@
Source/WebCore/Modules/mediastream/UserMediaController.cpp \
Source/WebCore/Modules/mediastream/UserMediaRequest.cpp \
Source/WebCore/Modules/mediastream/UserMediaRequest.h \
+ Source/WebCore/Modules/mediastream/VideoStreamTrack.cpp \
+ Source/WebCore/Modules/mediastream/VideoStreamTrack.h \
Source/WebCore/Modules/navigatorcontentutils/NavigatorContentUtils.cpp \
Source/WebCore/Modules/navigatorcontentutils/NavigatorContentUtils.h \
Source/WebCore/Modules/navigatorcontentutils/NavigatorContentUtilsClient.h \
Added: trunk/Source/WebCore/Modules/mediastream/AudioStreamTrack.cpp (0 => 156488)
--- trunk/Source/WebCore/Modules/mediastream/AudioStreamTrack.cpp (rev 0)
+++ trunk/Source/WebCore/Modules/mediastream/AudioStreamTrack.cpp 2013-09-26 19:37:48 UTC (rev 156488)
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2013 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+
+#if ENABLE(MEDIA_STREAM)
+
+#include "AudioStreamTrack.h"
+
+#include "Dictionary.h"
+#include "ScriptExecutionContext.h"
+#include <wtf/NeverDestroyed.h>
+
+namespace WebCore {
+
+PassRefPtr<AudioStreamTrack> AudioStreamTrack::create(ScriptExecutionContext* context, const Dictionary& audioConstraints)
+{
+ RefPtr<AudioStreamTrack> track = adoptRef(new AudioStreamTrack(context, 0, &audioConstraints));
+ return track.release();
+}
+
+PassRefPtr<AudioStreamTrack> AudioStreamTrack::create(ScriptExecutionContext* context, MediaStreamSource* source)
+{
+ RefPtr<AudioStreamTrack> track = adoptRef(new AudioStreamTrack(context, source, 0));
+ return track.release();
+}
+
+AudioStreamTrack::AudioStreamTrack(ScriptExecutionContext* context, MediaStreamSource* source, const Dictionary* audioConstraints)
+ : MediaStreamTrack(context, source, audioConstraints)
+{
+}
+
+const AtomicString& AudioStreamTrack::kind() const
+{
+ static NeverDestroyed<AtomicString> audioKind("audio", AtomicString::ConstructFromLiteral);
+ return audioKind;
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(MEDIA_STREAM)
Added: trunk/Source/WebCore/Modules/mediastream/AudioStreamTrack.h (0 => 156488)
--- trunk/Source/WebCore/Modules/mediastream/AudioStreamTrack.h (rev 0)
+++ trunk/Source/WebCore/Modules/mediastream/AudioStreamTrack.h 2013-09-26 19:37:48 UTC (rev 156488)
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2013 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef AudioStreamTrack_h
+#define AudioStreamTrack_h
+
+#if ENABLE(MEDIA_STREAM)
+
+#include "MediaStreamTrack.h"
+#include <wtf/Vector.h>
+#include <wtf/RefCounted.h>
+
+namespace WebCore {
+
+class MediaStreamSource;
+class ScriptExecutionContext;
+
+class AudioStreamTrack : public MediaStreamTrack {
+public:
+ static PassRefPtr<AudioStreamTrack> create(ScriptExecutionContext*, const Dictionary&);
+ static PassRefPtr<AudioStreamTrack> create(ScriptExecutionContext*, MediaStreamSource*);
+
+ virtual ~AudioStreamTrack() { }
+
+ virtual const AtomicString& kind() const OVERRIDE;
+
+private:
+ AudioStreamTrack(ScriptExecutionContext*, MediaStreamSource*, const Dictionary*);
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(MEDIA_STREAM)
+
+#endif // AudioStreamTrack_h
Added: trunk/Source/WebCore/Modules/mediastream/AudioStreamTrack.idl (0 => 156488)
--- trunk/Source/WebCore/Modules/mediastream/AudioStreamTrack.idl (rev 0)
+++ trunk/Source/WebCore/Modules/mediastream/AudioStreamTrack.idl 2013-09-26 19:37:48 UTC (rev 156488)
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2013 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+[
+ Conditional=MEDIA_STREAM,
+ Constructor(optional Dictionary audioConstraints),
+ ConstructorCallWith=ScriptExecutionContext,
+] interface AudioStreamTrack : MediaStreamTrack {
+};
Modified: trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp (156487 => 156488)
--- trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp 2013-09-26 19:23:11 UTC (rev 156487)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp 2013-09-26 19:37:48 UTC (rev 156488)
@@ -29,12 +29,14 @@
#if ENABLE(MEDIA_STREAM)
+#include "AudioStreamTrack.h"
#include "Event.h"
#include "ExceptionCode.h"
#include "MediaStreamCenter.h"
#include "MediaStreamRegistry.h"
#include "MediaStreamSource.h"
#include "MediaStreamTrackEvent.h"
+#include "VideoStreamTrack.h"
#include <wtf/NeverDestroyed.h>
namespace WebCore {
@@ -124,12 +126,12 @@
size_t numberOfAudioTracks = m_descriptor->numberOfAudioStreams();
m_audioTracks.reserveCapacity(numberOfAudioTracks);
for (size_t i = 0; i < numberOfAudioTracks; i++)
- m_audioTracks.append(MediaStreamTrack::create(context, m_descriptor->audioStreams(i)));
+ m_audioTracks.append(AudioStreamTrack::create(context, m_descriptor->audioStreams(i)));
size_t numberOfVideoTracks = m_descriptor->numberOfVideoStreams();
m_videoTracks.reserveCapacity(numberOfVideoTracks);
for (size_t i = 0; i < numberOfVideoTracks; i++)
- m_videoTracks.append(MediaStreamTrack::create(context, m_descriptor->videoStreams(i)));
+ m_videoTracks.append(VideoStreamTrack::create(context, m_descriptor->videoStreams(i)));
}
MediaStream::~MediaStream()
@@ -275,12 +277,14 @@
source->setStream(descriptor());
- RefPtr<MediaStreamTrack> track = MediaStreamTrack::create(scriptExecutionContext(), source);
+ RefPtr<MediaStreamTrack> track;
switch (source->type()) {
case MediaStreamSource::Audio:
+ track = AudioStreamTrack::create(scriptExecutionContext(), source);
m_audioTracks.append(track);
break;
case MediaStreamSource::Video:
+ track = VideoStreamTrack::create(scriptExecutionContext(), source);
m_videoTracks.append(track);
break;
}
Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp (156487 => 156488)
--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp 2013-09-26 19:23:11 UTC (rev 156487)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp 2013-09-26 19:37:48 UTC (rev 156488)
@@ -42,18 +42,6 @@
namespace WebCore {
-PassRefPtr<MediaStreamTrack> MediaStreamTrack::create(ScriptExecutionContext* context, const Dictionary& videoConstraints)
-{
- RefPtr<MediaStreamTrack> track = adoptRef(new MediaStreamTrack(context, 0, &videoConstraints));
- return track.release();
-}
-
-PassRefPtr<MediaStreamTrack> MediaStreamTrack::create(ScriptExecutionContext* context, MediaStreamSource* source)
-{
- RefPtr<MediaStreamTrack> track = adoptRef(new MediaStreamTrack(context, source, 0));
- return track.release();
-}
-
MediaStreamTrack::MediaStreamTrack(ScriptExecutionContext* context, MediaStreamSource* source, const Dictionary*)
: ActiveDOMObject(context)
, m_source(source)
Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h (156487 => 156488)
--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h 2013-09-26 19:23:11 UTC (rev 156487)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h 2013-09-26 19:37:48 UTC (rev 156488)
@@ -47,13 +47,9 @@
// FIXME: This class should be marked FINAL once <http://webkit.org/b/121747> is fixed.
class MediaStreamTrack : public RefCounted<MediaStreamTrack>, public ScriptWrappable, public ActiveDOMObject, public EventTargetWithInlineData, public MediaStreamSource::Observer {
public:
-
- static PassRefPtr<MediaStreamTrack> create(ScriptExecutionContext*, const Dictionary&);
- static PassRefPtr<MediaStreamTrack> create(ScriptExecutionContext*, MediaStreamSource*);
-
virtual ~MediaStreamTrack();
- const AtomicString& kind() const;
+ virtual const AtomicString& kind() const = 0;
const String& id() const;
const String& label() const;
@@ -83,9 +79,10 @@
using RefCounted<MediaStreamTrack>::ref;
using RefCounted<MediaStreamTrack>::deref;
-private:
+protected:
MediaStreamTrack(ScriptExecutionContext*, MediaStreamSource*, const Dictionary*);
+private:
void trackDidEnd();
// EventTarget
Added: trunk/Source/WebCore/Modules/mediastream/VideoStreamTrack.cpp (0 => 156488)
--- trunk/Source/WebCore/Modules/mediastream/VideoStreamTrack.cpp (rev 0)
+++ trunk/Source/WebCore/Modules/mediastream/VideoStreamTrack.cpp 2013-09-26 19:37:48 UTC (rev 156488)
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2013 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+
+#if ENABLE(MEDIA_STREAM)
+
+#include "VideoStreamTrack.h"
+
+#include "Dictionary.h"
+#include "ScriptExecutionContext.h"
+#include <wtf/NeverDestroyed.h>
+
+namespace WebCore {
+
+PassRefPtr<VideoStreamTrack> VideoStreamTrack::create(ScriptExecutionContext* context, const Dictionary& videoConstraints)
+{
+ RefPtr<VideoStreamTrack> track = adoptRef(new VideoStreamTrack(context, 0, &videoConstraints));
+ return track.release();
+}
+
+PassRefPtr<VideoStreamTrack> VideoStreamTrack::create(ScriptExecutionContext* context, MediaStreamSource* source)
+{
+ RefPtr<VideoStreamTrack> track = adoptRef(new VideoStreamTrack(context, source, 0));
+ return track.release();
+}
+
+VideoStreamTrack::VideoStreamTrack(ScriptExecutionContext* context, MediaStreamSource* source, const Dictionary* videoConstraints)
+ : MediaStreamTrack(context, source, videoConstraints)
+{
+}
+
+const AtomicString& VideoStreamTrack::kind() const
+{
+ static NeverDestroyed<AtomicString> videoKind("video", AtomicString::ConstructFromLiteral);
+ return videoKind;
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(MEDIA_STREAM)
Added: trunk/Source/WebCore/Modules/mediastream/VideoStreamTrack.h (0 => 156488)
--- trunk/Source/WebCore/Modules/mediastream/VideoStreamTrack.h (rev 0)
+++ trunk/Source/WebCore/Modules/mediastream/VideoStreamTrack.h 2013-09-26 19:37:48 UTC (rev 156488)
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2013 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef VideoStreamTrack_h
+#define VideoStreamTrack_h
+
+#if ENABLE(MEDIA_STREAM)
+
+#include "MediaStreamTrack.h"
+#include <wtf/Vector.h>
+#include <wtf/RefCounted.h>
+
+namespace WebCore {
+
+class MediaStreamSource;
+class ScriptExecutionContext;
+
+class VideoStreamTrack : public MediaStreamTrack {
+public:
+ static PassRefPtr<VideoStreamTrack> create(ScriptExecutionContext*, const Dictionary&);
+ static PassRefPtr<VideoStreamTrack> create(ScriptExecutionContext*, MediaStreamSource*);
+
+ virtual ~VideoStreamTrack() { }
+
+ virtual const AtomicString& kind() const OVERRIDE;
+
+private:
+ VideoStreamTrack(ScriptExecutionContext*, MediaStreamSource*, const Dictionary*);
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(MEDIA_STREAM)
+
+#endif // VideoStreamTrack_h
Added: trunk/Source/WebCore/Modules/mediastream/VideoStreamTrack.idl (0 => 156488)
--- trunk/Source/WebCore/Modules/mediastream/VideoStreamTrack.idl (rev 0)
+++ trunk/Source/WebCore/Modules/mediastream/VideoStreamTrack.idl 2013-09-26 19:37:48 UTC (rev 156488)
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2013 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+[
+ Conditional=MEDIA_STREAM,
+ ConstructorCallWith=ScriptExecutionContext,
+ Constructor(optional Dictionary videoConstraints),
+] interface VideoStreamTrack : MediaStreamTrack {
+};
+
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (156487 => 156488)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2013-09-26 19:23:11 UTC (rev 156487)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2013-09-26 19:37:48 UTC (rev 156488)
@@ -266,6 +266,14 @@
07B5A2DC1464320A00A81ECE /* JSTextTrackList.h in Headers */ = {isa = PBXBuildFile; fileRef = 07B5A2DA1464320A00A81ECE /* JSTextTrackList.h */; };
07B5A30D14687D7100A81ECE /* JSTextTrackListCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07B5A30C14687D7100A81ECE /* JSTextTrackListCustom.cpp */; };
07BDD6EC1469B4C2009C9F85 /* JSTrackEventCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07B5A30A14687B8400A81ECE /* JSTrackEventCustom.cpp */; };
+ 07C59B5317F4AC15000FBCBB /* AudioStreamTrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07C59B4D17F4AC15000FBCBB /* AudioStreamTrack.cpp */; };
+ 07C59B5417F4AC15000FBCBB /* AudioStreamTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 07C59B4E17F4AC15000FBCBB /* AudioStreamTrack.h */; };
+ 07C59B5617F4AC15000FBCBB /* VideoStreamTrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07C59B5017F4AC15000FBCBB /* VideoStreamTrack.cpp */; };
+ 07C59B5717F4AC15000FBCBB /* VideoStreamTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 07C59B5117F4AC15000FBCBB /* VideoStreamTrack.h */; };
+ 07C59B5D17F4B208000FBCBB /* JSAudioStreamTrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07C59B5917F4B208000FBCBB /* JSAudioStreamTrack.cpp */; };
+ 07C59B5E17F4B208000FBCBB /* JSAudioStreamTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 07C59B5A17F4B208000FBCBB /* JSAudioStreamTrack.h */; };
+ 07C59B5F17F4B208000FBCBB /* JSVideoStreamTrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07C59B5B17F4B208000FBCBB /* JSVideoStreamTrack.cpp */; };
+ 07C59B6017F4B208000FBCBB /* JSVideoStreamTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 07C59B5C17F4B208000FBCBB /* JSVideoStreamTrack.h */; };
07CE77D516712A6A00C55A47 /* InbandTextTrackPrivateClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 07CE77D416712A6A00C55A47 /* InbandTextTrackPrivateClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
07DC5FD417D3EEE90099F890 /* JSRTCStatsResponseCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07DC5FD317D3EEE90099F890 /* JSRTCStatsResponseCustom.cpp */; };
07E116B11489C9A100EC5ACE /* JSTextTrackCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07E116B01489C9A100EC5ACE /* JSTextTrackCustom.cpp */; };
@@ -6667,6 +6675,16 @@
07B5A3061468537100A81ECE /* TextTrackList.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TextTrackList.idl; sourceTree = "<group>"; };
07B5A30A14687B8400A81ECE /* JSTrackEventCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSTrackEventCustom.cpp; sourceTree = "<group>"; };
07B5A30C14687D7100A81ECE /* JSTextTrackListCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSTextTrackListCustom.cpp; sourceTree = "<group>"; };
+ 07C59B4D17F4AC15000FBCBB /* AudioStreamTrack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AudioStreamTrack.cpp; sourceTree = "<group>"; };
+ 07C59B4E17F4AC15000FBCBB /* AudioStreamTrack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioStreamTrack.h; sourceTree = "<group>"; };
+ 07C59B4F17F4AC15000FBCBB /* AudioStreamTrack.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = AudioStreamTrack.idl; sourceTree = "<group>"; };
+ 07C59B5017F4AC15000FBCBB /* VideoStreamTrack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VideoStreamTrack.cpp; sourceTree = "<group>"; };
+ 07C59B5117F4AC15000FBCBB /* VideoStreamTrack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VideoStreamTrack.h; sourceTree = "<group>"; };
+ 07C59B5217F4AC15000FBCBB /* VideoStreamTrack.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = VideoStreamTrack.idl; sourceTree = "<group>"; };
+ 07C59B5917F4B208000FBCBB /* JSAudioStreamTrack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSAudioStreamTrack.cpp; path = JSAudioStreamTrack.cpp; sourceTree = "<group>"; };
+ 07C59B5A17F4B208000FBCBB /* JSAudioStreamTrack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSAudioStreamTrack.h; path = JSAudioStreamTrack.h; sourceTree = "<group>"; };
+ 07C59B5B17F4B208000FBCBB /* JSVideoStreamTrack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSVideoStreamTrack.cpp; path = JSVideoStreamTrack.cpp; sourceTree = "<group>"; };
+ 07C59B5C17F4B208000FBCBB /* JSVideoStreamTrack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSVideoStreamTrack.h; path = JSVideoStreamTrack.h; sourceTree = "<group>"; };
07CE77D416712A6A00C55A47 /* InbandTextTrackPrivateClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InbandTextTrackPrivateClient.h; sourceTree = "<group>"; };
07DC5FD317D3EEE90099F890 /* JSRTCStatsResponseCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSRTCStatsResponseCustom.cpp; sourceTree = "<group>"; };
07E116B01489C9A100EC5ACE /* JSTextTrackCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSTextTrackCustom.cpp; sourceTree = "<group>"; };
@@ -13307,6 +13325,12 @@
07221B4617CEC32700848E51 /* mediastream */ = {
isa = PBXGroup;
children = (
+ 07C59B4D17F4AC15000FBCBB /* AudioStreamTrack.cpp */,
+ 07C59B4E17F4AC15000FBCBB /* AudioStreamTrack.h */,
+ 07C59B4F17F4AC15000FBCBB /* AudioStreamTrack.idl */,
+ 07C59B5017F4AC15000FBCBB /* VideoStreamTrack.cpp */,
+ 07C59B5117F4AC15000FBCBB /* VideoStreamTrack.h */,
+ 07C59B5217F4AC15000FBCBB /* VideoStreamTrack.idl */,
07221B4A17CEC32700848E51 /* MediaConstraintsImpl.cpp */,
07221B4B17CEC32700848E51 /* MediaConstraintsImpl.h */,
07221B4C17CEC32700848E51 /* MediaStream.cpp */,
@@ -13450,6 +13474,10 @@
07CFD99317D01405001C4FFC /* MediaStream */ = {
isa = PBXGroup;
children = (
+ 07C59B5917F4B208000FBCBB /* JSAudioStreamTrack.cpp */,
+ 07C59B5A17F4B208000FBCBB /* JSAudioStreamTrack.h */,
+ 07C59B5B17F4B208000FBCBB /* JSVideoStreamTrack.cpp */,
+ 07C59B5C17F4B208000FBCBB /* JSVideoStreamTrack.h */,
07277E4017D018CC0015534D /* JSMediaStream.cpp */,
07277E4117D018CC0015534D /* JSMediaStream.h */,
07277E4217D018CC0015534D /* JSMediaStreamAudioDestinationNode.cpp */,
@@ -21546,6 +21574,7 @@
FD5686CC13AC181400B69C68 /* AudioBufferCallback.h in Headers */,
FD315FFC12B0267600C1A359 /* AudioBufferSourceNode.h in Headers */,
FD31607C12B026F700C1A359 /* AudioBus.h in Headers */,
+ 07C59B5E17F4B208000FBCBB /* JSAudioStreamTrack.h in Headers */,
FD31607E12B026F700C1A359 /* AudioChannel.h in Headers */,
FD31600512B0267600C1A359 /* AudioContext.h in Headers */,
FD31607F12B026F700C1A359 /* AudioDestination.h in Headers */,
@@ -22784,6 +22813,7 @@
4D273CFA1669420800259CA1 /* InspectorInputAgent.h in Headers */,
20D629271253690B00081543 /* InspectorInstrumentation.h in Headers */,
71B1E125164048F700B1880A /* InspectorLayerTreeAgent.h in Headers */,
+ 07C59B6017F4B208000FBCBB /* JSVideoStreamTrack.h in Headers */,
7AA51DD6148506A900AD2752 /* InspectorMemoryAgent.h in Headers */,
4F6FDD651341DEDD001F8EE3 /* InspectorPageAgent.h in Headers */,
9F0D6B2F121BFEBA006C0288 /* InspectorProfilerAgent.h in Headers */,
@@ -23609,6 +23639,7 @@
0F13163E16ED0CC80035CC04 /* PlatformCAFilters.h in Headers */,
499B3EC5128CCC4700E726C2 /* PlatformCALayer.h in Headers */,
493E5E0912D6420500020081 /* PlatformCALayerClient.h in Headers */,
+ 07C59B5417F4AC15000FBCBB /* AudioStreamTrack.h in Headers */,
E1424C8A164B3B4E00F32D40 /* PlatformCookieJar.h in Headers */,
BC5C762B1497FE1400BC4775 /* PlatformEvent.h in Headers */,
BCAA487014A052530088FAC4 /* PlatformEventFactoryMac.h in Headers */,
@@ -24503,6 +24534,7 @@
93F199F008245E59001E9ABC /* WebCoreView.h in Headers */,
BC6DADEF0A195FDF00E5CD14 /* WebFontCache.h in Headers */,
A7D20F6D107F438B00A80392 /* WebGLActiveInfo.h in Headers */,
+ 07C59B5717F4AC15000FBCBB /* VideoStreamTrack.h in Headers */,
49C7B9C91042D32F0009D447 /* WebGLBuffer.h in Headers */,
7E66E23416D6EB6C00F7E7FF /* WebGLCompressedTextureATC.h in Headers */,
7E66E23417E6EB6C00F7E7FF /* WebGLCompressedTexturePVRTC.h in Headers */,
@@ -25298,6 +25330,7 @@
A80E6CF70A1989CA007FB8C5 /* CSSProperty.cpp in Sources */,
78D02BC5154A18DF00B62D05 /* CSSPropertyAnimation.cpp in Sources */,
1ABA76CA11D20E50004C201C /* CSSPropertyNames.cpp in Sources */,
+ 07C59B5617F4AC15000FBCBB /* VideoStreamTrack.cpp in Sources */,
82E3D8DE122EA0D1003AE5BC /* CSSPropertySourceData.cpp in Sources */,
BC5A12DF0DC0414800C9AFAD /* CSSReflectValue.cpp in Sources */,
A80E6D060A1989CA007FB8C5 /* CSSRule.cpp in Sources */,
@@ -25387,6 +25420,7 @@
B2F34FE90E82F82700F627CD /* DNSCFNet.cpp in Sources */,
F293B27E56C112F373FFF27E /* DNSResolveQueue.cpp in Sources */,
A8185F3C09765766005826D9 /* Document.cpp in Sources */,
+ 07C59B5D17F4B208000FBCBB /* JSAudioStreamTrack.cpp in Sources */,
A3BB59F31457A40D00AC56FE /* DocumentEventQueue.cpp in Sources */,
A8185F3F09765766005826D9 /* DocumentFragment.cpp in Sources */,
93E227E00AF589AD00D48324 /* DocumentLoader.cpp in Sources */,
@@ -26885,6 +26919,7 @@
A715E652134BBBEC00D8E713 /* ProgressShadowElement.cpp in Sources */,
1A2A68230B5BEDE70002A480 /* ProgressTracker.cpp in Sources */,
E4BBED0E14F4025D003F0B98 /* PropertySetCSSStyleDeclaration.cpp in Sources */,
+ 07C59B5F17F4B208000FBCBB /* JSVideoStreamTrack.cpp in Sources */,
514C76740CE923A1007EF3CD /* ProtectionSpace.cpp in Sources */,
1AF8E13312565A4400230FF7 /* ProxyServer.cpp in Sources */,
1AF8E1C3125673E000230FF7 /* ProxyServerCFNet.cpp in Sources */,
@@ -26985,6 +27020,7 @@
1479FAF1109AE37500DED655 /* RenderRubyRun.cpp in Sources */,
1479FAF3109AE37500DED655 /* RenderRubyText.cpp in Sources */,
BC3BE9930E9C1C7C00835588 /* RenderScrollbar.cpp in Sources */,
+ 07C59B5317F4AC15000FBCBB /* AudioStreamTrack.cpp in Sources */,
BC3BE9AB0E9C242000835588 /* RenderScrollbarPart.cpp in Sources */,
BC3BE9A50E9C239600835588 /* RenderScrollbarTheme.cpp in Sources */,
458FE4091589DF0B005609E6 /* RenderSearchField.cpp in Sources */,