Nicky 2016-06-04 00:49:12 +02:00
commit 956f687f47
13 changed files with 101 additions and 65 deletions

View File

@ -2362,6 +2362,18 @@
<key>name</key>
<string>windows</string>
</map>
<key>linux</key>
<map>
<key>archive</key>
<map>
<key>hash</key>
<string>2f410640df3f9812d1abff02a414cfa8</string>
<key>url</key>
<string>https://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-vlc-bin/rev/315283/arch/Linux/vlc_bin-2.2.3-linux-201606011750-r10.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
</map>
</map>
<key>version</key>
<string>2.2.3.315283</string>

View File

@ -19,4 +19,9 @@ if (WINDOWS)
)
elseif (DARWIN)
elseif (LINUX)
# Specify a full path to make sure we get a static link
set(VLC_PLUGIN_LIBRARIES
${LIBS_PREBUILT_DIR}/lib/libvlc.a
${LIBS_PREBUILT_DIR}/lib/libvlccore.a
)
endif (WINDOWS)

View File

@ -4,6 +4,7 @@ add_subdirectory(base)
if (LINUX)
add_subdirectory(gstreamer010)
add_subdirectory(cef)
add_subdirectory(libvlc)
endif (LINUX)
if (DARWIN)

View File

@ -610,6 +610,8 @@ void MediaPluginCEF::receiveMessage(const char* message_string)
S32 x = message_in.getValueS32("x");
S32 y = message_in.getValueS32("y");
y = mHeight - y;
// only even send left mouse button events to LLCEFLib
// (partially prompted by crash in OS X CEF when sending right button events)
// we catch the right click in viewer and display our own context menu anyway

View File

@ -330,45 +330,45 @@ void MediaPluginLibVLC::receiveMessage( const char* message_string )
playMedia();
}
}
else
if (message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA_TIME)
{
if (message_name == "stop")
{
if (gLibVLCMediaPlayer)
{
libvlc_media_player_stop(gLibVLCMediaPlayer);
}
}
else if (message_name == "start")
{
if (gLibVLCMediaPlayer)
{
libvlc_media_player_play(gLibVLCMediaPlayer);
}
}
else if (message_name == "pause")
{
if (gLibVLCMediaPlayer)
{
libvlc_media_player_pause(gLibVLCMediaPlayer);
}
}
else if (message_name == "seek")
{
}
else if (message_name == "set_loop")
{
}
else if (message_name == "set_volume")
{
if (gLibVLCMediaPlayer)
{
F64 volume = message_in.getValueReal("volume");
libvlc_audio_set_volume(gLibVLCMediaPlayer, (int)(volume * 100));
}
}
}
else
if (message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA_TIME)
{
if (message_name == "stop")
{
if (gLibVLCMediaPlayer)
{
libvlc_media_player_stop(gLibVLCMediaPlayer);
}
}
else if (message_name == "start")
{
if (gLibVLCMediaPlayer)
{
libvlc_media_player_play(gLibVLCMediaPlayer);
}
}
else if (message_name == "pause")
{
if (gLibVLCMediaPlayer)
{
libvlc_media_player_pause(gLibVLCMediaPlayer);
}
}
else if (message_name == "seek")
{
}
else if (message_name == "set_loop")
{
}
else if (message_name == "set_volume")
{
if (gLibVLCMediaPlayer)
{
F64 volume = message_in.getValueReal("volume");
libvlc_audio_set_volume(gLibVLCMediaPlayer, (int)(volume * 100));
}
}
}
}
}

View File

@ -311,7 +311,9 @@ private:
MatrixRecord transform;
SetIdentityMatrix( &transform ); // transforms are additive so start from identify matrix
double scaleX = (double) mWidth / mNaturalWidth;
double scaleY = -1.0 * (double) mHeight / mNaturalHeight;
// 2016-05-31 CP remove local flip (via -1.0) since texture coods for media on a prim are now flipped for VLC/CEF
double scaleY = 1.0 * (double) mHeight / mNaturalHeight;
double centerX = mWidth / 2.0;
double centerY = mHeight / 2.0;
ScaleMatrix( &transform, X2Fix( scaleX ), X2Fix( scaleY ), X2Fix( centerX ), X2Fix( centerY ) );
@ -919,7 +921,10 @@ void MediaPluginQuickTime::receiveMessage(const char *message_string)
#endif
message.setValueS32("depth", mDepth);
message.setValueU32("internalformat", GL_RGB);
message.setValueBoolean("coords_opengl", true); // true == use OpenGL-style coordinates, false == (0,0) is upper left.
// note this apparently only has an effect when media is opened in 2D browser.
// see https://jira.secondlife.com/browse/BUG-18252 - media flipped in 2D so flipping it back.
message.setValueBoolean("coords_opengl", false); // true == use OpenGL-style coordinates, false == (0,0) is upper left.
message.setValueBoolean("allow_downsample", true);
sendMessage(message);
}

View File

@ -2339,6 +2339,7 @@ if (NOT ENABLE_MEDIA_PLUGINS)
SLPlugin
media_plugin_cef
media_plugin_gstreamer010
media_plugin_libvlc
llcommon
)
else (NOT ENABLE_MEDIA_PLUGINS)

View File

@ -952,7 +952,7 @@ void LLMediaCtrl::convertInputCoords(S32& x, S32& y)
}
x = ll_round((F32)x * LLUI::getScaleFactor().mV[VX]);
if ( ! coords_opengl )
if ( coords_opengl )
{
y = ll_round((F32)(y) * LLUI::getScaleFactor().mV[VY]);
}

View File

@ -231,8 +231,8 @@ void LLSurfacePatch::eval(const U32 x, const U32 y, const U32 stride, LLVector3
const F32 xyScaleInv = (1.f / xyScale)*(0.2222222222f);
F32 vec[3] = {
(F32)fmod((F32)(mOriginGlobal.mdV[0] + x)*xyScaleInv, 256.f), // <FS:ND/> Added (F32) for proper array initialization
(F32)fmod((F32)(mOriginGlobal.mdV[1] + y)*xyScaleInv, 256.f), // <FS:ND/> Added (F32) for proper array initialization
(F32)fmod((F32)(mOriginGlobal.mdV[0] + x)*xyScaleInv, 256.f),
(F32)fmod((F32)(mOriginGlobal.mdV[1] + y)*xyScaleInv, 256.f),
0.f
};
F32 rand_val = llclamp(noise2(vec)* 0.75f + 0.5f, 0.f, 1.f);

View File

@ -1426,8 +1426,8 @@ void LLWorld::updateWaterObjects()
S32 add_boundary[4] = {
// <FS:CR> Fix water height on regions larger than 2048x2048
//512 - (max_x - region_x),
//512 - (max_y - region_y),
//(S32)(512 - (max_x - region_x)),
//(S32)(512 - (max_y - region_y)),
(S32)(512 - (max_x - (rwidth - 256) - region_x)),
(S32)(512 - (max_y - (rwidth - 256) - region_y)),
(S32)(512 - (region_x - min_x)),

View File

@ -174,7 +174,7 @@
audio
</widgettype>
<impl>
media_plugin_cef
media_plugin_libvlc
</impl>
</mimetype>
<mimetype name="video/*">
@ -317,7 +317,7 @@
audio
</widgettype>
<impl>
media_plugin_cef
media_plugin_libvlc
</impl>
</mimetype>
<mimetype name="audio/x-aiff">
@ -328,7 +328,7 @@
audio
</widgettype>
<impl>
media_plugin_cef
media_plugin_libvlc
</impl>
</mimetype>
<mimetype name="audio/x-wav">
@ -339,7 +339,7 @@
audio
</widgettype>
<impl>
media_plugin_cef
media_plugin_libvlc
</impl>
</mimetype>
<mimetype menu="1" name="image/bmp">

View File

@ -130,7 +130,7 @@
movie
</widgettype>
<impl>
media_plugin_gstreamer
media_plugin_libvlc
</impl>
</scheme>
<mimetype name="blank">
@ -163,7 +163,7 @@
audio
</widgettype>
<impl>
media_plugin_gstreamer
media_plugin_libvlc
</impl>
</mimetype>
<mimetype name="video/*">
@ -174,7 +174,7 @@
movie
</widgettype>
<impl>
media_plugin_gstreamer
media_plugin_libvlc
</impl>
</mimetype>
<mimetype name="image/*">
@ -196,7 +196,7 @@
movie
</widgettype>
<impl>
media_plugin_gstreamer
media_plugin_libvlc
</impl>
</mimetype>
<mimetype name="application/javascript">
@ -218,7 +218,7 @@
audio
</widgettype>
<impl>
media_plugin_gstreamer
media_plugin_libvlc
</impl>
</mimetype>
<mimetype name="application/pdf">
@ -295,7 +295,7 @@
audio
</widgettype>
<impl>
media_plugin_gstreamer
media_plugin_libvlc
</impl>
</mimetype>
<mimetype name="audio/mpeg">
@ -306,7 +306,7 @@
audio
</widgettype>
<impl>
media_plugin_gstreamer
media_plugin_libvlc
</impl>
</mimetype>
<mimetype name="audio/x-aiff">
@ -317,7 +317,7 @@
audio
</widgettype>
<impl>
media_plugin_gstreamer
media_plugin_libvlc
</impl>
</mimetype>
<mimetype name="audio/x-wav">
@ -328,7 +328,7 @@
audio
</widgettype>
<impl>
media_plugin_gstreamer
media_plugin_libvlc
</impl>
</mimetype>
<mimetype menu="1" name="image/bmp">
@ -438,7 +438,7 @@
movie
</widgettype>
<impl>
media_plugin_gstreamer
media_plugin_libvlc
</impl>
</mimetype>
<mimetype name="video/mp4">
@ -449,7 +449,7 @@
movie
</widgettype>
<impl>
media_plugin_gstreamer
media_plugin_libvlc
</impl>
</mimetype>
<mimetype menu="1" name="video/quicktime">
@ -460,7 +460,7 @@
movie
</widgettype>
<impl>
media_plugin_gstreamer
media_plugin_libvlc
</impl>
</mimetype>
<mimetype name="video/x-ms-asf">
@ -471,7 +471,7 @@
movie
</widgettype>
<impl>
media_plugin_gstreamer
media_plugin_libvlc
</impl>
</mimetype>
<mimetype name="video/x-ms-wmv">
@ -482,7 +482,7 @@
movie
</widgettype>
<impl>
media_plugin_gstreamer
media_plugin_libvlc
</impl>
</mimetype>
<mimetype menu="1" name="video/x-msvideo">
@ -493,7 +493,7 @@
movie
</widgettype>
<impl>
media_plugin_gstreamer
media_plugin_libvlc
</impl>
</mimetype>
</mimetypes>

View File

@ -1344,8 +1344,18 @@ class LinuxManifest(ViewerManifest):
if self.prefix(src="", dst="bin/llplugin"):
self.path("../media_plugins/gstreamer010/libmedia_plugin_gstreamer010.so", "libmedia_plugin_gstreamer.so")
self.path( "../media_plugins/cef/libmedia_plugin_cef.so", "libmedia_plugin_cef.so" )
self.path("../media_plugins/libvlc/libmedia_plugin_libvlc.so", "libmedia_plugin_libvlc.so")
self.end_prefix("bin/llplugin")
if self.prefix(src=os.path.join(os.pardir, 'packages', 'lib', 'vlc', 'plugins'), dst="bin/llplugin/vlc/plugins"):
self.path( "plugins.dat" )
self.path( "*/*.so" )
self.end_prefix()
if self.prefix(src=os.path.join(os.pardir, 'packages', 'lib' ), dst="lib"):
self.path( "libvlc*.so*" )
self.end_prefix()
# CEF files
if self.prefix(src=os.path.join(os.pardir, 'packages', 'lib', 'release'), dst="lib"):
self.path( "libcef.so" )