Title: [116529] trunk/Source
- Revision
- 116529
- Author
- [email protected]
- Date
- 2012-05-09 08:49:04 -0700 (Wed, 09 May 2012)
Log Message
MediaStream API: Adding the possibility of port specific information in MediaStreamDescriptor
https://bugs.webkit.org/show_bug.cgi?id=85794
Reviewed by Adam Barth.
To facilitate for ports I have added an ExtraData field that can be used for whatever purpose is needed.
Source/Platform:
* chromium/public/WebMediaStreamDescriptor.h:
(ExtraData):
(WebKit::WebMediaStreamDescriptor::ExtraData::~ExtraData):
(WebMediaStreamDescriptor):
Source/WebCore:
No behavioral changes.
* platform/chromium/support/WebMediaStreamDescriptor.cpp:
(ExtraDataContainer):
(WebKit::ExtraDataContainer::ExtraDataContainer):
(WebKit::ExtraDataContainer::extraData):
(WebKit):
(WebKit::WebMediaStreamDescriptor::extraData):
(WebKit::WebMediaStreamDescriptor::setExtraData):
* platform/mediastream/MediaStreamDescriptor.h:
(ExtraData):
(WebCore::MediaStreamDescriptor::ExtraData::~ExtraData):
(MediaStreamDescriptor):
(WebCore::MediaStreamDescriptor::extraData):
(WebCore::MediaStreamDescriptor::setExtraData):
Modified Paths
Diff
Modified: trunk/Source/Platform/ChangeLog (116528 => 116529)
--- trunk/Source/Platform/ChangeLog 2012-05-09 15:45:01 UTC (rev 116528)
+++ trunk/Source/Platform/ChangeLog 2012-05-09 15:49:04 UTC (rev 116529)
@@ -1,3 +1,17 @@
+2012-05-09 Tommy Widenflycht <[email protected]>
+
+ MediaStream API: Adding the possibility of port specific information in MediaStreamDescriptor
+ https://bugs.webkit.org/show_bug.cgi?id=85794
+
+ Reviewed by Adam Barth.
+
+ To facilitate for ports I have added an ExtraData field that can be used for whatever purpose is needed.
+
+ * chromium/public/WebMediaStreamDescriptor.h:
+ (ExtraData):
+ (WebKit::WebMediaStreamDescriptor::ExtraData::~ExtraData):
+ (WebMediaStreamDescriptor):
+
2012-05-07 Mark Pilgrim <[email protected]>
[Chromium] Move fileSystem to Platform.h
Modified: trunk/Source/Platform/chromium/public/WebMediaStreamDescriptor.h (116528 => 116529)
--- trunk/Source/Platform/chromium/public/WebMediaStreamDescriptor.h 2012-05-09 15:45:01 UTC (rev 116528)
+++ trunk/Source/Platform/chromium/public/WebMediaStreamDescriptor.h 2012-05-09 15:49:04 UTC (rev 116529)
@@ -42,6 +42,11 @@
class WebMediaStreamDescriptor {
public:
+ class ExtraData {
+ public:
+ virtual ~ExtraData() { }
+ };
+
WebMediaStreamDescriptor() { }
WebMediaStreamDescriptor(const WebMediaStreamDescriptor& other) { assign(other); }
~WebMediaStreamDescriptor() { reset(); }
@@ -69,6 +74,13 @@
WEBKIT_EXPORT void audioSources(WebVector<WebMediaStreamComponent>&) const;
WEBKIT_EXPORT void videoSources(WebVector<WebMediaStreamComponent>&) const;
+ // Extra data associated with this WebMediaStreamDescriptor.
+ // If non-null, the extra data pointer will be deleted when the object is destroyed.
+ // Setting the extra data pointer will cause any existing non-null
+ // extra data pointer to be deleted.
+ WEBKIT_EXPORT ExtraData* extraData() const;
+ WEBKIT_EXPORT void setExtraData(ExtraData*);
+
#if WEBKIT_IMPLEMENTATION
WebMediaStreamDescriptor(WebCore::MediaStreamDescriptor*);
WebMediaStreamDescriptor(const WTF::PassRefPtr<WebCore::MediaStreamDescriptor>&);
Modified: trunk/Source/WebCore/ChangeLog (116528 => 116529)
--- trunk/Source/WebCore/ChangeLog 2012-05-09 15:45:01 UTC (rev 116528)
+++ trunk/Source/WebCore/ChangeLog 2012-05-09 15:49:04 UTC (rev 116529)
@@ -1,3 +1,28 @@
+2012-05-09 Tommy Widenflycht <[email protected]>
+
+ MediaStream API: Adding the possibility of port specific information in MediaStreamDescriptor
+ https://bugs.webkit.org/show_bug.cgi?id=85794
+
+ Reviewed by Adam Barth.
+
+ To facilitate for ports I have added an ExtraData field that can be used for whatever purpose is needed.
+
+ No behavioral changes.
+
+ * platform/chromium/support/WebMediaStreamDescriptor.cpp:
+ (ExtraDataContainer):
+ (WebKit::ExtraDataContainer::ExtraDataContainer):
+ (WebKit::ExtraDataContainer::extraData):
+ (WebKit):
+ (WebKit::WebMediaStreamDescriptor::extraData):
+ (WebKit::WebMediaStreamDescriptor::setExtraData):
+ * platform/mediastream/MediaStreamDescriptor.h:
+ (ExtraData):
+ (WebCore::MediaStreamDescriptor::ExtraData::~ExtraData):
+ (MediaStreamDescriptor):
+ (WebCore::MediaStreamDescriptor::extraData):
+ (WebCore::MediaStreamDescriptor::setExtraData):
+
2012-05-09 Takashi Sakamoto <[email protected]>
Crash in WebCore::RenderBoxModelObject::paddingLeft
Modified: trunk/Source/WebCore/platform/chromium/support/WebMediaStreamDescriptor.cpp (116528 => 116529)
--- trunk/Source/WebCore/platform/chromium/support/WebMediaStreamDescriptor.cpp 2012-05-09 15:45:01 UTC (rev 116528)
+++ trunk/Source/WebCore/platform/chromium/support/WebMediaStreamDescriptor.cpp 2012-05-09 15:49:04 UTC (rev 116529)
@@ -40,6 +40,8 @@
#include <public/WebMediaStreamComponent.h>
#include <public/WebMediaStreamSource.h>
#include <public/WebString.h>
+#include <wtf/OwnPtr.h>
+#include <wtf/PassOwnPtr.h>
#include <wtf/Vector.h>
using namespace WebCore;
@@ -66,6 +68,29 @@
return m_private->label();
}
+class ExtraDataContainer : public WebCore::MediaStreamDescriptor::ExtraData {
+public:
+ ExtraDataContainer(WebMediaStreamDescriptor::ExtraData* extraData) : m_extraData(WTF::adoptPtr(extraData)) { }
+
+ WebMediaStreamDescriptor::ExtraData* extraData() { return m_extraData.get(); }
+
+private:
+ OwnPtr<WebMediaStreamDescriptor::ExtraData> m_extraData;
+};
+
+WebMediaStreamDescriptor::ExtraData* WebMediaStreamDescriptor::extraData() const
+{
+ RefPtr<MediaStreamDescriptor::ExtraData> data = ""
+ if (!data)
+ return 0;
+ return static_cast<ExtraDataContainer*>(data.get())->extraData();
+}
+
+void WebMediaStreamDescriptor::setExtraData(ExtraData* extraData)
+{
+ m_private->setExtraData(new ExtraDataContainer(extraData));
+}
+
// FIXME: Cleanup when the chromium code has switched to the split sources implementation.
void WebMediaStreamDescriptor::sources(WebVector<WebMediaStreamSource>& webSources) const
{
Modified: trunk/Source/WebCore/platform/mediastream/MediaStreamDescriptor.h (116528 => 116529)
--- trunk/Source/WebCore/platform/mediastream/MediaStreamDescriptor.h 2012-05-09 15:45:01 UTC (rev 116528)
+++ trunk/Source/WebCore/platform/mediastream/MediaStreamDescriptor.h 2012-05-09 15:49:04 UTC (rev 116529)
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2011 Ericsson AB. All rights reserved.
+ * Copyright (C) 2012 Google Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -48,6 +49,11 @@
class MediaStreamDescriptor : public RefCounted<MediaStreamDescriptor> {
public:
+ class ExtraData : public RefCounted<ExtraData> {
+ public:
+ virtual ~ExtraData() { }
+ };
+
static PassRefPtr<MediaStreamDescriptor> create(const String& label, const MediaStreamSourceVector& audioSources, const MediaStreamSourceVector& videoSources)
{
return adoptRef(new MediaStreamDescriptor(label, audioSources, videoSources));
@@ -67,6 +73,9 @@
bool ended() const { return m_ended; }
void setEnded() { m_ended = true; }
+ PassRefPtr<ExtraData> extraData() const { return m_extraData; }
+ void setExtraData(PassRefPtr<ExtraData> extraData) { m_extraData = extraData; }
+
private:
MediaStreamDescriptor(const String& label, const MediaStreamSourceVector& audioSources, const MediaStreamSourceVector& videoSources)
: m_owner(0)
@@ -85,6 +94,8 @@
Vector<RefPtr<MediaStreamComponent> > m_audioComponents;
Vector<RefPtr<MediaStreamComponent> > m_videoComponents;
bool m_ended;
+
+ RefPtr<ExtraData> m_extraData;
};
typedef Vector<RefPtr<MediaStreamDescriptor> > MediaStreamDescriptorVector;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes