diff --git a/multimedia/video/ffmpeg/actions.py b/multimedia/video/ffmpeg/actions.py new file mode 100644 index 0000000000..af656b3ab4 --- /dev/null +++ b/multimedia/video/ffmpeg/actions.py @@ -0,0 +1,69 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import get +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools + +def setup(): + autotools.rawConfigure("--prefix=/usr \ + --mandir=/usr/share/man \ + --disable-debug \ + --disable-static \ + --disable-stripping \ + --enable-avfilter \ + --enable-avresample \ + --enable-dxva2 \ + --enable-fontconfig \ + --enable-gnutls \ + --enable-gpl \ + --enable-libass \ + --enable-libbluray \ + --enable-libfreetype \ + --enable-libgsm \ + --enable-libmodplug \ + --enable-libmp3lame \ + --enable-libopencore_amrnb \ + --enable-libopencore_amrwb \ + --enable-libopenjpeg \ + --enable-libopus \ + --enable-libpulse \ + --enable-librtmp \ + --enable-libschroedinger \ + --enable-libspeex \ + --enable-libtheora \ + --enable-libv4l2 \ + --enable-libvorbis \ + --enable-libvpx \ + --enable-libx264 \ + --enable-libx265 \ + --enable-libxvid \ + --enable-pic \ + --enable-postproc \ + --enable-runtime-cpudetect \ + --enable-shared \ + --enable-swresample \ + --enable-vdpau \ + --enable-version3 \ + --enable-x11grab \ + --enable-libdc1394 \ + --enable-libnut \ + --enable-libcelt \ + --enable-frei0r \ + --enable-libcdio \ + --enable-libvo-aacenc \ + --enable-libvo-amrwbenc \ + --enable-nonfree \ + --enable-libfaac") + +def build(): + autotools.make() + autotools.make('tools/qt-faststart') + +def install(): + autotools.rawInstall("DESTDIR=%s install-man" % get.installDIR()) + pisitools.dobin("tools/qt-faststart") + pisitools.dodoc("Changelog", "README.md", "LICENSE.md", "COPYING*") diff --git a/multimedia/video/ffmpeg/files/fix_build_x265.patch b/multimedia/video/ffmpeg/files/fix_build_x265.patch new file mode 100644 index 0000000000..c23f5943f1 --- /dev/null +++ b/multimedia/video/ffmpeg/files/fix_build_x265.patch @@ -0,0 +1,133 @@ +--- libavcodec/libx265.c~ 2014-03-23 23:07:50.000000000 +0100 ++++ libavcodec/libx265.c 2014-04-05 19:28:05.566614823 +0200 +@@ -38,8 +38,6 @@ + + x265_encoder *encoder; + x265_param *params; +- uint8_t *header; +- int header_size; + + char *preset; + char *tune; +@@ -66,7 +64,6 @@ + libx265Context *ctx = avctx->priv_data; + + av_frame_free(&avctx->coded_frame); +- av_freep(&ctx->header); + + x265_param_free(ctx->params); + +@@ -80,11 +77,8 @@ + { + libx265Context *ctx = avctx->priv_data; + x265_nal *nal; +- uint8_t *buf; + int sar_num, sar_den; + int nnal; +- int ret; +- int i; + + if (avctx->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL && + !av_pix_fmt_desc_get(avctx->pix_fmt)->log2_chroma_w && +@@ -121,11 +115,11 @@ + av_reduce(&sar_num, &sar_den, + avctx->sample_aspect_ratio.num, + avctx->sample_aspect_ratio.den, 4096); +- ctx->params->bEnableVuiParametersPresentFlag = 1; +- ctx->params->bEnableAspectRatioIdc = 1; +- ctx->params->aspectRatioIdc = 255; +- ctx->params->sarWidth = sar_num; +- ctx->params->sarHeight = sar_den; ++ ctx->params->vui.bEnableVuiParametersPresentFlag = 1; ++ ctx->params->vui.bEnableAspectRatioIdc = 1; ++ ctx->params->vui.aspectRatioIdc = 255; ++ ctx->params->vui.sarWidth = sar_num; ++ ctx->params->vui.sarHeight = sar_den; + + if (x265_max_bit_depth == 8) + ctx->params->internalBitDepth = 8; +@@ -148,6 +142,9 @@ + ctx->params->rc.rateControlMode = X265_RC_ABR; + } + ++ if (!(avctx->flags & CODEC_FLAG_GLOBAL_HEADER)) ++ ctx->params->bRepeatHeaders = 1; ++ + if (ctx->x265_opts) { + AVDictionary *dict = NULL; + AVDictionaryEntry *en = NULL; +@@ -180,35 +177,23 @@ + return AVERROR_INVALIDDATA; + } + +- ret = x265_encoder_headers(ctx->encoder, &nal, &nnal); +- if (ret < 0) { +- av_log(avctx, AV_LOG_ERROR, "Cannot encode headers.\n"); +- libx265_encode_close(avctx); +- return AVERROR_INVALIDDATA; +- } +- +- for (i = 0; i < nnal; i++) +- ctx->header_size += nal[i].sizeBytes; +- +- ctx->header = av_malloc(ctx->header_size + FF_INPUT_BUFFER_PADDING_SIZE); +- if (!ctx->header) { +- av_log(avctx, AV_LOG_ERROR, +- "Cannot allocate HEVC header of size %d.\n", ctx->header_size); +- libx265_encode_close(avctx); +- return AVERROR(ENOMEM); +- } ++ if (avctx->flags & CODEC_FLAG_GLOBAL_HEADER) { ++ avctx->extradata_size = x265_encoder_headers(ctx->encoder, &nal, &nnal); ++ if (avctx->extradata_size <= 0) { ++ av_log(avctx, AV_LOG_ERROR, "Cannot encode headers.\n"); ++ libx265_encode_close(avctx); ++ return AVERROR_INVALIDDATA; ++ } + +- buf = ctx->header; +- for (i = 0; i < nnal; i++) { +- memcpy(buf, nal[i].payload, nal[i].sizeBytes); +- buf += nal[i].sizeBytes; +- } ++ avctx->extradata = av_malloc(avctx->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE); ++ if (!avctx->extradata) { ++ av_log(avctx, AV_LOG_ERROR, ++ "Cannot allocate HEVC header of size %d.\n", avctx->extradata_size); ++ libx265_encode_close(avctx); ++ return AVERROR(ENOMEM); ++ } + +- if (avctx->flags & CODEC_FLAG_GLOBAL_HEADER) { +- avctx->extradata_size = ctx->header_size; +- avctx->extradata = ctx->header; +- ctx->header_size = 0; +- ctx->header = NULL; ++ memcpy(avctx->extradata, nal[0].payload, avctx->extradata_size); + } + + return 0; +@@ -250,8 +235,6 @@ + for (i = 0; i < nnal; i++) + payload += nal[i].sizeBytes; + +- payload += ctx->header_size; +- + ret = ff_alloc_packet(pkt, payload); + if (ret < 0) { + av_log(avctx, AV_LOG_ERROR, "Error getting output packet.\n"); +@@ -259,14 +242,6 @@ + } + dst = pkt->data; + +- if (ctx->header) { +- memcpy(dst, ctx->header, ctx->header_size); +- dst += ctx->header_size; +- +- av_freep(&ctx->header); +- ctx->header_size = 0; +- } +- + for (i = 0; i < nnal; i++) { + memcpy(dst, nal[i].payload, nal[i].sizeBytes); + dst += nal[i].sizeBytes; diff --git a/multimedia/video/ffmpeg/pspec.xml b/multimedia/video/ffmpeg/pspec.xml new file mode 100644 index 0000000000..a02c663dca --- /dev/null +++ b/multimedia/video/ffmpeg/pspec.xml @@ -0,0 +1,215 @@ + + + + + ffmpeg + http://ffmpeg.org + + PisiLinux Community + admins@pisilinux.org + + GPLv2 + GPLv3 + LGPLv2 + LGPLv3 + app:console + A command-line tool to record, convert and stream audio and video + FFmpeg is a complete solution to record, convert and stream audio and video. + http://ffmpeg.org/releases/ffmpeg-2.5.tar.bz2 + + freetype-devel + faac-devel + lame-devel + x264-devel + libva-devel + libsdl-devel + libvpx-devel + libass-devel + libopus-devel + alsa-lib-devel + libvdpau-devel + libtheora-devel + libvorbis-devel + gnutls-devel + celt-devel + gsm-devel + libbluray-devel + opencore-amr-devel + libmodplug-devel + pulseaudio-libs-devel + openjpeg-devel + frei0r-plugins-devel + rtmpdump-devel + schroedinger-devel + speex-devel + libv4l-devel + libvo-amrwbenc-devel + xvid-devel + libdc1394-devel + libnut-devel + libcdio-paranoia-devel + libXv-devel + + + + + + ffmpeg + + gsm + celt + faac + lame + x264 + xvid + zlib + bzip2 + speex + libva + libXv + gnutls + libX11 + libnut + libsdl + libv4l + libxcb + libass + libopus + libXext + alsa-lib + freetype + libvdpau + openjpeg + rtmpdump + libbluray + libdc1394 + libtheora + libvorbis + fontconfig + libmodplug + libvo-aacenc + opencore-amr + schroedinger + libvo-amrwbenc + pulseaudio-libs + libcdio-paranoia + + + /etc + /usr/bin + /usr/lib + /usr/share/doc + /usr/share/man + /usr/share/ffmpeg + + + + + ffmpeg-devel + Development files for ffmpeg + + ffmpeg + + + /usr/include + /usr/lib/pkgconfig + + + + + + + 2014-12-13 + 2.5 + Version bump. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2014-12-05 + 2.5 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2014-06-24 + 2.2.4 + Version bump. + Vedat Demir + vedat@pisilinux.org + + + 2014-06-04 + 2.2.3 + Version bump. + Vedat Demir + vedat@pisilinux.org + + + 2014-05-21 + 2.2.2 + Version bump. + Ertuğrul Erata + ertugrulerata@gmail.com + + + 2014-04-05 + 2.2 + Version bump. + Marcin Bojara + marcin@pisilinux.org + + + 2013-11-27 + 2.1.1 + fix dep + Kamil Atlı + suvarice@gmail.com + + + 2013-11-24 + 2.1.1 + Version bump + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2013-07-28 + 1.2.1 + missing dep. + Erdinç Gültekin + erdincgultekin@pisilinux.org + + + 2013-07-06 + 1.2.1 + Version bump. + Marcin Bojara + marcin@pisilinux.org + + + 2013-01-25 + 1.1.1 + Fixed. + PisiLinux Community + admins@pisilinux.org + + + 2013-01-26 + 1.1.1 + Version bump to 1.1.1 + Idris Kalp + admins@pisilinux.org + + + 2012-09-29 + 1.0 + First release + Erdem Artan + admins@pisilinux.org + + + diff --git a/multimedia/video/ffmpeg/translations.xml b/multimedia/video/ffmpeg/translations.xml new file mode 100644 index 0000000000..5c2aa1eb1e --- /dev/null +++ b/multimedia/video/ffmpeg/translations.xml @@ -0,0 +1,16 @@ + + + + ffmpeg + FFmpeg ses ve görüntü dosyalarını kaydedebilen, dönüştürebilen ve açabilen yazılımdır + FFmpeg to kompletne rozwiązanie nagrywania, konwersji i transmisji strumieni dźwięku i obrazu + FFmpeg ses ve görüntü dosyalarını kaydedebilen,dönüştürebilen ve açabilen komple bir çözüm. libavcodec ve birçok popüler ses/görüntü codeclerini içerir. + FFmpeg to kompletne rozwiązanie nagrywania, konwersji i transmisji strumieni dźwięku i obrazu. Jest to działające z linii poleceń narzędzie do konwersji obrazu z jednego formatu do innego. Obsługuje także przechwytywanie i kodowanie w czasie rzeczywistym z karty telewizyjnej. + + + + ffmpeg-devel + ffmpeg için geliştirme dosyaları + Pliki nagłówkowe ffmpeg + +