@@ -1,21 +1,21 @@ | |||
# Maintainer: John Jenkins <twodopeshaggy@gmail.com> | |||
pkgname=drive | |||
pkgver=0.0.4.a | |||
pkgver=0.0.4.c | |||
pkgrel=1 | |||
pkgdesc="Pull or push Google Drive files" | |||
arch=('x86_64' 'i686') | |||
url="http://github.com/odeke-em/drive" | |||
license=('Apache') | |||
makedepends=('go') | |||
makedepends=('go' 'git' 'mercurial') | |||
options=('!strip' '!emptydirs') | |||
source=("https://github.com/odeke-em/$pkgname/archive/v$pkgver.tar.gz") | |||
sha256sums=('371163f1a43e3e691a8d6713e884d3b5bbdef8f25117b2742f98db6e51d14de0') | |||
sha256sums=('175efbb32698219bc67ee32c78d8e6113f859a449bc16f3c29e77ab95e6cccaa') | |||
prepare() { | |||
mkdir -p go | |||
mkdir -p "$srcdir/go" | |||
export GOPATH="$srcdir/go" | |||
go get -u -d github.com/odeke-em/drive | |||
go get github.com/odeke-em/drive | |||
go get github.com/odeke-em/drive/config | |||
go get github.com/rakyll/command | |||
} |
@@ -1,16 +1,18 @@ | |||
# Generated by makepkg 4.2.0 | |||
# using fakeroot version 1.20.2 | |||
# Tue Jan 6 11:13:19 UTC 2015 | |||
# Fri Jan 9 20:16:55 UTC 2015 | |||
pkgname = drive | |||
pkgver = 0.0.4.a-1 | |||
pkgver = 0.0.4.c-1 | |||
pkgdesc = Pull or push Google Drive files | |||
url = http://github.com/odeke-em/drive | |||
builddate = 1420542799 | |||
builddate = 1420834615 | |||
packager = Unknown Packager | |||
size = 8235008 | |||
size = 8248320 | |||
arch = x86_64 | |||
license = Apache | |||
makedepend = go | |||
makedepend = git | |||
makedepend = mercurial | |||
makepkgopt = !strip | |||
makepkgopt = docs | |||
makepkgopt = !libtool |
@@ -0,0 +1,87 @@ | |||
# Generated by makepkg 4.2.0 | |||
# Wed Dec 31 13:12:21 UTC 2014 | |||
pkgbase = ffmpeg-full | |||
pkgdesc = Complete and free Internet live audio and video broadcasting solution (with all options) | |||
pkgver = 2.5.2 | |||
pkgrel = 3 | |||
epoch = 1 | |||
url = http://ffmpeg.org/ | |||
arch = i686 | |||
arch = x86_64 | |||
license = GPL | |||
license = custom:UNREDISTRIBUTABLE | |||
makedepends = yasm | |||
makedepends = ladspa | |||
makedepends = hardening-wrapper | |||
depends = alsa-lib | |||
depends = bzip2 | |||
depends = fontconfig | |||
depends = gnutls | |||
depends = gsm | |||
depends = lame | |||
depends = libass | |||
depends = libvdpau | |||
depends = libbluray | |||
depends = libmodplug | |||
depends = libpulse | |||
depends = libtheora | |||
depends = libva | |||
depends = libvorbis | |||
depends = libvpx | |||
depends = opencore-amr | |||
depends = openjpeg | |||
depends = opus | |||
depends = rtmpdump | |||
depends = schroedinger | |||
depends = sdl | |||
depends = speex | |||
depends = v4l-utils | |||
depends = libx264 | |||
depends = xvidcore | |||
depends = zlib | |||
depends = x265 | |||
depends = fribidi | |||
depends = celt | |||
depends = decklink-sdk | |||
depends = faac | |||
depends = jack | |||
depends = libaacplus | |||
depends = libavc1394 | |||
depends = libcaca | |||
depends = libcdio-paranoia | |||
depends = libdc1394 | |||
depends = libfdk-aac | |||
depends = libgme | |||
depends = libiec61883 | |||
depends = libssh | |||
depends = libsoxr | |||
depends = libwebp | |||
depends = libxv | |||
depends = mesa | |||
depends = openal | |||
depends = twolame | |||
depends = vo-aacenc | |||
depends = vo-amrwbenc | |||
depends = wavpack | |||
depends = zeromq | |||
depends = zvbi | |||
depends = frei0r-plugins | |||
depends = vid.stab | |||
depends = libcl | |||
depends = utvideo-git | |||
depends = opencl-headers12 | |||
depends = libbs2b | |||
depends = shine | |||
provides = ffmpeg | |||
conflicts = ffmpeg | |||
conflicts = ffmpeg-git | |||
conflicts = ffmpeg-full-git | |||
source = http://ffmpeg.org/releases/ffmpeg-2.5.2.tar.bz2 | |||
source = http://ffmpeg.org/releases/ffmpeg-2.5.2.tar.bz2.asc | |||
source = UNREDISTRIBUTABLE.txt | |||
sha256sums = 9edf17e7c280cbcfca4bc4219b1c22f760a61ec6a3f39ef26e3e2ad4cd24465e | |||
sha256sums = SKIP | |||
sha256sums = e0c1b126862072a71e18b9580a6b01afc76a54aa6e642d2c413ba0ac9d3010c4 | |||
pkgname = ffmpeg-full | |||
@@ -0,0 +1,176 @@ | |||
# $Id$ | |||
# Maintainer: Iacopo Isimbaldi <isiachi@rhyeworld.it> | |||
# Original maintainer: Rudolf Polzer <divVerent[at]xonotic[dot]org> | |||
# Original maintainer: Ionut Biru <ibiru@archlinux.org> | |||
# Original maintainer: Bartลomiej Piotrowski <bpiotrowski@archlinux.org> | |||
# Contributor: Tom Newsom <Jeepster@gmx.co.uk> | |||
# Contributor: Paul Mattal <paul@archlinux.org> | |||
# NOTE before flagging this out of date: this PKGBUILD is supposed to have the | |||
# same ffmpeg version as extra/ffmpeg. Once that one got updated, this one | |||
# needs too. | |||
pkgname=ffmpeg-full | |||
pkgver=2.5.2 | |||
pkgrel=3 | |||
epoch=1 | |||
pkgdesc='Complete and free Internet live audio and video broadcasting solution (with all options)' | |||
arch=('i686' 'x86_64') | |||
url='http://ffmpeg.org/' | |||
license=('GPL' 'custom:UNREDISTRIBUTABLE') | |||
depends=( | |||
'alsa-lib' 'bzip2' 'fontconfig' 'gnutls' 'gsm' 'lame' 'libass' 'libvdpau' | |||
'libbluray' 'libmodplug' 'libpulse' 'libtheora' 'libva' 'libvorbis' 'libvpx' | |||
'opencore-amr' 'openjpeg' 'opus' 'rtmpdump' 'schroedinger' 'sdl' 'speex' | |||
'v4l-utils' 'libx264' 'xvidcore' 'zlib' 'x265' 'fribidi' | |||
'celt' 'decklink-sdk' 'faac' 'jack' 'libaacplus' 'libavc1394' 'libcaca' | |||
'libcdio-paranoia' 'libdc1394' 'libfdk-aac' 'libgme' 'libiec61883' | |||
'libssh' 'libsoxr' 'libwebp' 'libxv' 'mesa' 'openal' 'twolame' 'vo-aacenc' | |||
'vo-amrwbenc' 'wavpack' 'zeromq' 'zvbi' 'frei0r-plugins' 'vid.stab' | |||
'libcl' 'utvideo-git' 'opencl-headers12' 'libbs2b' 'shine' | |||
) | |||
makedepends=('yasm' 'ladspa' 'hardening-wrapper') | |||
conflicts=('ffmpeg' 'ffmpeg-git' 'ffmpeg-full-git') | |||
provides=('ffmpeg') | |||
source=(http://ffmpeg.org/releases/ffmpeg-$pkgver.tar.bz2{,.asc} | |||
UNREDISTRIBUTABLE.txt) | |||
validpgpkeys=('FCF986EA15E6E293A5644F10B4322F04D67658D8') # ffmpeg-devel | |||
sha256sums=('9edf17e7c280cbcfca4bc4219b1c22f760a61ec6a3f39ef26e3e2ad4cd24465e' | |||
'SKIP' | |||
'e0c1b126862072a71e18b9580a6b01afc76a54aa6e642d2c413ba0ac9d3010c4') | |||
build() { | |||
#source /etc/profile.d/perlbin.sh | |||
cd ${pkgname%-full}-$pkgver | |||
CFLAGS='-I/usr/src/decklink-sdk' \ | |||
./configure \ | |||
--prefix=/usr \ | |||
--disable-debug \ | |||
--disable-static \ | |||
--disable-stripping \ | |||
--enable-shared \ | |||
--enable-avisynth \ | |||
--enable-avresample \ | |||
--enable-decklink \ | |||
--enable-decoder=atrac3 \ | |||
--enable-decoder=atrac3p \ | |||
--enable-dxva2 \ | |||
--enable-fontconfig \ | |||
--enable-frei0r \ | |||
--enable-gnutls \ | |||
--enable-gpl \ | |||
--enable-gray \ | |||
--enable-ladspa \ | |||
--enable-libaacplus \ | |||
--enable-libass \ | |||
--enable-libbluray \ | |||
--enable-libbs2b \ | |||
--enable-libcaca \ | |||
--enable-libcdio \ | |||
--enable-libcelt \ | |||
--enable-libdc1394 \ | |||
--enable-libfaac \ | |||
--enable-libfdk-aac \ | |||
--enable-libfreetype \ | |||
--enable-libfribidi \ | |||
--enable-libgme \ | |||
--enable-libgsm \ | |||
--enable-libiec61883 \ | |||
--enable-libmodplug \ | |||
--enable-libmp3lame \ | |||
--enable-libopencore-amrnb \ | |||
--enable-libopencore-amrwb \ | |||
--enable-libopencv \ | |||
--enable-libopenjpeg \ | |||
--enable-libopus \ | |||
--enable-libpulse \ | |||
--enable-librtmp \ | |||
--enable-libschroedinger \ | |||
--enable-libshine \ | |||
--enable-libsoxr \ | |||
--enable-libspeex \ | |||
--enable-libssh \ | |||
--enable-libtheora \ | |||
--enable-libtwolame \ | |||
--enable-libutvideo \ | |||
--enable-libv4l2 \ | |||
--enable-libvidstab \ | |||
--enable-libvo-aacenc \ | |||
--enable-libvo-amrwbenc \ | |||
--enable-libvorbis \ | |||
--enable-libvpx \ | |||
--enable-libwavpack \ | |||
--enable-libwebp \ | |||
--enable-libx264 \ | |||
--enable-libx265 \ | |||
--enable-libxvid \ | |||
--enable-libzmq \ | |||
--enable-libzvbi \ | |||
--enable-nonfree \ | |||
--enable-openal \ | |||
--enable-opencl \ | |||
--enable-opengl \ | |||
--enable-openssl \ | |||
--enable-runtime-cpudetect \ | |||
--enable-shared \ | |||
--enable-swresample \ | |||
--enable-vdpau \ | |||
--enable-version3 \ | |||
--enable-x11grab | |||
make | |||
make tools/qt-faststart | |||
make doc/ff{mpeg,play,server}.1 | |||
} | |||
package() { | |||
#source /etc/profile.d/perlbin.sh | |||
cd ${pkgname%-full}-$pkgver | |||
make DESTDIR="$pkgdir" install install-man | |||
install -Dm755 tools/qt-faststart "$pkgdir"/usr/bin/qt-faststart | |||
install -Dm644 "$srcdir"/UNREDISTRIBUTABLE.txt "$pkgdir/usr/share/licenses/$pkgname/UNREDISTRIBUTABLE.txt" | |||
} | |||
# How to audit the ./configure flags: | |||
# | |||
# cut -c 3- <<'# EOF' | sh | |||
# cd src/ffmpeg-2.2.1 | |||
# export DISABLED=' | |||
# # debugging flags follow: | |||
# --enable-coverage | |||
# --enable-extra-warnings | |||
# --enable-ftrapv | |||
# --enable-memalign-hack | |||
# --enable-memory-poisoning | |||
# --enable-random | |||
# --enable-xmm-clobber-test | |||
# # we do not want this: | |||
# --enable-cross-compile # not cross building | |||
# --enable-gray # slow | |||
# --enable-hardcoded-tables # no advantage | |||
# --enable-lto # slow build | |||
# --enable-shared # handled by options before --prefix | |||
# --enable-small # we want SPEED instead | |||
# --enable-incompatible-fork-abi # DO NOT WANT | |||
# --enable-incompatible-libav-abi # | |||
# --enable-neon-clobber-test # debug stuff | |||
# --enable-rpath # not needed | |||
# --enable-raise-major # incompatible | |||
# # this stuff does not build: | |||
# --enable-libflite # configure fail: /usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.2/../../../../lib/libflite.a(au_alsa.o): In function "audio_open_alsa": (.text+0x20): undefined reference to "snd_pcm_hw_params_sizeof" | |||
# --enable-libilbc # configure fail: /tmp/ffconf.lccg5Ux6.c:1:18: fatal error: ilbc.h: No such file or directory | |||
# --enable-libnut # configure fail: ERROR: libnut not found (libnut-git installs no library) | |||
# --enable-libquvi # configure fail: ERROR: libquvi not found (wrong version) | |||
# --enable-libshine # configure fail: ERROR: libshine not found: /tmp/ffconf.K2xc6imx.c:2:53: error: โshine_encode_frameโ undeclared (first use in this function) | |||
# --enable-libstagefright-h264 # not in AUR | |||
# --enable-libxavs # does not build from AUR: /usr/bin/ld: common/i386/deblock.o: relocation R_X86_64_32 against ".rodata" can not be used when making a shared object; recompile with -fPIC | |||
# --enable-decklink # do not ask me, will try again later. which AUR package? | |||
# # this stuff is not for linux/x86: | |||
# --enable-sram # not x86 | |||
# --enable-thumb # not x86 | |||
# ' | |||
# ./configure --help | perl -ne 'for(/--enable-([0-9a-z-]+)\s/) { if($ENV{DISABLED} !~ /^--enable-$_\b/m) { print " --enable-$_ \\\n"; } }' | sort -u | |||
# EOF | |||
# vim:set ts=2 sw=2 et: |
@@ -0,0 +1,2 @@ | |||
This package, although built from GPL sources, is linked against non-GPL | |||
libraries and thus cannot be redistributed in binary form. |
@@ -0,0 +1,11 @@ | |||
-----BEGIN PGP SIGNATURE----- | |||
Version: GnuPG v1 | |||
iQEcBAABAgAGBQJUmOYzAAoJELQyLwTWdljYcRwH/A5axWEfiZV6d7EI96tG2M1p | |||
ouKSjzDYLkvFtHSPz+EDaj0G1ymdY4cql1cHwInSva8+EYfGcTMMOXyx+XVGhaA1 | |||
7yIcg6wrdNCEL746Ealjvc8vSrXkyyDJEn6tzuLk4tjcJj1CsVzcLLo/a2nuwN2Q | |||
l+QaYcNyYhEb7uIWmc3aWo3PNS99ziPZr3Rb3xLOUqPks3anZR8DrUuQSjLqGGJi | |||
gyNcEpGaTm2R6MK0OKb1Co4bKhYXN0oRJx3k47JEZKeHf6pKe8MEIP8/MbKwUHYT | |||
9gPaJS3rw622eQuhJS+QfgiFN2Ks+EsVAHcY7dgFgP32xLaaP7mJ9bUXI0Aj8CE= | |||
=vePu | |||
-----END PGP SIGNATURE----- |
@@ -0,0 +1,88 @@ | |||
# Generated by makepkg 4.2.0 | |||
# using fakeroot version 1.20.2 | |||
# Fri Jan 9 06:17:00 UTC 2015 | |||
pkgname = ffmpeg-full | |||
pkgver = 1:2.5.2-3 | |||
pkgdesc = Complete and free Internet live audio and video broadcasting solution (with all options) | |||
url = http://ffmpeg.org/ | |||
builddate = 1420784220 | |||
packager = Unknown Packager | |||
size = 22001664 | |||
arch = x86_64 | |||
license = GPL | |||
license = custom:UNREDISTRIBUTABLE | |||
conflict = ffmpeg | |||
conflict = ffmpeg-git | |||
conflict = ffmpeg-full-git | |||
provides = ffmpeg | |||
depend = alsa-lib | |||
depend = bzip2 | |||
depend = fontconfig | |||
depend = gnutls | |||
depend = gsm | |||
depend = lame | |||
depend = libass | |||
depend = libvdpau | |||
depend = libbluray | |||
depend = libmodplug | |||
depend = libpulse | |||
depend = libtheora | |||
depend = libva | |||
depend = libvorbis | |||
depend = libvpx | |||
depend = opencore-amr | |||
depend = openjpeg | |||
depend = opus | |||
depend = rtmpdump | |||
depend = schroedinger | |||
depend = sdl | |||
depend = speex | |||
depend = v4l-utils | |||
depend = libx264 | |||
depend = xvidcore | |||
depend = zlib | |||
depend = x265 | |||
depend = fribidi | |||
depend = celt | |||
depend = decklink-sdk | |||
depend = faac | |||
depend = jack | |||
depend = libaacplus | |||
depend = libavc1394 | |||
depend = libcaca | |||
depend = libcdio-paranoia | |||
depend = libdc1394 | |||
depend = libfdk-aac | |||
depend = libgme | |||
depend = libiec61883 | |||
depend = libssh | |||
depend = libsoxr | |||
depend = libwebp | |||
depend = libxv | |||
depend = mesa | |||
depend = openal | |||
depend = twolame | |||
depend = vo-aacenc | |||
depend = vo-amrwbenc | |||
depend = wavpack | |||
depend = zeromq | |||
depend = zvbi | |||
depend = frei0r-plugins | |||
depend = vid.stab | |||
depend = libcl | |||
depend = utvideo-git | |||
depend = opencl-headers12 | |||
depend = libbs2b | |||
depend = shine | |||
makedepend = yasm | |||
makedepend = ladspa | |||
makedepend = hardening-wrapper | |||
makepkgopt = strip | |||
makepkgopt = docs | |||
makepkgopt = !libtool | |||
makepkgopt = !staticlibs | |||
makepkgopt = emptydirs | |||
makepkgopt = zipman | |||
makepkgopt = purge | |||
makepkgopt = !upx | |||
makepkgopt = !debug |
@@ -0,0 +1,118 @@ | |||
/* | |||
* This file is part of FFmpeg. | |||
* | |||
* FFmpeg is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU Lesser General Public | |||
* License as published by the Free Software Foundation; either | |||
* version 2.1 of the License, or (at your option) any later version. | |||
* | |||
* FFmpeg is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
* Lesser General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Lesser General Public | |||
* License along with FFmpeg; if not, write to the Free Software | |||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||
*/ | |||
#ifndef AVCODEC_AVFFT_H | |||
#define AVCODEC_AVFFT_H | |||
/** | |||
* @file | |||
* @ingroup lavc_fft | |||
* FFT functions | |||
*/ | |||
/** | |||
* @defgroup lavc_fft FFT functions | |||
* @ingroup lavc_misc | |||
* | |||
* @{ | |||
*/ | |||
typedef float FFTSample; | |||
typedef struct FFTComplex { | |||
FFTSample re, im; | |||
} FFTComplex; | |||
typedef struct FFTContext FFTContext; | |||
/** | |||
* Set up a complex FFT. | |||
* @param nbits log2 of the length of the input array | |||
* @param inverse if 0 perform the forward transform, if 1 perform the inverse | |||
*/ | |||
FFTContext *av_fft_init(int nbits, int inverse); | |||
/** | |||
* Do the permutation needed BEFORE calling ff_fft_calc(). | |||
*/ | |||
void av_fft_permute(FFTContext *s, FFTComplex *z); | |||
/** | |||
* Do a complex FFT with the parameters defined in av_fft_init(). The | |||
* input data must be permuted before. No 1.0/sqrt(n) normalization is done. | |||
*/ | |||
void av_fft_calc(FFTContext *s, FFTComplex *z); | |||
void av_fft_end(FFTContext *s); | |||
FFTContext *av_mdct_init(int nbits, int inverse, double scale); | |||
void av_imdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input); | |||
void av_imdct_half(FFTContext *s, FFTSample *output, const FFTSample *input); | |||
void av_mdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input); | |||
void av_mdct_end(FFTContext *s); | |||
/* Real Discrete Fourier Transform */ | |||
enum RDFTransformType { | |||
DFT_R2C, | |||
IDFT_C2R, | |||
IDFT_R2C, | |||
DFT_C2R, | |||
}; | |||
typedef struct RDFTContext RDFTContext; | |||
/** | |||
* Set up a real FFT. | |||
* @param nbits log2 of the length of the input array | |||
* @param trans the type of transform | |||
*/ | |||
RDFTContext *av_rdft_init(int nbits, enum RDFTransformType trans); | |||
void av_rdft_calc(RDFTContext *s, FFTSample *data); | |||
void av_rdft_end(RDFTContext *s); | |||
/* Discrete Cosine Transform */ | |||
typedef struct DCTContext DCTContext; | |||
enum DCTTransformType { | |||
DCT_II = 0, | |||
DCT_III, | |||
DCT_I, | |||
DST_I, | |||
}; | |||
/** | |||
* Set up DCT. | |||
* | |||
* @param nbits size of the input array: | |||
* (1 << nbits) for DCT-II, DCT-III and DST-I | |||
* (1 << nbits) + 1 for DCT-I | |||
* @param type the type of transform | |||
* | |||
* @note the first element of the input of DST-I is ignored | |||
*/ | |||
DCTContext *av_dct_init(int nbits, enum DCTTransformType type); | |||
void av_dct_calc(DCTContext *s, FFTSample *data); | |||
void av_dct_end (DCTContext *s); | |||
/** | |||
* @} | |||
*/ | |||
#endif /* AVCODEC_AVFFT_H */ |
@@ -0,0 +1,86 @@ | |||
/* | |||
* This file is part of FFmpeg. | |||
* | |||
* FFmpeg is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU Lesser General Public | |||
* License as published by the Free Software Foundation; either | |||
* version 2.1 of the License, or (at your option) any later version. | |||
* | |||
* FFmpeg is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
* Lesser General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Lesser General Public | |||
* License along with FFmpeg; if not, write to the Free Software | |||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||
*/ | |||
#ifndef AVCODEC_DV_PROFILE_H | |||
#define AVCODEC_DV_PROFILE_H | |||
#include <stdint.h> | |||
#include "libavutil/pixfmt.h" | |||
#include "libavutil/rational.h" | |||
#include "avcodec.h" | |||
/* minimum number of bytes to read from a DV stream in order to | |||
* determine the profile */ | |||
#define DV_PROFILE_BYTES (6 * 80) /* 6 DIF blocks */ | |||
/* | |||
* AVDVProfile is used to express the differences between various | |||
* DV flavors. For now it's primarily used for differentiating | |||
* 525/60 and 625/50, but the plans are to use it for various | |||
* DV specs as well (e.g. SMPTE314M vs. IEC 61834). | |||
*/ | |||
typedef struct AVDVProfile { | |||
int dsf; /* value of the dsf in the DV header */ | |||
int video_stype; /* stype for VAUX source pack */ | |||
int frame_size; /* total size of one frame in bytes */ | |||
int difseg_size; /* number of DIF segments per DIF channel */ | |||
int n_difchan; /* number of DIF channels per frame */ | |||
AVRational time_base; /* 1/framerate */ | |||
int ltc_divisor; /* FPS from the LTS standpoint */ | |||
int height; /* picture height in pixels */ | |||
int width; /* picture width in pixels */ | |||
AVRational sar[2]; /* sample aspect ratios for 4:3 and 16:9 */ | |||
enum AVPixelFormat pix_fmt; /* picture pixel format */ | |||
int bpm; /* blocks per macroblock */ | |||
const uint8_t *block_sizes; /* AC block sizes, in bits */ | |||
int audio_stride; /* size of audio_shuffle table */ | |||
int audio_min_samples[3]; /* min amount of audio samples */ | |||
/* for 48kHz, 44.1kHz and 32kHz */ | |||
int audio_samples_dist[5]; /* how many samples are supposed to be */ | |||
/* in each frame in a 5 frames window */ | |||
const uint8_t (*audio_shuffle)[9]; /* PCM shuffling table */ | |||
} AVDVProfile; | |||
#if FF_API_DV_FRAME_PROFILE | |||
/** | |||
* @deprecated use av_dv_frame_profile() | |||
*/ | |||
attribute_deprecated | |||
const AVDVProfile* avpriv_dv_frame_profile2(AVCodecContext* codec, const AVDVProfile *sys, | |||
const uint8_t* frame, unsigned buf_size); | |||
#endif | |||
/** | |||
* Get a DV profile for the provided compressed frame. | |||
* | |||
* @param sys the profile used for the previous frame, may be NULL | |||
* @param frame the compressed data buffer | |||
* @param buf_size size of the buffer in bytes | |||
* @return the DV profile for the supplied data or NULL on failure | |||
*/ | |||
const AVDVProfile *av_dv_frame_profile(const AVDVProfile *sys, | |||
const uint8_t *frame, unsigned buf_size); | |||
/** | |||
* Get a DV profile for the provided stream parameters. | |||
*/ | |||
const AVDVProfile *av_dv_codec_profile(int width, int height, enum AVPixelFormat pix_fmt); | |||
#endif /* AVCODEC_DV_PROFILE_H */ |
@@ -0,0 +1,93 @@ | |||
/* | |||
* DXVA2 HW acceleration | |||
* | |||
* copyright (c) 2009 Laurent Aimar | |||
* | |||
* This file is part of FFmpeg. | |||
* | |||
* FFmpeg is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU Lesser General Public | |||
* License as published by the Free Software Foundation; either | |||
* version 2.1 of the License, or (at your option) any later version. | |||
* | |||
* FFmpeg is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
* Lesser General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Lesser General Public | |||
* License along with FFmpeg; if not, write to the Free Software | |||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||
*/ | |||
#ifndef AVCODEC_DXVA_H | |||
#define AVCODEC_DXVA_H | |||
/** | |||
* @file | |||
* @ingroup lavc_codec_hwaccel_dxva2 | |||
* Public libavcodec DXVA2 header. | |||
*/ | |||
#if !defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0600 | |||
#undef _WIN32_WINNT | |||
#define _WIN32_WINNT 0x0600 | |||
#endif | |||
#include <stdint.h> | |||
#include <d3d9.h> | |||
#include <dxva2api.h> | |||
/** | |||
* @defgroup lavc_codec_hwaccel_dxva2 DXVA2 | |||
* @ingroup lavc_codec_hwaccel | |||
* | |||
* @{ | |||
*/ | |||
#define FF_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG 1 ///< Work around for DXVA2 and old UVD/UVD+ ATI video cards | |||
#define FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO 2 ///< Work around for DXVA2 and old Intel GPUs with ClearVideo interface | |||
/** | |||
* This structure is used to provides the necessary configurations and data | |||
* to the DXVA2 FFmpeg HWAccel implementation. | |||
* | |||
* The application must make it available as AVCodecContext.hwaccel_context. | |||
*/ | |||
struct dxva_context { | |||
/** | |||
* DXVA2 decoder object | |||
*/ | |||
IDirectXVideoDecoder *decoder; | |||
/** | |||
* DXVA2 configuration used to create the decoder | |||
*/ | |||
const DXVA2_ConfigPictureDecode *cfg; | |||
/** | |||
* The number of surface in the surface array | |||
*/ | |||
unsigned surface_count; | |||
/** | |||
* The array of Direct3D surfaces used to create the decoder | |||
*/ | |||
LPDIRECT3DSURFACE9 *surface; | |||
/** | |||
* A bit field configuring the workarounds needed for using the decoder | |||
*/ | |||
uint64_t workaround; | |||
/** | |||
* Private to the FFmpeg AVHWAccel implementation | |||
*/ | |||
unsigned report_id; | |||
}; | |||
/** | |||
* @} | |||
*/ | |||
#endif /* AVCODEC_DXVA_H */ |
@@ -0,0 +1,397 @@ | |||
/* | |||
* This file is part of FFmpeg. | |||
* | |||
* FFmpeg is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU Lesser General Public | |||
* License as published by the Free Software Foundation; either | |||
* version 2.1 of the License, or (at your option) any later version. | |||
* | |||
* FFmpeg is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
* Lesser General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Lesser General Public | |||
* License along with FFmpeg; if not, write to the Free Software | |||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||
*/ | |||
#ifndef AVCODEC_OLD_CODEC_IDS_H | |||
#define AVCODEC_OLD_CODEC_IDS_H | |||
/* | |||
* This header exists to prevent new codec IDs from being accidentally added to | |||
* the deprecated list. | |||
* Do not include it directly. It will be removed on next major bump | |||
* | |||
* Do not add new items to this list. Use the AVCodecID enum instead. | |||
*/ | |||
CODEC_ID_NONE = AV_CODEC_ID_NONE, | |||
/* video codecs */ | |||
CODEC_ID_MPEG1VIDEO, | |||
CODEC_ID_MPEG2VIDEO, ///< preferred ID for MPEG-1/2 video decoding | |||
#if FF_API_XVMC | |||
CODEC_ID_MPEG2VIDEO_XVMC, | |||
#endif | |||
CODEC_ID_H261, | |||
CODEC_ID_H263, | |||
CODEC_ID_RV10, | |||
CODEC_ID_RV20, | |||
CODEC_ID_MJPEG, | |||
CODEC_ID_MJPEGB, | |||
CODEC_ID_LJPEG, | |||
CODEC_ID_SP5X, | |||
CODEC_ID_JPEGLS, | |||
CODEC_ID_MPEG4, | |||
CODEC_ID_RAWVIDEO, | |||
CODEC_ID_MSMPEG4V1, | |||
CODEC_ID_MSMPEG4V2, | |||
CODEC_ID_MSMPEG4V3, | |||
CODEC_ID_WMV1, | |||
CODEC_ID_WMV2, | |||
CODEC_ID_H263P, | |||
CODEC_ID_H263I, | |||
CODEC_ID_FLV1, | |||
CODEC_ID_SVQ1, | |||
CODEC_ID_SVQ3, | |||
CODEC_ID_DVVIDEO, | |||
CODEC_ID_HUFFYUV, | |||
CODEC_ID_CYUV, | |||
CODEC_ID_H264, | |||
CODEC_ID_INDEO3, | |||
CODEC_ID_VP3, | |||
CODEC_ID_THEORA, | |||
CODEC_ID_ASV1, | |||
CODEC_ID_ASV2, | |||
CODEC_ID_FFV1, | |||
CODEC_ID_4XM, | |||
CODEC_ID_VCR1, | |||
CODEC_ID_CLJR, | |||
CODEC_ID_MDEC, | |||
CODEC_ID_ROQ, | |||
CODEC_ID_INTERPLAY_VIDEO, | |||
CODEC_ID_XAN_WC3, | |||
CODEC_ID_XAN_WC4, | |||
CODEC_ID_RPZA, | |||
CODEC_ID_CINEPAK, | |||
CODEC_ID_WS_VQA, | |||
CODEC_ID_MSRLE, | |||
CODEC_ID_MSVIDEO1, | |||
CODEC_ID_IDCIN, | |||
CODEC_ID_8BPS, | |||
CODEC_ID_SMC, | |||
CODEC_ID_FLIC, | |||
CODEC_ID_TRUEMOTION1, | |||
CODEC_ID_VMDVIDEO, | |||
CODEC_ID_MSZH, | |||
CODEC_ID_ZLIB, | |||
CODEC_ID_QTRLE, | |||
CODEC_ID_TSCC, | |||
CODEC_ID_ULTI, | |||
CODEC_ID_QDRAW, | |||
CODEC_ID_VIXL, | |||
CODEC_ID_QPEG, | |||
CODEC_ID_PNG, | |||
CODEC_ID_PPM, | |||
CODEC_ID_PBM, | |||
CODEC_ID_PGM, | |||
CODEC_ID_PGMYUV, | |||
CODEC_ID_PAM, | |||
CODEC_ID_FFVHUFF, | |||
CODEC_ID_RV30, | |||
CODEC_ID_RV40, | |||
CODEC_ID_VC1, | |||
CODEC_ID_WMV3, | |||
CODEC_ID_LOCO, | |||
CODEC_ID_WNV1, | |||
CODEC_ID_AASC, | |||
CODEC_ID_INDEO2, | |||
CODEC_ID_FRAPS, | |||
CODEC_ID_TRUEMOTION2, | |||
CODEC_ID_BMP, | |||
CODEC_ID_CSCD, | |||
CODEC_ID_MMVIDEO, | |||
CODEC_ID_ZMBV, | |||
CODEC_ID_AVS, | |||
CODEC_ID_SMACKVIDEO, | |||
CODEC_ID_NUV, | |||
CODEC_ID_KMVC, | |||
CODEC_ID_FLASHSV, | |||
CODEC_ID_CAVS, | |||
CODEC_ID_JPEG2000, | |||
CODEC_ID_VMNC, | |||
CODEC_ID_VP5, | |||
CODEC_ID_VP6, | |||
CODEC_ID_VP6F, | |||
CODEC_ID_TARGA, | |||
CODEC_ID_DSICINVIDEO, | |||
CODEC_ID_TIERTEXSEQVIDEO, | |||
CODEC_ID_TIFF, | |||
CODEC_ID_GIF, | |||
CODEC_ID_DXA, | |||
CODEC_ID_DNXHD, | |||
CODEC_ID_THP, | |||
CODEC_ID_SGI, | |||
CODEC_ID_C93, | |||
CODEC_ID_BETHSOFTVID, | |||
CODEC_ID_PTX, | |||
CODEC_ID_TXD, | |||
CODEC_ID_VP6A, | |||
CODEC_ID_AMV, | |||
CODEC_ID_VB, | |||
CODEC_ID_PCX, | |||
CODEC_ID_SUNRAST, | |||
CODEC_ID_INDEO4, | |||
CODEC_ID_INDEO5, | |||
CODEC_ID_MIMIC, | |||
CODEC_ID_RL2, | |||
CODEC_ID_ESCAPE124, | |||
CODEC_ID_DIRAC, | |||
CODEC_ID_BFI, | |||
CODEC_ID_CMV, | |||
CODEC_ID_MOTIONPIXELS, | |||
CODEC_ID_TGV, | |||
CODEC_ID_TGQ, | |||
CODEC_ID_TQI, | |||
CODEC_ID_AURA, | |||
CODEC_ID_AURA2, | |||
CODEC_ID_V210X, | |||
CODEC_ID_TMV, | |||
CODEC_ID_V210, | |||
CODEC_ID_DPX, | |||
CODEC_ID_MAD, | |||
CODEC_ID_FRWU, | |||
CODEC_ID_FLASHSV2, | |||
CODEC_ID_CDGRAPHICS, | |||
CODEC_ID_R210, | |||
CODEC_ID_ANM, | |||
CODEC_ID_BINKVIDEO, | |||
CODEC_ID_IFF_ILBM, | |||
CODEC_ID_IFF_BYTERUN1, | |||
CODEC_ID_KGV1, | |||
CODEC_ID_YOP, | |||
CODEC_ID_VP8, | |||
CODEC_ID_PICTOR, | |||
CODEC_ID_ANSI, | |||
CODEC_ID_A64_MULTI, | |||
CODEC_ID_A64_MULTI5, | |||
CODEC_ID_R10K, | |||
CODEC_ID_MXPEG, | |||
CODEC_ID_LAGARITH, | |||
CODEC_ID_PRORES, | |||
CODEC_ID_JV, | |||
CODEC_ID_DFA, | |||
CODEC_ID_WMV3IMAGE, | |||
CODEC_ID_VC1IMAGE, | |||
CODEC_ID_UTVIDEO, | |||
CODEC_ID_BMV_VIDEO, | |||
CODEC_ID_VBLE, | |||
CODEC_ID_DXTORY, | |||
CODEC_ID_V410, | |||
CODEC_ID_XWD, | |||
CODEC_ID_CDXL, | |||
CODEC_ID_XBM, | |||
CODEC_ID_ZEROCODEC, | |||
CODEC_ID_MSS1, | |||
CODEC_ID_MSA1, | |||
CODEC_ID_TSCC2, | |||
CODEC_ID_MTS2, | |||
CODEC_ID_CLLC, | |||
CODEC_ID_Y41P = MKBETAG('Y','4','1','P'), | |||
CODEC_ID_ESCAPE130 = MKBETAG('E','1','3','0'), | |||
CODEC_ID_EXR = MKBETAG('0','E','X','R'), | |||
CODEC_ID_AVRP = MKBETAG('A','V','R','P'), | |||
CODEC_ID_G2M = MKBETAG( 0 ,'G','2','M'), | |||
CODEC_ID_AVUI = MKBETAG('A','V','U','I'), | |||
CODEC_ID_AYUV = MKBETAG('A','Y','U','V'), | |||
CODEC_ID_V308 = MKBETAG('V','3','0','8'), | |||
CODEC_ID_V408 = MKBETAG('V','4','0','8'), | |||
CODEC_ID_YUV4 = MKBETAG('Y','U','V','4'), | |||
CODEC_ID_SANM = MKBETAG('S','A','N','M'), | |||
CODEC_ID_PAF_VIDEO = MKBETAG('P','A','F','V'), | |||
CODEC_ID_SNOW = AV_CODEC_ID_SNOW, | |||
/* various PCM "codecs" */ | |||
CODEC_ID_FIRST_AUDIO = 0x10000, ///< A dummy id pointing at the start of audio codecs | |||
CODEC_ID_PCM_S16LE = 0x10000, | |||
CODEC_ID_PCM_S16BE, | |||
CODEC_ID_PCM_U16LE, | |||
CODEC_ID_PCM_U16BE, | |||
CODEC_ID_PCM_S8, | |||
CODEC_ID_PCM_U8, | |||
CODEC_ID_PCM_MULAW, | |||
CODEC_ID_PCM_ALAW, | |||
CODEC_ID_PCM_S32LE, | |||
CODEC_ID_PCM_S32BE, | |||
CODEC_ID_PCM_U32LE, | |||
CODEC_ID_PCM_U32BE, | |||
CODEC_ID_PCM_S24LE, | |||
CODEC_ID_PCM_S24BE, | |||
CODEC_ID_PCM_U24LE, | |||
CODEC_ID_PCM_U24BE, | |||
CODEC_ID_PCM_S24DAUD, | |||
CODEC_ID_PCM_ZORK, | |||
CODEC_ID_PCM_S16LE_PLANAR, | |||
CODEC_ID_PCM_DVD, | |||
CODEC_ID_PCM_F32BE, | |||
CODEC_ID_PCM_F32LE, | |||
CODEC_ID_PCM_F64BE, | |||
CODEC_ID_PCM_F64LE, | |||
CODEC_ID_PCM_BLURAY, | |||
CODEC_ID_PCM_LXF, | |||
CODEC_ID_S302M, | |||
CODEC_ID_PCM_S8_PLANAR, | |||
/* various ADPCM codecs */ | |||
CODEC_ID_ADPCM_IMA_QT = 0x11000, | |||
CODEC_ID_ADPCM_IMA_WAV, | |||
CODEC_ID_ADPCM_IMA_DK3, | |||
CODEC_ID_ADPCM_IMA_DK4, | |||
CODEC_ID_ADPCM_IMA_WS, | |||
CODEC_ID_ADPCM_IMA_SMJPEG, | |||
CODEC_ID_ADPCM_MS, | |||
CODEC_ID_ADPCM_4XM, | |||
CODEC_ID_ADPCM_XA, | |||
CODEC_ID_ADPCM_ADX, | |||
CODEC_ID_ADPCM_EA, | |||
CODEC_ID_ADPCM_G726, | |||
CODEC_ID_ADPCM_CT, | |||
CODEC_ID_ADPCM_SWF, | |||
CODEC_ID_ADPCM_YAMAHA, | |||
CODEC_ID_ADPCM_SBPRO_4, | |||
CODEC_ID_ADPCM_SBPRO_3, | |||
CODEC_ID_ADPCM_SBPRO_2, | |||
CODEC_ID_ADPCM_THP, | |||
CODEC_ID_ADPCM_IMA_AMV, | |||
CODEC_ID_ADPCM_EA_R1, | |||
CODEC_ID_ADPCM_EA_R3, | |||
CODEC_ID_ADPCM_EA_R2, | |||
CODEC_ID_ADPCM_IMA_EA_SEAD, | |||
CODEC_ID_ADPCM_IMA_EA_EACS, | |||
CODEC_ID_ADPCM_EA_XAS, | |||
CODEC_ID_ADPCM_EA_MAXIS_XA, | |||
CODEC_ID_ADPCM_IMA_ISS, | |||
CODEC_ID_ADPCM_G722, | |||
CODEC_ID_ADPCM_IMA_APC, | |||
CODEC_ID_VIMA = MKBETAG('V','I','M','A'), | |||
/* AMR */ | |||
CODEC_ID_AMR_NB = 0x12000, | |||
CODEC_ID_AMR_WB, | |||
/* RealAudio codecs*/ | |||
CODEC_ID_RA_144 = 0x13000, | |||
CODEC_ID_RA_288, | |||
/* various DPCM codecs */ | |||
CODEC_ID_ROQ_DPCM = 0x14000, | |||
CODEC_ID_INTERPLAY_DPCM, | |||
CODEC_ID_XAN_DPCM, | |||
CODEC_ID_SOL_DPCM, | |||
/* audio codecs */ | |||
CODEC_ID_MP2 = 0x15000, | |||
CODEC_ID_MP3, ///< preferred ID for decoding MPEG audio layer 1, 2 or 3 | |||
CODEC_ID_AAC, | |||
CODEC_ID_AC3, | |||
CODEC_ID_DTS, | |||
CODEC_ID_VORBIS, | |||
CODEC_ID_DVAUDIO, | |||
CODEC_ID_WMAV1, | |||
CODEC_ID_WMAV2, | |||
CODEC_ID_MACE3, | |||
CODEC_ID_MACE6, | |||
CODEC_ID_VMDAUDIO, | |||
CODEC_ID_FLAC, | |||
CODEC_ID_MP3ADU, | |||
CODEC_ID_MP3ON4, | |||
CODEC_ID_SHORTEN, | |||
CODEC_ID_ALAC, | |||
CODEC_ID_WESTWOOD_SND1, | |||
CODEC_ID_GSM, ///< as in Berlin toast format | |||
CODEC_ID_QDM2, | |||
CODEC_ID_COOK, | |||
CODEC_ID_TRUESPEECH, | |||
CODEC_ID_TTA, | |||
CODEC_ID_SMACKAUDIO, | |||
CODEC_ID_QCELP, | |||
CODEC_ID_WAVPACK, | |||
CODEC_ID_DSICINAUDIO, | |||
CODEC_ID_IMC, | |||
CODEC_ID_MUSEPACK7, | |||
CODEC_ID_MLP, | |||
CODEC_ID_GSM_MS, /* as found in WAV */ | |||
CODEC_ID_ATRAC3, | |||
CODEC_ID_VOXWARE, | |||
CODEC_ID_APE, | |||
CODEC_ID_NELLYMOSER, | |||
CODEC_ID_MUSEPACK8, | |||
CODEC_ID_SPEEX, | |||
CODEC_ID_WMAVOICE, | |||
CODEC_ID_WMAPRO, | |||
CODEC_ID_WMALOSSLESS, | |||
CODEC_ID_ATRAC3P, | |||
CODEC_ID_EAC3, | |||
CODEC_ID_SIPR, | |||
CODEC_ID_MP1, | |||
CODEC_ID_TWINVQ, | |||
CODEC_ID_TRUEHD, | |||
CODEC_ID_MP4ALS, | |||
CODEC_ID_ATRAC1, | |||
CODEC_ID_BINKAUDIO_RDFT, | |||
CODEC_ID_BINKAUDIO_DCT, | |||
CODEC_ID_AAC_LATM, | |||
CODEC_ID_QDMC, | |||
CODEC_ID_CELT, | |||
CODEC_ID_G723_1, | |||
CODEC_ID_G729, | |||
CODEC_ID_8SVX_EXP, | |||
CODEC_ID_8SVX_FIB, | |||
CODEC_ID_BMV_AUDIO, | |||
CODEC_ID_RALF, | |||
CODEC_ID_IAC, | |||
CODEC_ID_ILBC, | |||
CODEC_ID_FFWAVESYNTH = MKBETAG('F','F','W','S'), | |||
CODEC_ID_SONIC = MKBETAG('S','O','N','C'), | |||
CODEC_ID_SONIC_LS = MKBETAG('S','O','N','L'), | |||
CODEC_ID_PAF_AUDIO = MKBETAG('P','A','F','A'), | |||
CODEC_ID_OPUS = MKBETAG('O','P','U','S'), | |||
/* subtitle codecs */ | |||
CODEC_ID_FIRST_SUBTITLE = 0x17000, ///< A dummy ID pointing at the start of subtitle codecs. | |||
CODEC_ID_DVD_SUBTITLE = 0x17000, | |||
CODEC_ID_DVB_SUBTITLE, | |||
CODEC_ID_TEXT, ///< raw UTF-8 text | |||
CODEC_ID_XSUB, | |||
CODEC_ID_SSA, | |||
CODEC_ID_MOV_TEXT, | |||
CODEC_ID_HDMV_PGS_SUBTITLE, | |||
CODEC_ID_DVB_TELETEXT, | |||
CODEC_ID_SRT, | |||
CODEC_ID_MICRODVD = MKBETAG('m','D','V','D'), | |||
CODEC_ID_EIA_608 = MKBETAG('c','6','0','8'), | |||
CODEC_ID_JACOSUB = MKBETAG('J','S','U','B'), | |||
CODEC_ID_SAMI = MKBETAG('S','A','M','I'), | |||
CODEC_ID_REALTEXT = MKBETAG('R','T','X','T'), | |||
CODEC_ID_SUBVIEWER = MKBETAG('S','u','b','V'), | |||
/* other specific kind of codecs (generally used for attachments) */ | |||
CODEC_ID_FIRST_UNKNOWN = 0x18000, ///< A dummy ID pointing at the start of various fake codecs. | |||
CODEC_ID_TTF = 0x18000, | |||
CODEC_ID_BINTEXT = MKBETAG('B','T','X','T'), | |||
CODEC_ID_XBIN = MKBETAG('X','B','I','N'), | |||
CODEC_ID_IDF = MKBETAG( 0 ,'I','D','F'), | |||
CODEC_ID_OTF = MKBETAG( 0 ,'O','T','F'), | |||
CODEC_ID_PROBE = 0x19000, ///< codec_id is not known (like CODEC_ID_NONE) but lavf should attempt to identify it | |||
CODEC_ID_MPEG2TS = 0x20000, /**< _FAKE_ codec to indicate a raw MPEG-2 TS | |||
* stream (only used by libavformat) */ | |||
CODEC_ID_MPEG4SYSTEMS = 0x20001, /**< _FAKE_ codec to indicate a MPEG-4 Systems | |||
* stream (only used by libavformat) */ | |||
CODEC_ID_FFMETADATA = 0x21000, ///< Dummy codec for streams containing only metadata information. | |||
#endif /* AVCODEC_OLD_CODEC_IDS_H */ |
@@ -0,0 +1,173 @@ | |||
/* | |||
* Video Acceleration API (shared data between FFmpeg and the video player) | |||
* HW decode acceleration for MPEG-2, MPEG-4, H.264 and VC-1 | |||
* | |||
* Copyright (C) 2008-2009 Splitted-Desktop Systems | |||
* | |||
* This file is part of FFmpeg. | |||
* | |||
* FFmpeg is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU Lesser General Public | |||
* License as published by the Free Software Foundation; either | |||
* version 2.1 of the License, or (at your option) any later version. | |||
* | |||
* FFmpeg is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
* Lesser General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Lesser General Public | |||
* License along with FFmpeg; if not, write to the Free Software | |||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||
*/ | |||
#ifndef AVCODEC_VAAPI_H | |||
#define AVCODEC_VAAPI_H | |||
/** | |||
* @file | |||
* @ingroup lavc_codec_hwaccel_vaapi | |||
* Public libavcodec VA API header. | |||
*/ | |||
#include <stdint.h> | |||
/** | |||
* @defgroup lavc_codec_hwaccel_vaapi VA API Decoding | |||
* @ingroup lavc_codec_hwaccel | |||
* @{ | |||
*/ | |||
/** | |||
* This structure is used to share data between the FFmpeg library and | |||
* the client video application. | |||
* This shall be zero-allocated and available as | |||
* AVCodecContext.hwaccel_context. All user members can be set once | |||
* during initialization or through each AVCodecContext.get_buffer() | |||
* function call. In any case, they must be valid prior to calling | |||
* decoding functions. | |||
*/ | |||
struct vaapi_context { | |||
/** | |||
* Window system dependent data | |||
* | |||
* - encoding: unused | |||
* - decoding: Set by user | |||
*/ | |||
void *display; | |||
/** | |||
* Configuration ID | |||
* | |||
* - encoding: unused | |||
* - decoding: Set by user | |||
*/ | |||
uint32_t config_id; | |||
/** | |||
* Context ID (video decode pipeline) | |||
* | |||
* - encoding: unused | |||
* - decoding: Set by user | |||
*/ | |||
uint32_t context_id; | |||
/** | |||
* VAPictureParameterBuffer ID | |||
* | |||
* - encoding: unused | |||
* - decoding: Set by libavcodec | |||
*/ | |||
uint32_t pic_param_buf_id; | |||
/** | |||
* VAIQMatrixBuffer ID | |||
* | |||
* - encoding: unused | |||
* - decoding: Set by libavcodec | |||
*/ | |||
uint32_t iq_matrix_buf_id; | |||
/** | |||
* VABitPlaneBuffer ID (for VC-1 decoding) | |||
* | |||
* - encoding: unused | |||
* - decoding: Set by libavcodec | |||
*/ | |||
uint32_t bitplane_buf_id; | |||
/** | |||
* Slice parameter/data buffer IDs | |||
* | |||
* - encoding: unused | |||
* - decoding: Set by libavcodec | |||
*/ | |||
uint32_t *slice_buf_ids; | |||
/** | |||
* Number of effective slice buffer IDs to send to the HW | |||
* | |||
* - encoding: unused | |||
* - decoding: Set by libavcodec | |||
*/ | |||
unsigned int n_slice_buf_ids; | |||
/** | |||
* Size of pre-allocated slice_buf_ids | |||
* | |||
* - encoding: unused | |||
* - decoding: Set by libavcodec | |||
*/ | |||
unsigned int slice_buf_ids_alloc; | |||
/** | |||
* Pointer to VASliceParameterBuffers | |||
* | |||
* - encoding: unused | |||
* - decoding: Set by libavcodec | |||
*/ | |||
void *slice_params; | |||
/** | |||
* Size of a VASliceParameterBuffer element | |||
* | |||
* - encoding: unused | |||
* - decoding: Set by libavcodec | |||
*/ | |||
unsigned int slice_param_size; | |||
/** | |||
* Size of pre-allocated slice_params | |||
* | |||
* - encoding: unused | |||
* - decoding: Set by libavcodec | |||
*/ | |||
unsigned int slice_params_alloc; | |||
/** | |||
* Number of slices currently filled in | |||
* | |||
* - encoding: unused | |||
* - decoding: Set by libavcodec | |||
*/ | |||
unsigned int slice_count; | |||
/** | |||
* Pointer to slice data buffer base | |||
* - encoding: unused | |||
* - decoding: Set by libavcodec | |||
*/ | |||
const uint8_t *slice_data; | |||
/** | |||
* Current size of slice data | |||
* | |||
* - encoding: unused | |||
* - decoding: Set by libavcodec | |||
*/ | |||
uint32_t slice_data_size; | |||
}; | |||
/* @} */ | |||
#endif /* AVCODEC_VAAPI_H */ |
@@ -0,0 +1,213 @@ | |||
/* | |||
* VDA HW acceleration | |||
* | |||
* copyright (c) 2011 Sebastien Zwickert | |||
* | |||
* This file is part of FFmpeg. | |||
* | |||
* FFmpeg is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU Lesser General Public | |||
* License as published by the Free Software Foundation; either | |||
* version 2.1 of the License, or (at your option) any later version. | |||
* | |||
* FFmpeg is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
* Lesser General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Lesser General Public | |||
* License along with FFmpeg; if not, write to the Free Software | |||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||
*/ | |||
#ifndef AVCODEC_VDA_H | |||
#define AVCODEC_VDA_H | |||
/** | |||
* @file | |||
* @ingroup lavc_codec_hwaccel_vda | |||
* Public libavcodec VDA header. | |||
*/ | |||
#include "libavcodec/avcodec.h" | |||
#include <stdint.h> | |||
// emmintrin.h is unable to compile with -std=c99 -Werror=missing-prototypes | |||
// http://openradar.appspot.com/8026390 | |||
#undef __GNUC_STDC_INLINE__ | |||
#define Picture QuickdrawPicture | |||
#include <VideoDecodeAcceleration/VDADecoder.h> | |||
#undef Picture | |||
#include "libavcodec/version.h" | |||
// extra flags not defined in VDADecoder.h | |||
enum { | |||
kVDADecodeInfo_Asynchronous = 1UL << 0, | |||
kVDADecodeInfo_FrameDropped = 1UL << 1 | |||
}; | |||
/** | |||
* @defgroup lavc_codec_hwaccel_vda VDA | |||
* @ingroup lavc_codec_hwaccel | |||
* | |||
* @{ | |||
*/ | |||
/** | |||
* This structure is used to provide the necessary configurations and data | |||
* to the VDA FFmpeg HWAccel implementation. | |||
* | |||
* The application must make it available as AVCodecContext.hwaccel_context. | |||
*/ | |||
struct vda_context { | |||
/** | |||
* VDA decoder object. | |||
* | |||
* - encoding: unused | |||
* - decoding: Set/Unset by libavcodec. | |||
*/ | |||
VDADecoder decoder; | |||
/** | |||
* The Core Video pixel buffer that contains the current image data. | |||
* | |||
* encoding: unused | |||
* decoding: Set by libavcodec. Unset by user. | |||
*/ | |||
CVPixelBufferRef cv_buffer; | |||
/** | |||
* Use the hardware decoder in synchronous mode. | |||
* | |||
* encoding: unused | |||
* decoding: Set by user. | |||
*/ | |||
int use_sync_decoding; | |||
/** | |||
* The frame width. | |||
* | |||
* - encoding: unused | |||
* - decoding: Set/Unset by user. | |||
*/ | |||
int width; | |||
/** | |||
* The frame height. | |||
* | |||
* - encoding: unused | |||
* - decoding: Set/Unset by user. | |||
*/ | |||
int height; | |||
/** | |||
* The frame format. | |||
* | |||
* - encoding: unused | |||
* - decoding: Set/Unset by user. | |||
*/ | |||
int format; | |||
/** | |||
* The pixel format for output image buffers. | |||
* | |||
* - encoding: unused | |||
* - decoding: Set/Unset by user. | |||
*/ | |||
OSType cv_pix_fmt_type; | |||
/** | |||
* unused | |||
*/ | |||
uint8_t *priv_bitstream; | |||
/** | |||
* unused | |||
*/ | |||
int priv_bitstream_size; | |||
/** | |||
* unused | |||
*/ | |||
int priv_allocated_size; | |||
/** | |||
* Use av_buffer to manage buffer. | |||
* When the flag is set, the CVPixelBuffers returned by the decoder will | |||
* be released automatically, so you have to retain them if necessary. | |||
* Not setting this flag may cause memory leak. | |||
* | |||
* encoding: unused | |||
* decoding: Set by user. | |||
*/ | |||
int use_ref_buffer; | |||
}; | |||
/** Create the video decoder. */ | |||
int ff_vda_create_decoder(struct vda_context *vda_ctx, | |||
uint8_t *extradata, | |||
int extradata_size); | |||
/** Destroy the video decoder. */ | |||
int ff_vda_destroy_decoder(struct vda_context *vda_ctx); | |||
/** | |||
* This struct holds all the information that needs to be passed | |||
* between the caller and libavcodec for initializing VDA decoding. | |||
* Its size is not a part of the public ABI, it must be allocated with | |||
* av_vda_alloc_context() and freed with av_free(). | |||
*/ | |||
typedef struct AVVDAContext { | |||
/** | |||
* VDA decoder object. Created and freed by the caller. | |||
*/ | |||
VDADecoder decoder; | |||
/** | |||
* The output callback that must be passed to VDADecoderCreate. | |||
* Set by av_vda_alloc_context(). | |||
*/ | |||
VDADecoderOutputCallback output_callback; | |||
} AVVDAContext; | |||
/** | |||
* Allocate and initialize a VDA context. | |||
* | |||
* This function should be called from the get_format() callback when the caller | |||
* selects the AV_PIX_FMT_VDA format. The caller must then create the decoder | |||
* object (using the output callback provided by libavcodec) that will be used | |||
* for VDA-accelerated decoding. | |||
* | |||
* When decoding with VDA is finished, the caller must destroy the decoder | |||
* object and free the VDA context using av_free(). | |||
* | |||
* @return the newly allocated context or NULL on failure | |||
*/ | |||
AVVDAContext *av_vda_alloc_context(void); | |||
/** | |||
* This is a convenience function that creates and sets up the VDA context using | |||
* an internal implementation. | |||
* | |||
* @param avctx the corresponding codec context | |||
* | |||
* @return >= 0 on success, a negative AVERROR code on failure | |||
*/ | |||
int av_vda_default_init(AVCodecContext *avctx); | |||
/** | |||
* This function must be called to free the VDA context initialized with | |||
* av_vda_default_init(). | |||
* | |||
* @param avctx the corresponding codec context | |||
*/ | |||
void av_vda_default_free(AVCodecContext *avctx); | |||
/** | |||
* @} | |||
*/ | |||
#endif /* AVCODEC_VDA_H */ |
@@ -0,0 +1,235 @@ | |||
/* | |||
* The Video Decode and Presentation API for UNIX (VDPAU) is used for | |||
* hardware-accelerated decoding of MPEG-1/2, H.264 and VC-1. | |||
* | |||
* Copyright (C) 2008 NVIDIA | |||
* | |||
* This file is part of FFmpeg. | |||
* | |||
* FFmpeg is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU Lesser General Public | |||
* License as published by the Free Software Foundation; either | |||
* version 2.1 of the License, or (at your option) any later version. | |||
* | |||
* FFmpeg is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
* Lesser General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Lesser General Public | |||
* License along with FFmpeg; if not, write to the Free Software | |||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||
*/ | |||
#ifndef AVCODEC_VDPAU_H | |||
#define AVCODEC_VDPAU_H | |||
/** | |||
* @file | |||
* @ingroup lavc_codec_hwaccel_vdpau | |||
* Public libavcodec VDPAU header. | |||
*/ | |||
/** | |||
* @defgroup lavc_codec_hwaccel_vdpau VDPAU Decoder and Renderer | |||
* @ingroup lavc_codec_hwaccel | |||
* | |||
* VDPAU hardware acceleration has two modules | |||
* - VDPAU decoding | |||
* - VDPAU presentation | |||
* | |||
* The VDPAU decoding module parses all headers using FFmpeg | |||
* parsing mechanisms and uses VDPAU for the actual decoding. | |||
* | |||
* As per the current implementation, the actual decoding | |||
* and rendering (API calls) are done as part of the VDPAU | |||
* presentation (vo_vdpau.c) module. | |||
* | |||
* @{ | |||
*/ | |||
#include <vdpau/vdpau.h> | |||
#include <vdpau/vdpau_x11.h> | |||
#include "libavutil/avconfig.h" | |||
#include "libavutil/attributes.h" | |||
#include "avcodec.h" | |||
#include "version.h" | |||
#if FF_API_BUFS_VDPAU | |||
union AVVDPAUPictureInfo { | |||
VdpPictureInfoH264 h264; | |||
VdpPictureInfoMPEG1Or2 mpeg; | |||
VdpPictureInfoVC1 vc1; | |||
VdpPictureInfoMPEG4Part2 mpeg4; | |||
}; | |||
#endif | |||
struct AVCodecContext; | |||
struct AVFrame; | |||
typedef int (*AVVDPAU_Render2)(struct AVCodecContext *, struct AVFrame *, | |||
const VdpPictureInfo *, uint32_t, | |||
const VdpBitstreamBuffer *); | |||
/** | |||
* This structure is used to share data between the libavcodec library and | |||
* the client video application. | |||
* The user shall allocate the structure via the av_alloc_vdpau_hwaccel | |||
* function and make it available as | |||
* AVCodecContext.hwaccel_context. Members can be set by the user once | |||
* during initialization or through each AVCodecContext.get_buffer() | |||
* function call. In any case, they must be valid prior to calling | |||
* decoding functions. | |||
* | |||
* The size of this structure is not a part of the public ABI and must not | |||
* be used outside of libavcodec. Use av_vdpau_alloc_context() to allocate an | |||
* AVVDPAUContext. | |||
*/ | |||
typedef struct AVVDPAUContext { | |||
/** | |||
* VDPAU decoder handle | |||
* | |||
* Set by user. | |||
*/ | |||
VdpDecoder decoder; | |||
/** | |||
* VDPAU decoder render callback | |||
* | |||
* Set by the user. | |||
*/ | |||
VdpDecoderRender *render; | |||
#if FF_API_BUFS_VDPAU | |||
/** | |||
* VDPAU picture information | |||
* | |||
* Set by libavcodec. | |||
*/ | |||
attribute_deprecated | |||
union AVVDPAUPictureInfo info; | |||
/** | |||
* Allocated size of the bitstream_buffers table. | |||
* | |||
* Set by libavcodec. | |||
*/ | |||
attribute_deprecated | |||
int bitstream_buffers_allocated; | |||
/** | |||
* Useful bitstream buffers in the bitstream buffers table. | |||
* | |||
* Set by libavcodec. | |||
*/ | |||
attribute_deprecated | |||
int bitstream_buffers_used; | |||
/** | |||
* Table of bitstream buffers. | |||
* The user is responsible for freeing this buffer using av_freep(). | |||
* | |||
* Set by libavcodec. | |||
*/ | |||
attribute_deprecated | |||
VdpBitstreamBuffer *bitstream_buffers; | |||
#endif | |||
AVVDPAU_Render2 render2; | |||
} AVVDPAUContext; | |||
/** | |||
* @brief allocation function for AVVDPAUContext | |||
* | |||
* Allows extending the struct without breaking API/ABI | |||
*/ | |||
AVVDPAUContext *av_alloc_vdpaucontext(void); | |||
AVVDPAU_Render2 av_vdpau_hwaccel_get_render2(const AVVDPAUContext *); | |||
void av_vdpau_hwaccel_set_render2(AVVDPAUContext *, AVVDPAU_Render2); | |||
/** | |||
* Associate a VDPAU device with a codec context for hardware acceleration. | |||
* This function is meant to be called from the get_format() codec callback, | |||
* or earlier. It can also be called after avcodec_flush_buffers() to change | |||
* the underlying VDPAU device mid-stream (e.g. to recover from non-transparent | |||
* display preemption). | |||
* | |||
* @note get_format() must return AV_PIX_FMT_VDPAU if this function completes | |||
* successfully. | |||
* | |||
* @param avctx decoding context whose get_format() callback is invoked | |||
* @param device VDPAU device handle to use for hardware acceleration | |||
* @param get_proc_address VDPAU device driver | |||
* @param flags zero of more OR'd AV_HWACCEL_FLAG_* flags | |||
* | |||
* @return 0 on success, an AVERROR code on failure. | |||
*/ | |||
int av_vdpau_bind_context(AVCodecContext *avctx, VdpDevice device, | |||
VdpGetProcAddress *get_proc_address, unsigned flags); | |||
/** | |||
* Allocate an AVVDPAUContext. | |||
* | |||
* @return Newly-allocated AVVDPAUContext or NULL on failure. | |||
*/ | |||
AVVDPAUContext *av_vdpau_alloc_context(void); | |||
/** | |||
* Get a decoder profile that should be used for initializing a VDPAU decoder. | |||
* Should be called from the AVCodecContext.get_format() callback. | |||
* | |||
* @param avctx the codec context being used for decoding the stream | |||
* @param profile a pointer into which the result will be written on success. | |||
* The contents of profile are undefined if this function returns | |||
* an error. | |||
* | |||
* @return 0 on success (non-negative), a negative AVERROR on failure. | |||
*/ | |||
int av_vdpau_get_profile(AVCodecContext *avctx, VdpDecoderProfile *profile); | |||
#if FF_API_CAP_VDPAU | |||
/** @brief The videoSurface is used for rendering. */ | |||
#define FF_VDPAU_STATE_USED_FOR_RENDER 1 | |||
/** | |||
* @brief The videoSurface is needed for reference/prediction. | |||
* The codec manipulates this. | |||
*/ | |||
#define FF_VDPAU_STATE_USED_FOR_REFERENCE 2 | |||
/** | |||
* @brief This structure is used as a callback between the FFmpeg | |||
* decoder (vd_) and presentation (vo_) module. | |||
* This is used for defining a video frame containing surface, | |||
* picture parameter, bitstream information etc which are passed | |||
* between the FFmpeg decoder and its clients. | |||
*/ | |||
struct vdpau_render_state { | |||
VdpVideoSurface surface; ///< Used as rendered surface, never changed. | |||
int state; ///< Holds FF_VDPAU_STATE_* values. | |||
#if AV_HAVE_INCOMPATIBLE_LIBAV_ABI | |||
/** picture parameter information for all supported codecs */ | |||
union AVVDPAUPictureInfo info; | |||
#endif | |||
/** Describe size/location of the compressed video data. | |||
Set to 0 when freeing bitstream_buffers. */ | |||
int bitstream_buffers_allocated; | |||
int bitstream_buffers_used; | |||
/** The user is responsible for freeing this buffer using av_freep(). */ | |||
VdpBitstreamBuffer *bitstream_buffers; | |||
#if !AV_HAVE_INCOMPATIBLE_LIBAV_ABI | |||
/** picture parameter information for all supported codecs */ | |||
union AVVDPAUPictureInfo info; | |||
#endif | |||
}; | |||
#endif | |||
/* @}*/ | |||
#endif /* AVCODEC_VDPAU_H */ |
@@ -0,0 +1,188 @@ | |||
/* | |||
* | |||
* This file is part of FFmpeg. | |||
* | |||
* FFmpeg is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU Lesser General Public | |||
* License as published by the Free Software Foundation; either | |||
* version 2.1 of the License, or (at your option) any later version. | |||
* | |||
* FFmpeg is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
* Lesser General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Lesser General Public | |||
* License along with FFmpeg; if not, write to the Free Software | |||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||
*/ | |||
#ifndef AVCODEC_VERSION_H | |||
#define AVCODEC_VERSION_H | |||
/** | |||
* @file | |||
* @ingroup libavc | |||
* Libavcodec version macros. | |||
*/ | |||
#include "libavutil/version.h" | |||
#define LIBAVCODEC_VERSION_MAJOR 56 | |||
#define LIBAVCODEC_VERSION_MINOR 13 | |||
#define LIBAVCODEC_VERSION_MICRO 100 | |||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ | |||
LIBAVCODEC_VERSION_MINOR, \ | |||
LIBAVCODEC_VERSION_MICRO) | |||
#define LIBAVCODEC_VERSION AV_VERSION(LIBAVCODEC_VERSION_MAJOR, \ | |||
LIBAVCODEC_VERSION_MINOR, \ | |||
LIBAVCODEC_VERSION_MICRO) | |||
#define LIBAVCODEC_BUILD LIBAVCODEC_VERSION_INT | |||
#define LIBAVCODEC_IDENT "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION) | |||
/** | |||
* FF_API_* defines may be placed below to indicate public API that will be | |||
* dropped at a future version bump. The defines themselves are not part of | |||
* the public API and may change, break or disappear at any time. | |||
*/ | |||
#ifndef FF_API_REQUEST_CHANNELS | |||
#define FF_API_REQUEST_CHANNELS (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_OLD_DECODE_AUDIO | |||
#define FF_API_OLD_DECODE_AUDIO (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_OLD_ENCODE_AUDIO | |||
#define FF_API_OLD_ENCODE_AUDIO (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_OLD_ENCODE_VIDEO | |||
#define FF_API_OLD_ENCODE_VIDEO (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_CODEC_ID | |||
#define FF_API_CODEC_ID (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_AUDIO_CONVERT | |||
#define FF_API_AUDIO_CONVERT (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_AVCODEC_RESAMPLE | |||
#define FF_API_AVCODEC_RESAMPLE FF_API_AUDIO_CONVERT | |||
#endif | |||
#ifndef FF_API_DEINTERLACE | |||
#define FF_API_DEINTERLACE (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_DESTRUCT_PACKET | |||
#define FF_API_DESTRUCT_PACKET (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_GET_BUFFER | |||
#define FF_API_GET_BUFFER (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_MISSING_SAMPLE | |||
#define FF_API_MISSING_SAMPLE (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_LOWRES | |||
#define FF_API_LOWRES (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_CAP_VDPAU | |||
#define FF_API_CAP_VDPAU (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_BUFS_VDPAU | |||
#define FF_API_BUFS_VDPAU (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_VOXWARE | |||
#define FF_API_VOXWARE (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_SET_DIMENSIONS | |||
#define FF_API_SET_DIMENSIONS (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_DEBUG_MV | |||
#define FF_API_DEBUG_MV (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_AC_VLC | |||
#define FF_API_AC_VLC (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_OLD_MSMPEG4 | |||
#define FF_API_OLD_MSMPEG4 (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_ASPECT_EXTENDED | |||
#define FF_API_ASPECT_EXTENDED (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_THREAD_OPAQUE | |||
#define FF_API_THREAD_OPAQUE (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_CODEC_PKT | |||
#define FF_API_CODEC_PKT (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_ARCH_ALPHA | |||
#define FF_API_ARCH_ALPHA (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_XVMC | |||
#define FF_API_XVMC (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_ERROR_RATE | |||
#define FF_API_ERROR_RATE (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_QSCALE_TYPE | |||
#define FF_API_QSCALE_TYPE (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_MB_TYPE | |||
#define FF_API_MB_TYPE (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_MAX_BFRAMES | |||
#define FF_API_MAX_BFRAMES (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_NEG_LINESIZES | |||
#define FF_API_NEG_LINESIZES (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_EMU_EDGE | |||
#define FF_API_EMU_EDGE (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_ARCH_SH4 | |||
#define FF_API_ARCH_SH4 (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_ARCH_SPARC | |||
#define FF_API_ARCH_SPARC (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_UNUSED_MEMBERS | |||
#define FF_API_UNUSED_MEMBERS (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_IDCT_XVIDMMX | |||
#define FF_API_IDCT_XVIDMMX (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_INPUT_PRESERVED | |||
#define FF_API_INPUT_PRESERVED (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_NORMALIZE_AQP | |||
#define FF_API_NORMALIZE_AQP (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_GMC | |||
#define FF_API_GMC (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_MV0 | |||
#define FF_API_MV0 (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_CODEC_NAME | |||
#define FF_API_CODEC_NAME (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_AFD | |||
#define FF_API_AFD (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_VISMV | |||
/* XXX: don't forget to drop the -vismv documentation */ | |||
#define FF_API_VISMV (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_DV_FRAME_PROFILE | |||
#define FF_API_DV_FRAME_PROFILE (LIBAVCODEC_VERSION_MAJOR < 57) | |||
#endif | |||
#ifndef FF_API_AUDIOENC_DELAY | |||
#define FF_API_AUDIOENC_DELAY (LIBAVCODEC_VERSION_MAJOR < 58) | |||
#endif | |||
#ifndef FF_API_AVCTX_TIMEBASE | |||
#define FF_API_AVCTX_TIMEBASE (LIBAVCODEC_VERSION_MAJOR < 59) | |||
#endif | |||
#ifndef FF_API_MPV_OPT | |||
#define FF_API_MPV_OPT (LIBAVCODEC_VERSION_MAJOR < 59) | |||
#endif | |||
#endif /* AVCODEC_VERSION_H */ |
@@ -0,0 +1,77 @@ | |||
/* | |||
* | |||
* This file is part of FFmpeg. | |||
* | |||
* FFmpeg is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU Lesser General Public | |||
* License as published by the Free Software Foundation; either | |||
* version 2.1 of the License, or (at your option) any later version. | |||
* | |||
* FFmpeg is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
* Lesser General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Lesser General Public | |||
* License along with FFmpeg; if not, write to the Free Software | |||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||
*/ | |||
/** | |||
* @file | |||
* A public API for Vorbis parsing | |||
* | |||
* Determines the duration for each packet. | |||
*/ | |||
#ifndef AVCODEC_VORBIS_PARSE_H | |||
#define AVCODEC_VORBIS_PARSE_H | |||
#include <stdint.h> | |||
typedef struct AVVorbisParseContext AVVorbisParseContext; | |||
/** | |||
* Allocate and initialize the Vorbis parser using headers in the extradata. | |||
* | |||
* @param avctx codec context | |||
* @param s Vorbis parser context | |||
*/ | |||
AVVorbisParseContext *av_vorbis_parse_init(const uint8_t *extradata, | |||
int extradata_size); | |||
/** | |||
* Free the parser and everything associated with it. | |||
*/ | |||
void av_vorbis_parse_free(AVVorbisParseContext **s); | |||
#define VORBIS_FLAG_HEADER 0x00000001 | |||
#define VORBIS_FLAG_COMMENT 0x00000002 | |||
/** | |||
* Get the duration for a Vorbis packet. | |||
* | |||
* If @p flags is @c NULL, | |||
* special frames are considered invalid. | |||
* | |||
* @param s Vorbis parser context | |||
* @param buf buffer containing a Vorbis frame | |||
* @param buf_size size of the buffer | |||
* @param flags flags for special frames | |||
*/ | |||
int av_vorbis_parse_frame_flags(AVVorbisParseContext *s, const uint8_t *buf, | |||
int buf_size, int *flags); | |||
/** | |||
* Get the duration for a Vorbis packet. | |||
* | |||
* @param s Vorbis parser context | |||
* @param buf buffer containing a Vorbis frame | |||
* @param buf_size size of the buffer | |||
*/ | |||
int av_vorbis_parse_frame(AVVorbisParseContext *s, const uint8_t *buf, | |||
int buf_size); | |||
void av_vorbis_parse_reset(AVVorbisParseContext *s); | |||
#endif /* AVCODEC_VORBIS_PARSE_H */ |
@@ -0,0 +1,170 @@ | |||
/* | |||
* Copyright (C) 2003 Ivan Kalvachev | |||
* | |||
* This file is part of FFmpeg. | |||
* | |||
* FFmpeg is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU Lesser General Public | |||
* License as published by the Free Software Foundation; either | |||
* version 2.1 of the License, or (at your option) any later version. | |||
* | |||
* FFmpeg is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
* Lesser General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Lesser General Public | |||
* License along with FFmpeg; if not, write to the Free Software | |||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||
*/ | |||
#ifndef AVCODEC_XVMC_H | |||
#define AVCODEC_XVMC_H | |||
/** | |||
* @file | |||
* @ingroup lavc_codec_hwaccel_xvmc | |||
* Public libavcodec XvMC header. | |||
*/ | |||
#include <X11/extensions/XvMC.h> | |||
#include "libavutil/attributes.h" | |||
#include "version.h" | |||
#include "avcodec.h" | |||
/** | |||