ffmpeg:moved into main for pisi 2.0

This commit is contained in:
2015-07-23 13:50:31 +03:00
parent 63cb407e4c
commit 239da4f80b
4 changed files with 433 additions and 0 deletions
+69
View File
@@ -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*")
@@ -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;
+215
View File
@@ -0,0 +1,215 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>ffmpeg</Name>
<Homepage>http://ffmpeg.org</Homepage>
<Packager>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>GPLv2</License>
<License>GPLv3</License>
<License>LGPLv2</License>
<License>LGPLv3</License>
<IsA>app:console</IsA>
<Summary>A command-line tool to record, convert and stream audio and video</Summary>
<Description>FFmpeg is a complete solution to record, convert and stream audio and video.</Description>
<Archive sha1sum="ec0111e8298bdb2291d82e3b4f67354ba48fab19" type="tarbz2">http://ffmpeg.org/releases/ffmpeg-2.5.tar.bz2</Archive>
<BuildDependencies>
<Dependency>freetype-devel</Dependency>
<Dependency>faac-devel</Dependency>
<Dependency>lame-devel</Dependency>
<Dependency>x264-devel</Dependency>
<Dependency>libva-devel</Dependency>
<Dependency>libsdl-devel</Dependency>
<Dependency>libvpx-devel</Dependency>
<Dependency>libass-devel</Dependency>
<Dependency>libopus-devel</Dependency>
<Dependency>alsa-lib-devel</Dependency>
<Dependency>libvdpau-devel</Dependency>
<Dependency>libtheora-devel</Dependency>
<Dependency>libvorbis-devel</Dependency>
<Dependency>gnutls-devel</Dependency>
<Dependency>celt-devel</Dependency>
<Dependency>gsm-devel</Dependency>
<Dependency>libbluray-devel</Dependency>
<Dependency>opencore-amr-devel</Dependency>
<Dependency>libmodplug-devel</Dependency>
<Dependency>pulseaudio-libs-devel</Dependency>
<Dependency>openjpeg-devel</Dependency>
<Dependency>frei0r-plugins-devel</Dependency>
<Dependency>rtmpdump-devel</Dependency>
<Dependency>schroedinger-devel</Dependency>
<Dependency>speex-devel</Dependency>
<Dependency>libv4l-devel</Dependency>
<Dependency>libvo-amrwbenc-devel</Dependency>
<Dependency>xvid-devel</Dependency>
<Dependency>libdc1394-devel</Dependency>
<Dependency>libnut-devel</Dependency>
<Dependency>libcdio-paranoia-devel</Dependency>
<Dependency>libXv-devel</Dependency>
</BuildDependencies>
<!--<Patches>
<Patch>fix_build_x265.patch</Patch>
</Patches>-->
</Source>
<Package>
<Name>ffmpeg</Name>
<RuntimeDependencies>
<Dependency>gsm</Dependency>
<Dependency>celt</Dependency>
<Dependency>faac</Dependency>
<Dependency>lame</Dependency>
<Dependency>x264</Dependency>
<Dependency>xvid</Dependency>
<Dependency>zlib</Dependency>
<Dependency>bzip2</Dependency>
<Dependency>speex</Dependency>
<Dependency>libva</Dependency>
<Dependency>libXv</Dependency>
<Dependency>gnutls</Dependency>
<Dependency>libX11</Dependency>
<Dependency>libnut</Dependency>
<Dependency>libsdl</Dependency>
<Dependency>libv4l</Dependency>
<Dependency>libxcb</Dependency>
<Dependency>libass</Dependency>
<Dependency>libopus</Dependency>
<Dependency>libXext</Dependency>
<Dependency>alsa-lib</Dependency>
<Dependency>freetype</Dependency>
<Dependency>libvdpau</Dependency>
<Dependency>openjpeg</Dependency>
<Dependency>rtmpdump</Dependency>
<Dependency>libbluray</Dependency>
<Dependency>libdc1394</Dependency>
<Dependency>libtheora</Dependency>
<Dependency>libvorbis</Dependency>
<Dependency>fontconfig</Dependency>
<Dependency>libmodplug</Dependency>
<Dependency>libvo-aacenc</Dependency>
<Dependency>opencore-amr</Dependency>
<Dependency>schroedinger</Dependency>
<Dependency>libvo-amrwbenc</Dependency>
<Dependency>pulseaudio-libs</Dependency>
<Dependency>libcdio-paranoia</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="config">/etc</Path>
<Path fileType="executable">/usr/bin</Path>
<Path fileType="library">/usr/lib</Path>
<Path fileType="doc">/usr/share/doc</Path>
<Path fileType="man">/usr/share/man</Path>
<Path fileType="data">/usr/share/ffmpeg</Path>
</Files>
</Package>
<Package>
<Name>ffmpeg-devel</Name>
<Summary>Development files for ffmpeg</Summary>
<RuntimeDependencies>
<Dependency release="current">ffmpeg</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="header">/usr/include</Path>
<Path fileType="data">/usr/lib/pkgconfig</Path>
</Files>
</Package>
<History>
<Update release="13">
<Date>2014-12-13</Date>
<Version>2.5</Version>
<Comment>Version bump.</Comment>
<Name>Yusuf Aydemir</Name>
<Email>yusuf.aydemir@pisilinux.org</Email>
</Update>
<Update release="12">
<Date>2014-12-05</Date>
<Version>2.5</Version>
<Comment>Version bump.</Comment>
<Name>Stefan Gronewold(groni)</Name>
<Email>groni@pisilinux.org</Email>
</Update>
<Update release="11">
<Date>2014-06-24</Date>
<Version>2.2.4</Version>
<Comment>Version bump.</Comment>
<Name>Vedat Demir</Name>
<Email>vedat@pisilinux.org</Email>
</Update>
<Update release="10">
<Date>2014-06-04</Date>
<Version>2.2.3</Version>
<Comment>Version bump.</Comment>
<Name>Vedat Demir</Name>
<Email>vedat@pisilinux.org</Email>
</Update>
<Update release="9">
<Date>2014-05-21</Date>
<Version>2.2.2</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="8">
<Date>2014-04-05</Date>
<Version>2.2</Version>
<Comment>Version bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="7">
<Date>2013-11-27</Date>
<Version>2.1.1</Version>
<Comment>fix dep</Comment>
<Name>Kamil Atlı</Name>
<Email>suvarice@gmail.com</Email>
</Update>
<Update release="6">
<Date>2013-11-24</Date>
<Version>2.1.1</Version>
<Comment>Version bump</Comment>
<Name>Stefan Gronewold(groni)</Name>
<Email>groni@pisilinux.org</Email>
</Update>
<Update release="5">
<Date>2013-07-28</Date>
<Version>1.2.1</Version>
<Comment>missing dep.</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="4">
<Date>2013-07-06</Date>
<Version>1.2.1</Version>
<Comment>Version bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="3">
<Date>2013-01-25</Date>
<Version>1.1.1</Version>
<Comment>Fixed.</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="2" type="security">
<Date>2013-01-26</Date>
<Version>1.1.1</Version>
<Comment>Version bump to 1.1.1</Comment>
<Name>Idris Kalp</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="1" type="security">
<Date>2012-09-29</Date>
<Version>1.0</Version>
<Comment>First release</Comment>
<Name>Erdem Artan</Name>
<Email>admins@pisilinux.org</Email>
</Update>
</History>
</PISI>
+16
View File
@@ -0,0 +1,16 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>ffmpeg</Name>
<Summary xml:lang="tr">FFmpeg ses ve görüntü dosyalarını kaydedebilen, dönüştürebilen ve açabilen yazılımdır</Summary>
<Summary xml:lang="pl">FFmpeg to kompletne rozwiązanie nagrywania, konwersji i transmisji strumieni dźwięku i obrazu</Summary>
<Description xml:lang="tr">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.</Description>
<Description xml:lang="pl">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.</Description>
</Source>
<Package>
<Name>ffmpeg-devel</Name>
<Summary xml:lang="tr">ffmpeg için geliştirme dosyaları</Summary>
<Summary xml:lang="pl">Pliki nagłówkowe ffmpeg</Summary>
</Package>
</PISI>