diff --git a/contrib/src/vorbis/SHA512SUMS b/contrib/src/vorbis/SHA512SUMS
new file mode 100644
index 0000000000000000000000000000000000000000..7f4234f42329111e1cf7cccda14f4c0a2f41fe93
--- /dev/null
+++ b/contrib/src/vorbis/SHA512SUMS
@@ -0,0 +1 @@
+f705c7740bec2dc6584ab8f103491a9d462136e3fa76454bde47e2ba04466b896ef066f7f925ad0a44d4c659c962717bc9099b3cecc20f12270d0ad53369ad53  libvorbis-1.3.4.tar.xz
diff --git a/contrib/src/vorbis/osx.patch b/contrib/src/vorbis/osx.patch
new file mode 100644
index 0000000000000000000000000000000000000000..8ae481292edf599bcc92f31ba379bb284edcdb65
--- /dev/null
+++ b/contrib/src/vorbis/osx.patch
@@ -0,0 +1,13 @@
+--- libvorbis/configure.ac.orig	2012-09-07 00:17:47.000000000 +0200
++++ libvorbis/configure.ac	2012-09-07 00:18:01.000000000 +0200
+@@ -199,8 +199,8 @@
+ 		PROFILE="-pg -g -O20 -D__NO_MATH_INLINES -fsigned-char $sparc_cpu" ;;
+ 	*-*-darwin*)
+ 		DEBUG="-DDARWIN -fno-common -force_cpusubtype_ALL -Wall -g -O0 -fsigned-char"
+-		CFLAGS="-DDARWIN -fno-common -force_cpusubtype_ALL -Wall -g -O4 -ffast-math -fsigned-char"
+-		PROFILE="-DDARWIN -fno-common -force_cpusubtype_ALL -Wall -g -pg -O4 -ffast-math -fsigned-char";;
++		CFLAGS="-DDARWIN -fno-common -force_cpusubtype_ALL -Wall -g -O3 -ffast-math -fsigned-char"
++		PROFILE="-DDARWIN -fno-common -force_cpusubtype_ALL -Wall -g -pg -O3 -ffast-math -fsigned-char";;
+ 	*-*-os2*)
+ 		# Use -W instead of -Wextra because gcc on OS/2 is an old version.
+ 		DEBUG="-g -Wall -W -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char"
diff --git a/contrib/src/vorbis/rules.mak b/contrib/src/vorbis/rules.mak
new file mode 100644
index 0000000000000000000000000000000000000000..12b23a334540e1bf996a8f78e5e43d5364a68ad3
--- /dev/null
+++ b/contrib/src/vorbis/rules.mak
@@ -0,0 +1,46 @@
+# libvorbis
+
+VORBIS_VERSION := 1.3.4
+VORBIS_URL := http://downloads.xiph.org/releases/vorbis/libvorbis-$(VORBIS_VERSION).tar.xz
+#VORBIS_URL := $(CONTRIB_VIDEOLAN)/libvorbis-$(VORBIS_VERSION).tar.gz
+
+ifdef HAVE_FPU
+PKGS += vorbis
+endif
+ifeq ($(call need_pkg,"vorbis >= 1.1"),)
+PKGS_FOUND += vorbis
+endif
+PKGS_ALL += vorbisenc
+ifdef BUILD_ENCODERS
+PKGS += vorbisenc
+endif
+ifeq ($(call need_pkg,"vorbisenc >= 1.1"),)
+PKGS_FOUND += vorbisenc
+endif
+
+$(TARBALLS)/libvorbis-$(VORBIS_VERSION).tar.xz:
+	$(call download,$(VORBIS_URL))
+
+.sum-vorbis: libvorbis-$(VORBIS_VERSION).tar.xz
+
+vorbis: libvorbis-$(VORBIS_VERSION).tar.xz .sum-vorbis
+	$(UNPACK)
+	$(APPLY) $(SRC)/vorbis/osx.patch
+	$(UPDATE_AUTOCONFIG)
+	$(MOVE)
+
+DEPS_vorbis = ogg $(DEPS_ogg)
+
+.vorbis: vorbis
+	$(RECONF) -Im4
+	cd $< && $(HOSTVARS) ./configure $(HOSTCONF) --disable-docs --disable-examples --disable-oggtest
+	cd $< && $(MAKE) install
+	touch $@
+
+.sum-vorbisenc: .sum-vorbis
+	touch $@
+
+DEPS_vorbisenc = vorbis $(DEPS_vorbis)
+
+.vorbisenc:
+	touch $@