diff options
Diffstat (limited to 'media-video/ffmpeg2theora')
7 files changed, 200 insertions, 0 deletions
diff --git a/media-video/ffmpeg2theora/Manifest b/media-video/ffmpeg2theora/Manifest new file mode 100644 index 000000000000..ef0a9fd8f7b5 --- /dev/null +++ b/media-video/ffmpeg2theora/Manifest @@ -0,0 +1 @@ +DIST ffmpeg2theora-0.29.tar.bz2 90143 SHA256 214110e2a5afdd8ff8e0be18152e893dbff5dabc1ae1d1124e64d9f93eae946d SHA512 5e5cf1dbc6807a15b3a3e8526955ef341357b6a3106a6449a54b5dc09c652a9df34b5e93c9cbf05e1efad87542364cb8335e173a59a184aa2ff38ec4b536a725 WHIRLPOOL d093a0b0a5d90f6b9a3d959ff662e5e8c9f8ca36d51122f0c293d2189493bdf6daa710fa94be0fdca0d63166c3102dba82da1e533e1876e62f3ed4ec47b65bea diff --git a/media-video/ffmpeg2theora/ffmpeg2theora-0.29-r1.ebuild b/media-video/ffmpeg2theora/ffmpeg2theora-0.29-r1.ebuild new file mode 100644 index 000000000000..0296d485629d --- /dev/null +++ b/media-video/ffmpeg2theora/ffmpeg2theora-0.29-r1.ebuild @@ -0,0 +1,51 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=4 +inherit eutils toolchain-funcs scons-utils + +DESCRIPTION="A simple converter to create Ogg Theora files" +HOMEPAGE="http://www.v2v.cc/~j/ffmpeg2theora/" +SRC_URI="http://www.v2v.cc/~j/${PN}/downloads/${P}.tar.bz2" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="amd64 ~ppc ~ppc64 ~sparc x86 ~x86-fbsd" +IUSE="kate" + +RDEPEND=" + || ( media-video/ffmpeg:0 media-libs/libpostproc <media-video/libav-0.8.2-r1 ) + >=virtual/ffmpeg-0.10 + >=media-libs/libvorbis-1.1 + >=media-libs/libogg-1.1 + >=media-libs/libtheora-1.1[encode] + kate? ( >=media-libs/libkate-0.3.7 )" +DEPEND="${RDEPEND} + virtual/pkgconfig" + +src_prepare() { + epatch \ + "${FILESDIR}"/${P}-swr.patch \ + "${FILESDIR}"/${P}-ffmpeg2.patch \ + "${FILESDIR}"/${P}-underlinking.patch +} + +src_configure() { + myesconsargs=( + APPEND_CCFLAGS="${CFLAGS}" + APPEND_LINKFLAGS="${LDFLAGS}" + prefix=/usr + mandir=PREFIX/share/man + libkate=$(usex kate 1 0) + ) +} + +src_compile() { + escons +} + +src_install() { + escons destdir="${D}" install + dodoc AUTHORS ChangeLog README subtitles.txt TODO +} diff --git a/media-video/ffmpeg2theora/ffmpeg2theora-0.29-r2.ebuild b/media-video/ffmpeg2theora/ffmpeg2theora-0.29-r2.ebuild new file mode 100644 index 000000000000..5e58da482b73 --- /dev/null +++ b/media-video/ffmpeg2theora/ffmpeg2theora-0.29-r2.ebuild @@ -0,0 +1,52 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +inherit eutils toolchain-funcs scons-utils + +DESCRIPTION="A simple converter to create Ogg Theora files" +HOMEPAGE="http://www.v2v.cc/~j/ffmpeg2theora/" +SRC_URI="http://www.v2v.cc/~j/${PN}/downloads/${P}.tar.bz2" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd" +IUSE="kate libav" + +RDEPEND=" + !libav? ( media-video/ffmpeg:0= ) + libav? ( media-libs/libpostproc:0= + media-video/libav:0= ) + >=media-libs/libvorbis-1.1 + >=media-libs/libogg-1.1 + >=media-libs/libtheora-1.1[encode] + kate? ( >=media-libs/libkate-0.3.7 )" +DEPEND="${RDEPEND} + virtual/pkgconfig" + +src_prepare() { + epatch \ + "${FILESDIR}"/${P}-swr.patch \ + "${FILESDIR}"/${P}-ffmpeg2.patch \ + "${FILESDIR}"/${P}-underlinking.patch +} + +src_configure() { + myesconsargs=( + APPEND_CCFLAGS="${CFLAGS}" + APPEND_LINKFLAGS="${LDFLAGS}" + prefix=/usr + mandir=PREFIX/share/man + libkate=$(usex kate 1 0) + ) +} + +src_compile() { + escons +} + +src_install() { + escons destdir="${D}" install + dodoc AUTHORS ChangeLog README subtitles.txt TODO +} diff --git a/media-video/ffmpeg2theora/files/ffmpeg2theora-0.29-ffmpeg2.patch b/media-video/ffmpeg2theora/files/ffmpeg2theora-0.29-ffmpeg2.patch new file mode 100644 index 000000000000..a9ca9042d2f6 --- /dev/null +++ b/media-video/ffmpeg2theora/files/ffmpeg2theora-0.29-ffmpeg2.patch @@ -0,0 +1,40 @@ +commit d3435a6a83dc656379de9e6523ecf8d565da6ca6 +Author: Jan Gerber <j@xiph.org> +Date: Sun May 26 15:25:42 2013 +0200 + + don't use deprecated AVCODEC_MAX_AUDIO_FRAME_SIZE + +diff --git a/src/ffmpeg2theora.c b/src/ffmpeg2theora.c +index cde63b9..8bebf28 100644 +--- a/src/ffmpeg2theora.c ++++ b/src/ffmpeg2theora.c +@@ -47,6 +47,9 @@ + #include "ffmpeg2theora.h" + #include "avinfo.h" + ++#define MAX_AUDIO_FRAME_SIZE 192000 // 1 second of 48khz 32bit audio ++ ++ + #define LENGTH(x) (sizeof(x) / sizeof(*x)) + + enum { +@@ -1069,8 +1072,8 @@ void ff2theora_output(ff2theora this) { + int first = 1; + int audio_eos = 0, video_eos = 0, audio_done = 0, video_done = 0; + int ret; +- int16_t *audio_buf=av_malloc(4*AVCODEC_MAX_AUDIO_FRAME_SIZE); +- int16_t *resampled=av_malloc(4*AVCODEC_MAX_AUDIO_FRAME_SIZE); ++ int16_t *audio_buf=av_malloc(4*MAX_AUDIO_FRAME_SIZE); ++ int16_t *resampled=av_malloc(4*MAX_AUDIO_FRAME_SIZE); + int16_t *audio_p=NULL; + int no_frames; + int no_samples; +@@ -1531,7 +1534,7 @@ void ff2theora_output(ff2theora this) { + while((audio_eos && !audio_done) || avpkt.size > 0 ) { + int samples=0; + int samples_out=0; +- int data_size = 4*AVCODEC_MAX_AUDIO_FRAME_SIZE; ++ int data_size = 4*MAX_AUDIO_FRAME_SIZE; + int bytes_per_sample = av_get_bytes_per_sample(aenc->sample_fmt); + + if (avpkt.size > 0) { diff --git a/media-video/ffmpeg2theora/files/ffmpeg2theora-0.29-swr.patch b/media-video/ffmpeg2theora/files/ffmpeg2theora-0.29-swr.patch new file mode 100644 index 000000000000..b1117a87ea6f --- /dev/null +++ b/media-video/ffmpeg2theora/files/ffmpeg2theora-0.29-swr.patch @@ -0,0 +1,24 @@ +commit a72baecd4dc7b01c0785b481460dde0fbab9a90a +Author: Jan Gerber <j@xiph.org> +Date: Fri Nov 23 20:21:54 2012 +0100 + + only depend on libswresample for local branch + + libav does not have libswresample so its not in ubuntu. + +diff --git a/SConstruct b/SConstruct +index 90520c3..01d234a 100644 +--- a/SConstruct ++++ b/SConstruct +@@ -152,10 +152,10 @@ if not env.GetOption('clean'): + "libavcodec >= 52.30.0", + "libpostproc", + "libswscale", +- "libswresample", + "libavutil", + ] + if os.path.exists("./ffmpeg"): ++ FFMPEG_LIBS.append('libswresample') + pkg_path = list(set(map(os.path.dirname, glob('./ffmpeg/*/*.pc')))) + pkg_path.append(os.environ.get('PKG_CONFIG_PATH', '')) + os.environ['PKG_CONFIG_PATH'] = ':'.join(pkg_path) diff --git a/media-video/ffmpeg2theora/files/ffmpeg2theora-0.29-underlinking.patch b/media-video/ffmpeg2theora/files/ffmpeg2theora-0.29-underlinking.patch new file mode 100644 index 000000000000..dc877603913a --- /dev/null +++ b/media-video/ffmpeg2theora/files/ffmpeg2theora-0.29-underlinking.patch @@ -0,0 +1,21 @@ +For example, pow() from mathlib is used directly in src/ffmpeg2theora.c: + +<snip> +v = pow(v, g) * 255.0; // mplayer's vf_eq2.c multiplies with 256 here, strange... +</snip> + +For build failure and log, see Gentoo bug #504698 + +--- SConstruct ++++ SConstruct +@@ -206,9 +206,8 @@ + if env['crossmingw']: + env.Append(CCFLAGS=['-Wl,-subsystem,windows']) + env.Append(LIBS=['m']) +- elif env['static']: +- env.Append(LIBS=['m', 'dl']) + ++ env.Append(LIBS=['m', 'dl']) + + env = conf.Finish() + diff --git a/media-video/ffmpeg2theora/metadata.xml b/media-video/ffmpeg2theora/metadata.xml new file mode 100644 index 000000000000..6c1f70ed2108 --- /dev/null +++ b/media-video/ffmpeg2theora/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>video</herd> + <maintainer> + <email>media-video@gentoo.org</email> + </maintainer> + <use> + <flag name="kate">Adds support for Ogg Kate subtitles via libkate.</flag> + </use> +</pkgmetadata> |