diff --git a/src/3rdparty/libwebp.pri b/src/3rdparty/libwebp.pri
index 03f51dd2cb5629e59b591a4672ab1620d19b49c8..627ff95887e833ca762a07f8decff89d443108e4 100644
--- a/src/3rdparty/libwebp.pri
+++ b/src/3rdparty/libwebp.pri
@@ -16,7 +16,6 @@ SOURCES += \
     $$PWD/libwebp/src/dec/frame.c \
     $$PWD/libwebp/src/dec/idec.c \
     $$PWD/libwebp/src/dec/io.c \
-    $$PWD/libwebp/src/dec/layer.c \
     $$PWD/libwebp/src/dec/quant.c \
     $$PWD/libwebp/src/dec/tree.c \
     $$PWD/libwebp/src/dec/vp8.c \
@@ -35,6 +34,17 @@ SOURCES += \
     $$PWD/libwebp/src/dsp/upsampling_neon.c \
     $$PWD/libwebp/src/dsp/upsampling_sse2.c \
     $$PWD/libwebp/src/dsp/yuv.c \
+    $$PWD/libwebp/src/dsp/alpha_processing.c \
+    $$PWD/libwebp/src/dsp/alpha_processing_sse2.c \
+    $$PWD/libwebp/src/dsp/dec_clip_tables.c \
+    $$PWD/libwebp/src/dsp/dec_mips32.c \
+    $$PWD/libwebp/src/dsp/enc_avx2.c \
+    $$PWD/libwebp/src/dsp/enc_mips32.c \
+    $$PWD/libwebp/src/dsp/lossless_mips32.c \
+    $$PWD/libwebp/src/dsp/lossless_neon.c \
+    $$PWD/libwebp/src/dsp/lossless_sse2.c \
+    $$PWD/libwebp/src/dsp/yuv_mips32.c \
+    $$PWD/libwebp/src/dsp/yuv_sse2.c \
     $$PWD/libwebp/src/enc/alpha.c \
     $$PWD/libwebp/src/enc/analysis.c \
     $$PWD/libwebp/src/enc/backward_references.c \
@@ -44,7 +54,6 @@ SOURCES += \
     $$PWD/libwebp/src/enc/frame.c \
     $$PWD/libwebp/src/enc/histogram.c \
     $$PWD/libwebp/src/enc/iterator.c \
-    $$PWD/libwebp/src/enc/layer.c \
     $$PWD/libwebp/src/enc/picture.c \
     $$PWD/libwebp/src/enc/quant.c \
     $$PWD/libwebp/src/enc/syntax.c \
@@ -52,10 +61,13 @@ SOURCES += \
     $$PWD/libwebp/src/enc/tree.c \
     $$PWD/libwebp/src/enc/vp8l.c \
     $$PWD/libwebp/src/enc/webpenc.c \
+    $$PWD/libwebp/src/enc/picture_csp.c \
+    $$PWD/libwebp/src/enc/picture_psnr.c \
+    $$PWD/libwebp/src/enc/picture_rescale.c \
+    $$PWD/libwebp/src/enc/picture_tools.c \
     $$PWD/libwebp/src/mux/muxedit.c \
     $$PWD/libwebp/src/mux/muxinternal.c \
     $$PWD/libwebp/src/mux/muxread.c \
-    $$PWD/libwebp/src/utils/alpha_processing.c \
     $$PWD/libwebp/src/utils/bit_reader.c \
     $$PWD/libwebp/src/utils/bit_writer.c \
     $$PWD/libwebp/src/utils/color_cache.c \
diff --git a/src/3rdparty/libwebp/config.h b/src/3rdparty/libwebp/src/webp/config.h
similarity index 65%
rename from src/3rdparty/libwebp/config.h
rename to src/3rdparty/libwebp/src/webp/config.h
index e947f2cff2354e7fd7591aed9f74985d2eb33780..973b71ef011d9c2a70d74eb5cd7b05430ec34493 100644
--- a/src/3rdparty/libwebp/config.h
+++ b/src/3rdparty/libwebp/src/webp/config.h
@@ -2,17 +2,35 @@
   Configuration defines for Qt.
 */
 
+/* Define if building universal (internal helper macro) */
+/* #undef AC_APPLE_UNIVERSAL_BUILD */
+
+/* Set to 1 if __builtin_bswap16 is available */
+/* #undef HAVE_BUILTIN_BSWAP16 */
+
+/* Set to 1 if __builtin_bswap32 is available */
+/* #undef HAVE_BUILTIN_BSWAP32 */
+
+/* Set to 1 if __builtin_bswap64 is available */
+/* #undef HAVE_BUILTIN_BSWAP64 */
+
 /* Define to 1 if you have the <dlfcn.h> header file. */
 /* #undef HAVE_DLFCN_H */
 
+/* Define to 1 if you have the <GLUT/glut.h> header file. */
+/* #undef #define HAVE_GLUT_GLUT_H */
+
+/* Define to 1 if you have the <GL/glut.h> header file. */
+/* #undef HAVE_GL_GLUT_H */
+
 /* Define to 1 if you have the <inttypes.h> header file. */
 /* #undef HAVE_INTTYPES_H */
 
 /* Define to 1 if you have the <memory.h> header file. */
 /* #undef HAVE_MEMORY_H */
 
-/* Define if you have POSIX threads libraries and header files. */
-/* #undef HAVE_PTHREAD */
+/* Define to 1 if you have the <OpenGL/glut.h> header file. */
+/* #undef HAVE_OPENGL_GLUT_H */
 
 /* Have PTHREAD_PRIO_INHERIT. */
 /* #undef HAVE_PTHREAD_PRIO_INHERIT */
@@ -51,9 +69,6 @@
    */
 /* #undef LT_OBJDIR ".libs/" */
 
-/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-/* #undef NO_MINUS_C_MINUS_O */
-
 /* Name of package */
 #define PACKAGE "libwebp"
 
@@ -64,7 +79,7 @@
 #define PACKAGE_NAME "libwebp"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "libwebp 0.4.0"
+#define PACKAGE_STRING "libwebp 0.4.3"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "libwebp"
@@ -73,7 +88,7 @@
 #define PACKAGE_URL "http://developers.google.com/speed/webp"
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "0.4.0"
+#define PACKAGE_VERSION "0.4.3"
 
 /* Define to necessary symbol if this constant uses a non-standard name on
    your system. */
@@ -83,19 +98,40 @@
 /* #undef STDC_HEADERS */
 
 /* Version number of package */
-#define VERSION "0.4.0"
+#define VERSION "0.4.3"
 
 /* Enable experimental code */
 /* #undef WEBP_EXPERIMENTAL_FEATURES */
 
+/* Define to 1 to force aligned memory operations */
+/* #undef WEBP_FORCE_ALIGNED */
+
+/* Set to 1 if AVX2 is supported */
+/* #undef WEBP_HAVE_AVX2 */
+
+/* Set to 1 if GIF library is installed */
+/* #undef WEBP_HAVE_GIF */
+
+/* Set to 1 if OpenGL is supported */
+/* #undef WEBP_HAVE_GL */
+
 /* Set to 1 if JPEG library is installed */
 /* #undef WEBP_HAVE_JPEG */
 
 /* Set to 1 if PNG library is installed */
-/* #undef WEBP_HAVE_PNG 1 */
+/* #undef WEBP_HAVE_PNG */
+
+/* Set to 1 if SSE2 is supported */
+/* #undef WEBP_HAVE_SSE2 */
 
 /* Set to 1 if TIFF library is installed */
-/* #undef WEBP_HAVE_TIFF 1 */
+/* #undef WEBP_HAVE_TIFF */
 
 /* Undefine this to disable thread support. */
 #define WEBP_USE_THREAD 1
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+   significant byte first (like Motorola and SPARC, unlike Intel). */
+#if (Q_BYTE_ORDER == Q_BIG_ENDIAN)
+#define WORDS_BIGENDIAN 1
+#endif