diff --git a/autobuild.xml b/autobuild.xml
index 6c29d5cb1894de13c5651af1dc85ceabe4b5f9c4..3468adb9fee7d3805625aadc5565d8ce32eabcb6 100755
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -1484,11 +1484,11 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>29a1f64df46094eda0d681821a98d17e</string>
+              <string>7db18237c7ac2f49a9d17a4c5ca7b23e</string>
               <key>hash_algorithm</key>
               <string>md5</string>
               <key>url</key>
-              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llceflib_3p-llceflib/rev/311349/arch/Darwin/installer/llceflib-1.5.3.311349-darwin-311349.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llceflib_3p-llceflib/rev/315268/arch/Darwin/installer/llceflib-1.5.3.315268-darwin-315268.tar.bz2</string>
             </map>
             <key>name</key>
             <string>darwin</string>
@@ -1498,18 +1498,18 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>827b7c339a2cd401d9d23f9ee02cb83f</string>
+              <string>0dc2c50d785dfd5ff7098d262ed29499</string>
               <key>hash_algorithm</key>
               <string>md5</string>
               <key>url</key>
-              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llceflib_3p-llceflib/rev/311349/arch/CYGWIN/installer/llceflib-1.5.3.311349-windows-311349.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llceflib_3p-llceflib/rev/315268/arch/CYGWIN/installer/llceflib-1.5.3.315268-windows-315268.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows</string>
           </map>
         </map>
         <key>version</key>
-        <string>1.5.3.311349</string>
+        <string>1.5.3.315268</string>
       </map>
       <key>llphysicsextensions_source</key>
       <map>
diff --git a/indra/media_plugins/cef/media_plugin_cef.cpp b/indra/media_plugins/cef/media_plugin_cef.cpp
index 8d9d1dd975e12b8fe7e1ee8a66d32a8863343872..d61bd680df14e05ffc909908a06bb651cf986e33 100644
--- a/indra/media_plugins/cef/media_plugin_cef.cpp
+++ b/indra/media_plugins/cef/media_plugin_cef.cpp
@@ -488,7 +488,7 @@ void MediaPluginCEF::receiveMessage(const char* message_string)
 				message.setValueU32("internalformat", GL_RGB);
 				message.setValueU32("format", GL_BGRA);
 				message.setValueU32("type", GL_UNSIGNED_BYTE);
-				message.setValueBoolean("coords_opengl", true);
+				message.setValueBoolean("coords_opengl", false);
 				sendMessage(message);
 			}
 			else if (message_name == "set_user_data_path")
diff --git a/indra/media_plugins/libvlc/media_plugin_libvlc.cpp b/indra/media_plugins/libvlc/media_plugin_libvlc.cpp
index 08716e1a1c74f809d88664b6eb94829164a343ed..920c32f1f792c9d7e63be0048af8dfd6d3e9608b 100644
--- a/indra/media_plugins/libvlc/media_plugin_libvlc.cpp
+++ b/indra/media_plugins/libvlc/media_plugin_libvlc.cpp
@@ -56,6 +56,7 @@ class MediaPluginLibVLC :
 		void resetVLC();
 
 		static void* lock(void* data, void** p_pixels);
+		static void unlock(void* data, void* id, void* const* raw_pixels);
 		static void display(void* data, void* id);
 
 		libvlc_instance_t* gLibVLC;
@@ -109,6 +110,14 @@ void* MediaPluginLibVLC::lock(void* data, void** p_pixels)
 	return NULL;
 }
 
+/////////////////////////////////////////////////////////////////////////////////
+//
+void MediaPluginLibVLC::unlock(void* data, void* id, void* const* raw_pixels)
+{
+	// nothing to do here for the moment.
+	// we can modify the raw_pixels here if we want to.
+}
+
 ////////////////////////////////////////////////////////////////////////////////
 //
 void MediaPluginLibVLC::display(void* data, void* id)
@@ -188,7 +197,7 @@ void MediaPluginLibVLC::playMedia()
 	gVLCCallbackContext.texture_pixels = mPixels;
 	gVLCCallbackContext.mp = gLibVLCMediaPlayer;
 
-	libvlc_video_set_callbacks(gLibVLCMediaPlayer, lock, NULL, display, &gVLCCallbackContext);
+	libvlc_video_set_callbacks(gLibVLCMediaPlayer, lock, unlock, display, &gVLCCallbackContext);
 	libvlc_video_set_format(gLibVLCMediaPlayer, "RV32", mWidth, mHeight, mWidth * 4);
 	libvlc_media_player_play(gLibVLCMediaPlayer);
 }
@@ -281,7 +290,6 @@ void MediaPluginLibVLC::receiveMessage( const char* message_string )
         {
             if(message_name == "init")
             {
-                mDepth = 4;
                 LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params");
                 message.setValueS32("default_width", 1024);
                 message.setValueS32("default_height", 1024);
@@ -289,7 +297,7 @@ void MediaPluginLibVLC::receiveMessage( const char* message_string )
 				message.setValueU32("internalformat", GL_RGB);
                 message.setValueU32("format", GL_BGRA_EXT);
                 message.setValueU32("type", GL_UNSIGNED_BYTE);
-                message.setValueBoolean("coords_opengl", true);
+                message.setValueBoolean("coords_opengl", false);
                 sendMessage(message);
             }
             else if(message_name == "size_change")