summaryrefslogtreecommitdiff
path: root/indra/media_plugins
diff options
context:
space:
mode:
Diffstat (limited to 'indra/media_plugins')
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/CMakeLists.txt0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/base/CMakeLists.txt0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/base/media_plugin_base.cpp0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/base/media_plugin_base.exp0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/base/media_plugin_base.h0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/example/CMakeLists.txt0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/example/media_plugin_example.cpp0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/gstreamer010/CMakeLists.txt7
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/gstreamer010/llmediaimplgstreamer.h0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.cpp0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.h0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms_raw.inc0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms_rawv.inc0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/gstreamer010/llmediaimplgstreamertriviallogging.h0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.cpp22
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.h0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/quicktime/CMakeLists.txt0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/quicktime/media_plugin_quicktime.cpp0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/webkit/CMakeLists.txt4
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/webkit/dummy_volume_catcher.cpp0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/webkit/linux_volume_catcher.cpp0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/webkit/linux_volume_catcher_pa_syms.inc0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/webkit/linux_volume_catcher_paglib_syms.inc0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/webkit/mac_volume_catcher.cpp0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/webkit/media_plugin_webkit.cpp89
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/webkit/volume_catcher.h0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/webkit/windows_volume_catcher.cpp0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/winmmshim/CMakeLists.txt0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/winmmshim/forwarding_api.cpp0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/winmmshim/forwarding_api.h0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/winmmshim/winmm.def0
-rw-r--r--[-rwxr-xr-x]indra/media_plugins/winmmshim/winmm_shim.cpp0
33 files changed, 93 insertions, 29 deletions
diff --git a/indra/media_plugins/CMakeLists.txt b/indra/media_plugins/CMakeLists.txt
index 85318aea3b..85318aea3b 100755..100644
--- a/indra/media_plugins/CMakeLists.txt
+++ b/indra/media_plugins/CMakeLists.txt
diff --git a/indra/media_plugins/base/CMakeLists.txt b/indra/media_plugins/base/CMakeLists.txt
index f8d2dabc6c..f8d2dabc6c 100755..100644
--- a/indra/media_plugins/base/CMakeLists.txt
+++ b/indra/media_plugins/base/CMakeLists.txt
diff --git a/indra/media_plugins/base/media_plugin_base.cpp b/indra/media_plugins/base/media_plugin_base.cpp
index 658783e064..658783e064 100755..100644
--- a/indra/media_plugins/base/media_plugin_base.cpp
+++ b/indra/media_plugins/base/media_plugin_base.cpp
diff --git a/indra/media_plugins/base/media_plugin_base.exp b/indra/media_plugins/base/media_plugin_base.exp
index d8c7bb712a..d8c7bb712a 100755..100644
--- a/indra/media_plugins/base/media_plugin_base.exp
+++ b/indra/media_plugins/base/media_plugin_base.exp
diff --git a/indra/media_plugins/base/media_plugin_base.h b/indra/media_plugins/base/media_plugin_base.h
index ed4dc0cfa9..ed4dc0cfa9 100755..100644
--- a/indra/media_plugins/base/media_plugin_base.h
+++ b/indra/media_plugins/base/media_plugin_base.h
diff --git a/indra/media_plugins/example/CMakeLists.txt b/indra/media_plugins/example/CMakeLists.txt
index 4d82f2747c..4d82f2747c 100755..100644
--- a/indra/media_plugins/example/CMakeLists.txt
+++ b/indra/media_plugins/example/CMakeLists.txt
diff --git a/indra/media_plugins/example/media_plugin_example.cpp b/indra/media_plugins/example/media_plugin_example.cpp
index 49bbca6c52..49bbca6c52 100755..100644
--- a/indra/media_plugins/example/media_plugin_example.cpp
+++ b/indra/media_plugins/example/media_plugin_example.cpp
diff --git a/indra/media_plugins/gstreamer010/CMakeLists.txt b/indra/media_plugins/gstreamer010/CMakeLists.txt
index 9f0ff654fc..a5127ae5f4 100755..100644
--- a/indra/media_plugins/gstreamer010/CMakeLists.txt
+++ b/indra/media_plugins/gstreamer010/CMakeLists.txt
@@ -42,13 +42,6 @@ set(media_plugin_gstreamer010_HEADER_FILES
llmediaimplgstreamertriviallogging.h
)
-if (${CXX_VERSION_NUMBER} MATCHES "4[23456789].")
- # Work around a bad interaction between broken gstreamer headers and
- # g++ >= 4.2's increased strictness.
- set_source_files_properties(llmediaimplgstreamervidplug.cpp PROPERTIES
- COMPILE_FLAGS -Wno-write-strings)
-endif (${CXX_VERSION_NUMBER} MATCHES "4[23456789].")
-
add_library(media_plugin_gstreamer010
SHARED
${media_plugin_gstreamer010_SOURCE_FILES}
diff --git a/indra/media_plugins/gstreamer010/llmediaimplgstreamer.h b/indra/media_plugins/gstreamer010/llmediaimplgstreamer.h
index 48accd3e66..48accd3e66 100755..100644
--- a/indra/media_plugins/gstreamer010/llmediaimplgstreamer.h
+++ b/indra/media_plugins/gstreamer010/llmediaimplgstreamer.h
diff --git a/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.cpp b/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.cpp
index 52cea46d46..52cea46d46 100755..100644
--- a/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.cpp
+++ b/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.cpp
diff --git a/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.h b/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.h
index 88f100af6e..88f100af6e 100755..100644
--- a/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.h
+++ b/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.h
diff --git a/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms_raw.inc b/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms_raw.inc
index b33e59363d..b33e59363d 100755..100644
--- a/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms_raw.inc
+++ b/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms_raw.inc
diff --git a/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms_rawv.inc b/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms_rawv.inc
index 14fbcb48b9..14fbcb48b9 100755..100644
--- a/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms_rawv.inc
+++ b/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms_rawv.inc
diff --git a/indra/media_plugins/gstreamer010/llmediaimplgstreamertriviallogging.h b/indra/media_plugins/gstreamer010/llmediaimplgstreamertriviallogging.h
index 799808aa8b..799808aa8b 100755..100644
--- a/indra/media_plugins/gstreamer010/llmediaimplgstreamertriviallogging.h
+++ b/indra/media_plugins/gstreamer010/llmediaimplgstreamertriviallogging.h
diff --git a/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.cpp b/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.cpp
index 484948bd9f..d2904add99 100755..100644
--- a/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.cpp
+++ b/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.cpp
@@ -54,7 +54,7 @@ GST_DEBUG_CATEGORY_STATIC (gst_slvideo_debug);
#define SLV_ALLCAPS GST_VIDEO_CAPS_RGBx SLV_SIZECAPS
static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE (
- "sink",
+ (gchar*)"sink",
GST_PAD_SINK,
GST_PAD_ALWAYS,
GST_STATIC_CAPS (SLV_ALLCAPS)
@@ -514,18 +514,18 @@ plugin_init (GstPlugin * plugin)
some g++ versions buggily avoid __attribute__((constructor)) functions -
so we provide an explicit plugin init function.
*/
+#define PACKAGE (gchar*)"packagehack"
+// this macro quietly refers to PACKAGE internally
+GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
+ GST_VERSION_MINOR,
+ (gchar*)"private-slvideoplugin",
+ (gchar*)"SL Video sink plugin",
+ plugin_init, (gchar*)"1.0", (gchar*)"LGPL",
+ (gchar*)"Second Life",
+ (gchar*)"http://www.secondlife.com/");
+#undef PACKAGE
void gst_slvideo_init_class (void)
{
-#define PACKAGE "packagehack"
- // this macro quietly refers to PACKAGE internally
- static GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
- GST_VERSION_MINOR,
- "private-slvideoplugin",
- "SL Video sink plugin",
- plugin_init, "0.1", GST_LICENSE_UNKNOWN,
- "Second Life",
- "http://www.secondlife.com/");
-#undef PACKAGE
ll_gst_plugin_register_static (&gst_plugin_desc);
DEBUGMSG("CLASS INIT");
}
diff --git a/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.h b/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.h
index 8f1cf84978..8f1cf84978 100755..100644
--- a/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.h
+++ b/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.h
diff --git a/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp b/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp
index e6d2ad3edc..e6d2ad3edc 100755..100644
--- a/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp
+++ b/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp
diff --git a/indra/media_plugins/quicktime/CMakeLists.txt b/indra/media_plugins/quicktime/CMakeLists.txt
index f0b8f0d167..f0b8f0d167 100755..100644
--- a/indra/media_plugins/quicktime/CMakeLists.txt
+++ b/indra/media_plugins/quicktime/CMakeLists.txt
diff --git a/indra/media_plugins/quicktime/media_plugin_quicktime.cpp b/indra/media_plugins/quicktime/media_plugin_quicktime.cpp
index 1f88301ca7..1f88301ca7 100755..100644
--- a/indra/media_plugins/quicktime/media_plugin_quicktime.cpp
+++ b/indra/media_plugins/quicktime/media_plugin_quicktime.cpp
diff --git a/indra/media_plugins/webkit/CMakeLists.txt b/indra/media_plugins/webkit/CMakeLists.txt
index d576638dd7..619b4baeef 100755..100644
--- a/indra/media_plugins/webkit/CMakeLists.txt
+++ b/indra/media_plugins/webkit/CMakeLists.txt
@@ -51,9 +51,9 @@ set(media_plugin_webkit_LINK_LIBRARIES
# Select which VolumeCatcher implementation to use
if (LINUX)
- if (PULSEAUDIO)
+ if (PULSEAUDIO_FOUND)
list(APPEND media_plugin_webkit_SOURCE_FILES linux_volume_catcher.cpp)
- endif (PULSEAUDIO)
+ endif (PULSEAUDIO_FOUND)
list(APPEND media_plugin_webkit_LINK_LIBRARIES
${UI_LIBRARIES} # for glib/GTK
)
diff --git a/indra/media_plugins/webkit/dummy_volume_catcher.cpp b/indra/media_plugins/webkit/dummy_volume_catcher.cpp
index 45b2c62eba..45b2c62eba 100755..100644
--- a/indra/media_plugins/webkit/dummy_volume_catcher.cpp
+++ b/indra/media_plugins/webkit/dummy_volume_catcher.cpp
diff --git a/indra/media_plugins/webkit/linux_volume_catcher.cpp b/indra/media_plugins/webkit/linux_volume_catcher.cpp
index 5eaef0e1c3..5eaef0e1c3 100755..100644
--- a/indra/media_plugins/webkit/linux_volume_catcher.cpp
+++ b/indra/media_plugins/webkit/linux_volume_catcher.cpp
diff --git a/indra/media_plugins/webkit/linux_volume_catcher_pa_syms.inc b/indra/media_plugins/webkit/linux_volume_catcher_pa_syms.inc
index d806b48428..d806b48428 100755..100644
--- a/indra/media_plugins/webkit/linux_volume_catcher_pa_syms.inc
+++ b/indra/media_plugins/webkit/linux_volume_catcher_pa_syms.inc
diff --git a/indra/media_plugins/webkit/linux_volume_catcher_paglib_syms.inc b/indra/media_plugins/webkit/linux_volume_catcher_paglib_syms.inc
index abf628c96c..abf628c96c 100755..100644
--- a/indra/media_plugins/webkit/linux_volume_catcher_paglib_syms.inc
+++ b/indra/media_plugins/webkit/linux_volume_catcher_paglib_syms.inc
diff --git a/indra/media_plugins/webkit/mac_volume_catcher.cpp b/indra/media_plugins/webkit/mac_volume_catcher.cpp
index 38727e5965..38727e5965 100755..100644
--- a/indra/media_plugins/webkit/mac_volume_catcher.cpp
+++ b/indra/media_plugins/webkit/mac_volume_catcher.cpp
diff --git a/indra/media_plugins/webkit/media_plugin_webkit.cpp b/indra/media_plugins/webkit/media_plugin_webkit.cpp
index 3b00edec4e..392232816d 100755..100644
--- a/indra/media_plugins/webkit/media_plugin_webkit.cpp
+++ b/indra/media_plugins/webkit/media_plugin_webkit.cpp
@@ -120,6 +120,7 @@ private:
F32 mBackgroundR;
F32 mBackgroundG;
F32 mBackgroundB;
+ std::string mTarget;
VolumeCatcher mVolumeCatcher;
@@ -308,7 +309,7 @@ private:
LLQtWebKit::getInstance()->enableJavascript( mJavascriptEnabled );
// create single browser window
- mBrowserWindowId = LLQtWebKit::getInstance()->createBrowserWindow( mWidth, mHeight );
+ mBrowserWindowId = LLQtWebKit::getInstance()->createBrowserWindow( mWidth, mHeight, mTarget);
// tell LLQtWebKit about the size of the browser window
LLQtWebKit::getInstance()->setSize( mBrowserWindowId, mWidth, mHeight );
@@ -318,9 +319,6 @@ private:
// append details to agent string
LLQtWebKit::getInstance()->setBrowserAgentId( mUserAgent );
-
- // Set up window open behavior
- LLQtWebKit::getInstance()->setWindowOpenBehavior(mBrowserWindowId, LLQtWebKit::WOB_SIMULATE_BLANK_HREF_CLICK);
#if !LL_QTWEBKIT_USES_PIXMAPS
// don't flip bitmap
@@ -512,9 +510,9 @@ private:
void onClickLinkHref(const EventType& event)
{
LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "click_href");
- message.setValue("uri", event.getStringValue());
- message.setValue("target", event.getStringValue2());
- message.setValueU32("target_type", event.getLinkType());
+ message.setValue("uri", event.getEventUri());
+ message.setValue("target", event.getStringValue());
+ message.setValue("uuid", event.getStringValue2());
sendMessage(message);
}
@@ -523,7 +521,7 @@ private:
void onClickLinkNoFollow(const EventType& event)
{
LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "click_nofollow");
- message.setValue("uri", event.getStringValue());
+ message.setValue("uri", event.getEventUri());
sendMessage(message);
}
@@ -539,6 +537,42 @@ private:
// message.setValueBoolean("dead", (event.getIntValue() != 0))
sendMessage(message);
}
+
+ ////////////////////////////////////////////////////////////////////////////////
+ // virtual
+ void onWindowCloseRequested(const EventType& event)
+ {
+ LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "close_request");
+ message.setValue("uuid", event.getStringValue());
+ sendMessage(message);
+ }
+
+ ////////////////////////////////////////////////////////////////////////////////
+ // virtual
+ void onWindowGeometryChangeRequested(const EventType& event)
+ {
+ int x, y, width, height;
+ event.getRectValue(x, y, width, height);
+
+ // This sometimes gets called with a zero-size request. Don't pass these along.
+ if(width > 0 && height > 0)
+ {
+ LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "geometry_change");
+ message.setValue("uuid", event.getStringValue());
+ message.setValueS32("x", x);
+ message.setValueS32("y", y);
+ message.setValueS32("width", width);
+ message.setValueS32("height", height);
+ sendMessage(message);
+ }
+ }
+
+ ////////////////////////////////////////////////////////////////////////////////
+ // virtual
+ std::string onRequestFilePicker( const EventType& eventIn )
+ {
+ return blockingPickFile();
+ }
LLQtWebKit::EKeyboardModifier decodeModifiers(std::string &modifiers)
{
@@ -684,6 +718,26 @@ private:
}
}
+
+ std::string mPickedFile;
+
+ std::string blockingPickFile(void)
+ {
+ mPickedFile.clear();
+
+ LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "pick_file");
+ message.setValueBoolean("blocking_request", true);
+
+ // The "blocking_request" key in the message means this sendMessage call will block until a response is received.
+ sendMessage(message);
+
+ return mPickedFile;
+ }
+
+ void onPickFileResponse(const std::string &file)
+ {
+ mPickedFile = file;
+ }
};
@@ -822,6 +876,8 @@ void MediaPluginWebKit::receiveMessage(const char *message_string)
{
if(message_name == "init")
{
+ mTarget = message_in.getValue("target");
+
// This is the media init message -- all necessary data for initialization should have been received.
if(initBrowser())
{
@@ -1041,10 +1097,14 @@ void MediaPluginWebKit::receiveMessage(const char *message_string)
LLQtWebKit::getInstance()->userAction( mBrowserWindowId, LLQtWebKit::UA_EDIT_PASTE );
checkEditState();
}
+ if(message_name == "pick_file_response")
+ {
+ onPickFileResponse(message_in.getValue("file"));
+ }
else
{
// std::cerr << "MediaPluginWebKit::receiveMessage: unknown media message: " << message_string << std::endl;
- };
+ }
}
else if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER)
{
@@ -1144,6 +1204,17 @@ void MediaPluginWebKit::receiveMessage(const char *message_string)
}
}
}
+ else if(message_name == "proxy_window_opened")
+ {
+ std::string target = message_in.getValue("target");
+ std::string uuid = message_in.getValue("uuid");
+ LLQtWebKit::getInstance()->proxyWindowOpened(mBrowserWindowId, target, uuid);
+ }
+ else if(message_name == "proxy_window_closed")
+ {
+ std::string uuid = message_in.getValue("uuid");
+ LLQtWebKit::getInstance()->proxyWindowClosed(mBrowserWindowId, uuid);
+ }
else
{
// std::cerr << "MediaPluginWebKit::receiveMessage: unknown media_browser message: " << message_string << std::endl;
diff --git a/indra/media_plugins/webkit/volume_catcher.h b/indra/media_plugins/webkit/volume_catcher.h
index 77b10cfed0..77b10cfed0 100755..100644
--- a/indra/media_plugins/webkit/volume_catcher.h
+++ b/indra/media_plugins/webkit/volume_catcher.h
diff --git a/indra/media_plugins/webkit/windows_volume_catcher.cpp b/indra/media_plugins/webkit/windows_volume_catcher.cpp
index ef96102a0a..ef96102a0a 100755..100644
--- a/indra/media_plugins/webkit/windows_volume_catcher.cpp
+++ b/indra/media_plugins/webkit/windows_volume_catcher.cpp
diff --git a/indra/media_plugins/winmmshim/CMakeLists.txt b/indra/media_plugins/winmmshim/CMakeLists.txt
index 387214088f..387214088f 100755..100644
--- a/indra/media_plugins/winmmshim/CMakeLists.txt
+++ b/indra/media_plugins/winmmshim/CMakeLists.txt
diff --git a/indra/media_plugins/winmmshim/forwarding_api.cpp b/indra/media_plugins/winmmshim/forwarding_api.cpp
index c2f553dfef..c2f553dfef 100755..100644
--- a/indra/media_plugins/winmmshim/forwarding_api.cpp
+++ b/indra/media_plugins/winmmshim/forwarding_api.cpp
diff --git a/indra/media_plugins/winmmshim/forwarding_api.h b/indra/media_plugins/winmmshim/forwarding_api.h
index 31e2186aa2..31e2186aa2 100755..100644
--- a/indra/media_plugins/winmmshim/forwarding_api.h
+++ b/indra/media_plugins/winmmshim/forwarding_api.h
diff --git a/indra/media_plugins/winmmshim/winmm.def b/indra/media_plugins/winmmshim/winmm.def
index c55a2845f8..c55a2845f8 100755..100644
--- a/indra/media_plugins/winmmshim/winmm.def
+++ b/indra/media_plugins/winmmshim/winmm.def
diff --git a/indra/media_plugins/winmmshim/winmm_shim.cpp b/indra/media_plugins/winmmshim/winmm_shim.cpp
index 6fbf517d7c..6fbf517d7c 100755..100644
--- a/indra/media_plugins/winmmshim/winmm_shim.cpp
+++ b/indra/media_plugins/winmmshim/winmm_shim.cpp