initial import
[vuplus_webkit] / Source / WebCore / platform / graphics / gstreamer / PlatformVideoWindowMac.mm
1 /*
2  * Copyright (C) 2011 Igalia S.L
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Library General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Library General Public License for more details.
13  *
14  * You should have received a copy of the GNU Library General Public License
15  * along with this library; see the file COPYING.LIB.  If not, write to
16  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17  * Boston, MA 02110-1301, USA.
18  */
19
20 #include "config.h"
21 #include "PlatformVideoWindow.h"
22
23 #if USE(GSTREAMER)
24
25 #include <gst/gst.h>
26
27 using namespace WebCore;
28
29 PlatformVideoWindow::PlatformVideoWindow()
30 {
31     m_window.adoptNS([[NSView alloc] init]);
32     m_videoWindowId = reinterpret_cast<unsigned long>(m_window.get());
33 }
34
35 PlatformVideoWindow::~PlatformVideoWindow()
36 {
37     m_videoWindowId = 0;
38 }
39
40 void PlatformVideoWindow::prepareForOverlay(GstMessage* message)
41 {
42     if (gst_structure_has_name(message->structure, "have-ns-view")) {
43         m_videoWindow = static_cast<PlatformWidget>(g_value_get_pointer(gst_structure_get_value(message->structure, "nsview")));
44         ASSERT(m_videoWindow);
45         [m_window.get() addSubview:m_videoWindow];
46     }
47 }
48
49 #endif // USE(GSTREAMER)