diff --git a/.gitignore b/.gitignore
index 57b10f0..7b792a9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/libvpx-v1.2.0.tar.bz2
+SOURCES/libvpx-v1.3.0.tar.bz2
diff --git a/.libvpx.metadata b/.libvpx.metadata
index 925b15e..2738fa2 100644
--- a/.libvpx.metadata
+++ b/.libvpx.metadata
@@ -1 +1 @@
-d624b9c88c5aa83d39c8a048532cd742146e7a2e SOURCES/libvpx-v1.2.0.tar.bz2
+191b95817aede8c136cc3f3745fb1b8c50e6d5dc SOURCES/libvpx-v1.3.0.tar.bz2
diff --git a/SOURCES/Bug-fix-in-ssse3-quantize-function.patch b/SOURCES/Bug-fix-in-ssse3-quantize-function.patch
new file mode 100644
index 0000000..74138e8
--- /dev/null
+++ b/SOURCES/Bug-fix-in-ssse3-quantize-function.patch
@@ -0,0 +1,32 @@
+commit 0d43bd77e5f429467fbd280a7b8f7fbc0bfe1809
+Author: Yunqing Wang <yunqingwang@google.com>
+Date:   Fri Feb 7 14:27:07 2014 -0800
+
+    Bug fix in ssse3 quantize function
+    
+    A bug was reported in Issue 702: "SIGILL (Illegal instruction) when
+    transcoding with vp9 - using FFmpeg". It was reproduced and fixed.
+    
+    Change-Id: Ie32c149a89af02856084aeaf289e848a905c7700
+
+diff --git a/vp9/encoder/x86/vp9_quantize_ssse3.asm b/vp9/encoder/x86/vp9_quantize_ssse3.asm
+index db30660..48ccef8 100644
+--- a/vp9/encoder/x86/vp9_quantize_ssse3.asm
++++ b/vp9/encoder/x86/vp9_quantize_ssse3.asm
+@@ -188,7 +188,8 @@ cglobal quantize_%1, 0, %2, 15, coeff, ncoeff, skip, zbin, round, quant, \
+   pmaxsw                          m8, m7
+   pshuflw                         m7, m8, 0x1
+   pmaxsw                          m8, m7
+-  pextrw                        [r2], m8, 0
++  pextrw                          r6, m8, 0
++  mov                             [r2], r6
+   RET
+ 
+   ; skip-block, i.e. just write all zeroes
+@@ -214,5 +215,5 @@ cglobal quantize_%1, 0, %2, 15, coeff, ncoeff, skip, zbin, round, quant, \
+ %endmacro
+ 
+ INIT_XMM ssse3
+-QUANTIZE_FN b, 6
++QUANTIZE_FN b, 7
+ QUANTIZE_FN b_32x32, 7
diff --git a/SOURCES/libvpx-nasm.patch b/SOURCES/libvpx-nasm.patch
deleted file mode 100644
index 16b03f0..0000000
--- a/SOURCES/libvpx-nasm.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-diff -up libvpx-v1.2.0/vp8/common/x86/iwalsh_mmx.asm.nasm libvpx-v1.2.0/vp8/common/x86/iwalsh_mmx.asm
---- libvpx-v1.2.0/vp8/common/x86/iwalsh_mmx.asm.nasm	2013-02-28 18:51:11.000000000 +0100
-+++ libvpx-v1.2.0/vp8/common/x86/iwalsh_mmx.asm	2013-04-05 14:16:31.784250142 +0200
-@@ -24,7 +24,7 @@ sym(vp8_short_inv_walsh4x4_mmx):
- 
-     movq        mm0, [rdx + 0]    ;ip[0]
-     movq        mm1, [rdx + 8]    ;ip[4]
--    movd        mm7, rax
-+    movq        mm7, rax
- 
-     movq        mm2, [rdx + 16]   ;ip[8]
-     movq        mm3, [rdx + 24]   ;ip[12]
-diff -up libvpx-v1.2.0/vp8/common/x86/mfqe_sse2.asm.nasm libvpx-v1.2.0/vp8/common/x86/mfqe_sse2.asm
---- libvpx-v1.2.0/vp8/common/x86/mfqe_sse2.asm.nasm	2013-02-28 18:51:11.000000000 +0100
-+++ libvpx-v1.2.0/vp8/common/x86/mfqe_sse2.asm	2013-04-05 15:20:26.521402526 +0200
-@@ -271,7 +271,11 @@ sym(vp8_variance_and_sad_16x16_sse2):
- SECTION_RODATA
- align 16
- t128:
--    ddq 128
-+%if CONFIG_BIG_ENDIAN
-+    dq  0, 128
-+%else
-+    dq  128, 0
-+%endif
- align 16
- tMFQE: ; 1 << MFQE_PRECISION
-     times 8 dw 0x10
-diff -up libvpx-v1.2.0/vp8/encoder/x86/temporal_filter_apply_sse2.asm.nasm libvpx-v1.2.0/vp8/encoder/x86/temporal_filter_apply_sse2.asm
---- libvpx-v1.2.0/vp8/encoder/x86/temporal_filter_apply_sse2.asm.nasm	2013-02-28 18:51:11.000000000 +0100
-+++ libvpx-v1.2.0/vp8/encoder/x86/temporal_filter_apply_sse2.asm	2013-04-05 14:16:31.784250142 +0200
-@@ -50,7 +50,7 @@ sym(vp8_temporal_filter_apply_sse2):
-         ; 0x8000 >> (16 - strength)
-         mov         rdx,            16
-         sub         rdx,            arg(4) ; 16 - strength
--        movd        xmm4,           rdx    ; can't use rdx w/ shift
-+        movq        xmm4,           rdx    ; can't use rdx w/ shift
-         movdqa      xmm5,           [GLOBAL(_const_top_bit)]
-         psrlw       xmm5,           xmm4
-         movdqa      [rsp + rounding_bit], xmm5
diff --git a/SOURCES/libvpx.ver b/SOURCES/libvpx.ver
index c3010ec..aa147ab 100644
--- a/SOURCES/libvpx.ver
+++ b/SOURCES/libvpx.ver
@@ -23,6 +23,7 @@ vpx_codec_peek_stream_info;
 vpx_codec_register_put_frame_cb;
 vpx_codec_register_put_slice_cb;
 vpx_codec_set_cx_data_buf;
+vpx_codec_set_frame_buffer_functions;
 vpx_codec_set_mem_map;
 vpx_codec_version;
 vpx_codec_version_extra_str;
@@ -32,6 +33,10 @@ vpx_codec_vp8_cx;
 vpx_codec_vp8_cx_algo;
 vpx_codec_vp8_dx;
 vpx_codec_vp8_dx_algo;
+vpx_codec_vp9_cx;
+vpx_codec_vp9_cx_algo;
+vpx_codec_vp9_dx;
+vpx_codec_vp9_dx_algo;
 vpx_dec_control;
 vpx_dec_decode;
 vpx_dec_destroy;
@@ -55,4 +60,20 @@ vpx_img_flip;
 vpx_img_free;
 vpx_img_set_rect;
 vpx_img_wrap;
+vpx_svc_dump_statistics;
+vpx_svc_encode;
+vpx_svc_get_buffer;
+vpx_svc_get_encode_frame_count;
+vpx_svc_get_frame_size;
+vpx_svc_get_layer_resolution;
+vpx_svc_get_message;
+vpx_svc_get_rc_stats_buffer;
+vpx_svc_get_rc_stats_buffer_size;
+vpx_svc_init;
+vpx_svc_is_keyframe;
+vpx_svc_release;
+vpx_svc_set_keyframe;
+vpx_svc_set_options;
+vpx_svc_set_quantizers;
+vpx_svc_set_scale_factors;
 local: *; };
diff --git a/SOURCES/sectalign-nasm.patch b/SOURCES/sectalign-nasm.patch
new file mode 100644
index 0000000..c74a236
--- /dev/null
+++ b/SOURCES/sectalign-nasm.patch
@@ -0,0 +1,24 @@
+https://bugzilla.redhat.com/show_bug.cgi?id=603113#c11
+
+--- libvpx-v1.3.0/build/make/configure.sh-orig	2014-01-10 21:12:40.000000000 +0100
++++ libvpx-v1.3.0/build/make/configure.sh	2014-07-29 13:30:14.509553770 +0200
+@@ -374,7 +374,7 @@ EOF
+     readelf -WS ${TMP_O} >${TMP_X}
+     log_file ${TMP_X}
+     if ! grep -q '\.rodata .* 16$' ${TMP_X}; then
+-        die "${AS} ${ASFLAGS} does not support section alignment (nasm <=2.08?)"
++        echo >&2 "${AS} ${ASFLAGS} does not support section alignment (nasm <=2.08?)"
+     fi
+ }
+ 
+--- libvpx-v1.3.0/vpx_ports/x86_abi_support.asm-orig	2014-07-29 14:06:26.856461360 +0200
++++ libvpx-v1.3.0/vpx_ports/x86_abi_support.asm	2014-07-29 15:00:51.772040384 +0200
+@@ -377,7 +377,7 @@ section .text
+ %elifidn __OUTPUT_FORMAT__,aout
+ %define SECTION_RODATA section .data
+ %else
+-%define SECTION_RODATA section .rodata
++%define SECTION_RODATA section .rodata align=16
+ %endif
+ 
+ 
diff --git a/SOURCES/vp9-nasm.patch b/SOURCES/vp9-nasm.patch
new file mode 100644
index 0000000..5e80cb7
--- /dev/null
+++ b/SOURCES/vp9-nasm.patch
@@ -0,0 +1,96 @@
+https://gerrit.chromium.org/gerrit/#/c/71007/
+
+[modified]
+
+commit 2695f18211e9b1017647af608a64d72a688ffbe7
+Author: Jan Kratochvil <jan.kratochvil@redhat.com>
+Date:   Mon Jul 28 20:07:38 2014 +0200
+
+    Fix --as=nasm compatibility for new asm code.
+    
+    s/movd/movq/
+    s/pmovmskb rX,/pmovmskb rXd,/
+    Add end-of-line ':' label markers.
+    
+    Change-Id: Icc2c8b66af3cf72598361021699e099739f813d7
+
+diff --git a/vp9/common/x86/vp9_subpixel_8t_ssse3.asm b/vp9/common/x86/vp9_subpixel_8t_ssse3.asm
+index fd781d4..57eee70 100644
+--- a/vp9/common/x86/vp9_subpixel_8t_ssse3.asm
++++ b/vp9/common/x86/vp9_subpixel_8t_ssse3.asm
+@@ -18,7 +18,7 @@
+     mov         rcx, 0x0400040
+ 
+     movdqa      xmm4, [rdx]                 ;load filters
+-    movd        xmm5, rcx
++    movq        xmm5, rcx
+     packsswb    xmm4, xmm4
+     pshuflw     xmm0, xmm4, 0b              ;k0_k1
+     pshuflw     xmm1, xmm4, 01010101b       ;k2_k3
+@@ -624,7 +624,7 @@ sym(vp9_filter_block1d16_v8_avg_ssse3):
+     pavgb       xmm0,   xmm1
+ %endif
+     movd        [rdi],  xmm0
+-.done
++.done:
+ %endm
+ 
+ %macro HORIZx8_ROW 4
+@@ -661,7 +661,7 @@ sym(vp9_filter_block1d16_v8_avg_ssse3):
+     mov         rcx, 0x0400040
+ 
+     movdqa      xmm4, [rdx]                 ;load filters
+-    movd        xmm5, rcx
++    movq        xmm5, rcx
+     packsswb    xmm4, xmm4
+     pshuflw     xmm0, xmm4, 0b              ;k0_k1
+     pshuflw     xmm1, xmm4, 01010101b       ;k2_k3
+@@ -727,7 +727,7 @@ sym(vp9_filter_block1d16_v8_avg_ssse3):
+     pavgb       xmm0,   xmm1
+ %endif
+     movq        [rdi],  xmm0
+-.done
++.done:
+ %endm
+ 
+ %macro HORIZx16 1
+diff --git a/vp9/encoder/x86/vp9_quantize_ssse3_x86_64.asm b/vp9/encoder/x86/vp9_quantize_ssse3_x86_64.asm
+index 508e1d4..1c97342 100644
+--- a/vp9/encoder/x86/vp9_quantize_ssse3.asm
++++ b/vp9/encoder/x86/vp9_quantize_ssse3.asm
+@@ -122,8 +122,8 @@ cglobal quantize_%1, 0, %2, 15, coeff, ncoeff, skip, zbin, round, quant, \
+   pcmpgtw                         m7, m6, m0               ; m7 = c[i] >= zbin
+   pcmpgtw                        m12, m11, m0              ; m12 = c[i] >= zbin
+ %ifidn %1, b_32x32
+-  pmovmskb                        r6, m7
+-  pmovmskb                        r2, m12
++  pmovmskb                        r6d, m7
++  pmovmskb                        r2d, m12
+   or                              r6, r2
+   jz .skip_iter
+ %endif
+diff --git a/vp9/encoder/x86/vp9_subpel_variance.asm b/vp9/encoder/x86/vp9_subpel_variance.asm
+index 1a9e4e8..e06e220 100644
+--- a/vp9/encoder/x86/vp9_subpel_variance.asm
++++ b/vp9/encoder/x86/vp9_subpel_variance.asm
+@@ -101,7 +101,6 @@ SECTION .text
+   pshufd               m4, m6, 0x1
+   movd               [r1], m7           ; store sse
+   paddd                m6, m4
+-  movd                rax, m6           ; store sum as return value
+ %else ; mmsize == 8
+   pshufw               m4, m6, 0xe
+   pshufw               m3, m7, 0xe
+@@ -113,7 +112,11 @@ SECTION .text
+   movd               [r1], m7           ; store sse
+   pshufw               m4, m6, 0xe
+   paddd                m6, m4
+-  movd                rax, m6           ; store sum as return value
++%endif
++%if ARCH_X86_64
++  movq                rax, m6           ; store sum as return value
++%else
++  movd                eax, m6           ; store sum as return value
+ %endif
+   RET
+ %endmacro
diff --git a/SOURCES/x86inc-nasm.patch b/SOURCES/x86inc-nasm.patch
new file mode 100644
index 0000000..079ac08
--- /dev/null
+++ b/SOURCES/x86inc-nasm.patch
@@ -0,0 +1,25 @@
+commit 7ddb5f599286ab4ce7de4061ab94828cdfee36c6
+Author: KO Myung-Hun <komh@chollian.net>
+Date:   Tue Jul 22 10:47:20 2014 +0900
+
+    x86inc: fix compilation with NASM
+    
+    Change-Id: I5978921ab1ccad6648a5bde6ad023c3e3430f5f4
+
+diff --git a/third_party/x86inc/x86inc.asm b/third_party/x86inc/x86inc.asm
+index 2134676..99453a9 100644
+--- a/third_party/x86inc/x86inc.asm
++++ b/third_party/x86inc/x86inc.asm
+@@ -234,10 +234,10 @@ ALIGNMODE k7
+         %define r%1mp %2
+     %elif ARCH_X86_64 ; memory
+         %define r%1m [rsp + stack_offset + %6]
+-        %define r%1mp qword r %+ %1m
++        %define r%1mp qword r %+ %1 %+ m
+     %else
+         %define r%1m [esp + stack_offset + %6]
+-        %define r%1mp dword r %+ %1m
++        %define r%1mp dword r %+ %1 %+ m
+     %endif
+     %define r%1  %2
+ %endmacro
diff --git a/SPECS/libvpx.spec b/SPECS/libvpx.spec
index 3d05f00..da72f32 100644
--- a/SPECS/libvpx.spec
+++ b/SPECS/libvpx.spec
@@ -1,26 +1,21 @@
 %global majorver 1
-%global minorver 2
+%global minorver 3
 %global tinyver  0
 
 Name:			libvpx
 Summary:		VP8 Video Codec SDK
 Version:		%{majorver}.%{minorver}.%{tinyver}
 %global soversion	%{version}
-Release:		4%{?dist}
+Release:		5%{?dist}
 License:		BSD
 Group:			System Environment/Libraries
-# Google forgot to make a 1.2.0 tarball, so I made one from the git tag.
-# git clone https://code.google.com/p/webm.libvpx/ libvpx
-# cd libvpx
-# git checkout v1.2.0
-# rm -rf .git*
-# cd ..
-# mv libvpx libvpx-v1.2.0
-# tar xvfj libvpx-v1.2.0.tar.bz2 libvpx-v1.2.0
 Source0:		http://webm.googlecode.com/files/%{name}-v%{version}.tar.bz2
 # Thanks to debian.
 Source2:		libvpx.ver
-Patch0:			libvpx-nasm.patch
+Patch0:			Bug-fix-in-ssse3-quantize-function.patch
+Patch1:			x86inc-nasm.patch
+Patch2:			vp9-nasm.patch
+Patch3:			sectalign-nasm.patch
 URL:			http://www.webmproject.org/tools/vp8-sdk/
 %ifarch %{ix86} x86_64
 BuildRequires:		nasm
@@ -52,7 +47,11 @@ and decoder.
 
 %prep
 %setup -q -n %{name}-v%{version}
-%patch0 -p1 -b .nasm
+%patch0 -p1 -b .patch0
+%patch1 -p1 -b .x86inc-nasm
+%patch2 -p1 -b .vp9-nasm
+%patch3 -p1 -b .sectalign-nasm
+sed -i -e 's/^\(global .*\) PRIVATE$/\1/' $(find -name "*.asm")
 
 %build
 %ifarch %{ix86}
@@ -61,9 +60,13 @@ and decoder.
 %ifarch	x86_64
 %global	vpxtarget x86_64-linux-gcc
 %else
+%ifarch armv7hl
+%global vpxtarget armv7-linux-gcc
+%else
 %global vpxtarget generic-gnu
 %endif
 %endif
+%endif
 
 # The configure script will reject the shared flag on the generic target
 # This means we need to fall back to the manual creation we did before. :P
@@ -73,7 +76,12 @@ and decoder.
 %global	generic_target 0
 %endif
 
-./configure --target=%{vpxtarget} --enable-pic --disable-install-srcs \
+%ifarch armv7hl
+CROSS=armv7hl-redhat-linux-gnueabi- CHOST=armv7hl-redhat-linux-gnueabi-hardfloat ./configure \
+%else
+./configure --target=%{vpxtarget} \
+%endif
+--enable-pic --disable-install-srcs --as=nasm \
 %if ! %{generic_target}
 --enable-shared \
 %endif
@@ -84,6 +92,21 @@ sed -i "s|-O3|%{optflags}|g" libs-%{vpxtarget}.mk
 sed -i "s|-O3|%{optflags}|g" examples-%{vpxtarget}.mk
 sed -i "s|-O3|%{optflags}|g" docs-%{vpxtarget}.mk
 
+%ifarch armv7hl
+#hackety hack hack
+sed -i "s|AR=armv7hl-redhat-linux-gnueabi-ar|AR=ar|g" libs-%{vpxtarget}.mk
+sed -i "s|AR=armv7hl-redhat-linux-gnueabi-ar|AR=ar|g" examples-%{vpxtarget}.mk
+sed -i "s|AR=armv7hl-redhat-linux-gnueabi-ar|AR=ar|g" docs-%{vpxtarget}.mk
+
+sed -i "s|AS=armv7hl-redhat-linux-gnueabi-as|AS=as|g" libs-%{vpxtarget}.mk
+sed -i "s|AS=armv7hl-redhat-linux-gnueabi-as|AS=as|g" examples-%{vpxtarget}.mk
+sed -i "s|AS=armv7hl-redhat-linux-gnueabi-as|AS=as|g" docs-%{vpxtarget}.mk
+
+sed -i "s|NM=armv7hl-redhat-linux-gnueabi-nm|NM=nm|g" libs-%{vpxtarget}.mk
+sed -i "s|NM=armv7hl-redhat-linux-gnueabi-nm|NM=nm|g" examples-%{vpxtarget}.mk
+sed -i "s|NM=armv7hl-redhat-linux-gnueabi-nm|NM=nm|g" docs-%{vpxtarget}.mk
+%endif
+
 make %{?_smp_mflags} verbose=true target=libs
 
 %if %{generic_target}
@@ -155,24 +178,21 @@ popd
 %{_bindir}/*
 
 %changelog
-* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 1.2.0-4
-- Mass rebuild 2014-01-24
+* Thu Mar 20 2014 Wim Taymans <wtaymans@redhat.com> - 1.3.0-4
+- fix Illegal Instruction abort
+
+* Thu Feb 13 2014 Dan Horák <dan[at]danny.cz> - 1.3.0-3
+- update library symbol list for 1.3.0 from Debian
 
-* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 1.2.0-3
-- Mass rebuild 2013-12-27
+* Tue Feb 11 2014 Tom Callaway <spot@fedoraproject.org> - 1.3.0-2
+- armv7hl specific target
 
-* Fri Apr 5 2013 Martin Stransky <stransky@redhat.com> - 1.2.0-2
-- Build fix for nasm
+* Tue Feb 11 2014 Tom Callaway <spot@fedoraproject.org> - 1.3.0-1
+- update to 1.3.0
 
 * Thu Feb 28 2013 Tom Callaway <spot@fedoraproject.org> - 1.2.0-1
 - update to 1.2.0
 
-* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.0-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
-
-* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.0-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
-
 * Tue May 29 2012 Tom Callaway <spot@fedoraproject.org> - 1.1.0-1
 - update to 1.1.0
 
@@ -186,9 +206,6 @@ popd
 * Mon Jan 30 2012 Tom Callaway <spot@fedoraproject.org> - 1.0.0-1
 - update to 1.0.0
 
-* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.7.1-4
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
-
 * Mon Oct 10 2011 Dan Horák <dan[at]danny.cz> - 0.9.7.1-3
 - use macro instead of hard-coded version