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

Reply via email to