Title: [124362] trunk/Source
Revision
124362
Author
tom...@google.com
Date
2012-08-01 13:33:39 -0700 (Wed, 01 Aug 2012)

Log Message

MediaStream API: Add ExtraData capability to MediaStreamSource
https://bugs.webkit.org/show_bug.cgi?id=92860

Reviewed by Adam Barth.

The Chromium port needs to store some related data in MediaStreamSource objects.

Source/Platform:

* chromium/public/WebMediaStreamSource.h:
(ExtraData):
(WebKit::WebMediaStreamSource::ExtraData::~ExtraData):
(WebMediaStreamSource):

Source/WebCore:

Not testable from a LayoutTest.

* platform/chromium/support/WebMediaStreamSource.cpp:
(ExtraDataContainer):
(WebKit::ExtraDataContainer::ExtraDataContainer):
(WebKit::ExtraDataContainer::extraData):
(WebKit):
(WebKit::WebMediaStreamSource::extraData):
(WebKit::WebMediaStreamSource::setExtraData):
* platform/mediastream/MediaStreamSource.h:
(ExtraData):
(WebCore::MediaStreamSource::ExtraData::~ExtraData):
(MediaStreamSource):
(WebCore::MediaStreamSource::extraData):
(WebCore::MediaStreamSource::setExtraData):

Modified Paths

Diff

Modified: trunk/Source/Platform/ChangeLog (124361 => 124362)


--- trunk/Source/Platform/ChangeLog	2012-08-01 20:20:53 UTC (rev 124361)
+++ trunk/Source/Platform/ChangeLog	2012-08-01 20:33:39 UTC (rev 124362)
@@ -1,3 +1,17 @@
+2012-08-01  Tommy Widenflycht  <tom...@google.com>
+
+        MediaStream API: Add ExtraData capability to MediaStreamSource
+        https://bugs.webkit.org/show_bug.cgi?id=92860
+
+        Reviewed by Adam Barth.
+
+        The Chromium port needs to store some related data in MediaStreamSource objects.
+
+        * chromium/public/WebMediaStreamSource.h:
+        (ExtraData):
+        (WebKit::WebMediaStreamSource::ExtraData::~ExtraData):
+        (WebMediaStreamSource):
+
 2012-08-01  Alexei Filippov  <alex...@chromium.org>
 
         Web Inspector: count DOM storage cache memory for native snapshot

Modified: trunk/Source/Platform/chromium/public/WebMediaStreamSource.h (124361 => 124362)


--- trunk/Source/Platform/chromium/public/WebMediaStreamSource.h	2012-08-01 20:20:53 UTC (rev 124361)
+++ trunk/Source/Platform/chromium/public/WebMediaStreamSource.h	2012-08-01 20:33:39 UTC (rev 124362)
@@ -45,6 +45,11 @@
 
 class WebMediaStreamSource {
 public:
+    class ExtraData {
+    public:
+        virtual ~ExtraData() { }
+    };
+
     enum Type {
         TypeAudio,
         TypeVideo
@@ -79,6 +84,13 @@
     WEBKIT_EXPORT void setReadyState(ReadyState);
     WEBKIT_EXPORT ReadyState readyState() const;
 
+    // Extra data associated with this object.
+    // 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
     WebMediaStreamSource(const WTF::PassRefPtr<WebCore::MediaStreamSource>&);
     WebMediaStreamSource& operator=(WebCore::MediaStreamSource*);

Modified: trunk/Source/WebCore/ChangeLog (124361 => 124362)


--- trunk/Source/WebCore/ChangeLog	2012-08-01 20:20:53 UTC (rev 124361)
+++ trunk/Source/WebCore/ChangeLog	2012-08-01 20:33:39 UTC (rev 124362)
@@ -1,3 +1,28 @@
+2012-08-01  Tommy Widenflycht  <tom...@google.com>
+
+        MediaStream API: Add ExtraData capability to MediaStreamSource
+        https://bugs.webkit.org/show_bug.cgi?id=92860
+
+        Reviewed by Adam Barth.
+
+        The Chromium port needs to store some related data in MediaStreamSource objects.
+
+        Not testable from a LayoutTest.
+
+        * platform/chromium/support/WebMediaStreamSource.cpp:
+        (ExtraDataContainer):
+        (WebKit::ExtraDataContainer::ExtraDataContainer):
+        (WebKit::ExtraDataContainer::extraData):
+        (WebKit):
+        (WebKit::WebMediaStreamSource::extraData):
+        (WebKit::WebMediaStreamSource::setExtraData):
+        * platform/mediastream/MediaStreamSource.h:
+        (ExtraData):
+        (WebCore::MediaStreamSource::ExtraData::~ExtraData):
+        (MediaStreamSource):
+        (WebCore::MediaStreamSource::extraData):
+        (WebCore::MediaStreamSource::setExtraData):
+
 2012-08-01  Joshua Bell  <jsb...@chromium.org>
 
         IndexedDB: IDBCursor.continue(key) does not throw for key "behind" cursor

Modified: trunk/Source/WebCore/platform/chromium/support/WebMediaStreamSource.cpp (124361 => 124362)


--- trunk/Source/WebCore/platform/chromium/support/WebMediaStreamSource.cpp	2012-08-01 20:20:53 UTC (rev 124361)
+++ trunk/Source/WebCore/platform/chromium/support/WebMediaStreamSource.cpp	2012-08-01 20:33:39 UTC (rev 124362)
@@ -36,6 +36,7 @@
 
 #include "MediaStreamSource.h"
 #include <public/WebString.h>
+#include <wtf/PassOwnPtr.h>
 #include <wtf/Vector.h>
 
 using namespace WebCore;
@@ -108,6 +109,29 @@
     return static_cast<ReadyState>(m_private->readyState());
 }
 
+class ExtraDataContainer : public WebCore::MediaStreamSource::ExtraData {
+public:
+    ExtraDataContainer(WebMediaStreamSource::ExtraData* extraData) : m_extraData(WTF::adoptPtr(extraData)) { }
+
+    WebMediaStreamSource::ExtraData* extraData() { return m_extraData.get(); }
+
+private:
+    OwnPtr<WebMediaStreamSource::ExtraData> m_extraData;
+};
+
+WebMediaStreamSource::ExtraData* WebMediaStreamSource::extraData() const
+{
+    RefPtr<MediaStreamSource::ExtraData> data = ""
+    if (!data)
+        return 0;
+    return static_cast<ExtraDataContainer*>(data.get())->extraData();
+}
+
+void WebMediaStreamSource::setExtraData(ExtraData* extraData)
+{
+    m_private->setExtraData(adoptRef(new ExtraDataContainer(extraData)));
+}
+
 } // namespace WebKit
 
 #endif // ENABLE(MEDIA_STREAM)

Modified: trunk/Source/WebCore/platform/mediastream/MediaStreamSource.h (124361 => 124362)


--- trunk/Source/WebCore/platform/mediastream/MediaStreamSource.h	2012-08-01 20:20:53 UTC (rev 124361)
+++ trunk/Source/WebCore/platform/mediastream/MediaStreamSource.h	2012-08-01 20:33:39 UTC (rev 124362)
@@ -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
@@ -47,6 +48,11 @@
         virtual void sourceChangedState() = 0;
     };
 
+    class ExtraData : public RefCounted<ExtraData> {
+    public:
+        virtual ~ExtraData() { }
+    };
+
     enum Type {
         TypeAudio,
         TypeVideo
@@ -70,6 +76,9 @@
     void addObserver(Observer*);
     void removeObserver(Observer*);
 
+    PassRefPtr<ExtraData> extraData() const { return m_extraData; }
+    void setExtraData(PassRefPtr<ExtraData> extraData) { m_extraData = extraData; }
+
 private:
     MediaStreamSource(const String& id, Type, const String& name, ReadyState);
 
@@ -78,6 +87,7 @@
     String m_name;
     ReadyState m_readyState;
     Vector<Observer*> m_observers;
+    RefPtr<ExtraData> m_extraData;
 };
 
 typedef Vector<RefPtr<MediaStreamSource> > MediaStreamSourceVector;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to