aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/jni/ffmpeg/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/jni/ffmpeg/include')
-rw-r--r--src/main/jni/ffmpeg/include/libavcodec/avcodec.h5418
-rw-r--r--src/main/jni/ffmpeg/include/libavcodec/avdct.h84
-rw-r--r--src/main/jni/ffmpeg/include/libavcodec/avfft.h118
-rw-r--r--src/main/jni/ffmpeg/include/libavcodec/d3d11va.h112
-rw-r--r--src/main/jni/ffmpeg/include/libavcodec/dirac.h113
-rw-r--r--src/main/jni/ffmpeg/include/libavcodec/dv_profile.h83
-rw-r--r--src/main/jni/ffmpeg/include/libavcodec/dxva2.h93
-rw-r--r--src/main/jni/ffmpeg/include/libavcodec/qsv.h107
-rw-r--r--src/main/jni/ffmpeg/include/libavcodec/vaapi.h189
-rw-r--r--src/main/jni/ffmpeg/include/libavcodec/vda.h230
-rw-r--r--src/main/jni/ffmpeg/include/libavcodec/vdpau.h253
-rw-r--r--src/main/jni/ffmpeg/include/libavcodec/version.h210
-rw-r--r--src/main/jni/ffmpeg/include/libavcodec/videotoolbox.h126
-rw-r--r--src/main/jni/ffmpeg/include/libavcodec/vorbis_parser.h78
-rw-r--r--src/main/jni/ffmpeg/include/libavcodec/xvmc.h170
-rw-r--r--src/main/jni/ffmpeg/include/libavformat/avformat.h2806
-rw-r--r--src/main/jni/ffmpeg/include/libavformat/avio.h727
-rw-r--r--src/main/jni/ffmpeg/include/libavformat/version.h78
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/adler32.h55
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/aes.h65
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/aes_ctr.h83
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/attributes.h168
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/audio_fifo.h170
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/avassert.h66
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/avconfig.h7
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/avstring.h397
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/avutil.h343
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/base64.h67
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/blowfish.h82
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/bprint.h219
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/bswap.h109
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/buffer.h274
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/camellia.h70
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/cast5.h80
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/channel_layout.h223
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/common.h519
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/cpu.h116
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/crc.h91
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/des.h77
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/dict.h198
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/display.h86
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/downmix_info.h115
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/error.h126
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/eval.h113
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/ffversion.h5
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/fifo.h179
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/file.h68
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/frame.h713
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/hash.h112
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/hmac.h100
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/imgutils.h213
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/intfloat.h77
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/intreadwrite.h629
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/lfg.h62
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/log.h359
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/macros.h48
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/mathematics.h165
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/md5.h81
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/mem.h406
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/motion_vector.h57
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/murmur3.h32
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/opt.h865
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/parseutils.h193
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/pixdesc.h394
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/pixelutils.h52
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/pixfmt.h469
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/random_seed.h43
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/rational.h173
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/rc4.h66
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/replaygain.h51
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/ripemd.h75
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/samplefmt.h271
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/sha.h74
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/sha512.h75
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/stereo3d.h152
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/tea.h71
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/threadmessage.h107
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/time.h56
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/timecode.h140
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/timestamp.h78
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/tree.h138
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/twofish.h70
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/version.h129
-rw-r--r--src/main/jni/ffmpeg/include/libavutil/xtea.h94
84 files changed, 0 insertions, 22056 deletions
diff --git a/src/main/jni/ffmpeg/include/libavcodec/avcodec.h b/src/main/jni/ffmpeg/include/libavcodec/avcodec.h
deleted file mode 100644
index f365775f0..000000000
--- a/src/main/jni/ffmpeg/include/libavcodec/avcodec.h
+++ /dev/null
@@ -1,5418 +0,0 @@
-/*
- * copyright (c) 2001 Fabrice Bellard
- *
- * 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_AVCODEC_H
-#define AVCODEC_AVCODEC_H
-
-/**
- * @file
- * @ingroup libavc
- * Libavcodec external API header
- */
-
-#include <errno.h>
-#include "libavutil/samplefmt.h"
-#include "libavutil/attributes.h"
-#include "libavutil/avutil.h"
-#include "libavutil/buffer.h"
-#include "libavutil/cpu.h"
-#include "libavutil/channel_layout.h"
-#include "libavutil/dict.h"
-#include "libavutil/frame.h"
-#include "libavutil/log.h"
-#include "libavutil/pixfmt.h"
-#include "libavutil/rational.h"
-
-#include "version.h"
-
-/**
- * @defgroup libavc Encoding/Decoding Library
- * @{
- *
- * @defgroup lavc_decoding Decoding
- * @{
- * @}
- *
- * @defgroup lavc_encoding Encoding
- * @{
- * @}
- *
- * @defgroup lavc_codec Codecs
- * @{
- * @defgroup lavc_codec_native Native Codecs
- * @{
- * @}
- * @defgroup lavc_codec_wrappers External library wrappers
- * @{
- * @}
- * @defgroup lavc_codec_hwaccel Hardware Accelerators bridge
- * @{
- * @}
- * @}
- * @defgroup lavc_internal Internal
- * @{
- * @}
- * @}
- *
- */
-
-/**
- * @defgroup lavc_core Core functions/structures.
- * @ingroup libavc
- *
- * Basic definitions, functions for querying libavcodec capabilities,
- * allocating core structures, etc.
- * @{
- */
-
-
-/**
- * Identify the syntax and semantics of the bitstream.
- * The principle is roughly:
- * Two decoders with the same ID can decode the same streams.
- * Two encoders with the same ID can encode compatible streams.
- * There may be slight deviations from the principle due to implementation
- * details.
- *
- * If you add a codec ID to this list, add it so that
- * 1. no value of a existing codec ID changes (that would break ABI),
- * 2. it is as close as possible to similar codecs
- *
- * After adding new codec IDs, do not forget to add an entry to the codec
- * descriptor list and bump libavcodec minor version.
- */
-enum AVCodecID {
- AV_CODEC_ID_NONE,
-
- /* video codecs */
- AV_CODEC_ID_MPEG1VIDEO,
- AV_CODEC_ID_MPEG2VIDEO, ///< preferred ID for MPEG-1/2 video decoding
-#if FF_API_XVMC
- AV_CODEC_ID_MPEG2VIDEO_XVMC,
-#endif /* FF_API_XVMC */
- AV_CODEC_ID_H261,
- AV_CODEC_ID_H263,
- AV_CODEC_ID_RV10,
- AV_CODEC_ID_RV20,
- AV_CODEC_ID_MJPEG,
- AV_CODEC_ID_MJPEGB,
- AV_CODEC_ID_LJPEG,
- AV_CODEC_ID_SP5X,
- AV_CODEC_ID_JPEGLS,
- AV_CODEC_ID_MPEG4,
- AV_CODEC_ID_RAWVIDEO,
- AV_CODEC_ID_MSMPEG4V1,
- AV_CODEC_ID_MSMPEG4V2,
- AV_CODEC_ID_MSMPEG4V3,
- AV_CODEC_ID_WMV1,
- AV_CODEC_ID_WMV2,
- AV_CODEC_ID_H263P,
- AV_CODEC_ID_H263I,
- AV_CODEC_ID_FLV1,
- AV_CODEC_ID_SVQ1,
- AV_CODEC_ID_SVQ3,
- AV_CODEC_ID_DVVIDEO,
- AV_CODEC_ID_HUFFYUV,
- AV_CODEC_ID_CYUV,
- AV_CODEC_ID_H264,
- AV_CODEC_ID_INDEO3,
- AV_CODEC_ID_VP3,
- AV_CODEC_ID_THEORA,
- AV_CODEC_ID_ASV1,
- AV_CODEC_ID_ASV2,
- AV_CODEC_ID_FFV1,
- AV_CODEC_ID_4XM,
- AV_CODEC_ID_VCR1,
- AV_CODEC_ID_CLJR,
- AV_CODEC_ID_MDEC,
- AV_CODEC_ID_ROQ,
- AV_CODEC_ID_INTERPLAY_VIDEO,
- AV_CODEC_ID_XAN_WC3,
- AV_CODEC_ID_XAN_WC4,
- AV_CODEC_ID_RPZA,
- AV_CODEC_ID_CINEPAK,
- AV_CODEC_ID_WS_VQA,
- AV_CODEC_ID_MSRLE,
- AV_CODEC_ID_MSVIDEO1,
- AV_CODEC_ID_IDCIN,
- AV_CODEC_ID_8BPS,
- AV_CODEC_ID_SMC,
- AV_CODEC_ID_FLIC,
- AV_CODEC_ID_TRUEMOTION1,
- AV_CODEC_ID_VMDVIDEO,
- AV_CODEC_ID_MSZH,
- AV_CODEC_ID_ZLIB,
- AV_CODEC_ID_QTRLE,
- AV_CODEC_ID_TSCC,
- AV_CODEC_ID_ULTI,
- AV_CODEC_ID_QDRAW,
- AV_CODEC_ID_VIXL,
- AV_CODEC_ID_QPEG,
- AV_CODEC_ID_PNG,
- AV_CODEC_ID_PPM,
- AV_CODEC_ID_PBM,
- AV_CODEC_ID_PGM,
- AV_CODEC_ID_PGMYUV,
- AV_CODEC_ID_PAM,
- AV_CODEC_ID_FFVHUFF,
- AV_CODEC_ID_RV30,
- AV_CODEC_ID_RV40,
- AV_CODEC_ID_VC1,
- AV_CODEC_ID_WMV3,
- AV_CODEC_ID_LOCO,
- AV_CODEC_ID_WNV1,
- AV_CODEC_ID_AASC,
- AV_CODEC_ID_INDEO2,
- AV_CODEC_ID_FRAPS,
- AV_CODEC_ID_TRUEMOTION2,
- AV_CODEC_ID_BMP,
- AV_CODEC_ID_CSCD,
- AV_CODEC_ID_MMVIDEO,
- AV_CODEC_ID_ZMBV,
- AV_CODEC_ID_AVS,
- AV_CODEC_ID_SMACKVIDEO,
- AV_CODEC_ID_NUV,
- AV_CODEC_ID_KMVC,
- AV_CODEC_ID_FLASHSV,
- AV_CODEC_ID_CAVS,
- AV_CODEC_ID_JPEG2000,
- AV_CODEC_ID_VMNC,
- AV_CODEC_ID_VP5,
- AV_CODEC_ID_VP6,
- AV_CODEC_ID_VP6F,
- AV_CODEC_ID_TARGA,
- AV_CODEC_ID_DSICINVIDEO,
- AV_CODEC_ID_TIERTEXSEQVIDEO,
- AV_CODEC_ID_TIFF,
- AV_CODEC_ID_GIF,
- AV_CODEC_ID_DXA,
- AV_CODEC_ID_DNXHD,
- AV_CODEC_ID_THP,
- AV_CODEC_ID_SGI,
- AV_CODEC_ID_C93,
- AV_CODEC_ID_BETHSOFTVID,
- AV_CODEC_ID_PTX,
- AV_CODEC_ID_TXD,
- AV_CODEC_ID_VP6A,
- AV_CODEC_ID_AMV,
- AV_CODEC_ID_VB,
- AV_CODEC_ID_PCX,
- AV_CODEC_ID_SUNRAST,
- AV_CODEC_ID_INDEO4,
- AV_CODEC_ID_INDEO5,
- AV_CODEC_ID_MIMIC,
- AV_CODEC_ID_RL2,
- AV_CODEC_ID_ESCAPE124,
- AV_CODEC_ID_DIRAC,
- AV_CODEC_ID_BFI,
- AV_CODEC_ID_CMV,
- AV_CODEC_ID_MOTIONPIXELS,
- AV_CODEC_ID_TGV,
- AV_CODEC_ID_TGQ,
- AV_CODEC_ID_TQI,
- AV_CODEC_ID_AURA,
- AV_CODEC_ID_AURA2,
- AV_CODEC_ID_V210X,
- AV_CODEC_ID_TMV,
- AV_CODEC_ID_V210,
- AV_CODEC_ID_DPX,
- AV_CODEC_ID_MAD,
- AV_CODEC_ID_FRWU,
- AV_CODEC_ID_FLASHSV2,
- AV_CODEC_ID_CDGRAPHICS,
- AV_CODEC_ID_R210,
- AV_CODEC_ID_ANM,
- AV_CODEC_ID_BINKVIDEO,
- AV_CODEC_ID_IFF_ILBM,
-#define AV_CODEC_ID_IFF_BYTERUN1 AV_CODEC_ID_IFF_ILBM
- AV_CODEC_ID_KGV1,
- AV_CODEC_ID_YOP,
- AV_CODEC_ID_VP8,
- AV_CODEC_ID_PICTOR,
- AV_CODEC_ID_ANSI,
- AV_CODEC_ID_A64_MULTI,
- AV_CODEC_ID_A64_MULTI5,
- AV_CODEC_ID_R10K,
- AV_CODEC_ID_MXPEG,
- AV_CODEC_ID_LAGARITH,
- AV_CODEC_ID_PRORES,
- AV_CODEC_ID_JV,
- AV_CODEC_ID_DFA,
- AV_CODEC_ID_WMV3IMAGE,
- AV_CODEC_ID_VC1IMAGE,
- AV_CODEC_ID_UTVIDEO,
- AV_CODEC_ID_BMV_VIDEO,
- AV_CODEC_ID_VBLE,
- AV_CODEC_ID_DXTORY,
- AV_CODEC_ID_V410,
- AV_CODEC_ID_XWD,
- AV_CODEC_ID_CDXL,
- AV_CODEC_ID_XBM,
- AV_CODEC_ID_ZEROCODEC,
- AV_CODEC_ID_MSS1,
- AV_CODEC_ID_MSA1,
- AV_CODEC_ID_TSCC2,
- AV_CODEC_ID_MTS2,
- AV_CODEC_ID_CLLC,
- AV_CODEC_ID_MSS2,
- AV_CODEC_ID_VP9,
- AV_CODEC_ID_AIC,
- AV_CODEC_ID_ESCAPE130,
- AV_CODEC_ID_G2M,
- AV_CODEC_ID_WEBP,
- AV_CODEC_ID_HNM4_VIDEO,
- AV_CODEC_ID_HEVC,
-#define AV_CODEC_ID_H265 AV_CODEC_ID_HEVC
- AV_CODEC_ID_FIC,
- AV_CODEC_ID_ALIAS_PIX,
- AV_CODEC_ID_BRENDER_PIX,
- AV_CODEC_ID_PAF_VIDEO,
- AV_CODEC_ID_EXR,
- AV_CODEC_ID_VP7,
- AV_CODEC_ID_SANM,
- AV_CODEC_ID_SGIRLE,
- AV_CODEC_ID_MVC1,
- AV_CODEC_ID_MVC2,
- AV_CODEC_ID_HQX,
- AV_CODEC_ID_TDSC,
- AV_CODEC_ID_HQ_HQA,
- AV_CODEC_ID_HAP,
- AV_CODEC_ID_DDS,
- AV_CODEC_ID_DXV,
- AV_CODEC_ID_SCREENPRESSO,
- AV_CODEC_ID_RSCC,
-
- AV_CODEC_ID_Y41P = 0x8000,
- AV_CODEC_ID_AVRP,
- AV_CODEC_ID_012V,
- AV_CODEC_ID_AVUI,
- AV_CODEC_ID_AYUV,
- AV_CODEC_ID_TARGA_Y216,
- AV_CODEC_ID_V308,
- AV_CODEC_ID_V408,
- AV_CODEC_ID_YUV4,
- AV_CODEC_ID_AVRN,
- AV_CODEC_ID_CPIA,
- AV_CODEC_ID_XFACE,
- AV_CODEC_ID_SNOW,
- AV_CODEC_ID_SMVJPEG,
- AV_CODEC_ID_APNG,
- AV_CODEC_ID_DAALA,
-
- /* various PCM "codecs" */
- AV_CODEC_ID_FIRST_AUDIO = 0x10000, ///< A dummy id pointing at the start of audio codecs
- AV_CODEC_ID_PCM_S16LE = 0x10000,
- AV_CODEC_ID_PCM_S16BE,
- AV_CODEC_ID_PCM_U16LE,
- AV_CODEC_ID_PCM_U16BE,
- AV_CODEC_ID_PCM_S8,
- AV_CODEC_ID_PCM_U8,
- AV_CODEC_ID_PCM_MULAW,
- AV_CODEC_ID_PCM_ALAW,
- AV_CODEC_ID_PCM_S32LE,
- AV_CODEC_ID_PCM_S32BE,
- AV_CODEC_ID_PCM_U32LE,
- AV_CODEC_ID_PCM_U32BE,
- AV_CODEC_ID_PCM_S24LE,
- AV_CODEC_ID_PCM_S24BE,
- AV_CODEC_ID_PCM_U24LE,
- AV_CODEC_ID_PCM_U24BE,
- AV_CODEC_ID_PCM_S24DAUD,
- AV_CODEC_ID_PCM_ZORK,
- AV_CODEC_ID_PCM_S16LE_PLANAR,
- AV_CODEC_ID_PCM_DVD,
- AV_CODEC_ID_PCM_F32BE,
- AV_CODEC_ID_PCM_F32LE,
- AV_CODEC_ID_PCM_F64BE,
- AV_CODEC_ID_PCM_F64LE,
- AV_CODEC_ID_PCM_BLURAY,
- AV_CODEC_ID_PCM_LXF,
- AV_CODEC_ID_S302M,
- AV_CODEC_ID_PCM_S8_PLANAR,
- AV_CODEC_ID_PCM_S24LE_PLANAR,
- AV_CODEC_ID_PCM_S32LE_PLANAR,
- AV_CODEC_ID_PCM_S16BE_PLANAR,
- /* new PCM "codecs" should be added right below this line starting with
- * an explicit value of for example 0x10800
- */
-
- /* various ADPCM codecs */
- AV_CODEC_ID_ADPCM_IMA_QT = 0x11000,
- AV_CODEC_ID_ADPCM_IMA_WAV,
- AV_CODEC_ID_ADPCM_IMA_DK3,
- AV_CODEC_ID_ADPCM_IMA_DK4,
- AV_CODEC_ID_ADPCM_IMA_WS,
- AV_CODEC_ID_ADPCM_IMA_SMJPEG,
- AV_CODEC_ID_ADPCM_MS,
- AV_CODEC_ID_ADPCM_4XM,
- AV_CODEC_ID_ADPCM_XA,
- AV_CODEC_ID_ADPCM_ADX,
- AV_CODEC_ID_ADPCM_EA,
- AV_CODEC_ID_ADPCM_G726,
- AV_CODEC_ID_ADPCM_CT,
- AV_CODEC_ID_ADPCM_SWF,
- AV_CODEC_ID_ADPCM_YAMAHA,
- AV_CODEC_ID_ADPCM_SBPRO_4,
- AV_CODEC_ID_ADPCM_SBPRO_3,
- AV_CODEC_ID_ADPCM_SBPRO_2,
- AV_CODEC_ID_ADPCM_THP,
- AV_CODEC_ID_ADPCM_IMA_AMV,
- AV_CODEC_ID_ADPCM_EA_R1,
- AV_CODEC_ID_ADPCM_EA_R3,
- AV_CODEC_ID_ADPCM_EA_R2,
- AV_CODEC_ID_ADPCM_IMA_EA_SEAD,
- AV_CODEC_ID_ADPCM_IMA_EA_EACS,
- AV_CODEC_ID_ADPCM_EA_XAS,
- AV_CODEC_ID_ADPCM_EA_MAXIS_XA,
- AV_CODEC_ID_ADPCM_IMA_ISS,
- AV_CODEC_ID_ADPCM_G722,
- AV_CODEC_ID_ADPCM_IMA_APC,
- AV_CODEC_ID_ADPCM_VIMA,
-#if FF_API_VIMA_DECODER
- AV_CODEC_ID_VIMA = AV_CODEC_ID_ADPCM_VIMA,
-#endif
-
- AV_CODEC_ID_ADPCM_AFC = 0x11800,
- AV_CODEC_ID_ADPCM_IMA_OKI,
- AV_CODEC_ID_ADPCM_DTK,
- AV_CODEC_ID_ADPCM_IMA_RAD,
- AV_CODEC_ID_ADPCM_G726LE,
- AV_CODEC_ID_ADPCM_THP_LE,
- AV_CODEC_ID_ADPCM_PSX,
- AV_CODEC_ID_ADPCM_AICA,
-
- /* AMR */
- AV_CODEC_ID_AMR_NB = 0x12000,
- AV_CODEC_ID_AMR_WB,
-
- /* RealAudio codecs*/
- AV_CODEC_ID_RA_144 = 0x13000,
- AV_CODEC_ID_RA_288,
-
- /* various DPCM codecs */
- AV_CODEC_ID_ROQ_DPCM = 0x14000,
- AV_CODEC_ID_INTERPLAY_DPCM,
- AV_CODEC_ID_XAN_DPCM,
- AV_CODEC_ID_SOL_DPCM,
-
- AV_CODEC_ID_SDX2_DPCM = 0x14800,
-
- /* audio codecs */
- AV_CODEC_ID_MP2 = 0x15000,
- AV_CODEC_ID_MP3, ///< preferred ID for decoding MPEG audio layer 1, 2 or 3
- AV_CODEC_ID_AAC,
- AV_CODEC_ID_AC3,
- AV_CODEC_ID_DTS,
- AV_CODEC_ID_VORBIS,
- AV_CODEC_ID_DVAUDIO,
- AV_CODEC_ID_WMAV1,
- AV_CODEC_ID_WMAV2,
- AV_CODEC_ID_MACE3,
- AV_CODEC_ID_MACE6,
- AV_CODEC_ID_VMDAUDIO,
- AV_CODEC_ID_FLAC,
- AV_CODEC_ID_MP3ADU,
- AV_CODEC_ID_MP3ON4,
- AV_CODEC_ID_SHORTEN,
- AV_CODEC_ID_ALAC,
- AV_CODEC_ID_WESTWOOD_SND1,
- AV_CODEC_ID_GSM, ///< as in Berlin toast format
- AV_CODEC_ID_QDM2,
- AV_CODEC_ID_COOK,
- AV_CODEC_ID_TRUESPEECH,
- AV_CODEC_ID_TTA,
- AV_CODEC_ID_SMACKAUDIO,
- AV_CODEC_ID_QCELP,
- AV_CODEC_ID_WAVPACK,
- AV_CODEC_ID_DSICINAUDIO,
- AV_CODEC_ID_IMC,
- AV_CODEC_ID_MUSEPACK7,
- AV_CODEC_ID_MLP,
- AV_CODEC_ID_GSM_MS, /* as found in WAV */
- AV_CODEC_ID_ATRAC3,
-#if FF_API_VOXWARE
- AV_CODEC_ID_VOXWARE,
-#endif
- AV_CODEC_ID_APE,
- AV_CODEC_ID_NELLYMOSER,
- AV_CODEC_ID_MUSEPACK8,
- AV_CODEC_ID_SPEEX,
- AV_CODEC_ID_WMAVOICE,
- AV_CODEC_ID_WMAPRO,
- AV_CODEC_ID_WMALOSSLESS,
- AV_CODEC_ID_ATRAC3P,
- AV_CODEC_ID_EAC3,
- AV_CODEC_ID_SIPR,
- AV_CODEC_ID_MP1,
- AV_CODEC_ID_TWINVQ,
- AV_CODEC_ID_TRUEHD,
- AV_CODEC_ID_MP4ALS,
- AV_CODEC_ID_ATRAC1,
- AV_CODEC_ID_BINKAUDIO_RDFT,
- AV_CODEC_ID_BINKAUDIO_DCT,
- AV_CODEC_ID_AAC_LATM,
- AV_CODEC_ID_QDMC,
- AV_CODEC_ID_CELT,
- AV_CODEC_ID_G723_1,
- AV_CODEC_ID_G729,
- AV_CODEC_ID_8SVX_EXP,
- AV_CODEC_ID_8SVX_FIB,
- AV_CODEC_ID_BMV_AUDIO,
- AV_CODEC_ID_RALF,
- AV_CODEC_ID_IAC,
- AV_CODEC_ID_ILBC,
- AV_CODEC_ID_OPUS,
- AV_CODEC_ID_COMFORT_NOISE,
- AV_CODEC_ID_TAK,
- AV_CODEC_ID_METASOUND,
- AV_CODEC_ID_PAF_AUDIO,
- AV_CODEC_ID_ON2AVC,
- AV_CODEC_ID_DSS_SP,
-
- AV_CODEC_ID_FFWAVESYNTH = 0x15800,
- AV_CODEC_ID_SONIC,
- AV_CODEC_ID_SONIC_LS,
- AV_CODEC_ID_EVRC,
- AV_CODEC_ID_SMV,
- AV_CODEC_ID_DSD_LSBF,
- AV_CODEC_ID_DSD_MSBF,
- AV_CODEC_ID_DSD_LSBF_PLANAR,
- AV_CODEC_ID_DSD_MSBF_PLANAR,
- AV_CODEC_ID_4GV,
- AV_CODEC_ID_INTERPLAY_ACM,
- AV_CODEC_ID_XMA1,
- AV_CODEC_ID_XMA2,
-
- /* subtitle codecs */
- AV_CODEC_ID_FIRST_SUBTITLE = 0x17000, ///< A dummy ID pointing at the start of subtitle codecs.
- AV_CODEC_ID_DVD_SUBTITLE = 0x17000,
- AV_CODEC_ID_DVB_SUBTITLE,
- AV_CODEC_ID_TEXT, ///< raw UTF-8 text
- AV_CODEC_ID_XSUB,
- AV_CODEC_ID_SSA,
- AV_CODEC_ID_MOV_TEXT,
- AV_CODEC_ID_HDMV_PGS_SUBTITLE,
- AV_CODEC_ID_DVB_TELETEXT,
- AV_CODEC_ID_SRT,
-
- AV_CODEC_ID_MICRODVD = 0x17800,
- AV_CODEC_ID_EIA_608,
- AV_CODEC_ID_JACOSUB,
- AV_CODEC_ID_SAMI,
- AV_CODEC_ID_REALTEXT,
- AV_CODEC_ID_STL,
- AV_CODEC_ID_SUBVIEWER1,
- AV_CODEC_ID_SUBVIEWER,
- AV_CODEC_ID_SUBRIP,
- AV_CODEC_ID_WEBVTT,
- AV_CODEC_ID_MPL2,
- AV_CODEC_ID_VPLAYER,
- AV_CODEC_ID_PJS,
- AV_CODEC_ID_ASS,
- AV_CODEC_ID_HDMV_TEXT_SUBTITLE,
-
- /* other specific kind of codecs (generally used for attachments) */
- AV_CODEC_ID_FIRST_UNKNOWN = 0x18000, ///< A dummy ID pointing at the start of various fake codecs.
- AV_CODEC_ID_TTF = 0x18000,
-
- AV_CODEC_ID_BINTEXT = 0x18800,
- AV_CODEC_ID_XBIN,
- AV_CODEC_ID_IDF,
- AV_CODEC_ID_OTF,
- AV_CODEC_ID_SMPTE_KLV,
- AV_CODEC_ID_DVD_NAV,
- AV_CODEC_ID_TIMED_ID3,
- AV_CODEC_ID_BIN_DATA,
-
-
- AV_CODEC_ID_PROBE = 0x19000, ///< codec_id is not known (like AV_CODEC_ID_NONE) but lavf should attempt to identify it
-
- AV_CODEC_ID_MPEG2TS = 0x20000, /**< _FAKE_ codec to indicate a raw MPEG-2 TS
- * stream (only used by libavformat) */
- AV_CODEC_ID_MPEG4SYSTEMS = 0x20001, /**< _FAKE_ codec to indicate a MPEG-4 Systems
- * stream (only used by libavformat) */
- AV_CODEC_ID_FFMETADATA = 0x21000, ///< Dummy codec for streams containing only metadata information.
- AV_CODEC_ID_WRAPPED_AVFRAME = 0x21001, ///< Passthrough codec, AVFrames wrapped in AVPacket
-};
-
-/**
- * This struct describes the properties of a single codec described by an
- * AVCodecID.
- * @see avcodec_descriptor_get()
- */
-typedef struct AVCodecDescriptor {
- enum AVCodecID id;
- enum AVMediaType type;
- /**
- * Name of the codec described by this descriptor. It is non-empty and
- * unique for each codec descriptor. It should contain alphanumeric
- * characters and '_' only.
- */
- const char *name;
- /**
- * A more descriptive name for this codec. May be NULL.
- */
- const char *long_name;
- /**
- * Codec properties, a combination of AV_CODEC_PROP_* flags.
- */
- int props;
- /**
- * MIME type(s) associated with the codec.
- * May be NULL; if not, a NULL-terminated array of MIME types.
- * The first item is always non-NULL and is the preferred MIME type.
- */
- const char *const *mime_types;
- /**
- * If non-NULL, an array of profiles recognized for this codec.
- * Terminated with FF_PROFILE_UNKNOWN.
- */
- const struct AVProfile *profiles;
-} AVCodecDescriptor;
-
-/**
- * Codec uses only intra compression.
- * Video codecs only.
- */
-#define AV_CODEC_PROP_INTRA_ONLY (1 << 0)
-/**
- * Codec supports lossy compression. Audio and video codecs only.
- * @note a codec may support both lossy and lossless
- * compression modes
- */
-#define AV_CODEC_PROP_LOSSY (1 << 1)
-/**
- * Codec supports lossless compression. Audio and video codecs only.
- */
-#define AV_CODEC_PROP_LOSSLESS (1 << 2)
-/**
- * Codec supports frame reordering. That is, the coded order (the order in which
- * the encoded packets are output by the encoders / stored / input to the
- * decoders) may be different from the presentation order of the corresponding
- * frames.
- *
- * For codecs that do not have this property set, PTS and DTS should always be
- * equal.
- */
-#define AV_CODEC_PROP_REORDER (1 << 3)
-/**
- * Subtitle codec is bitmap based
- * Decoded AVSubtitle data can be read from the AVSubtitleRect->pict field.
- */
-#define AV_CODEC_PROP_BITMAP_SUB (1 << 16)
-/**
- * Subtitle codec is text based.
- * Decoded AVSubtitle data can be read from the AVSubtitleRect->ass field.
- */
-#define AV_CODEC_PROP_TEXT_SUB (1 << 17)
-
-/**
- * @ingroup lavc_decoding
- * Required number of additionally allocated bytes at the end of the input bitstream for decoding.
- * This is mainly needed because some optimized bitstream readers read
- * 32 or 64 bit at once and could read over the end.<br>
- * Note: If the first 23 bits of the additional bytes are not 0, then damaged
- * MPEG bitstreams could cause overread and segfault.
- */
-#define AV_INPUT_BUFFER_PADDING_SIZE 32
-
-/**
- * @ingroup lavc_encoding
- * minimum encoding buffer size
- * Used to avoid some checks during header writing.
- */
-#define AV_INPUT_BUFFER_MIN_SIZE 16384
-
-#if FF_API_WITHOUT_PREFIX
-/**
- * @deprecated use AV_INPUT_BUFFER_PADDING_SIZE instead
- */
-#define FF_INPUT_BUFFER_PADDING_SIZE 32
-
-/**
- * @deprecated use AV_INPUT_BUFFER_MIN_SIZE instead
- */
-#define FF_MIN_BUFFER_SIZE 16384
-#endif /* FF_API_WITHOUT_PREFIX */
-
-/**
- * @ingroup lavc_encoding
- * motion estimation type.
- * @deprecated use codec private option instead
- */
-#if FF_API_MOTION_EST
-enum Motion_Est_ID {
- ME_ZERO = 1, ///< no search, that is use 0,0 vector whenever one is needed
- ME_FULL,
- ME_LOG,
- ME_PHODS,
- ME_EPZS, ///< enhanced predictive zonal search
- ME_X1, ///< reserved for experiments
- ME_HEX, ///< hexagon based search
- ME_UMH, ///< uneven multi-hexagon search
- ME_TESA, ///< transformed exhaustive search algorithm
- ME_ITER=50, ///< iterative search
-};
-#endif
-
-/**
- * @ingroup lavc_decoding
- */
-enum AVDiscard{
- /* We leave some space between them for extensions (drop some
- * keyframes for intra-only or drop just some bidir frames). */
- AVDISCARD_NONE =-16, ///< discard nothing
- AVDISCARD_DEFAULT = 0, ///< discard useless packets like 0 size packets in avi
- AVDISCARD_NONREF = 8, ///< discard all non reference
- AVDISCARD_BIDIR = 16, ///< discard all bidirectional frames
- AVDISCARD_NONINTRA= 24, ///< discard all non intra frames
- AVDISCARD_NONKEY = 32, ///< discard all frames except keyframes
- AVDISCARD_ALL = 48, ///< discard all
-};
-
-enum AVAudioServiceType {
- AV_AUDIO_SERVICE_TYPE_MAIN = 0,
- AV_AUDIO_SERVICE_TYPE_EFFECTS = 1,
- AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED = 2,
- AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED = 3,
- AV_AUDIO_SERVICE_TYPE_DIALOGUE = 4,
- AV_AUDIO_SERVICE_TYPE_COMMENTARY = 5,
- AV_AUDIO_SERVICE_TYPE_EMERGENCY = 6,
- AV_AUDIO_SERVICE_TYPE_VOICE_OVER = 7,
- AV_AUDIO_SERVICE_TYPE_KARAOKE = 8,
- AV_AUDIO_SERVICE_TYPE_NB , ///< Not part of ABI
-};
-
-/**
- * @ingroup lavc_encoding
- */
-typedef struct RcOverride{
- int start_frame;
- int end_frame;
- int qscale; // If this is 0 then quality_factor will be used instead.
- float quality_factor;
-} RcOverride;
-
-#if FF_API_MAX_BFRAMES
-/**
- * @deprecated there is no libavcodec-wide limit on the number of B-frames
- */
-#define FF_MAX_B_FRAMES 16
-#endif
-
-/* encoding support
- These flags can be passed in AVCodecContext.flags before initialization.
- Note: Not everything is supported yet.
-*/
-
-/**
- * Allow decoders to produce frames with data planes that are not aligned
- * to CPU requirements (e.g. due to cropping).
- */
-#define AV_CODEC_FLAG_UNALIGNED (1 << 0)
-/**
- * Use fixed qscale.
- */
-#define AV_CODEC_FLAG_QSCALE (1 << 1)
-/**
- * 4 MV per MB allowed / advanced prediction for H.263.
- */
-#define AV_CODEC_FLAG_4MV (1 << 2)
-/**
- * Output even those frames that might be corrupted.
- */
-#define AV_CODEC_FLAG_OUTPUT_CORRUPT (1 << 3)
-/**
- * Use qpel MC.
- */
-#define AV_CODEC_FLAG_QPEL (1 << 4)
-/**
- * Use internal 2pass ratecontrol in first pass mode.
- */
-#define AV_CODEC_FLAG_PASS1 (1 << 9)
-/**
- * Use internal 2pass ratecontrol in second pass mode.
- */
-#define AV_CODEC_FLAG_PASS2 (1 << 10)
-/**
- * loop filter.
- */
-#define AV_CODEC_FLAG_LOOP_FILTER (1 << 11)
-/**
- * Only decode/encode grayscale.
- */
-#define AV_CODEC_FLAG_GRAY (1 << 13)
-/**
- * error[?] variables will be set during encoding.
- */
-#define AV_CODEC_FLAG_PSNR (1 << 15)
-/**
- * Input bitstream might be truncated at a random location
- * instead of only at frame boundaries.
- */
-#define AV_CODEC_FLAG_TRUNCATED (1 << 16)
-/**
- * Use interlaced DCT.
- */
-#define AV_CODEC_FLAG_INTERLACED_DCT (1 << 18)
-/**
- * Force low delay.
- */
-#define AV_CODEC_FLAG_LOW_DELAY (1 << 19)
-/**
- * Place global headers in extradata instead of every keyframe.
- */
-#define AV_CODEC_FLAG_GLOBAL_HEADER (1 << 22)
-/**
- * Use only bitexact stuff (except (I)DCT).
- */
-#define AV_CODEC_FLAG_BITEXACT (1 << 23)
-/* Fx : Flag for h263+ extra options */
-/**
- * H.263 advanced intra coding / MPEG-4 AC prediction
- */
-#define AV_CODEC_FLAG_AC_PRED (1 << 24)
-/**
- * interlaced motion estimation
- */
-#define AV_CODEC_FLAG_INTERLACED_ME (1 << 29)
-#define AV_CODEC_FLAG_CLOSED_GOP (1U << 31)
-
-/**
- * Allow non spec compliant speedup tricks.
- */
-#define AV_CODEC_FLAG2_FAST (1 << 0)
-/**
- * Skip bitstream encoding.
- */
-#define AV_CODEC_FLAG2_NO_OUTPUT (1 << 2)
-/**
- * Place global headers at every keyframe instead of in extradata.
- */
-#define AV_CODEC_FLAG2_LOCAL_HEADER (1 << 3)
-
-/**
- * timecode is in drop frame format. DEPRECATED!!!!
- */
-#define AV_CODEC_FLAG2_DROP_FRAME_TIMECODE (1 << 13)
-
-/**
- * Input bitstream might be truncated at a packet boundaries
- * instead of only at frame boundaries.
- */
-#define AV_CODEC_FLAG2_CHUNKS (1 << 15)
-/**
- * Discard cropping information from SPS.
- */
-#define AV_CODEC_FLAG2_IGNORE_CROP (1 << 16)
-
-/**
- * Show all frames before the first keyframe
- */
-#define AV_CODEC_FLAG2_SHOW_ALL (1 << 22)
-/**
- * Export motion vectors through frame side data
- */
-#define AV_CODEC_FLAG2_EXPORT_MVS (1 << 28)
-/**
- * Do not skip samples and export skip information as frame side data
- */
-#define AV_CODEC_FLAG2_SKIP_MANUAL (1 << 29)
-
-/* Unsupported options :
- * Syntax Arithmetic coding (SAC)
- * Reference Picture Selection
- * Independent Segment Decoding */
-/* /Fx */
-/* codec capabilities */
-
-/**
- * Decoder can use draw_horiz_band callback.
- */
-#define AV_CODEC_CAP_DRAW_HORIZ_BAND (1 << 0)
-/**
- * Codec uses get_buffer() for allocating buffers and supports custom allocators.
- * If not set, it might not use get_buffer() at all or use operations that
- * assume the buffer was allocated by avcodec_default_get_buffer.
- */
-#define AV_CODEC_CAP_DR1 (1 << 1)
-#define AV_CODEC_CAP_TRUNCATED (1 << 3)
-/**
- * Encoder or decoder requires flushing with NULL input at the end in order to
- * give the complete and correct output.
- *
- * NOTE: If this flag is not set, the codec is guaranteed to never be fed with
- * with NULL data. The user can still send NULL data to the public encode
- * or decode function, but libavcodec will not pass it along to the codec
- * unless this flag is set.
- *
- * Decoders:
- * The decoder has a non-zero delay and needs to be fed with avpkt->data=NULL,
- * avpkt->size=0 at the end to get the delayed data until the decoder no longer
- * returns frames.
- *
- * Encoders:
- * The encoder needs to be fed with NULL data at the end of encoding until the
- * encoder no longer returns data.
- *
- * NOTE: For encoders implementing the AVCodec.encode2() function, setting this
- * flag also means that the encoder must set the pts and duration for
- * each output packet. If this flag is not set, the pts and duration will
- * be determined by libavcodec from the input frame.
- */
-#define AV_CODEC_CAP_DELAY (1 << 5)
-/**
- * Codec can be fed a final frame with a smaller size.
- * This can be used to prevent truncation of the last audio samples.
- */
-#define AV_CODEC_CAP_SMALL_LAST_FRAME (1 << 6)
-
-#if FF_API_CAP_VDPAU
-/**
- * Codec can export data for HW decoding (VDPAU).
- */
-#define AV_CODEC_CAP_HWACCEL_VDPAU (1 << 7)
-#endif
-
-/**
- * Codec can output multiple frames per AVPacket
- * Normally demuxers return one frame at a time, demuxers which do not do
- * are connected to a parser to split what they return into proper frames.
- * This flag is reserved to the very rare category of codecs which have a
- * bitstream that cannot be split into frames without timeconsuming
- * operations like full decoding. Demuxers carring such bitstreams thus
- * may return multiple frames in a packet. This has many disadvantages like
- * prohibiting stream copy in many cases thus it should only be considered
- * as a last resort.
- */
-#define AV_CODEC_CAP_SUBFRAMES (1 << 8)
-/**
- * Codec is experimental and is thus avoided in favor of non experimental
- * encoders
- */
-#define AV_CODEC_CAP_EXPERIMENTAL (1 << 9)
-/**
- * Codec should fill in channel configuration and samplerate instead of container
- */
-#define AV_CODEC_CAP_CHANNEL_CONF (1 << 10)
-/**
- * Codec supports frame-level multithreading.
- */
-#define AV_CODEC_CAP_FRAME_THREADS (1 << 12)
-/**
- * Codec supports slice-based (or partition-based) multithreading.
- */
-#define AV_CODEC_CAP_SLICE_THREADS (1 << 13)
-/**
- * Codec supports changed parameters at any point.
- */
-#define AV_CODEC_CAP_PARAM_CHANGE (1 << 14)
-/**
- * Codec supports avctx->thread_count == 0 (auto).
- */
-#define AV_CODEC_CAP_AUTO_THREADS (1 << 15)
-/**
- * Audio encoder supports receiving a different number of samples in each call.
- */
-#define AV_CODEC_CAP_VARIABLE_FRAME_SIZE (1 << 16)
-/**
- * Codec is intra only.
- */
-#define AV_CODEC_CAP_INTRA_ONLY 0x40000000
-/**
- * Codec is lossless.
- */
-#define AV_CODEC_CAP_LOSSLESS 0x80000000
-
-
-#if FF_API_WITHOUT_PREFIX
-/**
- * Allow decoders to produce frames with data planes that are not aligned
- * to CPU requirements (e.g. due to cropping).
- */
-#define CODEC_FLAG_UNALIGNED AV_CODEC_FLAG_UNALIGNED
-#define CODEC_FLAG_QSCALE AV_CODEC_FLAG_QSCALE
-#define CODEC_FLAG_4MV AV_CODEC_FLAG_4MV
-#define CODEC_FLAG_OUTPUT_CORRUPT AV_CODEC_FLAG_OUTPUT_CORRUPT
-#define CODEC_FLAG_QPEL AV_CODEC_FLAG_QPEL
-#if FF_API_GMC
-/**
- * @deprecated use the "gmc" private option of the libxvid encoder
- */
-#define CODEC_FLAG_GMC 0x0020 ///< Use GMC.
-#endif
-#if FF_API_MV0
-/**
- * @deprecated use the flag "mv0" in the "mpv_flags" private option of the
- * mpegvideo encoders
- */
-#define CODEC_FLAG_MV0 0x0040
-#endif
-#if FF_API_INPUT_PRESERVED
-/**
- * @deprecated passing reference-counted frames to the encoders replaces this
- * flag
- */
-#define CODEC_FLAG_INPUT_PRESERVED 0x0100
-#endif
-#define CODEC_FLAG_PASS1 AV_CODEC_FLAG_PASS1
-#define CODEC_FLAG_PASS2 AV_CODEC_FLAG_PASS2
-#define CODEC_FLAG_GRAY AV_CODEC_FLAG_GRAY
-#if FF_API_EMU_EDGE
-/**
- * @deprecated edges are not used/required anymore. I.e. this flag is now always
- * set.
- */
-#define CODEC_FLAG_EMU_EDGE 0x4000
-#endif
-#define CODEC_FLAG_PSNR AV_CODEC_FLAG_PSNR
-#define CODEC_FLAG_TRUNCATED AV_CODEC_FLAG_TRUNCATED
-
-#if FF_API_NORMALIZE_AQP
-/**
- * @deprecated use the flag "naq" in the "mpv_flags" private option of the
- * mpegvideo encoders
- */
-#define CODEC_FLAG_NORMALIZE_AQP 0x00020000
-#endif
-#define CODEC_FLAG_INTERLACED_DCT AV_CODEC_FLAG_INTERLACED_DCT
-#define CODEC_FLAG_LOW_DELAY AV_CODEC_FLAG_LOW_DELAY
-#define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER
-#define CODEC_FLAG_BITEXACT AV_CODEC_FLAG_BITEXACT
-#define CODEC_FLAG_AC_PRED AV_CODEC_FLAG_AC_PRED
-#define CODEC_FLAG_LOOP_FILTER AV_CODEC_FLAG_LOOP_FILTER
-#define CODEC_FLAG_INTERLACED_ME AV_CODEC_FLAG_INTERLACED_ME
-#define CODEC_FLAG_CLOSED_GOP AV_CODEC_FLAG_CLOSED_GOP
-#define CODEC_FLAG2_FAST AV_CODEC_FLAG2_FAST
-#define CODEC_FLAG2_NO_OUTPUT AV_CODEC_FLAG2_NO_OUTPUT
-#define CODEC_FLAG2_LOCAL_HEADER AV_CODEC_FLAG2_LOCAL_HEADER
-#define CODEC_FLAG2_DROP_FRAME_TIMECODE AV_CODEC_FLAG2_DROP_FRAME_TIMECODE
-#define CODEC_FLAG2_IGNORE_CROP AV_CODEC_FLAG2_IGNORE_CROP
-
-#define CODEC_FLAG2_CHUNKS AV_CODEC_FLAG2_CHUNKS
-#define CODEC_FLAG2_SHOW_ALL AV_CODEC_FLAG2_SHOW_ALL
-#define CODEC_FLAG2_EXPORT_MVS AV_CODEC_FLAG2_EXPORT_MVS
-#define CODEC_FLAG2_SKIP_MANUAL AV_CODEC_FLAG2_SKIP_MANUAL
-
-/* Unsupported options :
- * Syntax Arithmetic coding (SAC)
- * Reference Picture Selection
- * Independent Segment Decoding */
-/* /Fx */
-/* codec capabilities */
-
-#define CODEC_CAP_DRAW_HORIZ_BAND AV_CODEC_CAP_DRAW_HORIZ_BAND ///< Decoder can use draw_horiz_band callback.
-/**
- * Codec uses get_buffer() for allocating buffers and supports custom allocators.
- * If not set, it might not use get_buffer() at all or use operations that
- * assume the buffer was allocated by avcodec_default_get_buffer.
- */
-#define CODEC_CAP_DR1 AV_CODEC_CAP_DR1
-#define CODEC_CAP_TRUNCATED AV_CODEC_CAP_TRUNCATED
-#if FF_API_XVMC
-/* Codec can export data for HW decoding. This flag indicates that
- * the codec would call get_format() with list that might contain HW accelerated
- * pixel formats (XvMC, VDPAU, VAAPI, etc). The application can pick any of them
- * including raw image format.
- * The application can use the passed context to determine bitstream version,
- * chroma format, resolution etc.
- */
-#define CODEC_CAP_HWACCEL 0x0010
-#endif /* FF_API_XVMC */
-/**
- * Encoder or decoder requires flushing with NULL input at the end in order to
- * give the complete and correct output.
- *
- * NOTE: If this flag is not set, the codec is guaranteed to never be fed with
- * with NULL data. The user can still send NULL data to the public encode
- * or decode function, but libavcodec will not pass it along to the codec
- * unless this flag is set.
- *
- * Decoders:
- * The decoder has a non-zero delay and needs to be fed with avpkt->data=NULL,
- * avpkt->size=0 at the end to get the delayed data until the decoder no longer
- * returns frames.
- *
- * Encoders:
- * The encoder needs to be fed with NULL data at the end of encoding until the
- * encoder no longer returns data.
- *
- * NOTE: For encoders implementing the AVCodec.encode2() function, setting this
- * flag also means that the encoder must set the pts and duration for
- * each output packet. If this flag is not set, the pts and duration will
- * be determined by libavcodec from the input frame.
- */
-#define CODEC_CAP_DELAY AV_CODEC_CAP_DELAY
-/**
- * Codec can be fed a final frame with a smaller size.
- * This can be used to prevent truncation of the last audio samples.
- */
-#define CODEC_CAP_SMALL_LAST_FRAME AV_CODEC_CAP_SMALL_LAST_FRAME
-#if FF_API_CAP_VDPAU
-/**
- * Codec can export data for HW decoding (VDPAU).
- */
-#define CODEC_CAP_HWACCEL_VDPAU AV_CODEC_CAP_HWACCEL_VDPAU
-#endif
-/**
- * Codec can output multiple frames per AVPacket
- * Normally demuxers return one frame at a time, demuxers which do not do
- * are connected to a parser to split what they return into proper frames.
- * This flag is reserved to the very rare category of codecs which have a
- * bitstream that cannot be split into frames without timeconsuming
- * operations like full decoding. Demuxers carring such bitstreams thus
- * may return multiple frames in a packet. This has many disadvantages like
- * prohibiting stream copy in many cases thus it should only be considered
- * as a last resort.
- */
-#define CODEC_CAP_SUBFRAMES AV_CODEC_CAP_SUBFRAMES
-/**
- * Codec is experimental and is thus avoided in favor of non experimental
- * encoders
- */
-#define CODEC_CAP_EXPERIMENTAL AV_CODEC_CAP_EXPERIMENTAL
-/**
- * Codec should fill in channel configuration and samplerate instead of container
- */
-#define CODEC_CAP_CHANNEL_CONF AV_CODEC_CAP_CHANNEL_CONF
-#if FF_API_NEG_LINESIZES
-/**
- * @deprecated no codecs use this capability
- */
-#define CODEC_CAP_NEG_LINESIZES 0x0800
-#endif
-/**
- * Codec supports frame-level multithreading.
- */
-#define CODEC_CAP_FRAME_THREADS AV_CODEC_CAP_FRAME_THREADS
-/**
- * Codec supports slice-based (or partition-based) multithreading.
- */
-#define CODEC_CAP_SLICE_THREADS AV_CODEC_CAP_SLICE_THREADS
-/**
- * Codec supports changed parameters at any point.
- */
-#define CODEC_CAP_PARAM_CHANGE AV_CODEC_CAP_PARAM_CHANGE
-/**
- * Codec supports avctx->thread_count == 0 (auto).
- */
-#define CODEC_CAP_AUTO_THREADS AV_CODEC_CAP_AUTO_THREADS
-/**
- * Audio encoder supports receiving a different number of samples in each call.
- */
-#define CODEC_CAP_VARIABLE_FRAME_SIZE AV_CODEC_CAP_VARIABLE_FRAME_SIZE
-/**
- * Codec is intra only.
- */
-#define CODEC_CAP_INTRA_ONLY AV_CODEC_CAP_INTRA_ONLY
-/**
- * Codec is lossless.
- */
-#define CODEC_CAP_LOSSLESS AV_CODEC_CAP_LOSSLESS
-
-/**
- * HWAccel is experimental and is thus avoided in favor of non experimental
- * codecs
- */
-#define HWACCEL_CODEC_CAP_EXPERIMENTAL 0x0200
-#endif /* FF_API_WITHOUT_PREFIX */
-
-#if FF_API_MB_TYPE
-//The following defines may change, don't expect compatibility if you use them.
-#define MB_TYPE_INTRA4x4 0x0001
-#define MB_TYPE_INTRA16x16 0x0002 //FIXME H.264-specific
-#define MB_TYPE_INTRA_PCM 0x0004 //FIXME H.264-specific
-#define MB_TYPE_16x16 0x0008
-#define MB_TYPE_16x8 0x0010
-#define MB_TYPE_8x16 0x0020
-#define MB_TYPE_8x8 0x0040
-#define MB_TYPE_INTERLACED 0x0080
-#define MB_TYPE_DIRECT2 0x0100 //FIXME
-#define MB_TYPE_ACPRED 0x0200
-#define MB_TYPE_GMC 0x0400
-#define MB_TYPE_SKIP 0x0800
-#define MB_TYPE_P0L0 0x1000
-#define MB_TYPE_P1L0 0x2000
-#define MB_TYPE_P0L1 0x4000
-#define MB_TYPE_P1L1 0x8000
-#define MB_TYPE_L0 (MB_TYPE_P0L0 | MB_TYPE_P1L0)
-#define MB_TYPE_L1 (MB_TYPE_P0L1 | MB_TYPE_P1L1)
-#define MB_TYPE_L0L1 (MB_TYPE_L0 | MB_TYPE_L1)
-#define MB_TYPE_QUANT 0x00010000
-#define MB_TYPE_CBP 0x00020000
-//Note bits 24-31 are reserved for codec specific use (h264 ref0, mpeg1 0mv, ...)
-#endif
-
-/**
- * Pan Scan area.
- * This specifies the area which should be displayed.
- * Note there may be multiple such areas for one frame.
- */
-typedef struct AVPanScan{
- /**
- * id
- * - encoding: Set by user.
- * - decoding: Set by libavcodec.
- */
- int id;
-
- /**
- * width and height in 1/16 pel
- * - encoding: Set by user.
- * - decoding: Set by libavcodec.
- */
- int width;
- int height;
-
- /**
- * position of the top left corner in 1/16 pel for up to 3 fields/frames
- * - encoding: Set by user.
- * - decoding: Set by libavcodec.
- */
- int16_t position[3][2];
-}AVPanScan;
-
-/**
- * This structure describes the bitrate properties of an encoded bitstream. It
- * roughly corresponds to a subset the VBV parameters for MPEG-2 or HRD
- * parameters for H.264/HEVC.
- */
-typedef struct AVCPBProperties {
- /**
- * Maximum bitrate of the stream, in bits per second.
- * Zero if unknown or unspecified.
- */
- int max_bitrate;
- /**
- * Minimum bitrate of the stream, in bits per second.
- * Zero if unknown or unspecified.
- */
- int min_bitrate;
- /**
- * Average bitrate of the stream, in bits per second.
- * Zero if unknown or unspecified.
- */
- int avg_bitrate;
-
- /**
- * The size of the buffer to which the ratecontrol is applied, in bits.
- * Zero if unknown or unspecified.
- */
- int buffer_size;
-
- /**
- * The delay between the time the packet this structure is associated with
- * is received and the time when it should be decoded, in periods of a 27MHz
- * clock.
- *
- * UINT64_MAX when unknown or unspecified.
- */
- uint64_t vbv_delay;
-} AVCPBProperties;
-
-#if FF_API_QSCALE_TYPE
-#define FF_QSCALE_TYPE_MPEG1 0
-#define FF_QSCALE_TYPE_MPEG2 1
-#define FF_QSCALE_TYPE_H264 2
-#define FF_QSCALE_TYPE_VP56 3
-#endif
-
-/**
- * The decoder will keep a reference to the frame and may reuse it later.
- */
-#define AV_GET_BUFFER_FLAG_REF (1 << 0)
-
-/**
- * @defgroup lavc_packet AVPacket
- *
- * Types and functions for working with AVPacket.
- * @{
- */
-enum AVPacketSideDataType {
- AV_PKT_DATA_PALETTE,
- AV_PKT_DATA_NEW_EXTRADATA,
-
- /**
- * An AV_PKT_DATA_PARAM_CHANGE side data packet is laid out as follows:
- * @code
- * u32le param_flags
- * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT)
- * s32le channel_count
- * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT)
- * u64le channel_layout
- * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE)
- * s32le sample_rate
- * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS)
- * s32le width
- * s32le height
- * @endcode
- */
- AV_PKT_DATA_PARAM_CHANGE,
-
- /**
- * An AV_PKT_DATA_H263_MB_INFO side data packet contains a number of
- * structures with info about macroblocks relevant to splitting the
- * packet into smaller packets on macroblock edges (e.g. as for RFC 2190).
- * That is, it does not necessarily contain info about all macroblocks,
- * as long as the distance between macroblocks in the info is smaller
- * than the target payload size.
- * Each MB info structure is 12 bytes, and is laid out as follows:
- * @code
- * u32le bit offset from the start of the packet
- * u8 current quantizer at the start of the macroblock
- * u8 GOB number
- * u16le macroblock address within the GOB
- * u8 horizontal MV predictor
- * u8 vertical MV predictor
- * u8 horizontal MV predictor for block number 3
- * u8 vertical MV predictor for block number 3
- * @endcode
- */
- AV_PKT_DATA_H263_MB_INFO,
-
- /**
- * This side data should be associated with an audio stream and contains
- * ReplayGain information in form of the AVReplayGain struct.
- */
- AV_PKT_DATA_REPLAYGAIN,
-
- /**
- * This side data contains a 3x3 transformation matrix describing an affine
- * transformation that needs to be applied to the decoded video frames for
- * correct presentation.
- *
- * See libavutil/display.h for a detailed description of the data.
- */
- AV_PKT_DATA_DISPLAYMATRIX,
-
- /**
- * This side data should be associated with a video stream and contains
- * Stereoscopic 3D information in form of the AVStereo3D struct.
- */
- AV_PKT_DATA_STEREO3D,
-
- /**
- * This side data should be associated with an audio stream and corresponds
- * to enum AVAudioServiceType.
- */
- AV_PKT_DATA_AUDIO_SERVICE_TYPE,
-
- /**
- * This side data contains quality related information from the encoder.
- * @code
- * u32le quality factor of the compressed frame. Allowed range is between 1 (good) and FF_LAMBDA_MAX (bad).
- * u8 picture type
- * u8 error count
- * u16 reserved
- * u64le[error count] sum of squared differences between encoder in and output
- * @endcode
- */
- AV_PKT_DATA_QUALITY_STATS,
-
- /**
- * This side data contains an integer value representing the stream index
- * of a "fallback" track. A fallback track indicates an alternate
- * track to use when the current track can not be decoded for some reason.
- * e.g. no decoder available for codec.
- */
- AV_PKT_DATA_FALLBACK_TRACK,
-
- /**
- * This side data corresponds to the AVCPBProperties struct.
- */
- AV_PKT_DATA_CPB_PROPERTIES,
-
- /**
- * Recommmends skipping the specified number of samples
- * @code
- * u32le number of samples to skip from start of this packet
- * u32le number of samples to skip from end of this packet
- * u8 reason for start skip
- * u8 reason for end skip (0=padding silence, 1=convergence)
- * @endcode
- */
- AV_PKT_DATA_SKIP_SAMPLES=70,
-
- /**
- * An AV_PKT_DATA_JP_DUALMONO side data packet indicates that
- * the packet may contain "dual mono" audio specific to Japanese DTV
- * and if it is true, recommends only the selected channel to be used.
- * @code
- * u8 selected channels (0=mail/left, 1=sub/right, 2=both)
- * @endcode
- */
- AV_PKT_DATA_JP_DUALMONO,
-
- /**
- * A list of zero terminated key/value strings. There is no end marker for
- * the list, so it is required to rely on the side data size to stop.
- */
- AV_PKT_DATA_STRINGS_METADATA,
-
- /**
- * Subtitle event position
- * @code
- * u32le x1
- * u32le y1
- * u32le x2
- * u32le y2
- * @endcode
- */
- AV_PKT_DATA_SUBTITLE_POSITION,
-
- /**
- * Data found in BlockAdditional element of matroska container. There is
- * no end marker for the data, so it is required to rely on the side data
- * size to recognize the end. 8 byte id (as found in BlockAddId) followed
- * by data.
- */
- AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL,
-
- /**
- * The optional first identifier line of a WebVTT cue.
- */
- AV_PKT_DATA_WEBVTT_IDENTIFIER,
-
- /**
- * The optional settings (rendering instructions) that immediately
- * follow the timestamp specifier of a WebVTT cue.
- */
- AV_PKT_DATA_WEBVTT_SETTINGS,
-
- /**
- * A list of zero terminated key/value strings. There is no end marker for
- * the list, so it is required to rely on the side data size to stop. This
- * side data includes updated metadata which appeared in the stream.
- */
- AV_PKT_DATA_METADATA_UPDATE,
-};
-
-#define AV_PKT_DATA_QUALITY_FACTOR AV_PKT_DATA_QUALITY_STATS //DEPRECATED
-
-typedef struct AVPacketSideData {
- uint8_t *data;
- int size;
- enum AVPacketSideDataType type;
-} AVPacketSideData;
-
-/**
- * This structure stores compressed data. It is typically exported by demuxers
- * and then passed as input to decoders, or received as output from encoders and
- * then passed to muxers.
- *
- * For video, it should typically contain one compressed frame. For audio it may
- * contain several compressed frames. Encoders are allowed to output empty
- * packets, with no compressed data, containing only side data
- * (e.g. to update some stream parameters at the end of encoding).
- *
- * AVPacket is one of the few structs in FFmpeg, whose size is a part of public
- * ABI. Thus it may be allocated on stack and no new fields can be added to it
- * without libavcodec and libavformat major bump.
- *
- * The semantics of data ownership depends on the buf field.
- * If it is set, the packet data is dynamically allocated and is
- * valid indefinitely until a call to av_packet_unref() reduces the
- * reference count to 0.
- *
- * If the buf field is not set av_packet_ref() would make a copy instead
- * of increasing the reference count.
- *
- * The side data is always allocated with av_malloc(), copied by
- * av_packet_ref() and freed by av_packet_unref().
- *
- * @see av_packet_ref
- * @see av_packet_unref
- */
-typedef struct AVPacket {
- /**
- * A reference to the reference-counted buffer where the packet data is
- * stored.
- * May be NULL, then the packet data is not reference-counted.
- */
- AVBufferRef *buf;
- /**
- * Presentation timestamp in AVStream->time_base units; the time at which
- * the decompressed packet will be presented to the user.
- * Can be AV_NOPTS_VALUE if it is not stored in the file.
- * pts MUST be larger or equal to dts as presentation cannot happen before
- * decompression, unless one wants to view hex dumps. Some formats misuse
- * the terms dts and pts/cts to mean something different. Such timestamps
- * must be converted to true pts/dts before they are stored in AVPacket.
- */
- int64_t pts;
- /**
- * Decompression timestamp in AVStream->time_base units; the time at which
- * the packet is decompressed.
- * Can be AV_NOPTS_VALUE if it is not stored in the file.
- */
- int64_t dts;
- uint8_t *data;
- int size;
- int stream_index;
- /**
- * A combination of AV_PKT_FLAG values
- */
- int flags;
- /**
- * Additional packet data that can be provided by the container.
- * Packet can contain several types of side information.
- */
- AVPacketSideData *side_data;
- int side_data_elems;
-
- /**
- * Duration of this packet in AVStream->time_base units, 0 if unknown.
- * Equals next_pts - this_pts in presentation order.
- */
- int64_t duration;
-
- int64_t pos; ///< byte position in stream, -1 if unknown
-
-#if FF_API_CONVERGENCE_DURATION
- /**
- * @deprecated Same as the duration field, but as int64_t. This was required
- * for Matroska subtitles, whose duration values could overflow when the
- * duration field was still an int.
- */
- attribute_deprecated
- int64_t convergence_duration;
-#endif
-} AVPacket;
-#define AV_PKT_FLAG_KEY 0x0001 ///< The packet contains a keyframe
-#define AV_PKT_FLAG_CORRUPT 0x0002 ///< The packet content is corrupted
-
-enum AVSideDataParamChangeFlags {
- AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT = 0x0001,
- AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT = 0x0002,
- AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE = 0x0004,
- AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS = 0x0008,
-};
-/**
- * @}
- */
-
-struct AVCodecInternal;
-
-enum AVFieldOrder {
- AV_FIELD_UNKNOWN,
- AV_FIELD_PROGRESSIVE,
- AV_FIELD_TT, //< Top coded_first, top displayed first
- AV_FIELD_BB, //< Bottom coded first, bottom displayed first
- AV_FIELD_TB, //< Top coded first, bottom displayed first
- AV_FIELD_BT, //< Bottom coded first, top displayed first
-};
-
-/**
- * main external API structure.
- * New fields can be added to the end with minor version bumps.
- * Removal, reordering and changes to existing fields require a major
- * version bump.
- * Please use AVOptions (av_opt* / av_set/get*()) to access these fields from user
- * applications.
- * sizeof(AVCodecContext) must not be used outside libav*.
- */
-typedef struct AVCodecContext {
- /**
- * information on struct for av_log
- * - set by avcodec_alloc_context3
- */
- const AVClass *av_class;
- int log_level_offset;
-
- enum AVMediaType codec_type; /* see AVMEDIA_TYPE_xxx */
- const struct AVCodec *codec;
-#if FF_API_CODEC_NAME
- /**
- * @deprecated this field is not used for anything in libavcodec
- */
- attribute_deprecated
- char codec_name[32];
-#endif
- enum AVCodecID codec_id; /* see AV_CODEC_ID_xxx */
-
- /**
- * fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A').
- * This is used to work around some encoder bugs.
- * A demuxer should set this to what is stored in the field used to identify the codec.
- * If there are multiple such fields in a container then the demuxer should choose the one
- * which maximizes the information about the used codec.
- * If the codec tag field in a container is larger than 32 bits then the demuxer should
- * remap the longer ID to 32 bits with a table or other structure. Alternatively a new
- * extra_codec_tag + size could be added but for this a clear advantage must be demonstrated
- * first.
- * - encoding: Set by user, if not then the default based on codec_id will be used.
- * - decoding: Set by user, will be converted to uppercase by libavcodec during init.
- */
- unsigned int codec_tag;
-
-#if FF_API_STREAM_CODEC_TAG
- /**
- * @deprecated this field is unused
- */
- attribute_deprecated
- unsigned int stream_codec_tag;
-#endif
-
- void *priv_data;
-
- /**
- * Private context used for internal data.
- *
- * Unlike priv_data, this is not codec-specific. It is used in general
- * libavcodec functions.
- */
- struct AVCodecInternal *internal;
-
- /**
- * Private data of the user, can be used to carry app specific stuff.
- * - encoding: Set by user.
- * - decoding: Set by user.
- */
- void *opaque;
-
- /**
- * the average bitrate
- * - encoding: Set by user; unused for constant quantizer encoding.
- * - decoding: Set by user, may be overwritten by libavcodec
- * if this info is available in the stream
- */
- int64_t bit_rate;
-
- /**
- * number of bits the bitstream is allowed to diverge from the reference.
- * the reference can be CBR (for CBR pass1) or VBR (for pass2)
- * - encoding: Set by user; unused for constant quantizer encoding.
- * - decoding: unused
- */
- int bit_rate_tolerance;
-
- /**
- * Global quality for codecs which cannot change it per frame.
- * This should be proportional to MPEG-1/2/4 qscale.
- * - encoding: Set by user.
- * - decoding: unused
- */
- int global_quality;
-
- /**
- * - encoding: Set by user.
- * - decoding: unused
- */
- int compression_level;
-#define FF_COMPRESSION_DEFAULT -1
-
- /**
- * AV_CODEC_FLAG_*.
- * - encoding: Set by user.
- * - decoding: Set by user.
- */
- int flags;
-
- /**
- * AV_CODEC_FLAG2_*
- * - encoding: Set by user.
- * - decoding: Set by user.
- */
- int flags2;
-
- /**
- * some codecs need / can use extradata like Huffman tables.
- * mjpeg: Huffman tables
- * rv10: additional flags
- * mpeg4: global headers (they can be in the bitstream or here)
- * The allocated memory should be AV_INPUT_BUFFER_PADDING_SIZE bytes larger
- * than extradata_size to avoid problems if it is read with the bitstream reader.
- * The bytewise contents of extradata must not depend on the architecture or CPU endianness.
- * - encoding: Set/allocated/freed by libavcodec.
- * - decoding: Set/allocated/freed by user.
- */
- uint8_t *extradata;
- int extradata_size;
-
- /**
- * This is the fundamental unit of time (in seconds) in terms
- * of which frame timestamps are represented. For fixed-fps content,
- * timebase should be 1/framerate and timestamp increments should be
- * identically 1.
- * This often, but not always is the inverse of the frame rate or field rate
- * for video.
- * - encoding: MUST be set by user.
- * - decoding: the use of this field for decoding is deprecated.
- * Use framerate instead.
- */
- AVRational time_base;
-
- /**
- * For some codecs, the time base is closer to the field rate than the frame rate.
- * Most notably, H.264 and MPEG-2 specify time_base as half of frame duration
- * if no telecine is used ...
- *
- * Set to time_base ticks per frame. Default 1, e.g., H.264/MPEG-2 set it to 2.
- */
- int ticks_per_frame;
-
- /**
- * Codec delay.
- *
- * Encoding: Number of frames delay there will be from the encoder input to
- * the decoder output. (we assume the decoder matches the spec)
- * Decoding: Number of frames delay in addition to what a standard decoder
- * as specified in the spec would produce.
- *
- * Video:
- * Number of frames the decoded output will be delayed relative to the
- * encoded input.
- *
- * Audio:
- * For encoding, this field is unused (see initial_padding).
- *
- * For decoding, this is the number of samples the decoder needs to
- * output before the decoder's output is valid. When seeking, you should
- * start decoding this many samples prior to your desired seek point.
- *
- * - encoding: Set by libavcodec.
- * - decoding: Set by libavcodec.
- */
- int delay;
-
-
- /* video only */
- /**
- * picture width / height.
- *
- * @note Those fields may not match the values of the last
- * AVFrame outputted by avcodec_decode_video2 due frame
- * reordering.
- *
- * - encoding: MUST be set by user.
- * - decoding: May be set by the user before opening the decoder if known e.g.
- * from the container. Some decoders will require the dimensions
- * to be set by the caller. During decoding, the decoder may
- * overwrite those values as required while parsing the data.
- */
- int width, height;
-
- /**
- * Bitstream width / height, may be different from width/height e.g. when
- * the decoded frame is cropped before being output or lowres is enabled.
- *
- * @note Those field may not match the value of the last
- * AVFrame outputted by avcodec_decode_video2 due frame
- * reordering.
- *
- * - encoding: unused
- * - decoding: May be set by the user before opening the decoder if known
- * e.g. from the container. During decoding, the decoder may
- * overwrite those values as required while parsing the data.
- */
- int coded_width, coded_height;
-
-#if FF_API_ASPECT_EXTENDED
-#define FF_ASPECT_EXTENDED 15
-#endif
-
- /**
- * the number of pictures in a group of pictures, or 0 for intra_only
- * - encoding: Set by user.
- * - decoding: unused
- */
- int gop_size;
-
- /**
- * Pixel format, see AV_PIX_FMT_xxx.
- * May be set by the demuxer if known from headers.
- * May be overridden by the decoder if it knows better.
- *
- * @note This field may not match the value of the last
- * AVFrame outputted by avcodec_decode_video2 due frame
- * reordering.
- *
- * - encoding: Set by user.
- * - decoding: Set by user if known, overridden by libavcodec while
- * parsing the data.
- */
- enum AVPixelFormat pix_fmt;
-
-#if FF_API_MOTION_EST
- /**
- * This option does nothing
- * @deprecated use codec private options instead
- */
- attribute_deprecated int me_method;
-#endif
-
- /**
- * If non NULL, 'draw_horiz_band' is called by the libavcodec
- * decoder to draw a horizontal band. It improves cache usage. Not
- * all codecs can do that. You must check the codec capabilities
- * beforehand.
- * When multithreading is used, it may be called from multiple threads
- * at the same time; threads might draw different parts of the same AVFrame,
- * or multiple AVFrames, and there is no guarantee that slices will be drawn
- * in order.
- * The function is also used by hardware acceleration APIs.
- * It is called at least once during frame decoding to pass
- * the data needed for hardware render.
- * In that mode instead of pixel data, AVFrame points to
- * a structure specific to the acceleration API. The application
- * reads the structure and can change some fields to indicate progress
- * or mark state.
- * - encoding: unused
- * - decoding: Set by user.
- * @param height the height of the slice
- * @param y the y position of the slice
- * @param type 1->top field, 2->bottom field, 3->frame
- * @param offset offset into the AVFrame.data from which the slice should be read
- */
- void (*draw_horiz_band)(struct AVCodecContext *s,
- const AVFrame *src, int offset[AV_NUM_DATA_POINTERS],
- int y, int type, int height);
-
- /**
- * callback to negotiate the pixelFormat
- * @param fmt is the list of formats which are supported by the codec,
- * it is terminated by -1 as 0 is a valid format, the formats are ordered by quality.
- * The first is always the native one.
- * @note The callback may be called again immediately if initialization for
- * the selected (hardware-accelerated) pixel format failed.
- * @warning Behavior is undefined if the callback returns a value not
- * in the fmt list of formats.
- * @return the chosen format
- * - encoding: unused
- * - decoding: Set by user, if not set the native format will be chosen.
- */
- enum AVPixelFormat (*get_format)(struct AVCodecContext *s, const enum AVPixelFormat * fmt);
-
- /**
- * maximum number of B-frames between non-B-frames
- * Note: The output will be delayed by max_b_frames+1 relative to the input.
- * - encoding: Set by user.
- * - decoding: unused
- */
- int max_b_frames;
-
- /**
- * qscale factor between IP and B-frames
- * If > 0 then the last P-frame quantizer will be used (q= lastp_q*factor+offset).
- * If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset).
- * - encoding: Set by user.
- * - decoding: unused
- */
- float b_quant_factor;
-
-#if FF_API_RC_STRATEGY
- /** @deprecated use codec private option instead */
- attribute_deprecated int rc_strategy;
-#define FF_RC_STRATEGY_XVID 1
-#endif
-
- int b_frame_strategy;
-
- /**
- * qscale offset between IP and B-frames
- * - encoding: Set by user.
- * - decoding: unused
- */
- float b_quant_offset;
-
- /**
- * Size of the frame reordering buffer in the decoder.
- * For MPEG-2 it is 1 IPB or 0 low delay IP.
- * - encoding: Set by libavcodec.
- * - decoding: Set by libavcodec.
- */
- int has_b_frames;
-
- /**
- * 0-> h263 quant 1-> mpeg quant
- * - encoding: Set by user.
- * - decoding: unused
- */
- int mpeg_quant;
-
- /**
- * qscale factor between P and I-frames
- * If > 0 then the last p frame quantizer will be used (q= lastp_q*factor+offset).
- * If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset).
- * - encoding: Set by user.
- * - decoding: unused
- */
- float i_quant_factor;
-
- /**
- * qscale offset between P and I-frames
- * - encoding: Set by user.
- * - decoding: unused
- */
- float i_quant_offset;
-
- /**
- * luminance masking (0-> disabled)
- * - encoding: Set by user.
- * - decoding: unused
- */
- float lumi_masking;
-
- /**
- * temporary complexity masking (0-> disabled)
- * - encoding: Set by user.
- * - decoding: unused
- */
- float temporal_cplx_masking;
-
- /**
- * spatial complexity masking (0-> disabled)
- * - encoding: Set by user.
- * - decoding: unused
- */
- float spatial_cplx_masking;
-
- /**
- * p block masking (0-> disabled)
- * - encoding: Set by user.
- * - decoding: unused
- */
- float p_masking;
-
- /**
- * darkness masking (0-> disabled)
- * - encoding: Set by user.
- * - decoding: unused
- */
- float dark_masking;
-
- /**
- * slice count
- * - encoding: Set by libavcodec.
- * - decoding: Set by user (or 0).
- */
- int slice_count;
- /**
- * prediction method (needed for huffyuv)
- * - encoding: Set by user.
- * - decoding: unused
- */
- int prediction_method;
-#define FF_PRED_LEFT 0
-#define FF_PRED_PLANE 1
-#define FF_PRED_MEDIAN 2
-
- /**
- * slice offsets in the frame in bytes
- * - encoding: Set/allocated by libavcodec.
- * - decoding: Set/allocated by user (or NULL).
- */
- int *slice_offset;
-
- /**
- * sample aspect ratio (0 if unknown)
- * That is the width of a pixel divided by the height of the pixel.
- * Numerator and denominator must be relatively prime and smaller than 256 for some video standards.
- * - encoding: Set by user.
- * - decoding: Set by libavcodec.
- */
- AVRational sample_aspect_ratio;
-
- /**
- * motion estimation comparison function
- * - encoding: Set by user.
- * - decoding: unused
- */
- int me_cmp;
- /**
- * subpixel motion estimation comparison function
- * - encoding: Set by user.
- * - decoding: unused
- */
- int me_sub_cmp;
- /**
- * macroblock comparison function (not supported yet)
- * - encoding: Set by user.
- * - decoding: unused
- */
- int mb_cmp;
- /**
- * interlaced DCT comparison function
- * - encoding: Set by user.
- * - decoding: unused
- */
- int ildct_cmp;
-#define FF_CMP_SAD 0
-#define FF_CMP_SSE 1
-#define FF_CMP_SATD 2
-#define FF_CMP_DCT 3
-#define FF_CMP_PSNR 4
-#define FF_CMP_BIT 5
-#define FF_CMP_RD 6
-#define FF_CMP_ZERO 7
-#define FF_CMP_VSAD 8
-#define FF_CMP_VSSE 9
-#define FF_CMP_NSSE 10
-#define FF_CMP_W53 11
-#define FF_CMP_W97 12
-#define FF_CMP_DCTMAX 13
-#define FF_CMP_DCT264 14
-#define FF_CMP_CHROMA 256
-
- /**
- * ME diamond size & shape
- * - encoding: Set by user.
- * - decoding: unused
- */
- int dia_size;
-
- /**
- * amount of previous MV predictors (2a+1 x 2a+1 square)
- * - encoding: Set by user.
- * - decoding: unused
- */
- int last_predictor_count;
-
- /**
- * prepass for motion estimation
- * - encoding: Set by user.
- * - decoding: unused
- */
- int pre_me;
-
- /**
- * motion estimation prepass comparison function
- * - encoding: Set by user.
- * - decoding: unused
- */
- int me_pre_cmp;
-
- /**
- * ME prepass diamond size & shape
- * - encoding: Set by user.
- * - decoding: unused
- */
- int pre_dia_size;
-
- /**
- * subpel ME quality
- * - encoding: Set by user.
- * - decoding: unused
- */
- int me_subpel_quality;
-
-#if FF_API_AFD
- /**
- * DTG active format information (additional aspect ratio
- * information only used in DVB MPEG-2 transport streams)
- * 0 if not set.
- *
- * - encoding: unused
- * - decoding: Set by decoder.
- * @deprecated Deprecated in favor of AVSideData
- */
- attribute_deprecated int dtg_active_format;
-#define FF_DTG_AFD_SAME 8
-#define FF_DTG_AFD_4_3 9
-#define FF_DTG_AFD_16_9 10
-#define FF_DTG_AFD_14_9 11
-#define FF_DTG_AFD_4_3_SP_14_9 13
-#define FF_DTG_AFD_16_9_SP_14_9 14
-#define FF_DTG_AFD_SP_4_3 15
-#endif /* FF_API_AFD */
-
- /**
- * maximum motion estimation search range in subpel units
- * If 0 then no limit.
- *
- * - encoding: Set by user.
- * - decoding: unused
- */
- int me_range;
-
-#if FF_API_QUANT_BIAS
- /**
- * @deprecated use encoder private option instead
- */
- attribute_deprecated int intra_quant_bias;
-#define FF_DEFAULT_QUANT_BIAS 999999
-
- /**
- * @deprecated use encoder private option instead
- */
- attribute_deprecated int inter_quant_bias;
-#endif
-
- /**
- * slice flags
- * - encoding: unused
- * - decoding: Set by user.
- */
- int slice_flags;
-#define SLICE_FLAG_CODED_ORDER 0x0001 ///< draw_horiz_band() is called in coded order instead of display
-#define SLICE_FLAG_ALLOW_FIELD 0x0002 ///< allow draw_horiz_band() with field slices (MPEG2 field pics)
-#define SLICE_FLAG_ALLOW_PLANE 0x0004 ///< allow draw_horiz_band() with 1 component at a time (SVQ1)
-
-#if FF_API_XVMC
- /**
- * XVideo Motion Acceleration
- * - encoding: forbidden
- * - decoding: set by decoder
- * @deprecated XvMC doesn't need it anymore.
- */
- attribute_deprecated int xvmc_acceleration;
-#endif /* FF_API_XVMC */
-
- /**
- * macroblock decision mode
- * - encoding: Set by user.
- * - decoding: unused
- */
- int mb_decision;
-#define FF_MB_DECISION_SIMPLE 0 ///< uses mb_cmp
-#define FF_MB_DECISION_BITS 1 ///< chooses the one which needs the fewest bits
-#define FF_MB_DECISION_RD 2 ///< rate distortion
-
- /**
- * custom intra quantization matrix
- * - encoding: Set by user, can be NULL.
- * - decoding: Set by libavcodec.
- */
- uint16_t *intra_matrix;
-
- /**
- * custom inter quantization matrix
- * - encoding: Set by user, can be NULL.
- * - decoding: Set by libavcodec.
- */
- uint16_t *inter_matrix;
-
- /**
- * scene change detection threshold
- * 0 is default, larger means fewer detected scene changes.
- * - encoding: Set by user.
- * - decoding: unused
- */
- int scenechange_threshold;
-
- /**
- * noise reduction strength
- * - encoding: Set by user.
- * - decoding: unused
- */
- int noise_reduction;
-
-#if FF_API_MPV_OPT
- /**
- * @deprecated this field is unused
- */
- attribute_deprecated
- int me_threshold;
-
- /**
- * @deprecated this field is unused
- */
- attribute_deprecated
- int mb_threshold;
-#endif
-
- /**
- * precision of the intra DC coefficient - 8
- * - encoding: Set by user.
- * - decoding: Set by libavcodec
- */
- int intra_dc_precision;
-
- /**
- * Number of macroblock rows at the top which are skipped.
- * - encoding: unused
- * - decoding: Set by user.
- */
- int skip_top;
-
- /**
- * Number of macroblock rows at the bottom which are skipped.
- * - encoding: unused
- * - decoding: Set by user.
- */
- int skip_bottom;
-
-#if FF_API_MPV_OPT
- /**
- * @deprecated use encoder private options instead
- */
- attribute_deprecated
- float border_masking;
-#endif
-
- /**
- * minimum MB lagrange multipler
- * - encoding: Set by user.
- * - decoding: unused
- */
- int mb_lmin;
-
- /**
- * maximum MB lagrange multipler
- * - encoding: Set by user.
- * - decoding: unused
- */
- int mb_lmax;
-
- /**
- *
- * - encoding: Set by user.
- * - decoding: unused
- */
- int me_penalty_compensation;
-
- /**
- *
- * - encoding: Set by user.
- * - decoding: unused
- */
- int bidir_refine;
-
- /**
- *
- * - encoding: Set by user.
- * - decoding: unused
- */
- int brd_scale;
-
- /**
- * minimum GOP size
- * - encoding: Set by user.
- * - decoding: unused
- */
- int keyint_min;
-
- /**
- * number of reference frames
- * - encoding: Set by user.
- * - decoding: Set by lavc.
- */
- int refs;
-
- /**
- * chroma qp offset from luma
- * - encoding: Set by user.
- * - decoding: unused
- */
- int chromaoffset;
-
-#if FF_API_UNUSED_MEMBERS
- /**
- * Multiplied by qscale for each frame and added to scene_change_score.
- * - encoding: Set by user.
- * - decoding: unused
- */
- attribute_deprecated int scenechange_factor;
-#endif
-
- /**
- *
- * Note: Value depends upon the compare function used for fullpel ME.
- * - encoding: Set by user.
- * - decoding: unused
- */
- int mv0_threshold;
-
- /**
- * Adjust sensitivity of b_frame_strategy 1.
- * - encoding: Set by user.
- * - decoding: unused
- */
- int b_sensitivity;
-
- /**
- * Chromaticity coordinates of the source primaries.
- * - encoding: Set by user
- * - decoding: Set by libavcodec
- */
- enum AVColorPrimaries color_primaries;
-
- /**
- * Color Transfer Characteristic.
- * - encoding: Set by user
- * - decoding: Set by libavcodec
- */
- enum AVColorTransferCharacteristic color_trc;
-
- /**
- * YUV colorspace type.
- * - encoding: Set by user
- * - decoding: Set by libavcodec
- */
- enum AVColorSpace colorspace;
-
- /**
- * MPEG vs JPEG YUV range.
- * - encoding: Set by user
- * - decoding: Set by libavcodec
- */
- enum AVColorRange color_range;
-
- /**
- * This defines the location of chroma samples.
- * - encoding: Set by user
- * - decoding: Set by libavcodec
- */
- enum AVChromaLocation chroma_sample_location;
-
- /**
- * Number of slices.
- * Indicates number of picture subdivisions. Used for parallelized
- * decoding.
- * - encoding: Set by user
- * - decoding: unused
- */
- int slices;
-
- /** Field order
- * - encoding: set by libavcodec
- * - decoding: Set by user.
- */
- enum AVFieldOrder field_order;
-
- /* audio only */
- int sample_rate; ///< samples per second
- int channels; ///< number of audio channels
-
- /**
- * audio sample format
- * - encoding: Set by user.
- * - decoding: Set by libavcodec.
- */
- enum AVSampleFormat sample_fmt; ///< sample format
-
- /* The following data should not be initialized. */
- /**
- * Number of samples per channel in an audio frame.
- *
- * - encoding: set by libavcodec in avcodec_open2(). Each submitted frame
- * except the last must contain exactly frame_size samples per channel.
- * May be 0 when the codec has AV_CODEC_CAP_VARIABLE_FRAME_SIZE set, then the
- * frame size is not restricted.
- * - decoding: may be set by some decoders to indicate constant frame size
- */
- int frame_size;
-
- /**
- * Frame counter, set by libavcodec.
- *
- * - decoding: total number of frames returned from the decoder so far.
- * - encoding: total number of frames passed to the encoder so far.
- *
- * @note the counter is not incremented if encoding/decoding resulted in
- * an error.
- */
- int frame_number;
-
- /**
- * number of bytes per packet if constant and known or 0
- * Used by some WAV based audio codecs.
- */
- int block_align;
-
- /**
- * Audio cutoff bandwidth (0 means "automatic")
- * - encoding: Set by user.
- * - decoding: unused
- */
- int cutoff;
-
- /**
- * Audio channel layout.
- * - encoding: set by user.
- * - decoding: set by user, may be overwritten by libavcodec.
- */
- uint64_t channel_layout;
-
- /**
- * Request decoder to use this channel layout if it can (0 for default)
- * - encoding: unused
- * - decoding: Set by user.
- */
- uint64_t request_channel_layout;
-
- /**
- * Type of service that the audio stream conveys.
- * - encoding: Set by user.
- * - decoding: Set by libavcodec.
- */
- enum AVAudioServiceType audio_service_type;
-
- /**
- * desired sample format
- * - encoding: Not used.
- * - decoding: Set by user.
- * Decoder will decode to this format if it can.
- */
- enum AVSampleFormat request_sample_fmt;
-
- /**
- * This callback is called at the beginning of each frame to get data
- * buffer(s) for it. There may be one contiguous buffer for all the data or
- * there may be a buffer per each data plane or anything in between. What
- * this means is, you may set however many entries in buf[] you feel necessary.
- * Each buffer must be reference-counted using the AVBuffer API (see description
- * of buf[] below).
- *
- * The following fields will be set in the frame before this callback is
- * called:
- * - format
- * - width, height (video only)
- * - sample_rate, channel_layout, nb_samples (audio only)
- * Their values may differ from the corresponding values in
- * AVCodecContext. This callback must use the frame values, not the codec
- * context values, to calculate the required buffer size.
- *
- * This callback must fill the following fields in the frame:
- * - data[]
- * - linesize[]
- * - extended_data:
- * * if the data is planar audio with more than 8 channels, then this
- * callback must allocate and fill extended_data to contain all pointers
- * to all data planes. data[] must hold as many pointers as it can.
- * extended_data must be allocated with av_malloc() and will be freed in
- * av_frame_unref().
- * * otherwise exended_data must point to data
- * - buf[] must contain one or more pointers to AVBufferRef structures. Each of
- * the frame's data and extended_data pointers must be contained in these. That
- * is, one AVBufferRef for each allocated chunk of memory, not necessarily one
- * AVBufferRef per data[] entry. See: av_buffer_create(), av_buffer_alloc(),
- * and av_buffer_ref().
- * - extended_buf and nb_extended_buf must be allocated with av_malloc() by
- * this callback and filled with the extra buffers if there are more
- * buffers than buf[] can hold. extended_buf will be freed in
- * av_frame_unref().
- *
- * If AV_CODEC_CAP_DR1 is not set then get_buffer2() must call
- * avcodec_default_get_buffer2() instead of providing buffers allocated by
- * some other means.
- *
- * Each data plane must be aligned to the maximum required by the target
- * CPU.
- *
- * @see avcodec_default_get_buffer2()
- *
- * Video:
- *
- * If AV_GET_BUFFER_FLAG_REF is set in flags then the frame may be reused
- * (read and/or written to if it is writable) later by libavcodec.
- *
- * avcodec_align_dimensions2() should be used to find the required width and
- * height, as they normally need to be rounded up to the next multiple of 16.
- *
- * Some decoders do not support linesizes changing between frames.
- *
- * If frame multithreading is used and thread_safe_callbacks is set,
- * this callback may be called from a different thread, but not from more
- * than one at once. Does not need to be reentrant.
- *
- * @see avcodec_align_dimensions2()
- *
- * Audio:
- *
- * Decoders request a buffer of a particular size by setting
- * AVFrame.nb_samples prior to calling get_buffer2(). The decoder may,
- * however, utilize only part of the buffer by setting AVFrame.nb_samples
- * to a smaller value in the output frame.
- *
- * As a convenience, av_samples_get_buffer_size() and
- * av_samples_fill_arrays() in libavutil may be used by custom get_buffer2()
- * functions to find the required data size and to fill data pointers and
- * linesize. In AVFrame.linesize, only linesize[0] may be set for audio
- * since all planes must be the same size.
- *
- * @see av_samples_get_buffer_size(), av_samples_fill_arrays()
- *
- * - encoding: unused
- * - decoding: Set by libavcodec, user can override.
- */
- int (*get_buffer2)(struct AVCodecContext *s, AVFrame *frame, int flags);
-
- /**
- * If non-zero, the decoded audio and video frames returned from
- * avcodec_decode_video2() and avcodec_decode_audio4() are reference-counted
- * and are valid indefinitely. The caller must free them with
- * av_frame_unref() when they are not needed anymore.
- * Otherwise, the decoded frames must not be freed by the caller and are
- * only valid until the next decode call.
- *
- * - encoding: unused
- * - decoding: set by the caller before avcodec_open2().
- */
- int refcounted_frames;
-
- /* - encoding parameters */
- float qcompress; ///< amount of qscale change between easy & hard scenes (0.0-1.0)
- float qblur; ///< amount of qscale smoothing over time (0.0-1.0)
-
- /**
- * minimum quantizer
- * - encoding: Set by user.
- * - decoding: unused
- */
- int qmin;
-
- /**
- * maximum quantizer
- * - encoding: Set by user.
- * - decoding: unused
- */
- int qmax;
-
- /**
- * maximum quantizer difference between frames
- * - encoding: Set by user.
- * - decoding: unused
- */
- int max_qdiff;
-
-#if FF_API_MPV_OPT
- /**
- * @deprecated use encoder private options instead
- */
- attribute_deprecated
- float rc_qsquish;
-
- attribute_deprecated
- float rc_qmod_amp;
- attribute_deprecated
- int rc_qmod_freq;
-#endif
-
- /**
- * decoder bitstream buffer size
- * - encoding: Set by user.
- * - decoding: unused
- */
- int rc_buffer_size;
-
- /**
- * ratecontrol override, see RcOverride
- * - encoding: Allocated/set/freed by user.
- * - decoding: unused
- */
- int rc_override_count;
- RcOverride *rc_override;
-
-#if FF_API_MPV_OPT
- /**
- * @deprecated use encoder private options instead
- */
- attribute_deprecated
- const char *rc_eq;
-#endif
-
- /**
- * maximum bitrate
- * - encoding: Set by user.
- * - decoding: Set by user, may be overwritten by libavcodec.
- */
- int64_t rc_max_rate;
-
- /**
- * minimum bitrate
- * - encoding: Set by user.
- * - decoding: unused
- */
- int64_t rc_min_rate;
-
-#if FF_API_MPV_OPT
- /**
- * @deprecated use encoder private options instead
- */
- attribute_deprecated
- float rc_buffer_aggressivity;
-
- attribute_deprecated
- float rc_initial_cplx;
-#endif
-
- /**
- * Ratecontrol attempt to use, at maximum, <value> of what can be used without an underflow.
- * - encoding: Set by user.
- * - decoding: unused.
- */
- float rc_max_available_vbv_use;
-
- /**
- * Ratecontrol attempt to use, at least, <value> times the amount needed to prevent a vbv overflow.
- * - encoding: Set by user.
- * - decoding: unused.
- */
- float rc_min_vbv_overflow_use;
-
- /**
- * Number of bits which should be loaded into the rc buffer before decoding starts.
- * - encoding: Set by user.
- * - decoding: unused
- */
- int rc_initial_buffer_occupancy;
-
-#if FF_API_CODER_TYPE
-#define FF_CODER_TYPE_VLC 0
-#define FF_CODER_TYPE_AC 1
-#define FF_CODER_TYPE_RAW 2
-#define FF_CODER_TYPE_RLE 3
-#if FF_API_UNUSED_MEMBERS
-#define FF_CODER_TYPE_DEFLATE 4
-#endif /* FF_API_UNUSED_MEMBERS */
- /**
- * @deprecated use encoder private options instead
- */
- attribute_deprecated
- int coder_type;
-#endif /* FF_API_CODER_TYPE */
-
- /**
- * context model
- * - encoding: Set by user.
- * - decoding: unused
- */
- int context_model;
-
-#if FF_API_MPV_OPT
- /**
- * @deprecated use encoder private options instead
- */
- attribute_deprecated
- int lmin;
-
- /**
- * @deprecated use encoder private options instead
- */
- attribute_deprecated
- int lmax;
-#endif
-
- /**
- * frame skip threshold
- * - encoding: Set by user.
- * - decoding: unused
- */
- int frame_skip_threshold;
-
- /**
- * frame skip factor
- * - encoding: Set by user.
- * - decoding: unused
- */
- int frame_skip_factor;
-
- /**
- * frame skip exponent
- * - encoding: Set by user.
- * - decoding: unused
- */
- int frame_skip_exp;
-
- /**
- * frame skip comparison function
- * - encoding: Set by user.
- * - decoding: unused
- */
- int frame_skip_cmp;
-
- /**
- * trellis RD quantization
- * - encoding: Set by user.
- * - decoding: unused
- */
- int trellis;
-
- /**
- * - encoding: Set by user.
- * - decoding: unused
- */
- int min_prediction_order;
-
- /**
- * - encoding: Set by user.
- * - decoding: unused
- */
- int max_prediction_order;
-
- /**
- * GOP timecode frame start number
- * - encoding: Set by user, in non drop frame format
- * - decoding: Set by libavcodec (timecode in the 25 bits format, -1 if unset)
- */
- int64_t timecode_frame_start;
-
-#if FF_API_RTP_CALLBACK
- /**
- * @deprecated unused
- */
- /* The RTP callback: This function is called */
- /* every time the encoder has a packet to send. */
- /* It depends on the encoder if the data starts */
- /* with a Start Code (it should). H.263 does. */
- /* mb_nb contains the number of macroblocks */
- /* encoded in the RTP payload. */
- attribute_deprecated
- void (*rtp_callback)(struct AVCodecContext *avctx, void *data, int size, int mb_nb);
-#endif
-
- int rtp_payload_size; /* The size of the RTP payload: the coder will */
- /* do its best to deliver a chunk with size */
- /* below rtp_payload_size, the chunk will start */
- /* with a start code on some codecs like H.263. */
- /* This doesn't take account of any particular */
- /* headers inside the transmitted RTP payload. */
-
-#if FF_API_STAT_BITS
- /* statistics, used for 2-pass encoding */
- attribute_deprecated
- int mv_bits;
- attribute_deprecated
- int header_bits;
- attribute_deprecated
- int i_tex_bits;
- attribute_deprecated
- int p_tex_bits;
- attribute_deprecated
- int i_count;
- attribute_deprecated
- int p_count;
- attribute_deprecated
- int skip_count;
- attribute_deprecated
- int misc_bits;
-
- /** @deprecated this field is unused */
- attribute_deprecated
- int frame_bits;
-#endif
-
- /**
- * pass1 encoding statistics output buffer
- * - encoding: Set by libavcodec.
- * - decoding: unused
- */
- char *stats_out;
-
- /**
- * pass2 encoding statistics input buffer
- * Concatenated stuff from stats_out of pass1 should be placed here.
- * - encoding: Allocated/set/freed by user.
- * - decoding: unused
- */
- char *stats_in;
-
- /**
- * Work around bugs in encoders which sometimes cannot be detected automatically.
- * - encoding: Set by user
- * - decoding: Set by user
- */
- int workaround_bugs;
-#define FF_BUG_AUTODETECT 1 ///< autodetection
-#if FF_API_OLD_MSMPEG4
-#define FF_BUG_OLD_MSMPEG4 2
-#endif
-#define FF_BUG_XVID_ILACE 4
-#define FF_BUG_UMP4 8
-#define FF_BUG_NO_PADDING 16
-#define FF_BUG_AMV 32
-#if FF_API_AC_VLC
-#define FF_BUG_AC_VLC 0 ///< Will be removed, libavcodec can now handle these non-compliant files by default.
-#endif
-#define FF_BUG_QPEL_CHROMA 64
-#define FF_BUG_STD_QPEL 128
-#define FF_BUG_QPEL_CHROMA2 256
-#define FF_BUG_DIRECT_BLOCKSIZE 512
-#define FF_BUG_EDGE 1024
-#define FF_BUG_HPEL_CHROMA 2048
-#define FF_BUG_DC_CLIP 4096
-#define FF_BUG_MS 8192 ///< Work around various bugs in Microsoft's broken decoders.
-#define FF_BUG_TRUNCATED 16384
-
- /**
- * strictly follow the standard (MPEG4, ...).
- * - encoding: Set by user.
- * - decoding: Set by user.
- * Setting this to STRICT or higher means the encoder and decoder will
- * generally do stupid things, whereas setting it to unofficial or lower
- * will mean the encoder might produce output that is not supported by all
- * spec-compliant decoders. Decoders don't differentiate between normal,
- * unofficial and experimental (that is, they always try to decode things
- * when they can) unless they are explicitly asked to behave stupidly
- * (=strictly conform to the specs)
- */
- int strict_std_compliance;
-#define FF_COMPLIANCE_VERY_STRICT 2 ///< Strictly conform to an older more strict version of the spec or reference software.
-#define FF_COMPLIANCE_STRICT 1 ///< Strictly conform to all the things in the spec no matter what consequences.
-#define FF_COMPLIANCE_NORMAL 0
-#define FF_COMPLIANCE_UNOFFICIAL -1 ///< Allow unofficial extensions
-#define FF_COMPLIANCE_EXPERIMENTAL -2 ///< Allow nonstandardized experimental things.
-
- /**
- * error concealment flags
- * - encoding: unused
- * - decoding: Set by user.
- */
- int error_concealment;
-#define FF_EC_GUESS_MVS 1
-#define FF_EC_DEBLOCK 2
-#define FF_EC_FAVOR_INTER 256
-
- /**
- * debug
- * - encoding: Set by user.
- * - decoding: Set by user.
- */
- int debug;
-#define FF_DEBUG_PICT_INFO 1
-#define FF_DEBUG_RC 2
-#define FF_DEBUG_BITSTREAM 4
-#define FF_DEBUG_MB_TYPE 8
-#define FF_DEBUG_QP 16
-#if FF_API_DEBUG_MV
-/**
- * @deprecated this option does nothing
- */
-#define FF_DEBUG_MV 32
-#endif
-#define FF_DEBUG_DCT_COEFF 0x00000040
-#define FF_DEBUG_SKIP 0x00000080
-#define FF_DEBUG_STARTCODE 0x00000100
-#if FF_API_UNUSED_MEMBERS
-#define FF_DEBUG_PTS 0x00000200
-#endif /* FF_API_UNUSED_MEMBERS */
-#define FF_DEBUG_ER 0x00000400
-#define FF_DEBUG_MMCO 0x00000800
-#define FF_DEBUG_BUGS 0x00001000
-#if FF_API_DEBUG_MV
-#define FF_DEBUG_VIS_QP 0x00002000 ///< only access through AVOptions from outside libavcodec
-#define FF_DEBUG_VIS_MB_TYPE 0x00004000 ///< only access through AVOptions from outside libavcodec
-#endif
-#define FF_DEBUG_BUFFERS 0x00008000
-#define FF_DEBUG_THREADS 0x00010000
-#define FF_DEBUG_GREEN_MD 0x00800000
-#define FF_DEBUG_NOMC 0x01000000
-
-#if FF_API_DEBUG_MV
- /**
- * debug
- * Code outside libavcodec should access this field using AVOptions
- * - encoding: Set by user.
- * - decoding: Set by user.
- */
- int debug_mv;
-#define FF_DEBUG_VIS_MV_P_FOR 0x00000001 //visualize forward predicted MVs of P frames
-#define FF_DEBUG_VIS_MV_B_FOR 0x00000002 //visualize forward predicted MVs of B frames
-#define FF_DEBUG_VIS_MV_B_BACK 0x00000004 //visualize backward predicted MVs of B frames
-#endif
-
- /**
- * Error recognition; may misdetect some more or less valid parts as errors.
- * - encoding: unused
- * - decoding: Set by user.
- */
- int err_recognition;
-
-/**
- * Verify checksums embedded in the bitstream (could be of either encoded or
- * decoded data, depending on the codec) and print an error message on mismatch.
- * If AV_EF_EXPLODE is also set, a mismatching checksum will result in the
- * decoder returning an error.
- */
-#define AV_EF_CRCCHECK (1<<0)
-#define AV_EF_BITSTREAM (1<<1) ///< detect bitstream specification deviations
-#define AV_EF_BUFFER (1<<2) ///< detect improper bitstream length
-#define AV_EF_EXPLODE (1<<3) ///< abort decoding on minor error detection
-
-#define AV_EF_IGNORE_ERR (1<<15) ///< ignore errors and continue
-#define AV_EF_CAREFUL (1<<16) ///< consider things that violate the spec, are fast to calculate and have not been seen in the wild as errors
-#define AV_EF_COMPLIANT (1<<17) ///< consider all spec non compliances as errors
-#define AV_EF_AGGRESSIVE (1<<18) ///< consider things that a sane encoder should not do as an error
-
-
- /**
- * opaque 64bit number (generally a PTS) that will be reordered and
- * output in AVFrame.reordered_opaque
- * - encoding: unused
- * - decoding: Set by user.
- */
- int64_t reordered_opaque;
-
- /**
- * Hardware accelerator in use
- * - encoding: unused.
- * - decoding: Set by libavcodec
- */
- struct AVHWAccel *hwaccel;
-
- /**
- * Hardware accelerator context.
- * For some hardware accelerators, a global context needs to be
- * provided by the user. In that case, this holds display-dependent
- * data FFmpeg cannot instantiate itself. Please refer to the
- * FFmpeg HW accelerator documentation to know how to fill this
- * is. e.g. for VA API, this is a struct vaapi_context.
- * - encoding: unused
- * - decoding: Set by user
- */
- void *hwaccel_context;
-
- /**
- * error
- * - encoding: Set by libavcodec if flags & AV_CODEC_FLAG_PSNR.
- * - decoding: unused
- */
- uint64_t error[AV_NUM_DATA_POINTERS];
-
- /**
- * DCT algorithm, see FF_DCT_* below
- * - encoding: Set by user.
- * - decoding: unused
- */
- int dct_algo;
-#define FF_DCT_AUTO 0
-#define FF_DCT_FASTINT 1
-#define FF_DCT_INT 2
-#define FF_DCT_MMX 3
-#define FF_DCT_ALTIVEC 5
-#define FF_DCT_FAAN 6
-
- /**
- * IDCT algorithm, see FF_IDCT_* below.
- * - encoding: Set by user.
- * - decoding: Set by user.
- */
- int idct_algo;
-#define FF_IDCT_AUTO 0
-#define FF_IDCT_INT 1
-#define FF_IDCT_SIMPLE 2
-#define FF_IDCT_SIMPLEMMX 3
-#define FF_IDCT_ARM 7
-#define FF_IDCT_ALTIVEC 8
-#if FF_API_ARCH_SH4
-#define FF_IDCT_SH4 9
-#endif
-#define FF_IDCT_SIMPLEARM 10
-#if FF_API_UNUSED_MEMBERS
-#define FF_IDCT_IPP 13
-#endif /* FF_API_UNUSED_MEMBERS */
-#define FF_IDCT_XVID 14
-#if FF_API_IDCT_XVIDMMX
-#define FF_IDCT_XVIDMMX 14
-#endif /* FF_API_IDCT_XVIDMMX */
-#define FF_IDCT_SIMPLEARMV5TE 16
-#define FF_IDCT_SIMPLEARMV6 17
-#if FF_API_ARCH_SPARC
-#define FF_IDCT_SIMPLEVIS 18
-#endif
-#define FF_IDCT_FAAN 20
-#define FF_IDCT_SIMPLENEON 22
-#if FF_API_ARCH_ALPHA
-#define FF_IDCT_SIMPLEALPHA 23
-#endif
-#define FF_IDCT_SIMPLEAUTO 128
-
- /**
- * bits per sample/pixel from the demuxer (needed for huffyuv).
- * - encoding: Set by libavcodec.
- * - decoding: Set by user.
- */
- int bits_per_coded_sample;
-
- /**
- * Bits per sample/pixel of internal libavcodec pixel/sample format.
- * - encoding: set by user.
- * - decoding: set by libavcodec.
- */
- int bits_per_raw_sample;
-
-#if FF_API_LOWRES
- /**
- * low resolution decoding, 1-> 1/2 size, 2->1/4 size
- * - encoding: unused
- * - decoding: Set by user.
- * Code outside libavcodec should access this field using:
- * av_codec_{get,set}_lowres(avctx)
- */
- int lowres;
-#endif
-
-#if FF_API_CODED_FRAME
- /**
- * the picture in the bitstream
- * - encoding: Set by libavcodec.
- * - decoding: unused
- *
- * @deprecated use the quality factor packet side data instead
- */
- attribute_deprecated AVFrame *coded_frame;
-#endif
-
- /**
- * thread count
- * is used to decide how many independent tasks should be passed to execute()
- * - encoding: Set by user.
- * - decoding: Set by user.
- */
- int thread_count;
-
- /**
- * Which multithreading methods to use.
- * Use of FF_THREAD_FRAME will increase decoding delay by one frame per thread,
- * so clients which cannot provide future frames should not use it.
- *
- * - encoding: Set by user, otherwise the default is used.
- * - decoding: Set by user, otherwise the default is used.
- */
- int thread_type;
-#define FF_THREAD_FRAME 1 ///< Decode more than one frame at once
-#define FF_THREAD_SLICE 2 ///< Decode more than one part of a single frame at once
-
- /**
- * Which multithreading methods are in use by the codec.
- * - encoding: Set by libavcodec.
- * - decoding: Set by libavcodec.
- */
- int active_thread_type;
-
- /**
- * Set by the client if its custom get_buffer() callback can be called
- * synchronously from another thread, which allows faster multithreaded decoding.
- * draw_horiz_band() will be called from other threads regardless of this setting.
- * Ignored if the default get_buffer() is used.
- * - encoding: Set by user.
- * - decoding: Set by user.
- */
- int thread_safe_callbacks;
-
- /**
- * The codec may call this to execute several independent things.
- * It will return only after finishing all tasks.
- * The user may replace this with some multithreaded implementation,
- * the default implementation will execute the parts serially.
- * @param count the number of things to execute
- * - encoding: Set by libavcodec, user can override.
- * - decoding: Set by libavcodec, user can override.
- */
- int (*execute)(struct AVCodecContext *c, int (*func)(struct AVCodecContext *c2, void *arg), void *arg2, int *ret, int count, int size);
-
- /**
- * The codec may call this to execute several independent things.
- * It will return only after finishing all tasks.
- * The user may replace this with some multithreaded implementation,
- * the default implementation will execute the parts serially.
- * Also see avcodec_thread_init and e.g. the --enable-pthread configure option.
- * @param c context passed also to func
- * @param count the number of things to execute
- * @param arg2 argument passed unchanged to func
- * @param ret return values of executed functions, must have space for "count" values. May be NULL.
- * @param func function that will be called count times, with jobnr from 0 to count-1.
- * threadnr will be in the range 0 to c->thread_count-1 < MAX_THREADS and so that no
- * two instances of func executing at the same time will have the same threadnr.
- * @return always 0 currently, but code should handle a future improvement where when any call to func
- * returns < 0 no further calls to func may be done and < 0 is returned.
- * - encoding: Set by libavcodec, user can override.
- * - decoding: Set by libavcodec, user can override.
- */
- int (*execute2)(struct AVCodecContext *c, int (*func)(struct AVCodecContext *c2, void *arg, int jobnr, int threadnr), void *arg2, int *ret, int count);
-
- /**
- * noise vs. sse weight for the nsse comparison function
- * - encoding: Set by user.
- * - decoding: unused
- */
- int nsse_weight;
-
- /**
- * profile
- * - encoding: Set by user.
- * - decoding: Set by libavcodec.
- */
- int profile;
-#define FF_PROFILE_UNKNOWN -99
-#define FF_PROFILE_RESERVED -100
-
-#define FF_PROFILE_AAC_MAIN 0
-#define FF_PROFILE_AAC_LOW 1
-#define FF_PROFILE_AAC_SSR 2
-#define FF_PROFILE_AAC_LTP 3
-#define FF_PROFILE_AAC_HE 4
-#define FF_PROFILE_AAC_HE_V2 28
-#define FF_PROFILE_AAC_LD 22
-#define FF_PROFILE_AAC_ELD 38
-#define FF_PROFILE_MPEG2_AAC_LOW 128
-#define FF_PROFILE_MPEG2_AAC_HE 131
-
-#define FF_PROFILE_DTS 20
-#define FF_PROFILE_DTS_ES 30
-#define FF_PROFILE_DTS_96_24 40
-#define FF_PROFILE_DTS_HD_HRA 50
-#define FF_PROFILE_DTS_HD_MA 60
-#define FF_PROFILE_DTS_EXPRESS 70
-
-#define FF_PROFILE_MPEG2_422 0
-#define FF_PROFILE_MPEG2_HIGH 1
-#define FF_PROFILE_MPEG2_SS 2
-#define FF_PROFILE_MPEG2_SNR_SCALABLE 3
-#define FF_PROFILE_MPEG2_MAIN 4
-#define FF_PROFILE_MPEG2_SIMPLE 5
-
-#define FF_PROFILE_H264_CONSTRAINED (1<<9) // 8+1; constraint_set1_flag
-#define FF_PROFILE_H264_INTRA (1<<11) // 8+3; constraint_set3_flag
-
-#define FF_PROFILE_H264_BASELINE 66
-#define FF_PROFILE_H264_CONSTRAINED_BASELINE (66|FF_PROFILE_H264_CONSTRAINED)
-#define FF_PROFILE_H264_MAIN 77
-#define FF_PROFILE_H264_EXTENDED 88
-#define FF_PROFILE_H264_HIGH 100
-#define FF_PROFILE_H264_HIGH_10 110
-#define FF_PROFILE_H264_HIGH_10_INTRA (110|FF_PROFILE_H264_INTRA)
-#define FF_PROFILE_H264_HIGH_422 122
-#define FF_PROFILE_H264_HIGH_422_INTRA (122|FF_PROFILE_H264_INTRA)
-#define FF_PROFILE_H264_HIGH_444 144
-#define FF_PROFILE_H264_HIGH_444_PREDICTIVE 244
-#define FF_PROFILE_H264_HIGH_444_INTRA (244|FF_PROFILE_H264_INTRA)
-#define FF_PROFILE_H264_CAVLC_444 44
-
-#define FF_PROFILE_VC1_SIMPLE 0
-#define FF_PROFILE_VC1_MAIN 1
-#define FF_PROFILE_VC1_COMPLEX 2
-#define FF_PROFILE_VC1_ADVANCED 3
-
-#define FF_PROFILE_MPEG4_SIMPLE 0
-#define FF_PROFILE_MPEG4_SIMPLE_SCALABLE 1
-#define FF_PROFILE_MPEG4_CORE 2
-#define FF_PROFILE_MPEG4_MAIN 3
-#define FF_PROFILE_MPEG4_N_BIT 4
-#define FF_PROFILE_MPEG4_SCALABLE_TEXTURE 5
-#define FF_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION 6
-#define FF_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE 7
-#define FF_PROFILE_MPEG4_HYBRID 8
-#define FF_PROFILE_MPEG4_ADVANCED_REAL_TIME 9
-#define FF_PROFILE_MPEG4_CORE_SCALABLE 10
-#define FF_PROFILE_MPEG4_ADVANCED_CODING 11
-#define FF_PROFILE_MPEG4_ADVANCED_CORE 12
-#define FF_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE 13
-#define FF_PROFILE_MPEG4_SIMPLE_STUDIO 14
-#define FF_PROFILE_MPEG4_ADVANCED_SIMPLE 15
-
-#define FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_0 0
-#define FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_1 1
-#define FF_PROFILE_JPEG2000_CSTREAM_NO_RESTRICTION 2
-#define FF_PROFILE_JPEG2000_DCINEMA_2K 3
-#define FF_PROFILE_JPEG2000_DCINEMA_4K 4
-
-#define FF_PROFILE_VP9_0 0
-#define FF_PROFILE_VP9_1 1
-#define FF_PROFILE_VP9_2 2
-#define FF_PROFILE_VP9_3 3
-
-#define FF_PROFILE_HEVC_MAIN 1
-#define FF_PROFILE_HEVC_MAIN_10 2
-#define FF_PROFILE_HEVC_MAIN_STILL_PICTURE 3
-#define FF_PROFILE_HEVC_REXT 4
-
- /**
- * level
- * - encoding: Set by user.
- * - decoding: Set by libavcodec.
- */
- int level;
-#define FF_LEVEL_UNKNOWN -99
-
- /**
- * Skip loop filtering for selected frames.
- * - encoding: unused
- * - decoding: Set by user.
- */
- enum AVDiscard skip_loop_filter;
-
- /**
- * Skip IDCT/dequantization for selected frames.
- * - encoding: unused
- * - decoding: Set by user.
- */
- enum AVDiscard skip_idct;
-
- /**
- * Skip decoding for selected frames.
- * - encoding: unused
- * - decoding: Set by user.
- */
- enum AVDiscard skip_frame;
-
- /**
- * Header containing style information for text subtitles.
- * For SUBTITLE_ASS subtitle type, it should contain the whole ASS
- * [Script Info] and [V4+ Styles] section, plus the [Events] line and
- * the Format line following. It shouldn't include any Dialogue line.
- * - encoding: Set/allocated/freed by user (before avcodec_open2())
- * - decoding: Set/allocated/freed by libavcodec (by avcodec_open2())
- */
- uint8_t *subtitle_header;
- int subtitle_header_size;
-
-#if FF_API_ERROR_RATE
- /**
- * @deprecated use the 'error_rate' private AVOption of the mpegvideo
- * encoders
- */
- attribute_deprecated
- int error_rate;
-#endif
-
-#if FF_API_VBV_DELAY
- /**
- * VBV delay coded in the last frame (in periods of a 27 MHz clock).
- * Used for compliant TS muxing.
- * - encoding: Set by libavcodec.
- * - decoding: unused.
- * @deprecated this value is now exported as a part of
- * AV_PKT_DATA_CPB_PROPERTIES packet side data
- */
- attribute_deprecated
- uint64_t vbv_delay;
-#endif
-
-#if FF_API_SIDEDATA_ONLY_PKT
- /**
- * Encoding only and set by default. Allow encoders to output packets
- * that do not contain any encoded data, only side data.
- *
- * Some encoders need to output such packets, e.g. to update some stream
- * parameters at the end of encoding.
- *
- * @deprecated this field disables the default behaviour and
- * it is kept only for compatibility.
- */
- attribute_deprecated
- int side_data_only_packets;
-#endif
-
- /**
- * Audio only. The number of "priming" samples (padding) inserted by the
- * encoder at the beginning of the audio. I.e. this number of leading
- * decoded samples must be discarded by the caller to get the original audio
- * without leading padding.
- *
- * - decoding: unused
- * - encoding: Set by libavcodec. The timestamps on the output packets are
- * adjusted by the encoder so that they always refer to the
- * first sample of the data actually contained in the packet,
- * including any added padding. E.g. if the timebase is
- * 1/samplerate and the timestamp of the first input sample is
- * 0, the timestamp of the first output packet will be
- * -initial_padding.
- */
- int initial_padding;
-
- /**
- * - decoding: For codecs that store a framerate value in the compressed
- * bitstream, the decoder may export it here. { 0, 1} when
- * unknown.
- * - encoding: unused
- */
- AVRational framerate;
-
- /**
- * Nominal unaccelerated pixel format, see AV_PIX_FMT_xxx.
- * - encoding: unused.
- * - decoding: Set by libavcodec before calling get_format()
- */
- enum AVPixelFormat sw_pix_fmt;
-
- /**
- * Timebase in which pkt_dts/pts and AVPacket.dts/pts are.
- * Code outside libavcodec should access this field using:
- * av_codec_{get,set}_pkt_timebase(avctx)
- * - encoding unused.
- * - decoding set by user.
- */
- AVRational pkt_timebase;
-
- /**
- * AVCodecDescriptor
- * Code outside libavcodec should access this field using:
- * av_codec_{get,set}_codec_descriptor(avctx)
- * - encoding: unused.
- * - decoding: set by libavcodec.
- */
- const AVCodecDescriptor *codec_descriptor;
-
-#if !FF_API_LOWRES
- /**
- * low resolution decoding, 1-> 1/2 size, 2->1/4 size
- * - encoding: unused
- * - decoding: Set by user.
- * Code outside libavcodec should access this field using:
- * av_codec_{get,set}_lowres(avctx)
- */
- int lowres;
-#endif
-
- /**
- * Current statistics for PTS correction.
- * - decoding: maintained and used by libavcodec, not intended to be used by user apps
- * - encoding: unused
- */
- int64_t pts_correction_num_faulty_pts; /// Number of incorrect PTS values so far
- int64_t pts_correction_num_faulty_dts; /// Number of incorrect DTS values so far
- int64_t pts_correction_last_pts; /// PTS of the last frame
- int64_t pts_correction_last_dts; /// DTS of the last frame
-
- /**
- * Character encoding of the input subtitles file.
- * - decoding: set by user
- * - encoding: unused
- */
- char *sub_charenc;
-
- /**
- * Subtitles character encoding mode. Formats or codecs might be adjusting
- * this setting (if they are doing the conversion themselves for instance).
- * - decoding: set by libavcodec
- * - encoding: unused
- */
- int sub_charenc_mode;
-#define FF_SUB_CHARENC_MODE_DO_NOTHING -1 ///< do nothing (demuxer outputs a stream supposed to be already in UTF-8, or the codec is bitmap for instance)
-#define FF_SUB_CHARENC_MODE_AUTOMATIC 0 ///< libavcodec will select the mode itself
-#define FF_SUB_CHARENC_MODE_PRE_DECODER 1 ///< the AVPacket data needs to be recoded to UTF-8 before being fed to the decoder, requires iconv
-
- /**
- * Skip processing alpha if supported by codec.
- * Note that if the format uses pre-multiplied alpha (common with VP6,
- * and recommended due to better video quality/compression)
- * the image will look as if alpha-blended onto a black background.
- * However for formats that do not use pre-multiplied alpha
- * there might be serious artefacts (though e.g. libswscale currently
- * assumes pre-multiplied alpha anyway).
- * Code outside libavcodec should access this field using AVOptions
- *
- * - decoding: set by user
- * - encoding: unused
- */
- int skip_alpha;
-
- /**
- * Number of samples to skip after a discontinuity
- * - decoding: unused
- * - encoding: set by libavcodec
- */
- int seek_preroll;
-
-#if !FF_API_DEBUG_MV
- /**
- * debug motion vectors
- * Code outside libavcodec should access this field using AVOptions
- * - encoding: Set by user.
- * - decoding: Set by user.
- */
- int debug_mv;
-#define FF_DEBUG_VIS_MV_P_FOR 0x00000001 //visualize forward predicted MVs of P frames
-#define FF_DEBUG_VIS_MV_B_FOR 0x00000002 //visualize forward predicted MVs of B frames
-#define FF_DEBUG_VIS_MV_B_BACK 0x00000004 //visualize backward predicted MVs of B frames
-#endif
-
- /**
- * custom intra quantization matrix
- * Code outside libavcodec should access this field using av_codec_g/set_chroma_intra_matrix()
- * - encoding: Set by user, can be NULL.
- * - decoding: unused.
- */
- uint16_t *chroma_intra_matrix;
-
- /**
- * dump format separator.
- * can be ", " or "\n " or anything else
- * Code outside libavcodec should access this field using AVOptions
- * (NO direct access).
- * - encoding: Set by user.
- * - decoding: Set by user.
- */
- uint8_t *dump_separator;
-
- /**
- * ',' separated list of allowed decoders.
- * If NULL then all are allowed
- * - encoding: unused
- * - decoding: set by user through AVOPtions (NO direct access)
- */
- char *codec_whitelist;
-
- /*
- * Properties of the stream that gets decoded
- * To be accessed through av_codec_get_properties() (NO direct access)
- * - encoding: unused
- * - decoding: set by libavcodec
- */
- unsigned properties;
-#define FF_CODEC_PROPERTY_LOSSLESS 0x00000001
-#define FF_CODEC_PROPERTY_CLOSED_CAPTIONS 0x00000002
-
- /**
- * Additional data associated with the entire coded stream.
- *
- * - decoding: unused
- * - encoding: may be set by libavcodec after avcodec_open2().
- */
- AVPacketSideData *coded_side_data;
- int nb_coded_side_data;
-
-} AVCodecContext;
-
-AVRational av_codec_get_pkt_timebase (const AVCodecContext *avctx);
-void av_codec_set_pkt_timebase (AVCodecContext *avctx, AVRational val);
-
-const AVCodecDescriptor *av_codec_get_codec_descriptor(const AVCodecContext *avctx);
-void av_codec_set_codec_descriptor(AVCodecContext *avctx, const AVCodecDescriptor *desc);
-
-unsigned av_codec_get_codec_properties(const AVCodecContext *avctx);
-
-int av_codec_get_lowres(const AVCodecContext *avctx);
-void av_codec_set_lowres(AVCodecContext *avctx, int val);
-
-int av_codec_get_seek_preroll(const AVCodecContext *avctx);
-void av_codec_set_seek_preroll(AVCodecContext *avctx, int val);
-
-uint16_t *av_codec_get_chroma_intra_matrix(const AVCodecContext *avctx);
-void av_codec_set_chroma_intra_matrix(AVCodecContext *avctx, uint16_t *val);
-
-/**
- * AVProfile.
- */
-typedef struct AVProfile {
- int profile;
- const char *name; ///< short name for the profile
-} AVProfile;
-
-typedef struct AVCodecDefault AVCodecDefault;
-
-struct AVSubtitle;
-
-/**
- * AVCodec.
- */
-typedef struct AVCodec {
- /**
- * Name of the codec implementation.
- * The name is globally unique among encoders and among decoders (but an
- * encoder and a decoder can share the same name).
- * This is the primary way to find a codec from the user perspective.
- */
- const char *name;
- /**
- * Descriptive name for the codec, meant to be more human readable than name.
- * You should use the NULL_IF_CONFIG_SMALL() macro to define it.
- */
- const char *long_name;
- enum AVMediaType type;
- enum AVCodecID id;
- /**
- * Codec capabilities.
- * see AV_CODEC_CAP_*
- */
- int capabilities;
- const AVRational *supported_framerates; ///< array of supported framerates, or NULL if any, array is terminated by {0,0}
- const enum AVPixelFormat *pix_fmts; ///< array of supported pixel formats, or NULL if unknown, array is terminated by -1
- const int *supported_samplerates; ///< array of supported audio samplerates, or NULL if unknown, array is terminated by 0
- const enum AVSampleFormat *sample_fmts; ///< array of supported sample formats, or NULL if unknown, array is terminated by -1
- const uint64_t *channel_layouts; ///< array of support channel layouts, or NULL if unknown. array is terminated by 0
- uint8_t max_lowres; ///< maximum value for lowres supported by the decoder, no direct access, use av_codec_get_max_lowres()
- const AVClass *priv_class; ///< AVClass for the private context
- const AVProfile *profiles; ///< array of recognized profiles, or NULL if unknown, array is terminated by {FF_PROFILE_UNKNOWN}
-
- /*****************************************************************
- * No fields below this line are part of the public API. They
- * may not be used outside of libavcodec and can be changed and
- * removed at will.
- * New public fields should be added right above.
- *****************************************************************
- */
- int priv_data_size;
- struct AVCodec *next;
- /**
- * @name Frame-level threading support functions
- * @{
- */
- /**
- * If defined, called on thread contexts when they are created.
- * If the codec allocates writable tables in init(), re-allocate them here.
- * priv_data will be set to a copy of the original.
- */
- int (*init_thread_copy)(AVCodecContext *);
- /**
- * Copy necessary context variables from a previous thread context to the current one.
- * If not defined, the next thread will start automatically; otherwise, the codec
- * must call ff_thread_finish_setup().
- *
- * dst and src will (rarely) point to the same context, in which case memcpy should be skipped.
- */
- int (*update_thread_context)(AVCodecContext *dst, const AVCodecContext *src);
- /** @} */
-
- /**
- * Private codec-specific defaults.
- */
- const AVCodecDefault *defaults;
-
- /**
- * Initialize codec static data, called from avcodec_register().
- */
- void (*init_static_data)(struct AVCodec *codec);
-
- int (*init)(AVCodecContext *);
- int (*encode_sub)(AVCodecContext *, uint8_t *buf, int buf_size,
- const struct AVSubtitle *sub);
- /**
- * Encode data to an AVPacket.
- *
- * @param avctx codec context
- * @param avpkt output AVPacket (may contain a user-provided buffer)
- * @param[in] frame AVFrame containing the raw data to be encoded
- * @param[out] got_packet_ptr encoder sets to 0 or 1 to indicate that a
- * non-empty packet was returned in avpkt.
- * @return 0 on success, negative error code on failure
- */
- int (*encode2)(AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame,
- int *got_packet_ptr);
- int (*decode)(AVCodecContext *, void *outdata, int *outdata_size, AVPacket *avpkt);
- int (*close)(AVCodecContext *);
- /**
- * Flush buffers.
- * Will be called when seeking
- */
- void (*flush)(AVCodecContext *);
- /**
- * Internal codec capabilities.
- * See FF_CODEC_CAP_* in internal.h
- */
- int caps_internal;
-} AVCodec;
-
-int av_codec_get_max_lowres(const AVCodec *codec);
-
-struct MpegEncContext;
-
-/**
- * @defgroup lavc_hwaccel AVHWAccel
- * @{
- */
-typedef struct AVHWAccel {
- /**
- * Name of the hardware accelerated codec.
- * The name is globally unique among encoders and among decoders (but an
- * encoder and a decoder can share the same name).
- */
- const char *name;
-
- /**
- * Type of codec implemented by the hardware accelerator.
- *
- * See AVMEDIA_TYPE_xxx
- */
- enum AVMediaType type;
-
- /**
- * Codec implemented by the hardware accelerator.
- *
- * See AV_CODEC_ID_xxx
- */
- enum AVCodecID id;
-
- /**
- * Supported pixel format.
- *
- * Only hardware accelerated formats are supported here.
- */
- enum AVPixelFormat pix_fmt;
-
- /**
- * Hardware accelerated codec capabilities.
- * see HWACCEL_CODEC_CAP_*
- */
- int capabilities;
-
- /*****************************************************************
- * No fields below this line are part of the public API. They
- * may not be used outside of libavcodec and can be changed and
- * removed at will.
- * New public fields should be added right above.
- *****************************************************************
- */
- struct AVHWAccel *next;
-
- /**
- * Allocate a custom buffer
- */
- int (*alloc_frame)(AVCodecContext *avctx, AVFrame *frame);
-
- /**
- * Called at the beginning of each frame or field picture.
- *
- * Meaningful frame information (codec specific) is guaranteed to
- * be parsed at this point. This function is mandatory.
- *
- * Note that buf can be NULL along with buf_size set to 0.
- * Otherwise, this means the whole frame is available at this point.
- *
- * @param avctx the codec context
- * @param buf the frame data buffer base
- * @param buf_size the size of the frame in bytes
- * @return zero if successful, a negative value otherwise
- */
- int (*start_frame)(AVCodecContext *avctx, const uint8_t *buf, uint32_t buf_size);
-
- /**
- * Callback for each slice.
- *
- * Meaningful slice information (codec specific) is guaranteed to
- * be parsed at this point. This function is mandatory.
- * The only exception is XvMC, that works on MB level.
- *
- * @param avctx the codec context
- * @param buf the slice data buffer base
- * @param buf_size the size of the slice in bytes
- * @return zero if successful, a negative value otherwise
- */
- int (*decode_slice)(AVCodecContext *avctx, const uint8_t *buf, uint32_t buf_size);
-
- /**
- * Called at the end of each frame or field picture.
- *
- * The whole picture is parsed at this point and can now be sent
- * to the hardware accelerator. This function is mandatory.
- *
- * @param avctx the codec context
- * @return zero if successful, a negative value otherwise
- */
- int (*end_frame)(AVCodecContext *avctx);
-
- /**
- * Size of per-frame hardware accelerator private data.
- *
- * Private data is allocated with av_mallocz() before
- * AVCodecContext.get_buffer() and deallocated after
- * AVCodecContext.release_buffer().
- */
- int frame_priv_data_size;
-
- /**
- * Called for every Macroblock in a slice.
- *
- * XvMC uses it to replace the ff_mpv_decode_mb().
- * Instead of decoding to raw picture, MB parameters are
- * stored in an array provided by the video driver.
- *
- * @param s the mpeg context
- */
- void (*decode_mb)(struct MpegEncContext *s);
-
- /**
- * Initialize the hwaccel private data.
- *
- * This will be called from ff_get_format(), after hwaccel and
- * hwaccel_context are set and the hwaccel private data in AVCodecInternal
- * is allocated.
- */
- int (*init)(AVCodecContext *avctx);
-
- /**
- * Uninitialize the hwaccel private data.
- *
- * This will be called from get_format() or avcodec_close(), after hwaccel
- * and hwaccel_context are already uninitialized.
- */
- int (*uninit)(AVCodecContext *avctx);
-
- /**
- * Size of the private data to allocate in
- * AVCodecInternal.hwaccel_priv_data.
- */
- int priv_data_size;
-} AVHWAccel;
-
-/**
- * Hardware acceleration should be used for decoding even if the codec level
- * used is unknown or higher than the maximum supported level reported by the
- * hardware driver.
- *
- * It's generally a good idea to pass this flag unless you have a specific
- * reason not to, as hardware tends to under-report supported levels.
- */
-#define AV_HWACCEL_FLAG_IGNORE_LEVEL (1 << 0)
-
-/**
- * Hardware acceleration can output YUV pixel formats with a different chroma
- * sampling than 4:2:0 and/or other than 8 bits per component.
- */
-#define AV_HWACCEL_FLAG_ALLOW_HIGH_DEPTH (1 << 1)
-
-/**
- * @}
- */
-
-#if FF_API_AVPICTURE
-/**
- * @defgroup lavc_picture AVPicture
- *
- * Functions for working with AVPicture
- * @{
- */
-
-/**
- * Picture data structure.
- *
- * Up to four components can be stored into it, the last component is
- * alpha.
- * @deprecated use AVFrame or imgutils functions instead
- */
-typedef struct AVPicture {
- attribute_deprecated
- uint8_t *data[AV_NUM_DATA_POINTERS]; ///< pointers to the image data planes
- attribute_deprecated
- int linesize[AV_NUM_DATA_POINTERS]; ///< number of bytes per line
-} AVPicture;
-
-/**
- * @}
- */
-#endif
-
-enum AVSubtitleType {
- SUBTITLE_NONE,
-
- SUBTITLE_BITMAP, ///< A bitmap, pict will be set
-
- /**
- * Plain text, the text field must be set by the decoder and is
- * authoritative. ass and pict fields may contain approximations.
- */
- SUBTITLE_TEXT,
-
- /**
- * Formatted text, the ass field must be set by the decoder and is
- * authoritative. pict and text fields may contain approximations.
- */
- SUBTITLE_ASS,
-};
-
-#define AV_SUBTITLE_FLAG_FORCED 0x00000001
-
-typedef struct AVSubtitleRect {
- int x; ///< top left corner of pict, undefined when pict is not set
- int y; ///< top left corner of pict, undefined when pict is not set
- int w; ///< width of pict, undefined when pict is not set
- int h; ///< height of pict, undefined when pict is not set
- int nb_colors; ///< number of colors in pict, undefined when pict is not set
-
-#if FF_API_AVPICTURE
- /**
- * @deprecated unused
- */
- attribute_deprecated
- AVPicture pict;
-#endif
- /**
- * data+linesize for the bitmap of this subtitle.
- * Can be set for text/ass as well once they are rendered.
- */
- uint8_t *data[4];
- int linesize[4];
-
- enum AVSubtitleType type;
-
- char *text; ///< 0 terminated plain UTF-8 text
-
- /**
- * 0 terminated ASS/SSA compatible event line.
- * The presentation of this is unaffected by the other values in this
- * struct.
- */
- char *ass;
-
- int flags;
-} AVSubtitleRect;
-
-typedef struct AVSubtitle {
- uint16_t format; /* 0 = graphics */
- uint32_t start_display_time; /* relative to packet pts, in ms */
- uint32_t end_display_time; /* relative to packet pts, in ms */
- unsigned num_rects;
- AVSubtitleRect **rects;
- int64_t pts; ///< Same as packet pts, in AV_TIME_BASE
-} AVSubtitle;
-
-/**
- * If c is NULL, returns the first registered codec,
- * if c is non-NULL, returns the next registered codec after c,
- * or NULL if c is the last one.
- */
-AVCodec *av_codec_next(const AVCodec *c);
-
-/**
- * Return the LIBAVCODEC_VERSION_INT constant.
- */
-unsigned avcodec_version(void);
-
-/**
- * Return the libavcodec build-time configuration.
- */
-const char *avcodec_configuration(void);
-
-/**
- * Return the libavcodec license.
- */
-const char *avcodec_license(void);
-
-/**
- * Register the codec codec and initialize libavcodec.
- *
- * @warning either this function or avcodec_register_all() must be called
- * before any other libavcodec functions.
- *
- * @see avcodec_register_all()
- */
-void avcodec_register(AVCodec *codec);
-
-/**
- * Register all the codecs, parsers and bitstream filters which were enabled at
- * configuration time. If you do not call this function you can select exactly
- * which formats you want to support, by using the individual registration
- * functions.
- *
- * @see avcodec_register
- * @see av_register_codec_parser
- * @see av_register_bitstream_filter
- */
-void avcodec_register_all(void);
-
-/**
- * Allocate an AVCodecContext and set its fields to default values. The
- * resulting struct should be freed with avcodec_free_context().
- *
- * @param codec if non-NULL, allocate private data and initialize defaults
- * for the given codec. It is illegal to then call avcodec_open2()
- * with a different codec.
- * If NULL, then the codec-specific defaults won't be initialized,
- * which may result in suboptimal default settings (this is
- * important mainly for encoders, e.g. libx264).
- *
- * @return An AVCodecContext filled with default values or NULL on failure.
- * @see avcodec_get_context_defaults
- */
-AVCodecContext *avcodec_alloc_context3(const AVCodec *codec);
-
-/**
- * Free the codec context and everything associated with it and write NULL to
- * the provided pointer.
- */
-void avcodec_free_context(AVCodecContext **avctx);
-
-/**
- * Set the fields of the given AVCodecContext to default values corresponding
- * to the given codec (defaults may be codec-dependent).
- *
- * Do not call this function if a non-NULL codec has been passed
- * to avcodec_alloc_context3() that allocated this AVCodecContext.
- * If codec is non-NULL, it is illegal to call avcodec_open2() with a
- * different codec on this AVCodecContext.
- */
-int avcodec_get_context_defaults3(AVCodecContext *s, const AVCodec *codec);
-
-/**
- * Get the AVClass for AVCodecContext. It can be used in combination with
- * AV_OPT_SEARCH_FAKE_OBJ for examining options.
- *
- * @see av_opt_find().
- */
-const AVClass *avcodec_get_class(void);
-
-/**
- * Get the AVClass for AVFrame. It can be used in combination with
- * AV_OPT_SEARCH_FAKE_OBJ for examining options.
- *
- * @see av_opt_find().
- */
-const AVClass *avcodec_get_frame_class(void);
-
-/**
- * Get the AVClass for AVSubtitleRect. It can be used in combination with
- * AV_OPT_SEARCH_FAKE_OBJ for examining options.
- *
- * @see av_opt_find().
- */
-const AVClass *avcodec_get_subtitle_rect_class(void);
-
-/**
- * Copy the settings of the source AVCodecContext into the destination
- * AVCodecContext. The resulting destination codec context will be
- * unopened, i.e. you are required to call avcodec_open2() before you
- * can use this AVCodecContext to decode/encode video/audio data.
- *
- * @param dest target codec context, should be initialized with
- * avcodec_alloc_context3(NULL), but otherwise uninitialized
- * @param src source codec context
- * @return AVERROR() on error (e.g. memory allocation error), 0 on success
- */
-int avcodec_copy_context(AVCodecContext *dest, const AVCodecContext *src);
-
-/**
- * Initialize the AVCodecContext to use the given AVCodec. Prior to using this
- * function the context has to be allocated with avcodec_alloc_context3().
- *
- * The functions avcodec_find_decoder_by_name(), avcodec_find_encoder_by_name(),
- * avcodec_find_decoder() and avcodec_find_encoder() provide an easy way for
- * retrieving a codec.
- *
- * @warning This function is not thread safe!
- *
- * @note Always call this function before using decoding routines (such as
- * @ref avcodec_decode_video2()).
- *
- * @code
- * avcodec_register_all();
- * av_dict_set(&opts, "b", "2.5M", 0);
- * codec = avcodec_find_decoder(AV_CODEC_ID_H264);
- * if (!codec)
- * exit(1);
- *
- * context = avcodec_alloc_context3(codec);
- *
- * if (avcodec_open2(context, codec, opts) < 0)
- * exit(1);
- * @endcode
- *
- * @param avctx The context to initialize.
- * @param codec The codec to open this context for. If a non-NULL codec has been
- * previously passed to avcodec_alloc_context3() or
- * avcodec_get_context_defaults3() for this context, then this
- * parameter MUST be either NULL or equal to the previously passed
- * codec.
- * @param options A dictionary filled with AVCodecContext and codec-private options.
- * On return this object will be filled with options that were not found.
- *
- * @return zero on success, a negative value on error
- * @see avcodec_alloc_context3(), avcodec_find_decoder(), avcodec_find_encoder(),
- * av_dict_set(), av_opt_find().
- */
-int avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options);
-
-/**
- * Close a given AVCodecContext and free all the data associated with it
- * (but not the AVCodecContext itself).
- *
- * Calling this function on an AVCodecContext that hasn't been opened will free
- * the codec-specific data allocated in avcodec_alloc_context3() /
- * avcodec_get_context_defaults3() with a non-NULL codec. Subsequent calls will
- * do nothing.
- */
-int avcodec_close(AVCodecContext *avctx);
-
-/**
- * Free all allocated data in the given subtitle struct.
- *
- * @param sub AVSubtitle to free.
- */
-void avsubtitle_free(AVSubtitle *sub);
-
-/**
- * @}
- */
-
-/**
- * @addtogroup lavc_packet
- * @{
- */
-
-/**
- * Allocate an AVPacket and set its fields to default values. The resulting
- * struct must be freed using av_packet_free().
- *
- * @return An AVPacket filled with default values or NULL on failure.
- *
- * @note this only allocates the AVPacket itself, not the data buffers. Those
- * must be allocated through other means such as av_new_packet.
- *
- * @see av_new_packet
- */
-AVPacket *av_packet_alloc(void);
-
-/**
- * Create a new packet that references the same data as src.
- *
- * This is a shortcut for av_packet_alloc()+av_packet_ref().
- *
- * @return newly created AVPacket on success, NULL on error.
- *
- * @see av_packet_alloc
- * @see av_packet_ref
- */
-AVPacket *av_packet_clone(AVPacket *src);
-
-/**
- * Free the packet, if the packet is reference counted, it will be
- * unreferenced first.
- *
- * @param packet packet to be freed. The pointer will be set to NULL.
- * @note passing NULL is a no-op.
- */
-void av_packet_free(AVPacket **pkt);
-
-/**
- * Initialize optional fields of a packet with default values.
- *
- * Note, this does not touch the data and size members, which have to be
- * initialized separately.
- *
- * @param pkt packet
- */
-void av_init_packet(AVPacket *pkt);
-
-/**
- * Allocate the payload of a packet and initialize its fields with
- * default values.
- *
- * @param pkt packet
- * @param size wanted payload size
- * @return 0 if OK, AVERROR_xxx otherwise
- */
-int av_new_packet(AVPacket *pkt, int size);
-
-/**
- * Reduce packet size, correctly zeroing padding
- *
- * @param pkt packet
- * @param size new size
- */
-void av_shrink_packet(AVPacket *pkt, int size);
-
-/**
- * Increase packet size, correctly zeroing padding
- *
- * @param pkt packet
- * @param grow_by number of bytes by which to increase the size of the packet
- */
-int av_grow_packet(AVPacket *pkt, int grow_by);
-
-/**
- * Initialize a reference-counted packet from av_malloc()ed data.
- *
- * @param pkt packet to be initialized. This function will set the data, size,
- * buf and destruct fields, all others are left untouched.
- * @param data Data allocated by av_malloc() to be used as packet data. If this
- * function returns successfully, the data is owned by the underlying AVBuffer.
- * The caller may not access the data through other means.
- * @param size size of data in bytes, without the padding. I.e. the full buffer
- * size is assumed to be size + AV_INPUT_BUFFER_PADDING_SIZE.
- *
- * @return 0 on success, a negative AVERROR on error
- */
-int av_packet_from_data(AVPacket *pkt, uint8_t *data, int size);
-
-#if FF_API_AVPACKET_OLD_API
-/**
- * @warning This is a hack - the packet memory allocation stuff is broken. The
- * packet is allocated if it was not really allocated.
- *
- * @deprecated Use av_packet_ref
- */
-attribute_deprecated
-int av_dup_packet(AVPacket *pkt);
-/**
- * Copy packet, including contents
- *
- * @return 0 on success, negative AVERROR on fail
- */
-int av_copy_packet(AVPacket *dst, const AVPacket *src);
-
-/**
- * Copy packet side data
- *
- * @return 0 on success, negative AVERROR on fail
- */
-int av_copy_packet_side_data(AVPacket *dst, const AVPacket *src);
-
-/**
- * Free a packet.
- *
- * @deprecated Use av_packet_unref
- *
- * @param pkt packet to free
- */
-attribute_deprecated
-void av_free_packet(AVPacket *pkt);
-#endif
-/**
- * Allocate new information of a packet.
- *
- * @param pkt packet
- * @param type side information type
- * @param size side information size
- * @return pointer to fresh allocated data or NULL otherwise
- */
-uint8_t* av_packet_new_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
- int size);
-
-/**
- * Wrap an existing array as a packet side data.
- *
- * @param pkt packet
- * @param type side information type
- * @param data the side data array. It must be allocated with the av_malloc()
- * family of functions. The ownership of the data is transferred to
- * pkt.
- * @param size side information size
- * @return a non-negative number on success, a negative AVERROR code on
- * failure. On failure, the packet is unchanged and the data remains
- * owned by the caller.
- */
-int av_packet_add_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
- uint8_t *data, size_t size);
-
-/**
- * Shrink the already allocated side data buffer
- *
- * @param pkt packet
- * @param type side information type
- * @param size new side information size
- * @return 0 on success, < 0 on failure
- */
-int av_packet_shrink_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
- int size);
-
-/**
- * Get side information from packet.
- *
- * @param pkt packet
- * @param type desired side information type
- * @param size pointer for side information size to store (optional)
- * @return pointer to data if present or NULL otherwise
- */
-uint8_t* av_packet_get_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
- int *size);
-
-int av_packet_merge_side_data(AVPacket *pkt);
-
-int av_packet_split_side_data(AVPacket *pkt);
-
-const char *av_packet_side_data_name(enum AVPacketSideDataType type);
-
-/**
- * Pack a dictionary for use in side_data.
- *
- * @param dict The dictionary to pack.
- * @param size pointer to store the size of the returned data
- * @return pointer to data if successful, NULL otherwise
- */
-uint8_t *av_packet_pack_dictionary(AVDictionary *dict, int *size);
-/**
- * Unpack a dictionary from side_data.
- *
- * @param data data from side_data
- * @param size size of the data
- * @param dict the metadata storage dictionary
- * @return 0 on success, < 0 on failure
- */
-int av_packet_unpack_dictionary(const uint8_t *data, int size, AVDictionary **dict);
-
-
-/**
- * Convenience function to free all the side data stored.
- * All the other fields stay untouched.
- *
- * @param pkt packet
- */
-void av_packet_free_side_data(AVPacket *pkt);
-
-/**
- * Setup a new reference to the data described by a given packet
- *
- * If src is reference-counted, setup dst as a new reference to the
- * buffer in src. Otherwise allocate a new buffer in dst and copy the
- * data from src into it.
- *
- * All the other fields are copied from src.
- *
- * @see av_packet_unref
- *
- * @param dst Destination packet
- * @param src Source packet
- *
- * @return 0 on success, a negative AVERROR on error.
- */
-int av_packet_ref(AVPacket *dst, const AVPacket *src);
-
-/**
- * Wipe the packet.
- *
- * Unreference the buffer referenced by the packet and reset the
- * remaining packet fields to their default values.
- *
- * @param pkt The packet to be unreferenced.
- */
-void av_packet_unref(AVPacket *pkt);
-
-/**
- * Move every field in src to dst and reset src.
- *
- * @see av_packet_unref
- *
- * @param src Source packet, will be reset
- * @param dst Destination packet
- */
-void av_packet_move_ref(AVPacket *dst, AVPacket *src);
-
-/**
- * Copy only "properties" fields from src to dst.
- *
- * Properties for the purpose of this function are all the fields
- * beside those related to the packet data (buf, data, size)
- *
- * @param dst Destination packet
- * @param src Source packet
- *
- * @return 0 on success AVERROR on failure.
- *
- */
-int av_packet_copy_props(AVPacket *dst, const AVPacket *src);
-
-/**
- * Convert valid timing fields (timestamps / durations) in a packet from one
- * timebase to another. Timestamps with unknown values (AV_NOPTS_VALUE) will be
- * ignored.
- *
- * @param pkt packet on which the conversion will be performed
- * @param tb_src source timebase, in which the timing fields in pkt are
- * expressed
- * @param tb_dst destination timebase, to which the timing fields will be
- * converted
- */
-void av_packet_rescale_ts(AVPacket *pkt, AVRational tb_src, AVRational tb_dst);
-
-/**
- * @}
- */
-
-/**
- * @addtogroup lavc_decoding
- * @{
- */
-
-/**
- * Find a registered decoder with a matching codec ID.
- *
- * @param id AVCodecID of the requested decoder
- * @return A decoder if one was found, NULL otherwise.
- */
-AVCodec *avcodec_find_decoder(enum AVCodecID id);
-
-/**
- * Find a registered decoder with the specified name.
- *
- * @param name name of the requested decoder
- * @return A decoder if one was found, NULL otherwise.
- */
-AVCodec *avcodec_find_decoder_by_name(const char *name);
-
-/**
- * The default callback for AVCodecContext.get_buffer2(). It is made public so
- * it can be called by custom get_buffer2() implementations for decoders without
- * AV_CODEC_CAP_DR1 set.
- */
-int avcodec_default_get_buffer2(AVCodecContext *s, AVFrame *frame, int flags);
-
-#if FF_API_EMU_EDGE
-/**
- * Return the amount of padding in pixels which the get_buffer callback must
- * provide around the edge of the image for codecs which do not have the
- * CODEC_FLAG_EMU_EDGE flag.
- *
- * @return Required padding in pixels.
- *
- * @deprecated CODEC_FLAG_EMU_EDGE is deprecated, so this function is no longer
- * needed
- */
-attribute_deprecated
-unsigned avcodec_get_edge_width(void);
-#endif
-
-/**
- * Modify width and height values so that they will result in a memory
- * buffer that is acceptable for the codec if you do not use any horizontal
- * padding.
- *
- * May only be used if a codec with AV_CODEC_CAP_DR1 has been opened.
- */
-void avcodec_align_dimensions(AVCodecContext *s, int *width, int *height);
-
-/**
- * Modify width and height values so that they will result in a memory
- * buffer that is acceptable for the codec if you also ensure that all
- * line sizes are a multiple of the respective linesize_align[i].
- *
- * May only be used if a codec with AV_CODEC_CAP_DR1 has been opened.
- */
-void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height,
- int linesize_align[AV_NUM_DATA_POINTERS]);
-
-/**
- * Converts AVChromaLocation to swscale x/y chroma position.
- *
- * The positions represent the chroma (0,0) position in a coordinates system
- * with luma (0,0) representing the origin and luma(1,1) representing 256,256
- *
- * @param xpos horizontal chroma sample position
- * @param ypos vertical chroma sample position
- */
-int avcodec_enum_to_chroma_pos(int *xpos, int *ypos, enum AVChromaLocation pos);
-
-/**
- * Converts swscale x/y chroma position to AVChromaLocation.
- *
- * The positions represent the chroma (0,0) position in a coordinates system
- * with luma (0,0) representing the origin and luma(1,1) representing 256,256
- *
- * @param xpos horizontal chroma sample position
- * @param ypos vertical chroma sample position
- */
-enum AVChromaLocation avcodec_chroma_pos_to_enum(int xpos, int ypos);
-
-/**
- * Decode the audio frame of size avpkt->size from avpkt->data into frame.
- *
- * Some decoders may support multiple frames in a single AVPacket. Such
- * decoders would then just decode the first frame and the return value would be
- * less than the packet size. In this case, avcodec_decode_audio4 has to be
- * called again with an AVPacket containing the remaining data in order to
- * decode the second frame, etc... Even if no frames are returned, the packet
- * needs to be fed to the decoder with remaining data until it is completely
- * consumed or an error occurs.
- *
- * Some decoders (those marked with AV_CODEC_CAP_DELAY) have a delay between input
- * and output. This means that for some packets they will not immediately
- * produce decoded output and need to be flushed at the end of decoding to get
- * all the decoded data. Flushing is done by calling this function with packets
- * with avpkt->data set to NULL and avpkt->size set to 0 until it stops
- * returning samples. It is safe to flush even those decoders that are not
- * marked with AV_CODEC_CAP_DELAY, then no samples will be returned.
- *
- * @warning The input buffer, avpkt->data must be AV_INPUT_BUFFER_PADDING_SIZE
- * larger than the actual read bytes because some optimized bitstream
- * readers read 32 or 64 bits at once and could read over the end.
- *
- * @note The AVCodecContext MUST have been opened with @ref avcodec_open2()
- * before packets may be fed to the decoder.
- *
- * @param avctx the codec context
- * @param[out] frame The AVFrame in which to store decoded audio samples.
- * The decoder will allocate a buffer for the decoded frame by
- * calling the AVCodecContext.get_buffer2() callback.
- * When AVCodecContext.refcounted_frames is set to 1, the frame is
- * reference counted and the returned reference belongs to the
- * caller. The caller must release the frame using av_frame_unref()
- * when the frame is no longer needed. The caller may safely write
- * to the frame if av_frame_is_writable() returns 1.
- * When AVCodecContext.refcounted_frames is set to 0, the returned
- * reference belongs to the decoder and is valid only until the
- * next call to this function or until closing or flushing the
- * decoder. The caller may not write to it.
- * @param[out] got_frame_ptr Zero if no frame could be decoded, otherwise it is
- * non-zero. Note that this field being set to zero
- * does not mean that an error has occurred. For
- * decoders with AV_CODEC_CAP_DELAY set, no given decode
- * call is guaranteed to produce a frame.
- * @param[in] avpkt The input AVPacket containing the input buffer.
- * At least avpkt->data and avpkt->size should be set. Some
- * decoders might also require additional fields to be set.
- * @return A negative error code is returned if an error occurred during
- * decoding, otherwise the number of bytes consumed from the input
- * AVPacket is returned.
- */
-int avcodec_decode_audio4(AVCodecContext *avctx, AVFrame *frame,
- int *got_frame_ptr, const AVPacket *avpkt);
-
-/**
- * Decode the video frame of size avpkt->size from avpkt->data into picture.
- * Some decoders may support multiple frames in a single AVPacket, such
- * decoders would then just decode the first frame.
- *
- * @warning The input buffer must be AV_INPUT_BUFFER_PADDING_SIZE larger than
- * the actual read bytes because some optimized bitstream readers read 32 or 64
- * bits at once and could read over the end.
- *
- * @warning The end of the input buffer buf should be set to 0 to ensure that
- * no overreading happens for damaged MPEG streams.
- *
- * @note Codecs which have the AV_CODEC_CAP_DELAY capability set have a delay
- * between input and output, these need to be fed with avpkt->data=NULL,
- * avpkt->size=0 at the end to return the remaining frames.
- *
- * @note The AVCodecContext MUST have been opened with @ref avcodec_open2()
- * before packets may be fed to the decoder.
- *
- * @param avctx the codec context
- * @param[out] picture The AVFrame in which the decoded video frame will be stored.
- * Use av_frame_alloc() to get an AVFrame. The codec will
- * allocate memory for the actual bitmap by calling the
- * AVCodecContext.get_buffer2() callback.
- * When AVCodecContext.refcounted_frames is set to 1, the frame is
- * reference counted and the returned reference belongs to the
- * caller. The caller must release the frame using av_frame_unref()
- * when the frame is no longer needed. The caller may safely write
- * to the frame if av_frame_is_writable() returns 1.
- * When AVCodecContext.refcounted_frames is set to 0, the returned
- * reference belongs to the decoder and is valid only until the
- * next call to this function or until closing or flushing the
- * decoder. The caller may not write to it.
- *
- * @param[in] avpkt The input AVPacket containing the input buffer.
- * You can create such packet with av_init_packet() and by then setting
- * data and size, some decoders might in addition need other fields like
- * flags&AV_PKT_FLAG_KEY. All decoders are designed to use the least
- * fields possible.
- * @param[in,out] got_picture_ptr Zero if no frame could be decompressed, otherwise, it is nonzero.
- * @return On error a negative value is returned, otherwise the number of bytes
- * used or zero if no frame could be decompressed.
- */
-int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture,
- int *got_picture_ptr,
- const AVPacket *avpkt);
-
-/**
- * Decode a subtitle message.
- * Return a negative value on error, otherwise return the number of bytes used.
- * If no subtitle could be decompressed, got_sub_ptr is zero.
- * Otherwise, the subtitle is stored in *sub.
- * Note that AV_CODEC_CAP_DR1 is not available for subtitle codecs. This is for
- * simplicity, because the performance difference is expect to be negligible
- * and reusing a get_buffer written for video codecs would probably perform badly
- * due to a potentially very different allocation pattern.
- *
- * Some decoders (those marked with CODEC_CAP_DELAY) have a delay between input
- * and output. This means that for some packets they will not immediately
- * produce decoded output and need to be flushed at the end of decoding to get
- * all the decoded data. Flushing is done by calling this function with packets
- * with avpkt->data set to NULL and avpkt->size set to 0 until it stops
- * returning subtitles. It is safe to flush even those decoders that are not
- * marked with CODEC_CAP_DELAY, then no subtitles will be returned.
- *
- * @note The AVCodecContext MUST have been opened with @ref avcodec_open2()
- * before packets may be fed to the decoder.
- *
- * @param avctx the codec context
- * @param[out] sub The Preallocated AVSubtitle in which the decoded subtitle will be stored,
- * must be freed with avsubtitle_free if *got_sub_ptr is set.
- * @param[in,out] got_sub_ptr Zero if no subtitle could be decompressed, otherwise, it is nonzero.
- * @param[in] avpkt The input AVPacket containing the input buffer.
- */
-int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub,
- int *got_sub_ptr,
- AVPacket *avpkt);
-
-/**
- * @defgroup lavc_parsing Frame parsing
- * @{
- */
-
-enum AVPictureStructure {
- AV_PICTURE_STRUCTURE_UNKNOWN, //< unknown
- AV_PICTURE_STRUCTURE_TOP_FIELD, //< coded as top field
- AV_PICTURE_STRUCTURE_BOTTOM_FIELD, //< coded as bottom field
- AV_PICTURE_STRUCTURE_FRAME, //< coded as frame
-};
-
-typedef struct AVCodecParserContext {
- void *priv_data;
- struct AVCodecParser *parser;
- int64_t frame_offset; /* offset of the current frame */
- int64_t cur_offset; /* current offset
- (incremented by each av_parser_parse()) */
- int64_t next_frame_offset; /* offset of the next frame */
- /* video info */
- int pict_type; /* XXX: Put it back in AVCodecContext. */
- /**
- * This field is used for proper frame duration computation in lavf.
- * It signals, how much longer the frame duration of the current frame
- * is compared to normal frame duration.
- *
- * frame_duration = (1 + repeat_pict) * time_base
- *
- * It is used by codecs like H.264 to display telecined material.
- */
- int repeat_pict; /* XXX: Put it back in AVCodecContext. */
- int64_t pts; /* pts of the current frame */
- int64_t dts; /* dts of the current frame */
-
- /* private data */
- int64_t last_pts;
- int64_t last_dts;
- int fetch_timestamp;
-
-#define AV_PARSER_PTS_NB 4
- int cur_frame_start_index;
- int64_t cur_frame_offset[AV_PARSER_PTS_NB];
- int64_t cur_frame_pts[AV_PARSER_PTS_NB];
- int64_t cur_frame_dts[AV_PARSER_PTS_NB];
-
- int flags;
-#define PARSER_FLAG_COMPLETE_FRAMES 0x0001
-#define PARSER_FLAG_ONCE 0x0002
-/// Set if the parser has a valid file offset
-#define PARSER_FLAG_FETCHED_OFFSET 0x0004
-#define PARSER_FLAG_USE_CODEC_TS 0x1000
-
- int64_t offset; ///< byte offset from starting packet start
- int64_t cur_frame_end[AV_PARSER_PTS_NB];
-
- /**
- * Set by parser to 1 for key frames and 0 for non-key frames.
- * It is initialized to -1, so if the parser doesn't set this flag,
- * old-style fallback using AV_PICTURE_TYPE_I picture type as key frames
- * will be used.
- */
- int key_frame;
-
-#if FF_API_CONVERGENCE_DURATION
- /**
- * @deprecated unused
- */
- attribute_deprecated
- int64_t convergence_duration;
-#endif
-
- // Timestamp generation support:
- /**
- * Synchronization point for start of timestamp generation.
- *
- * Set to >0 for sync point, 0 for no sync point and <0 for undefined
- * (default).
- *
- * For example, this corresponds to presence of H.264 buffering period
- * SEI message.
- */
- int dts_sync_point;
-
- /**
- * Offset of the current timestamp against last timestamp sync point in
- * units of AVCodecContext.time_base.
- *
- * Set to INT_MIN when dts_sync_point unused. Otherwise, it must
- * contain a valid timestamp offset.
- *
- * Note that the timestamp of sync point has usually a nonzero
- * dts_ref_dts_delta, which refers to the previous sync point. Offset of
- * the next frame after timestamp sync point will be usually 1.
- *
- * For example, this corresponds to H.264 cpb_removal_delay.
- */
- int dts_ref_dts_delta;
-
- /**
- * Presentation delay of current frame in units of AVCodecContext.time_base.
- *
- * Set to INT_MIN when dts_sync_point unused. Otherwise, it must
- * contain valid non-negative timestamp delta (presentation time of a frame
- * must not lie in the past).
- *
- * This delay represents the difference between decoding and presentation
- * time of the frame.
- *
- * For example, this corresponds to H.264 dpb_output_delay.
- */
- int pts_dts_delta;
-
- /**
- * Position of the packet in file.
- *
- * Analogous to cur_frame_pts/dts
- */
- int64_t cur_frame_pos[AV_PARSER_PTS_NB];
-
- /**
- * Byte position of currently parsed frame in stream.
- */
- int64_t pos;
-
- /**
- * Previous frame byte position.
- */
- int64_t last_pos;
-
- /**
- * Duration of the current frame.
- * For audio, this is in units of 1 / AVCodecContext.sample_rate.
- * For all other types, this is in units of AVCodecContext.time_base.
- */
- int duration;
-
- enum AVFieldOrder field_order;
-
- /**
- * Indicate whether a picture is coded as a frame, top field or bottom field.
- *
- * For example, H.264 field_pic_flag equal to 0 corresponds to
- * AV_PICTURE_STRUCTURE_FRAME. An H.264 picture with field_pic_flag
- * equal to 1 and bottom_field_flag equal to 0 corresponds to
- * AV_PICTURE_STRUCTURE_TOP_FIELD.
- */
- enum AVPictureStructure picture_structure;
-
- /**
- * Picture number incremented in presentation or output order.
- * This field may be reinitialized at the first picture of a new sequence.
- *
- * For example, this corresponds to H.264 PicOrderCnt.
- */
- int output_picture_number;
-
- /**
- * Dimensions of the decoded video intended for presentation.
- */
- int width;
- int height;
-
- /**
- * Dimensions of the coded video.
- */
- int coded_width;
- int coded_height;
-
- /**
- * The format of the coded data, corresponds to enum AVPixelFormat for video
- * and for enum AVSampleFormat for audio.
- *
- * Note that a decoder can have considerable freedom in how exactly it
- * decodes the data, so the format reported here might be different from the
- * one returned by a decoder.
- */
- int format;
-} AVCodecParserContext;
-
-typedef struct AVCodecParser {
- int codec_ids[5]; /* several codec IDs are permitted */
- int priv_data_size;
- int (*parser_init)(AVCodecParserContext *s);
- /* This callback never returns an error, a negative value means that
- * the frame start was in a previous packet. */
- int (*parser_parse)(AVCodecParserContext *s,
- AVCodecContext *avctx,
- const uint8_t **poutbuf, int *poutbuf_size,
- const uint8_t *buf, int buf_size);
- void (*parser_close)(AVCodecParserContext *s);
- int (*split)(AVCodecContext *avctx, const uint8_t *buf, int buf_size);
- struct AVCodecParser *next;
-} AVCodecParser;
-
-AVCodecParser *av_parser_next(const AVCodecParser *c);
-
-void av_register_codec_parser(AVCodecParser *parser);
-AVCodecParserContext *av_parser_init(int codec_id);
-
-/**
- * Parse a packet.
- *
- * @param s parser context.
- * @param avctx codec context.
- * @param poutbuf set to pointer to parsed buffer or NULL if not yet finished.
- * @param poutbuf_size set to size of parsed buffer or zero if not yet finished.
- * @param buf input buffer.
- * @param buf_size input length, to signal EOF, this should be 0 (so that the last frame can be output).
- * @param pts input presentation timestamp.
- * @param dts input decoding timestamp.
- * @param pos input byte position in stream.
- * @return the number of bytes of the input bitstream used.
- *
- * Example:
- * @code
- * while(in_len){
- * len = av_parser_parse2(myparser, AVCodecContext, &data, &size,
- * in_data, in_len,
- * pts, dts, pos);
- * in_data += len;
- * in_len -= len;
- *
- * if(size)
- * decode_frame(data, size);
- * }
- * @endcode
- */
-int av_parser_parse2(AVCodecParserContext *s,
- AVCodecContext *avctx,
- uint8_t **poutbuf, int *poutbuf_size,
- const uint8_t *buf, int buf_size,
- int64_t pts, int64_t dts,
- int64_t pos);
-
-/**
- * @return 0 if the output buffer is a subset of the input, 1 if it is allocated and must be freed
- * @deprecated use AVBitStreamFilter
- */
-int av_parser_change(AVCodecParserContext *s,
- AVCodecContext *avctx,
- uint8_t **poutbuf, int *poutbuf_size,
- const uint8_t *buf, int buf_size, int keyframe);
-void av_parser_close(AVCodecParserContext *s);
-
-/**
- * @}
- * @}
- */
-
-/**
- * @addtogroup lavc_encoding
- * @{
- */
-
-/**
- * Find a registered encoder with a matching codec ID.
- *
- * @param id AVCodecID of the requested encoder
- * @return An encoder if one was found, NULL otherwise.
- */
-AVCodec *avcodec_find_encoder(enum AVCodecID id);
-
-/**
- * Find a registered encoder with the specified name.
- *
- * @param name name of the requested encoder
- * @return An encoder if one was found, NULL otherwise.
- */
-AVCodec *avcodec_find_encoder_by_name(const char *name);
-
-/**
- * Encode a frame of audio.
- *
- * Takes input samples from frame and writes the next output packet, if
- * available, to avpkt. The output packet does not necessarily contain data for
- * the most recent frame, as encoders can delay, split, and combine input frames
- * internally as needed.
- *
- * @param avctx codec context
- * @param avpkt output AVPacket.
- * The user can supply an output buffer by setting
- * avpkt->data and avpkt->size prior to calling the
- * function, but if the size of the user-provided data is not
- * large enough, encoding will fail. If avpkt->data and
- * avpkt->size are set, avpkt->destruct must also be set. All
- * other AVPacket fields will be reset by the encoder using
- * av_init_packet(). If avpkt->data is NULL, the encoder will
- * allocate it. The encoder will set avpkt->size to the size
- * of the output packet.
- *
- * If this function fails or produces no output, avpkt will be
- * freed using av_packet_unref().
- * @param[in] frame AVFrame containing the raw audio data to be encoded.
- * May be NULL when flushing an encoder that has the
- * AV_CODEC_CAP_DELAY capability set.
- * If AV_CODEC_CAP_VARIABLE_FRAME_SIZE is set, then each frame
- * can have any number of samples.
- * If it is not set, frame->nb_samples must be equal to
- * avctx->frame_size for all frames except the last.
- * The final frame may be smaller than avctx->frame_size.
- * @param[out] got_packet_ptr This field is set to 1 by libavcodec if the
- * output packet is non-empty, and to 0 if it is
- * empty. If the function returns an error, the
- * packet can be assumed to be invalid, and the
- * value of got_packet_ptr is undefined and should
- * not be used.
- * @return 0 on success, negative error code on failure
- */
-int avcodec_encode_audio2(AVCodecContext *avctx, AVPacket *avpkt,
- const AVFrame *frame, int *got_packet_ptr);
-
-/**
- * Encode a frame of video.
- *
- * Takes input raw video data from frame and writes the next output packet, if
- * available, to avpkt. The output packet does not necessarily contain data for
- * the most recent frame, as encoders can delay and reorder input frames
- * internally as needed.
- *
- * @param avctx codec context
- * @param avpkt output AVPacket.
- * The user can supply an output buffer by setting
- * avpkt->data and avpkt->size prior to calling the
- * function, but if the size of the user-provided data is not
- * large enough, encoding will fail. All other AVPacket fields
- * will be reset by the encoder using av_init_packet(). If
- * avpkt->data is NULL, the encoder will allocate it.
- * The encoder will set avpkt->size to the size of the
- * output packet. The returned data (if any) belongs to the
- * caller, he is responsible for freeing it.
- *
- * If this function fails or produces no output, avpkt will be
- * freed using av_packet_unref().
- * @param[in] frame AVFrame containing the raw video data to be encoded.
- * May be NULL when flushing an encoder that has the
- * AV_CODEC_CAP_DELAY capability set.
- * @param[out] got_packet_ptr This field is set to 1 by libavcodec if the
- * output packet is non-empty, and to 0 if it is
- * empty. If the function returns an error, the
- * packet can be assumed to be invalid, and the
- * value of got_packet_ptr is undefined and should
- * not be used.
- * @return 0 on success, negative error code on failure
- */
-int avcodec_encode_video2(AVCodecContext *avctx, AVPacket *avpkt,
- const AVFrame *frame, int *got_packet_ptr);
-
-int avcodec_encode_subtitle(AVCodecContext *avctx, uint8_t *buf, int buf_size,
- const AVSubtitle *sub);
-
-
-/**
- * @}
- */
-
-#if FF_API_AVCODEC_RESAMPLE
-/**
- * @defgroup lavc_resample Audio resampling
- * @ingroup libavc
- * @deprecated use libswresample instead
- *
- * @{
- */
-struct ReSampleContext;
-struct AVResampleContext;
-
-typedef struct ReSampleContext ReSampleContext;
-
-/**
- * Initialize audio resampling context.
- *
- * @param output_channels number of output channels
- * @param input_channels number of input channels
- * @param output_rate output sample rate
- * @param input_rate input sample rate
- * @param sample_fmt_out requested output sample format
- * @param sample_fmt_in input sample format
- * @param filter_length length of each FIR filter in the filterbank relative to the cutoff frequency
- * @param log2_phase_count log2 of the number of entries in the polyphase filterbank
- * @param linear if 1 then the used FIR filter will be linearly interpolated
- between the 2 closest, if 0 the closest will be used
- * @param cutoff cutoff frequency, 1.0 corresponds to half the output sampling rate
- * @return allocated ReSampleContext, NULL if error occurred
- */
-attribute_deprecated
-ReSampleContext *av_audio_resample_init(int output_channels, int input_channels,
- int output_rate, int input_rate,
- enum AVSampleFormat sample_fmt_out,
- enum AVSampleFormat sample_fmt_in,
- int filter_length, int log2_phase_count,
- int linear, double cutoff);
-
-attribute_deprecated
-int audio_resample(ReSampleContext *s, short *output, short *input, int nb_samples);
-
-/**
- * Free resample context.
- *
- * @param s a non-NULL pointer to a resample context previously
- * created with av_audio_resample_init()
- */
-attribute_deprecated
-void audio_resample_close(ReSampleContext *s);
-
-
-/**
- * Initialize an audio resampler.
- * Note, if either rate is not an integer then simply scale both rates up so they are.
- * @param filter_length length of each FIR filter in the filterbank relative to the cutoff freq
- * @param log2_phase_count log2 of the number of entries in the polyphase filterbank
- * @param linear If 1 then the used FIR filter will be linearly interpolated
- between the 2 closest, if 0 the closest will be used
- * @param cutoff cutoff frequency, 1.0 corresponds to half the output sampling rate
- */
-attribute_deprecated
-struct AVResampleContext *av_resample_init(int out_rate, int in_rate, int filter_length, int log2_phase_count, int linear, double cutoff);
-
-/**
- * Resample an array of samples using a previously configured context.
- * @param src an array of unconsumed samples
- * @param consumed the number of samples of src which have been consumed are returned here
- * @param src_size the number of unconsumed samples available
- * @param dst_size the amount of space in samples available in dst
- * @param update_ctx If this is 0 then the context will not be modified, that way several channels can be resampled with the same context.
- * @return the number of samples written in dst or -1 if an error occurred
- */
-attribute_deprecated
-int av_resample(struct AVResampleContext *c, short *dst, short *src, int *consumed, int src_size, int dst_size, int update_ctx);
-
-
-/**
- * Compensate samplerate/timestamp drift. The compensation is done by changing
- * the resampler parameters, so no audible clicks or similar distortions occur
- * @param compensation_distance distance in output samples over which the compensation should be performed
- * @param sample_delta number of output samples which should be output less
- *
- * example: av_resample_compensate(c, 10, 500)
- * here instead of 510 samples only 500 samples would be output
- *
- * note, due to rounding the actual compensation might be slightly different,
- * especially if the compensation_distance is large and the in_rate used during init is small
- */
-attribute_deprecated
-void av_resample_compensate(struct AVResampleContext *c, int sample_delta, int compensation_distance);
-attribute_deprecated
-void av_resample_close(struct AVResampleContext *c);
-
-/**
- * @}
- */
-#endif
-
-#if FF_API_AVPICTURE
-/**
- * @addtogroup lavc_picture
- * @{
- */
-
-/**
- * @deprecated unused
- */
-attribute_deprecated
-int avpicture_alloc(AVPicture *picture, enum AVPixelFormat pix_fmt, int width, int height);
-
-/**
- * @deprecated unused
- */
-attribute_deprecated
-void avpicture_free(AVPicture *picture);
-
-/**
- * @deprecated use av_image_fill_arrays() instead.
- */
-attribute_deprecated
-int avpicture_fill(AVPicture *picture, const uint8_t *ptr,
- enum AVPixelFormat pix_fmt, int width, int height);
-
-/**
- * @deprecated use av_image_copy_to_buffer() instead.
- */
-attribute_deprecated
-int avpicture_layout(const AVPicture *src, enum AVPixelFormat pix_fmt,
- int width, int height,
- unsigned char *dest, int dest_size);
-
-/**
- * @deprecated use av_image_get_buffer_size() instead.
- */
-attribute_deprecated
-int avpicture_get_size(enum AVPixelFormat pix_fmt, int width, int height);
-
-/**
- * @deprecated av_image_copy() instead.
- */
-attribute_deprecated
-void av_picture_copy(AVPicture *dst, const AVPicture *src,
- enum AVPixelFormat pix_fmt, int width, int height);
-
-/**
- * @deprecated unused
- */
-attribute_deprecated
-int av_picture_crop(AVPicture *dst, const AVPicture *src,
- enum AVPixelFormat pix_fmt, int top_band, int left_band);
-
-/**
- * @deprecated unused
- */
-attribute_deprecated
-int av_picture_pad(AVPicture *dst, const AVPicture *src, int height, int width, enum AVPixelFormat pix_fmt,
- int padtop, int padbottom, int padleft, int padright, int *color);
-
-/**
- * @}
- */
-#endif
-
-/**
- * @defgroup lavc_misc Utility functions
- * @ingroup libavc
- *
- * Miscellaneous utility functions related to both encoding and decoding
- * (or neither).
- * @{
- */
-
-/**
- * @defgroup lavc_misc_pixfmt Pixel formats
- *
- * Functions for working with pixel formats.
- * @{
- */
-
-/**
- * Utility function to access log2_chroma_w log2_chroma_h from
- * the pixel format AVPixFmtDescriptor.
- *
- * This function asserts that pix_fmt is valid. See av_pix_fmt_get_chroma_sub_sample
- * for one that returns a failure code and continues in case of invalid
- * pix_fmts.
- *
- * @param[in] pix_fmt the pixel format
- * @param[out] h_shift store log2_chroma_w
- * @param[out] v_shift store log2_chroma_h
- *
- * @see av_pix_fmt_get_chroma_sub_sample
- */
-
-void avcodec_get_chroma_sub_sample(enum AVPixelFormat pix_fmt, int *h_shift, int *v_shift);
-
-/**
- * Return a value representing the fourCC code associated to the
- * pixel format pix_fmt, or 0 if no associated fourCC code can be
- * found.
- */
-unsigned int avcodec_pix_fmt_to_codec_tag(enum AVPixelFormat pix_fmt);
-
-/**
- * @deprecated see av_get_pix_fmt_loss()
- */
-int avcodec_get_pix_fmt_loss(enum AVPixelFormat dst_pix_fmt, enum AVPixelFormat src_pix_fmt,
- int has_alpha);
-
-/**
- * Find the best pixel format to convert to given a certain source pixel
- * format. When converting from one pixel format to another, information loss
- * may occur. For example, when converting from RGB24 to GRAY, the color
- * information will be lost. Similarly, other losses occur when converting from
- * some formats to other formats. avcodec_find_best_pix_fmt_of_2() searches which of
- * the given pixel formats should be used to suffer the least amount of loss.
- * The pixel formats from which it chooses one, are determined by the
- * pix_fmt_list parameter.
- *
- *
- * @param[in] pix_fmt_list AV_PIX_FMT_NONE terminated array of pixel formats to choose from
- * @param[in] src_pix_fmt source pixel format
- * @param[in] has_alpha Whether the source pixel format alpha channel is used.
- * @param[out] loss_ptr Combination of flags informing you what kind of losses will occur.
- * @return The best pixel format to convert to or -1 if none was found.
- */
-enum AVPixelFormat avcodec_find_best_pix_fmt_of_list(const enum AVPixelFormat *pix_fmt_list,
- enum AVPixelFormat src_pix_fmt,
- int has_alpha, int *loss_ptr);
-
-/**
- * @deprecated see av_find_best_pix_fmt_of_2()
- */
-enum AVPixelFormat avcodec_find_best_pix_fmt_of_2(enum AVPixelFormat dst_pix_fmt1, enum AVPixelFormat dst_pix_fmt2,
- enum AVPixelFormat src_pix_fmt, int has_alpha, int *loss_ptr);
-
-attribute_deprecated
-#if AV_HAVE_INCOMPATIBLE_LIBAV_ABI
-enum AVPixelFormat avcodec_find_best_pix_fmt2(const enum AVPixelFormat *pix_fmt_list,
- enum AVPixelFormat src_pix_fmt,
- int has_alpha, int *loss_ptr);
-#else
-enum AVPixelFormat avcodec_find_best_pix_fmt2(enum AVPixelFormat dst_pix_fmt1, enum AVPixelFormat dst_pix_fmt2,
- enum AVPixelFormat src_pix_fmt, int has_alpha, int *loss_ptr);
-#endif
-
-
-enum AVPixelFormat avcodec_default_get_format(struct AVCodecContext *s, const enum AVPixelFormat * fmt);
-
-/**
- * @}
- */
-
-#if FF_API_SET_DIMENSIONS
-/**
- * @deprecated this function is not supposed to be used from outside of lavc
- */
-attribute_deprecated
-void avcodec_set_dimensions(AVCodecContext *s, int width, int height);
-#endif
-
-/**
- * Put a string representing the codec tag codec_tag in buf.
- *
- * @param buf buffer to place codec tag in
- * @param buf_size size in bytes of buf
- * @param codec_tag codec tag to assign
- * @return the length of the string that would have been generated if
- * enough space had been available, excluding the trailing null
- */
-size_t av_get_codec_tag_string(char *buf, size_t buf_size, unsigned int codec_tag);
-
-void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode);
-
-/**
- * Return a name for the specified profile, if available.
- *
- * @param codec the codec that is searched for the given profile
- * @param profile the profile value for which a name is requested
- * @return A name for the profile if found, NULL otherwise.
- */
-const char *av_get_profile_name(const AVCodec *codec, int profile);
-
-/**
- * Return a name for the specified profile, if available.
- *
- * @param codec_id the ID of the codec to which the requested profile belongs
- * @param profile the profile value for which a name is requested
- * @return A name for the profile if found, NULL otherwise.
- *
- * @note unlike av_get_profile_name(), which searches a list of profiles
- * supported by a specific decoder or encoder implementation, this
- * function searches the list of profiles from the AVCodecDescriptor
- */
-const char *avcodec_profile_name(enum AVCodecID codec_id, int profile);
-
-int avcodec_default_execute(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2),void *arg, int *ret, int count, int size);
-int avcodec_default_execute2(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2, int, int),void *arg, int *ret, int count);
-//FIXME func typedef
-
-/**
- * Fill AVFrame audio data and linesize pointers.
- *
- * The buffer buf must be a preallocated buffer with a size big enough
- * to contain the specified samples amount. The filled AVFrame data
- * pointers will point to this buffer.
- *
- * AVFrame extended_data channel pointers are allocated if necessary for
- * planar audio.
- *
- * @param frame the AVFrame
- * frame->nb_samples must be set prior to calling the
- * function. This function fills in frame->data,
- * frame->extended_data, frame->linesize[0].
- * @param nb_channels channel count
- * @param sample_fmt sample format
- * @param buf buffer to use for frame data
- * @param buf_size size of buffer
- * @param align plane size sample alignment (0 = default)
- * @return >=0 on success, negative error code on failure
- * @todo return the size in bytes required to store the samples in
- * case of success, at the next libavutil bump
- */
-int avcodec_fill_audio_frame(AVFrame *frame, int nb_channels,
- enum AVSampleFormat sample_fmt, const uint8_t *buf,
- int buf_size, int align);
-
-/**
- * Reset the internal decoder state / flush internal buffers. Should be called
- * e.g. when seeking or when switching to a different stream.
- *
- * @note when refcounted frames are not used (i.e. avctx->refcounted_frames is 0),
- * this invalidates the frames previously returned from the decoder. When
- * refcounted frames are used, the decoder just releases any references it might
- * keep internally, but the caller's reference remains valid.
- */
-void avcodec_flush_buffers(AVCodecContext *avctx);
-
-/**
- * Return codec bits per sample.
- *
- * @param[in] codec_id the codec
- * @return Number of bits per sample or zero if unknown for the given codec.
- */
-int av_get_bits_per_sample(enum AVCodecID codec_id);
-
-/**
- * Return the PCM codec associated with a sample format.
- * @param be endianness, 0 for little, 1 for big,
- * -1 (or anything else) for native
- * @return AV_CODEC_ID_PCM_* or AV_CODEC_ID_NONE
- */
-enum AVCodecID av_get_pcm_codec(enum AVSampleFormat fmt, int be);
-
-/**
- * Return codec bits per sample.
- * Only return non-zero if the bits per sample is exactly correct, not an
- * approximation.
- *
- * @param[in] codec_id the codec
- * @return Number of bits per sample or zero if unknown for the given codec.
- */
-int av_get_exact_bits_per_sample(enum AVCodecID codec_id);
-
-/**
- * Return audio frame duration.
- *
- * @param avctx codec context
- * @param frame_bytes size of the frame, or 0 if unknown
- * @return frame duration, in samples, if known. 0 if not able to
- * determine.
- */
-int av_get_audio_frame_duration(AVCodecContext *avctx, int frame_bytes);
-
-
-typedef struct AVBitStreamFilterContext {
- void *priv_data;
- struct AVBitStreamFilter *filter;
- AVCodecParserContext *parser;
- struct AVBitStreamFilterContext *next;
- /**
- * Internal default arguments, used if NULL is passed to av_bitstream_filter_filter().
- * Not for access by library users.
- */
- char *args;
-} AVBitStreamFilterContext;
-
-
-typedef struct AVBitStreamFilter {
- const char *name;
- int priv_data_size;
- int (*filter)(AVBitStreamFilterContext *bsfc,
- AVCodecContext *avctx, const char *args,
- uint8_t **poutbuf, int *poutbuf_size,
- const uint8_t *buf, int buf_size, int keyframe);
- void (*close)(AVBitStreamFilterContext *bsfc);
- struct AVBitStreamFilter *next;
-} AVBitStreamFilter;
-
-/**
- * Register a bitstream filter.
- *
- * The filter will be accessible to the application code through
- * av_bitstream_filter_next() or can be directly initialized with
- * av_bitstream_filter_init().
- *
- * @see avcodec_register_all()
- */
-void av_register_bitstream_filter(AVBitStreamFilter *bsf);
-
-/**
- * Create and initialize a bitstream filter context given a bitstream
- * filter name.
- *
- * The returned context must be freed with av_bitstream_filter_close().
- *
- * @param name the name of the bitstream filter
- * @return a bitstream filter context if a matching filter was found
- * and successfully initialized, NULL otherwise
- */
-AVBitStreamFilterContext *av_bitstream_filter_init(const char *name);
-
-/**
- * Filter bitstream.
- *
- * This function filters the buffer buf with size buf_size, and places the
- * filtered buffer in the buffer pointed to by poutbuf.
- *
- * The output buffer must be freed by the caller.
- *
- * @param bsfc bitstream filter context created by av_bitstream_filter_init()
- * @param avctx AVCodecContext accessed by the filter, may be NULL.
- * If specified, this must point to the encoder context of the
- * output stream the packet is sent to.
- * @param args arguments which specify the filter configuration, may be NULL
- * @param poutbuf pointer which is updated to point to the filtered buffer
- * @param poutbuf_size pointer which is updated to the filtered buffer size in bytes
- * @param buf buffer containing the data to filter
- * @param buf_size size in bytes of buf
- * @param keyframe set to non-zero if the buffer to filter corresponds to a key-frame packet data
- * @return >= 0 in case of success, or a negative error code in case of failure
- *
- * If the return value is positive, an output buffer is allocated and
- * is available in *poutbuf, and is distinct from the input buffer.
- *
- * If the return value is 0, the output buffer is not allocated and
- * should be considered identical to the input buffer, or in case
- * *poutbuf was set it points to the input buffer (not necessarily to
- * its starting address).
- */
-int av_bitstream_filter_filter(AVBitStreamFilterContext *bsfc,
- AVCodecContext *avctx, const char *args,
- uint8_t **poutbuf, int *poutbuf_size,
- const uint8_t *buf, int buf_size, int keyframe);
-
-/**
- * Release bitstream filter context.
- *
- * @param bsf the bitstream filter context created with
- * av_bitstream_filter_init(), can be NULL
- */
-void av_bitstream_filter_close(AVBitStreamFilterContext *bsf);
-
-/**
- * If f is NULL, return the first registered bitstream filter,
- * if f is non-NULL, return the next registered bitstream filter
- * after f, or NULL if f is the last one.
- *
- * This function can be used to iterate over all registered bitstream
- * filters.
- */
-AVBitStreamFilter *av_bitstream_filter_next(const AVBitStreamFilter *f);
-
-/* memory */
-
-/**
- * Same behaviour av_fast_malloc but the buffer has additional
- * AV_INPUT_BUFFER_PADDING_SIZE at the end which will always be 0.
- *
- * In addition the whole buffer will initially and after resizes
- * be 0-initialized so that no uninitialized data will ever appear.
- */
-void av_fast_padded_malloc(void *ptr, unsigned int *size, size_t min_size);
-
-/**
- * Same behaviour av_fast_padded_malloc except that buffer will always
- * be 0-initialized after call.
- */
-void av_fast_padded_mallocz(void *ptr, unsigned int *size, size_t min_size);
-
-/**
- * Encode extradata length to a buffer. Used by xiph codecs.
- *
- * @param s buffer to write to; must be at least (v/255+1) bytes long
- * @param v size of extradata in bytes
- * @return number of bytes written to the buffer.
- */
-unsigned int av_xiphlacing(unsigned char *s, unsigned int v);
-
-#if FF_API_MISSING_SAMPLE
-/**
- * Log a generic warning message about a missing feature. This function is
- * intended to be used internally by FFmpeg (libavcodec, libavformat, etc.)
- * only, and would normally not be used by applications.
- * @param[in] avc a pointer to an arbitrary struct of which the first field is
- * a pointer to an AVClass struct
- * @param[in] feature string containing the name of the missing feature
- * @param[in] want_sample indicates if samples are wanted which exhibit this feature.
- * If want_sample is non-zero, additional verbage will be added to the log
- * message which tells the user how to report samples to the development
- * mailing list.
- * @deprecated Use avpriv_report_missing_feature() instead.
- */
-attribute_deprecated
-void av_log_missing_feature(void *avc, const char *feature, int want_sample);
-
-/**
- * Log a generic warning message asking for a sample. This function is
- * intended to be used internally by FFmpeg (libavcodec, libavformat, etc.)
- * only, and would normally not be used by applications.
- * @param[in] avc a pointer to an arbitrary struct of which the first field is
- * a pointer to an AVClass struct
- * @param[in] msg string containing an optional message, or NULL if no message
- * @deprecated Use avpriv_request_sample() instead.
- */
-attribute_deprecated
-void av_log_ask_for_sample(void *avc, const char *msg, ...) av_printf_format(2, 3);
-#endif /* FF_API_MISSING_SAMPLE */
-
-/**
- * Register the hardware accelerator hwaccel.
- */
-void av_register_hwaccel(AVHWAccel *hwaccel);
-
-/**
- * If hwaccel is NULL, returns the first registered hardware accelerator,
- * if hwaccel is non-NULL, returns the next registered hardware accelerator
- * after hwaccel, or NULL if hwaccel is the last one.
- */
-AVHWAccel *av_hwaccel_next(const AVHWAccel *hwaccel);
-
-
-/**
- * Lock operation used by lockmgr
- */
-enum AVLockOp {
- AV_LOCK_CREATE, ///< Create a mutex
- AV_LOCK_OBTAIN, ///< Lock the mutex
- AV_LOCK_RELEASE, ///< Unlock the mutex
- AV_LOCK_DESTROY, ///< Free mutex resources
-};
-
-/**
- * Register a user provided lock manager supporting the operations
- * specified by AVLockOp. The "mutex" argument to the function points
- * to a (void *) where the lockmgr should store/get a pointer to a user
- * allocated mutex. It is NULL upon AV_LOCK_CREATE and equal to the
- * value left by the last call for all other ops. If the lock manager is
- * unable to perform the op then it should leave the mutex in the same
- * state as when it was called and return a non-zero value. However,
- * when called with AV_LOCK_DESTROY the mutex will always be assumed to
- * have been successfully destroyed. If av_lockmgr_register succeeds
- * it will return a non-negative value, if it fails it will return a
- * negative value and destroy all mutex and unregister all callbacks.
- * av_lockmgr_register is not thread-safe, it must be called from a
- * single thread before any calls which make use of locking are used.
- *
- * @param cb User defined callback. av_lockmgr_register invokes calls
- * to this callback and the previously registered callback.
- * The callback will be used to create more than one mutex
- * each of which must be backed by its own underlying locking
- * mechanism (i.e. do not use a single static object to
- * implement your lock manager). If cb is set to NULL the
- * lockmgr will be unregistered.
- */
-int av_lockmgr_register(int (*cb)(void **mutex, enum AVLockOp op));
-
-/**
- * Get the type of the given codec.
- */
-enum AVMediaType avcodec_get_type(enum AVCodecID codec_id);
-
-/**
- * Get the name of a codec.
- * @return a static string identifying the codec; never NULL
- */
-const char *avcodec_get_name(enum AVCodecID id);
-
-/**
- * @return a positive value if s is open (i.e. avcodec_open2() was called on it
- * with no corresponding avcodec_close()), 0 otherwise.
- */
-int avcodec_is_open(AVCodecContext *s);
-
-/**
- * @return a non-zero number if codec is an encoder, zero otherwise
- */
-int av_codec_is_encoder(const AVCodec *codec);
-
-/**
- * @return a non-zero number if codec is a decoder, zero otherwise
- */
-int av_codec_is_decoder(const AVCodec *codec);
-
-/**
- * @return descriptor for given codec ID or NULL if no descriptor exists.
- */
-const AVCodecDescriptor *avcodec_descriptor_get(enum AVCodecID id);
-
-/**
- * Iterate over all codec descriptors known to libavcodec.
- *
- * @param prev previous descriptor. NULL to get the first descriptor.
- *
- * @return next descriptor or NULL after the last descriptor
- */
-const AVCodecDescriptor *avcodec_descriptor_next(const AVCodecDescriptor *prev);
-
-/**
- * @return codec descriptor with the given name or NULL if no such descriptor
- * exists.
- */
-const AVCodecDescriptor *avcodec_descriptor_get_by_name(const char *name);
-
-/**
- * Allocate a CPB properties structure and initialize its fields to default
- * values.
- *
- * @param size if non-NULL, the size of the allocated struct will be written
- * here. This is useful for embedding it in side data.
- *
- * @return the newly allocated struct or NULL on failure
- */
-AVCPBProperties *av_cpb_properties_alloc(size_t *size);
-
-/**
- * @}
- */
-
-#endif /* AVCODEC_AVCODEC_H */
diff --git a/src/main/jni/ffmpeg/include/libavcodec/avdct.h b/src/main/jni/ffmpeg/include/libavcodec/avdct.h
deleted file mode 100644
index 272422e44..000000000
--- a/src/main/jni/ffmpeg/include/libavcodec/avdct.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * 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_AVDCT_H
-#define AVCODEC_AVDCT_H
-
-#include "libavutil/opt.h"
-
-/**
- * AVDCT context.
- * @note function pointers can be NULL if the specific features have been
- * disabled at build time.
- */
-typedef struct AVDCT {
- const AVClass *av_class;
-
- void (*idct)(int16_t *block /* align 16 */);
-
- /**
- * IDCT input permutation.
- * Several optimized IDCTs need a permutated input (relative to the
- * normal order of the reference IDCT).
- * This permutation must be performed before the idct_put/add.
- * Note, normally this can be merged with the zigzag/alternate scan<br>
- * An example to avoid confusion:
- * - (->decode coeffs -> zigzag reorder -> dequant -> reference IDCT -> ...)
- * - (x -> reference DCT -> reference IDCT -> x)
- * - (x -> reference DCT -> simple_mmx_perm = idct_permutation
- * -> simple_idct_mmx -> x)
- * - (-> decode coeffs -> zigzag reorder -> simple_mmx_perm -> dequant
- * -> simple_idct_mmx -> ...)
- */
- uint8_t idct_permutation[64];
-
- void (*fdct)(int16_t *block /* align 16 */);
-
-
- /**
- * DCT algorithm.
- * must use AVOptions to set this field.
- */
- int dct_algo;
-
- /**
- * IDCT algorithm.
- * must use AVOptions to set this field.
- */
- int idct_algo;
-
- void (*get_pixels)(int16_t *block /* align 16 */,
- const uint8_t *pixels /* align 8 */,
- ptrdiff_t line_size);
-
- int bits_per_sample;
-} AVDCT;
-
-/**
- * Allocates a AVDCT context.
- * This needs to be initialized with avcodec_dct_init() after optionally
- * configuring it with AVOptions.
- *
- * To free it use av_free()
- */
-AVDCT *avcodec_dct_alloc(void);
-int avcodec_dct_init(AVDCT *);
-
-const AVClass *avcodec_dct_get_class(void);
-
-#endif /* AVCODEC_AVDCT_H */
diff --git a/src/main/jni/ffmpeg/include/libavcodec/avfft.h b/src/main/jni/ffmpeg/include/libavcodec/avfft.h
deleted file mode 100644
index 0c0f9b8d8..000000000
--- a/src/main/jni/ffmpeg/include/libavcodec/avfft.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * 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 */
diff --git a/src/main/jni/ffmpeg/include/libavcodec/d3d11va.h b/src/main/jni/ffmpeg/include/libavcodec/d3d11va.h
deleted file mode 100644
index 6816b6c1e..000000000
--- a/src/main/jni/ffmpeg/include/libavcodec/d3d11va.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Direct3D11 HW acceleration
- *
- * copyright (c) 2009 Laurent Aimar
- * copyright (c) 2015 Steve Lhomme
- *
- * 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_D3D11VA_H
-#define AVCODEC_D3D11VA_H
-
-/**
- * @file
- * @ingroup lavc_codec_hwaccel_d3d11va
- * Public libavcodec D3D11VA header.
- */
-
-#if !defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0602
-#undef _WIN32_WINNT
-#define _WIN32_WINNT 0x0602
-#endif
-
-#include <stdint.h>
-#include <d3d11.h>
-
-/**
- * @defgroup lavc_codec_hwaccel_d3d11va Direct3D11
- * @ingroup lavc_codec_hwaccel
- *
- * @{
- */
-
-#define FF_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG 1 ///< Work around for Direct3D11 and old UVD/UVD+ ATI video cards
-#define FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO 2 ///< Work around for Direct3D11 and old Intel GPUs with ClearVideo interface
-
-/**
- * This structure is used to provides the necessary configurations and data
- * to the Direct3D11 FFmpeg HWAccel implementation.
- *
- * The application must make it available as AVCodecContext.hwaccel_context.
- *
- * Use av_d3d11va_alloc_context() exclusively to allocate an AVD3D11VAContext.
- */
-typedef struct AVD3D11VAContext {
- /**
- * D3D11 decoder object
- */
- ID3D11VideoDecoder *decoder;
-
- /**
- * D3D11 VideoContext
- */
- ID3D11VideoContext *video_context;
-
- /**
- * D3D11 configuration used to create the decoder
- */
- D3D11_VIDEO_DECODER_CONFIG *cfg;
-
- /**
- * The number of surface in the surface array
- */
- unsigned surface_count;
-
- /**
- * The array of Direct3D surfaces used to create the decoder
- */
- ID3D11VideoDecoderOutputView **surface;
-
- /**
- * A bit field configuring the workarounds needed for using the decoder
- */
- uint64_t workaround;
-
- /**
- * Private to the FFmpeg AVHWAccel implementation
- */
- unsigned report_id;
-
- /**
- * Mutex to access video_context
- */
- HANDLE context_mutex;
-} AVD3D11VAContext;
-
-/**
- * Allocate an AVD3D11VAContext.
- *
- * @return Newly-allocated AVD3D11VAContext or NULL on failure.
- */
-AVD3D11VAContext *av_d3d11va_alloc_context(void);
-
-/**
- * @}
- */
-
-#endif /* AVCODEC_D3D11VA_H */
diff --git a/src/main/jni/ffmpeg/include/libavcodec/dirac.h b/src/main/jni/ffmpeg/include/libavcodec/dirac.h
deleted file mode 100644
index 8d7953d9b..000000000
--- a/src/main/jni/ffmpeg/include/libavcodec/dirac.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (C) 2007 Marco Gerards <marco@gnu.org>
- * Copyright (C) 2009 David Conrad
- * Copyright (C) 2011 Jordi Ortiz
- *
- * 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_DIRAC_H
-#define AVCODEC_DIRAC_H
-
-/**
- * @file
- * Interface to Dirac Decoder/Encoder
- * @author Marco Gerards <marco@gnu.org>
- * @author David Conrad
- * @author Jordi Ortiz
- */
-
-#include "avcodec.h"
-
-/**
- * Parse code values:
- *
- * Dirac Specification ->
- * 9.6.1 Table 9.1
- *
- * VC-2 Specification ->
- * 10.4.1 Table 10.1
- */
-
-enum DiracParseCodes {
- DIRAC_PCODE_SEQ_HEADER = 0x00,
- DIRAC_PCODE_END_SEQ = 0x10,
- DIRAC_PCODE_AUX = 0x20,
- DIRAC_PCODE_PAD = 0x30,
- DIRAC_PCODE_PICTURE_CODED = 0x08,
- DIRAC_PCODE_PICTURE_RAW = 0x48,
- DIRAC_PCODE_PICTURE_LOW_DEL = 0xC8,
- DIRAC_PCODE_PICTURE_HQ = 0xE8,
- DIRAC_PCODE_MAGIC = 0x42424344,
-};
-
-typedef struct DiracVersionInfo {
- int major;
- int minor;
-} DiracVersionInfo;
-
-typedef struct AVDiracSeqHeader {
- unsigned width;
- unsigned height;
- uint8_t chroma_format; ///< 0: 444 1: 422 2: 420
-
- uint8_t interlaced;
- uint8_t top_field_first;
-
- uint8_t frame_rate_index; ///< index into dirac_frame_rate[]
- uint8_t aspect_ratio_index; ///< index into dirac_aspect_ratio[]
-
- uint16_t clean_width;
- uint16_t clean_height;
- uint16_t clean_left_offset;
- uint16_t clean_right_offset;
-
- uint8_t pixel_range_index; ///< index into dirac_pixel_range_presets[]
- uint8_t color_spec_index; ///< index into dirac_color_spec_presets[]
-
- int profile;
- int level;
-
- AVRational framerate;
- AVRational sample_aspect_ratio;
-
- enum AVPixelFormat pix_fmt;
- enum AVColorRange color_range;
- enum AVColorPrimaries color_primaries;
- enum AVColorTransferCharacteristic color_trc;
- enum AVColorSpace colorspace;
-
- DiracVersionInfo version;
- int bit_depth;
-} AVDiracSeqHeader;
-
-/**
- * Parse a Dirac sequence header.
- *
- * @param dsh this function will allocate and fill an AVDiracSeqHeader struct
- * and write it into this pointer. The caller must free it with
- * av_free().
- * @param buf the data buffer
- * @param buf_size the size of the data buffer in bytes
- * @param log_ctx if non-NULL, this function will log errors here
- * @return 0 on success, a negative AVERROR code on failure
- */
-int av_dirac_parse_sequence_header(AVDiracSeqHeader **dsh,
- const uint8_t *buf, size_t buf_size,
- void *log_ctx);
-
-#endif /* AVCODEC_DIRAC_H */
diff --git a/src/main/jni/ffmpeg/include/libavcodec/dv_profile.h b/src/main/jni/ffmpeg/include/libavcodec/dv_profile.h
deleted file mode 100644
index 9380a66f0..000000000
--- a/src/main/jni/ffmpeg/include/libavcodec/dv_profile.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * 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;
-
-/**
- * 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);
-
-/**
- * Get a DV profile for the provided stream parameters.
- * The frame rate is used as a best-effort parameter.
- */
-const AVDVProfile *av_dv_codec_profile2(int width, int height, enum AVPixelFormat pix_fmt, AVRational frame_rate);
-
-#endif /* AVCODEC_DV_PROFILE_H */
diff --git a/src/main/jni/ffmpeg/include/libavcodec/dxva2.h b/src/main/jni/ffmpeg/include/libavcodec/dxva2.h
deleted file mode 100644
index 9e3ab86a8..000000000
--- a/src/main/jni/ffmpeg/include/libavcodec/dxva2.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * 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 < 0x0602
-#undef _WIN32_WINNT
-#define _WIN32_WINNT 0x0602
-#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 */
diff --git a/src/main/jni/ffmpeg/include/libavcodec/qsv.h b/src/main/jni/ffmpeg/include/libavcodec/qsv.h
deleted file mode 100644
index b77158ec2..000000000
--- a/src/main/jni/ffmpeg/include/libavcodec/qsv.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Intel MediaSDK QSV public API
- *
- * 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_QSV_H
-#define AVCODEC_QSV_H
-
-#include <mfx/mfxvideo.h>
-
-#include "libavutil/buffer.h"
-
-/**
- * This struct is used for communicating QSV parameters between libavcodec and
- * the caller. It is managed by the caller and must be assigned to
- * AVCodecContext.hwaccel_context.
- * - decoding: hwaccel_context must be set on return from the get_format()
- * callback
- * - encoding: hwaccel_context must be set before avcodec_open2()
- */
-typedef struct AVQSVContext {
- /**
- * If non-NULL, the session to use for encoding or decoding.
- * Otherwise, libavcodec will try to create an internal session.
- */
- mfxSession session;
-
- /**
- * The IO pattern to use.
- */
- int iopattern;
-
- /**
- * Extra buffers to pass to encoder or decoder initialization.
- */
- mfxExtBuffer **ext_buffers;
- int nb_ext_buffers;
-
- /**
- * Encoding only. If this field is set to non-zero by the caller, libavcodec
- * will create an mfxExtOpaqueSurfaceAlloc extended buffer and pass it to
- * the encoder initialization. This only makes sense if iopattern is also
- * set to MFX_IOPATTERN_IN_OPAQUE_MEMORY.
- *
- * The number of allocated opaque surfaces will be the sum of the number
- * required by the encoder and the user-provided value nb_opaque_surfaces.
- * The array of the opaque surfaces will be exported to the caller through
- * the opaque_surfaces field.
- */
- int opaque_alloc;
-
- /**
- * Encoding only, and only if opaque_alloc is set to non-zero. Before
- * calling avcodec_open2(), the caller should set this field to the number
- * of extra opaque surfaces to allocate beyond what is required by the
- * encoder.
- *
- * On return from avcodec_open2(), this field will be set by libavcodec to
- * the total number of allocated opaque surfaces.
- */
- int nb_opaque_surfaces;
-
- /**
- * Encoding only, and only if opaque_alloc is set to non-zero. On return
- * from avcodec_open2(), this field will be used by libavcodec to export the
- * array of the allocated opaque surfaces to the caller, so they can be
- * passed to other parts of the pipeline.
- *
- * The buffer reference exported here is owned and managed by libavcodec,
- * the callers should make their own reference with av_buffer_ref() and free
- * it with av_buffer_unref() when it is no longer needed.
- *
- * The buffer data is an nb_opaque_surfaces-sized array of mfxFrameSurface1.
- */
- AVBufferRef *opaque_surfaces;
-
- /**
- * Encoding only, and only if opaque_alloc is set to non-zero. On return
- * from avcodec_open2(), this field will be set to the surface type used in
- * the opaque allocation request.
- */
- int opaque_alloc_type;
-} AVQSVContext;
-
-/**
- * Allocate a new context.
- *
- * It must be freed by the caller with av_free().
- */
-AVQSVContext *av_qsv_alloc_context(void);
-
-#endif /* AVCODEC_QSV_H */
diff --git a/src/main/jni/ffmpeg/include/libavcodec/vaapi.h b/src/main/jni/ffmpeg/include/libavcodec/vaapi.h
deleted file mode 100644
index 7a29f6f88..000000000
--- a/src/main/jni/ffmpeg/include/libavcodec/vaapi.h
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * 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>
-#include "libavutil/attributes.h"
-#include "version.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;
-
-#if FF_API_VAAPI_CONTEXT
- /**
- * VAPictureParameterBuffer ID
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- attribute_deprecated
- uint32_t pic_param_buf_id;
-
- /**
- * VAIQMatrixBuffer ID
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- attribute_deprecated
- uint32_t iq_matrix_buf_id;
-
- /**
- * VABitPlaneBuffer ID (for VC-1 decoding)
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- attribute_deprecated
- uint32_t bitplane_buf_id;
-
- /**
- * Slice parameter/data buffer IDs
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- attribute_deprecated
- uint32_t *slice_buf_ids;
-
- /**
- * Number of effective slice buffer IDs to send to the HW
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- attribute_deprecated
- unsigned int n_slice_buf_ids;
-
- /**
- * Size of pre-allocated slice_buf_ids
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- attribute_deprecated
- unsigned int slice_buf_ids_alloc;
-
- /**
- * Pointer to VASliceParameterBuffers
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- attribute_deprecated
- void *slice_params;
-
- /**
- * Size of a VASliceParameterBuffer element
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- attribute_deprecated
- unsigned int slice_param_size;
-
- /**
- * Size of pre-allocated slice_params
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- attribute_deprecated
- unsigned int slice_params_alloc;
-
- /**
- * Number of slices currently filled in
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- attribute_deprecated
- unsigned int slice_count;
-
- /**
- * Pointer to slice data buffer base
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- attribute_deprecated
- const uint8_t *slice_data;
-
- /**
- * Current size of slice data
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- attribute_deprecated
- uint32_t slice_data_size;
-#endif
-};
-
-/* @} */
-
-#endif /* AVCODEC_VAAPI_H */
diff --git a/src/main/jni/ffmpeg/include/libavcodec/vda.h b/src/main/jni/ffmpeg/include/libavcodec/vda.h
deleted file mode 100644
index bde14e31d..000000000
--- a/src/main/jni/ffmpeg/include/libavcodec/vda.h
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- * 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;
-
- /**
- * CVPixelBuffer Format Type that VDA will use for decoded frames; set by
- * the caller.
- */
- OSType cv_pix_fmt_type;
-} 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 is a convenience function that creates and sets up the VDA context using
- * an internal implementation.
- *
- * @param avctx the corresponding codec context
- * @param vdactx the VDA context to use
- *
- * @return >= 0 on success, a negative AVERROR code on failure
- */
-int av_vda_default_init2(AVCodecContext *avctx, AVVDAContext *vdactx);
-
-/**
- * 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 */
diff --git a/src/main/jni/ffmpeg/include/libavcodec/vdpau.h b/src/main/jni/ffmpeg/include/libavcodec/vdpau.h
deleted file mode 100644
index e85e4d9e9..000000000
--- a/src/main/jni/ffmpeg/include/libavcodec/vdpau.h
+++ /dev/null
@@ -1,253 +0,0 @@
-/*
- * 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);
-
-/**
- * Gets the parameters to create an adequate VDPAU video surface for the codec
- * context using VDPAU hardware decoding acceleration.
- *
- * @note Behavior is undefined if the context was not successfully bound to a
- * VDPAU device using av_vdpau_bind_context().
- *
- * @param avctx the codec context being used for decoding the stream
- * @param type storage space for the VDPAU video surface chroma type
- * (or NULL to ignore)
- * @param width storage space for the VDPAU video surface pixel width
- * (or NULL to ignore)
- * @param height storage space for the VDPAU video surface pixel height
- * (or NULL to ignore)
- *
- * @return 0 on success, a negative AVERROR code on failure.
- */
-int av_vdpau_get_surface_parameters(AVCodecContext *avctx, VdpChromaType *type,
- uint32_t *width, uint32_t *height);
-
-/**
- * Allocate an AVVDPAUContext.
- *
- * @return Newly-allocated AVVDPAUContext or NULL on failure.
- */
-AVVDPAUContext *av_vdpau_alloc_context(void);
-
-#if FF_API_VDPAU_PROFILE
-/**
- * Get a decoder profile that should be used for initializing a VDPAU decoder.
- * Should be called from the AVCodecContext.get_format() callback.
- *
- * @deprecated Use av_vdpau_bind_context() instead.
- *
- * @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.
- */
-attribute_deprecated
-int av_vdpau_get_profile(AVCodecContext *avctx, VdpDecoderProfile *profile);
-#endif
-
-#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.
-
- /** picture parameter information for all supported codecs */
- union AVVDPAUPictureInfo info;
-
- /** 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;
-};
-#endif
-
-/* @}*/
-
-#endif /* AVCODEC_VDPAU_H */
diff --git a/src/main/jni/ffmpeg/include/libavcodec/version.h b/src/main/jni/ffmpeg/include/libavcodec/version.h
deleted file mode 100644
index 9846275e0..000000000
--- a/src/main/jni/ffmpeg/include/libavcodec/version.h
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- *
- * 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 57
-#define LIBAVCODEC_VERSION_MINOR 21
-#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.
- *
- * @note, when bumping the major version it is recommended to manually
- * disable each FF_API_* in its own commit instead of disabling them all
- * at once through the bump. This improves the git bisect-ability of the change.
- */
-
-#ifndef FF_API_VIMA_DECODER
-#define FF_API_VIMA_DECODER (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_AUDIO_CONVERT
-#define FF_API_AUDIO_CONVERT (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_AVCODEC_RESAMPLE
-#define FF_API_AVCODEC_RESAMPLE FF_API_AUDIO_CONVERT
-#endif
-#ifndef FF_API_MISSING_SAMPLE
-#define FF_API_MISSING_SAMPLE (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_LOWRES
-#define FF_API_LOWRES (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_CAP_VDPAU
-#define FF_API_CAP_VDPAU (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_BUFS_VDPAU
-#define FF_API_BUFS_VDPAU (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_VOXWARE
-#define FF_API_VOXWARE (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_SET_DIMENSIONS
-#define FF_API_SET_DIMENSIONS (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_DEBUG_MV
-#define FF_API_DEBUG_MV (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_AC_VLC
-#define FF_API_AC_VLC (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_OLD_MSMPEG4
-#define FF_API_OLD_MSMPEG4 (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_ASPECT_EXTENDED
-#define FF_API_ASPECT_EXTENDED (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_ARCH_ALPHA
-#define FF_API_ARCH_ALPHA (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_XVMC
-#define FF_API_XVMC (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_ERROR_RATE
-#define FF_API_ERROR_RATE (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_QSCALE_TYPE
-#define FF_API_QSCALE_TYPE (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_MB_TYPE
-#define FF_API_MB_TYPE (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_MAX_BFRAMES
-#define FF_API_MAX_BFRAMES (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_NEG_LINESIZES
-#define FF_API_NEG_LINESIZES (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_EMU_EDGE
-#define FF_API_EMU_EDGE (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_ARCH_SH4
-#define FF_API_ARCH_SH4 (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_ARCH_SPARC
-#define FF_API_ARCH_SPARC (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_UNUSED_MEMBERS
-#define FF_API_UNUSED_MEMBERS (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_IDCT_XVIDMMX
-#define FF_API_IDCT_XVIDMMX (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_INPUT_PRESERVED
-#define FF_API_INPUT_PRESERVED (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_NORMALIZE_AQP
-#define FF_API_NORMALIZE_AQP (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_GMC
-#define FF_API_GMC (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_MV0
-#define FF_API_MV0 (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_CODEC_NAME
-#define FF_API_CODEC_NAME (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_AFD
-#define FF_API_AFD (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_VISMV
-/* XXX: don't forget to drop the -vismv documentation */
-#define FF_API_VISMV (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_AUDIOENC_DELAY
-#define FF_API_AUDIOENC_DELAY (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_VAAPI_CONTEXT
-#define FF_API_VAAPI_CONTEXT (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
-#ifndef FF_API_STREAM_CODEC_TAG
-#define FF_API_STREAM_CODEC_TAG (LIBAVCODEC_VERSION_MAJOR < 59)
-#endif
-#ifndef FF_API_QUANT_BIAS
-#define FF_API_QUANT_BIAS (LIBAVCODEC_VERSION_MAJOR < 59)
-#endif
-#ifndef FF_API_RC_STRATEGY
-#define FF_API_RC_STRATEGY (LIBAVCODEC_VERSION_MAJOR < 59)
-#endif
-#ifndef FF_API_CODED_FRAME
-#define FF_API_CODED_FRAME (LIBAVCODEC_VERSION_MAJOR < 59)
-#endif
-#ifndef FF_API_MOTION_EST
-#define FF_API_MOTION_EST (LIBAVCODEC_VERSION_MAJOR < 59)
-#endif
-#ifndef FF_API_WITHOUT_PREFIX
-#define FF_API_WITHOUT_PREFIX (LIBAVCODEC_VERSION_MAJOR < 59)
-#endif
-#ifndef FF_API_SIDEDATA_ONLY_PKT
-#define FF_API_SIDEDATA_ONLY_PKT (LIBAVCODEC_VERSION_MAJOR < 59)
-#endif
-#ifndef FF_API_VDPAU_PROFILE
-#define FF_API_VDPAU_PROFILE (LIBAVCODEC_VERSION_MAJOR < 59)
-#endif
-#ifndef FF_API_CONVERGENCE_DURATION
-#define FF_API_CONVERGENCE_DURATION (LIBAVCODEC_VERSION_MAJOR < 59)
-#endif
-#ifndef FF_API_AVPICTURE
-#define FF_API_AVPICTURE (LIBAVCODEC_VERSION_MAJOR < 59)
-#endif
-#ifndef FF_API_AVPACKET_OLD_API
-#define FF_API_AVPACKET_OLD_API (LIBAVCODEC_VERSION_MAJOR < 59)
-#endif
-#ifndef FF_API_RTP_CALLBACK
-#define FF_API_RTP_CALLBACK (LIBAVCODEC_VERSION_MAJOR < 59)
-#endif
-#ifndef FF_API_VBV_DELAY
-#define FF_API_VBV_DELAY (LIBAVCODEC_VERSION_MAJOR < 59)
-#endif
-#ifndef FF_API_CODER_TYPE
-#define FF_API_CODER_TYPE (LIBAVCODEC_VERSION_MAJOR < 59)
-#endif
-#ifndef FF_API_STAT_BITS
-#define FF_API_STAT_BITS (LIBAVCODEC_VERSION_MAJOR < 59)
-#endif
-
-#endif /* AVCODEC_VERSION_H */
diff --git a/src/main/jni/ffmpeg/include/libavcodec/videotoolbox.h b/src/main/jni/ffmpeg/include/libavcodec/videotoolbox.h
deleted file mode 100644
index a48638e2b..000000000
--- a/src/main/jni/ffmpeg/include/libavcodec/videotoolbox.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Videotoolbox hardware acceleration
- *
- * copyright (c) 2012 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_VIDEOTOOLBOX_H
-#define AVCODEC_VIDEOTOOLBOX_H
-
-/**
- * @file
- * @ingroup lavc_codec_hwaccel_videotoolbox
- * Public libavcodec Videotoolbox header.
- */
-
-#include <stdint.h>
-
-#define Picture QuickdrawPicture
-#include <VideoToolbox/VideoToolbox.h>
-#undef Picture
-
-#include "libavcodec/avcodec.h"
-
-/**
- * This struct holds all the information that needs to be passed
- * between the caller and libavcodec for initializing Videotoolbox decoding.
- * Its size is not a part of the public ABI, it must be allocated with
- * av_videotoolbox_alloc_context() and freed with av_free().
- */
-typedef struct AVVideotoolboxContext {
- /**
- * Videotoolbox decompression session object.
- * Created and freed the caller.
- */
- VTDecompressionSessionRef session;
-
- /**
- * The output callback that must be passed to the session.
- * Set by av_videottoolbox_default_init()
- */
- VTDecompressionOutputCallback output_callback;
-
- /**
- * CVPixelBuffer Format Type that Videotoolbox will use for decoded frames.
- * set by the caller.
- */
- OSType cv_pix_fmt_type;
-
- /**
- * CoreMedia Format Description that Videotoolbox will use to create the decompression session.
- * Set by the caller.
- */
- CMVideoFormatDescriptionRef cm_fmt_desc;
-
- /**
- * CoreMedia codec type that Videotoolbox will use to create the decompression session.
- * Set by the caller.
- */
- int cm_codec_type;
-} AVVideotoolboxContext;
-
-/**
- * Allocate and initialize a Videotoolbox context.
- *
- * This function should be called from the get_format() callback when the caller
- * selects the AV_PIX_FMT_VIDETOOLBOX format. The caller must then create
- * the decoder object (using the output callback provided by libavcodec) that
- * will be used for Videotoolbox-accelerated decoding.
- *
- * When decoding with Videotoolbox is finished, the caller must destroy the decoder
- * object and free the Videotoolbox context using av_free().
- *
- * @return the newly allocated context or NULL on failure
- */
-AVVideotoolboxContext *av_videotoolbox_alloc_context(void);
-
-/**
- * This is a convenience function that creates and sets up the Videotoolbox context using
- * an internal implementation.
- *
- * @param avctx the corresponding codec context
- *
- * @return >= 0 on success, a negative AVERROR code on failure
- */
-int av_videotoolbox_default_init(AVCodecContext *avctx);
-
-/**
- * This is a convenience function that creates and sets up the Videotoolbox context using
- * an internal implementation.
- *
- * @param avctx the corresponding codec context
- * @param vtctx the Videotoolbox context to use
- *
- * @return >= 0 on success, a negative AVERROR code on failure
- */
-int av_videotoolbox_default_init2(AVCodecContext *avctx, AVVideotoolboxContext *vtctx);
-
-/**
- * This function must be called to free the Videotoolbox context initialized with
- * av_videotoolbox_default_init().
- *
- * @param avctx the corresponding codec context
- */
-void av_videotoolbox_default_free(AVCodecContext *avctx);
-
-/**
- * @}
- */
-
-#endif /* AVCODEC_VIDEOTOOLBOX_H */
diff --git a/src/main/jni/ffmpeg/include/libavcodec/vorbis_parser.h b/src/main/jni/ffmpeg/include/libavcodec/vorbis_parser.h
deleted file mode 100644
index 06e48bd3b..000000000
--- a/src/main/jni/ffmpeg/include/libavcodec/vorbis_parser.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- *
- * 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
-#define VORBIS_FLAG_SETUP 0x00000004
-
-/**
- * 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 */
diff --git a/src/main/jni/ffmpeg/include/libavcodec/xvmc.h b/src/main/jni/ffmpeg/include/libavcodec/xvmc.h
deleted file mode 100644
index 465ee78d6..000000000
--- a/src/main/jni/ffmpeg/include/libavcodec/xvmc.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * 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"
-
-/**
- * @defgroup lavc_codec_hwaccel_xvmc XvMC
- * @ingroup lavc_codec_hwaccel
- *
- * @{
- */
-
-#define AV_XVMC_ID 0x1DC711C0 /**< special value to ensure that regular pixel routines haven't corrupted the struct
- the number is 1337 speak for the letters IDCT MCo (motion compensation) */
-
-struct attribute_deprecated xvmc_pix_fmt {
- /** The field contains the special constant value AV_XVMC_ID.
- It is used as a test that the application correctly uses the API,
- and that there is no corruption caused by pixel routines.
- - application - set during initialization
- - libavcodec - unchanged
- */
- int xvmc_id;
-
- /** Pointer to the block array allocated by XvMCCreateBlocks().
- The array has to be freed by XvMCDestroyBlocks().
- Each group of 64 values represents one data block of differential
- pixel information (in MoCo mode) or coefficients for IDCT.
- - application - set the pointer during initialization
- - libavcodec - fills coefficients/pixel data into the array
- */
- short* data_blocks;
-
- /** Pointer to the macroblock description array allocated by
- XvMCCreateMacroBlocks() and freed by XvMCDestroyMacroBlocks().
- - application - set the pointer during initialization
- - libavcodec - fills description data into the array
- */
- XvMCMacroBlock* mv_blocks;
-
- /** Number of macroblock descriptions that can be stored in the mv_blocks
- array.
- - application - set during initialization
- - libavcodec - unchanged
- */
- int allocated_mv_blocks;
-
- /** Number of blocks that can be stored at once in the data_blocks array.
- - application - set during initialization
- - libavcodec - unchanged
- */
- int allocated_data_blocks;
-
- /** Indicate that the hardware would interpret data_blocks as IDCT
- coefficients and perform IDCT on them.
- - application - set during initialization
- - libavcodec - unchanged
- */
- int idct;
-
- /** In MoCo mode it indicates that intra macroblocks are assumed to be in
- unsigned format; same as the XVMC_INTRA_UNSIGNED flag.
- - application - set during initialization
- - libavcodec - unchanged
- */
- int unsigned_intra;
-
- /** Pointer to the surface allocated by XvMCCreateSurface().
- It has to be freed by XvMCDestroySurface() on application exit.
- It identifies the frame and its state on the video hardware.
- - application - set during initialization
- - libavcodec - unchanged
- */
- XvMCSurface* p_surface;
-
-/** Set by the decoder before calling ff_draw_horiz_band(),
- needed by the XvMCRenderSurface function. */
-//@{
- /** Pointer to the surface used as past reference
- - application - unchanged
- - libavcodec - set
- */
- XvMCSurface* p_past_surface;
-
- /** Pointer to the surface used as future reference
- - application - unchanged
- - libavcodec - set
- */
- XvMCSurface* p_future_surface;
-
- /** top/bottom field or frame
- - application - unchanged
- - libavcodec - set
- */
- unsigned int picture_structure;
-
- /** XVMC_SECOND_FIELD - 1st or 2nd field in the sequence
- - application - unchanged
- - libavcodec - set
- */
- unsigned int flags;
-//}@
-
- /** Number of macroblock descriptions in the mv_blocks array
- that have already been passed to the hardware.
- - application - zeroes it on get_buffer().
- A successful ff_draw_horiz_band() may increment it
- with filled_mb_block_num or zero both.
- - libavcodec - unchanged
- */
- int start_mv_blocks_num;
-
- /** Number of new macroblock descriptions in the mv_blocks array (after
- start_mv_blocks_num) that are filled by libavcodec and have to be
- passed to the hardware.
- - application - zeroes it on get_buffer() or after successful
- ff_draw_horiz_band().
- - libavcodec - increment with one of each stored MB
- */
- int filled_mv_blocks_num;
-
- /** Number of the next free data block; one data block consists of
- 64 short values in the data_blocks array.
- All blocks before this one have already been claimed by placing their
- position into the corresponding block description structure field,
- that are part of the mv_blocks array.
- - application - zeroes it on get_buffer().
- A successful ff_draw_horiz_band() may zero it together
- with start_mb_blocks_num.
- - libavcodec - each decoded macroblock increases it by the number
- of coded blocks it contains.
- */
- int next_free_data_block_num;
-};
-
-/**
- * @}
- */
-
-#endif /* AVCODEC_XVMC_H */
diff --git a/src/main/jni/ffmpeg/include/libavformat/avformat.h b/src/main/jni/ffmpeg/include/libavformat/avformat.h
deleted file mode 100644
index 95a645b35..000000000
--- a/src/main/jni/ffmpeg/include/libavformat/avformat.h
+++ /dev/null
@@ -1,2806 +0,0 @@
-/*
- * copyright (c) 2001 Fabrice Bellard
- *
- * 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 AVFORMAT_AVFORMAT_H
-#define AVFORMAT_AVFORMAT_H
-
-/**
- * @file
- * @ingroup libavf
- * Main libavformat public API header
- */
-
-/**
- * @defgroup libavf I/O and Muxing/Demuxing Library
- * @{
- *
- * Libavformat (lavf) is a library for dealing with various media container
- * formats. Its main two purposes are demuxing - i.e. splitting a media file
- * into component streams, and the reverse process of muxing - writing supplied
- * data in a specified container format. It also has an @ref lavf_io
- * "I/O module" which supports a number of protocols for accessing the data (e.g.
- * file, tcp, http and others). Before using lavf, you need to call
- * av_register_all() to register all compiled muxers, demuxers and protocols.
- * Unless you are absolutely sure you won't use libavformat's network
- * capabilities, you should also call avformat_network_init().
- *
- * A supported input format is described by an AVInputFormat struct, conversely
- * an output format is described by AVOutputFormat. You can iterate over all
- * registered input/output formats using the av_iformat_next() /
- * av_oformat_next() functions. The protocols layer is not part of the public
- * API, so you can only get the names of supported protocols with the
- * avio_enum_protocols() function.
- *
- * Main lavf structure used for both muxing and demuxing is AVFormatContext,
- * which exports all information about the file being read or written. As with
- * most Libavformat structures, its size is not part of public ABI, so it cannot be
- * allocated on stack or directly with av_malloc(). To create an
- * AVFormatContext, use avformat_alloc_context() (some functions, like
- * avformat_open_input() might do that for you).
- *
- * Most importantly an AVFormatContext contains:
- * @li the @ref AVFormatContext.iformat "input" or @ref AVFormatContext.oformat
- * "output" format. It is either autodetected or set by user for input;
- * always set by user for output.
- * @li an @ref AVFormatContext.streams "array" of AVStreams, which describe all
- * elementary streams stored in the file. AVStreams are typically referred to
- * using their index in this array.
- * @li an @ref AVFormatContext.pb "I/O context". It is either opened by lavf or
- * set by user for input, always set by user for output (unless you are dealing
- * with an AVFMT_NOFILE format).
- *
- * @section lavf_options Passing options to (de)muxers
- * It is possible to configure lavf muxers and demuxers using the @ref avoptions
- * mechanism. Generic (format-independent) libavformat options are provided by
- * AVFormatContext, they can be examined from a user program by calling
- * av_opt_next() / av_opt_find() on an allocated AVFormatContext (or its AVClass
- * from avformat_get_class()). Private (format-specific) options are provided by
- * AVFormatContext.priv_data if and only if AVInputFormat.priv_class /
- * AVOutputFormat.priv_class of the corresponding format struct is non-NULL.
- * Further options may be provided by the @ref AVFormatContext.pb "I/O context",
- * if its AVClass is non-NULL, and the protocols layer. See the discussion on
- * nesting in @ref avoptions documentation to learn how to access those.
- *
- * @defgroup lavf_decoding Demuxing
- * @{
- * Demuxers read a media file and split it into chunks of data (@em packets). A
- * @ref AVPacket "packet" contains one or more encoded frames which belongs to a
- * single elementary stream. In the lavf API this process is represented by the
- * avformat_open_input() function for opening a file, av_read_frame() for
- * reading a single packet and finally avformat_close_input(), which does the
- * cleanup.
- *
- * @section lavf_decoding_open Opening a media file
- * The minimum information required to open a file is its URL or filename, which
- * is passed to avformat_open_input(), as in the following code:
- * @code
- * const char *url = "in.mp3";
- * AVFormatContext *s = NULL;
- * int ret = avformat_open_input(&s, url, NULL, NULL);
- * if (ret < 0)
- * abort();
- * @endcode
- * The above code attempts to allocate an AVFormatContext, open the
- * specified file (autodetecting the format) and read the header, exporting the
- * information stored there into s. Some formats do not have a header or do not
- * store enough information there, so it is recommended that you call the
- * avformat_find_stream_info() function which tries to read and decode a few
- * frames to find missing information.
- *
- * In some cases you might want to preallocate an AVFormatContext yourself with
- * avformat_alloc_context() and do some tweaking on it before passing it to
- * avformat_open_input(). One such case is when you want to use custom functions
- * for reading input data instead of lavf internal I/O layer.
- * To do that, create your own AVIOContext with avio_alloc_context(), passing
- * your reading callbacks to it. Then set the @em pb field of your
- * AVFormatContext to newly created AVIOContext.
- *
- * Since the format of the opened file is in general not known until after
- * avformat_open_input() has returned, it is not possible to set demuxer private
- * options on a preallocated context. Instead, the options should be passed to
- * avformat_open_input() wrapped in an AVDictionary:
- * @code
- * AVDictionary *options = NULL;
- * av_dict_set(&options, "video_size", "640x480", 0);
- * av_dict_set(&options, "pixel_format", "rgb24", 0);
- *
- * if (avformat_open_input(&s, url, NULL, &options) < 0)
- * abort();
- * av_dict_free(&options);
- * @endcode
- * This code passes the private options 'video_size' and 'pixel_format' to the
- * demuxer. They would be necessary for e.g. the rawvideo demuxer, since it
- * cannot know how to interpret raw video data otherwise. If the format turns
- * out to be something different than raw video, those options will not be
- * recognized by the demuxer and therefore will not be applied. Such unrecognized
- * options are then returned in the options dictionary (recognized options are
- * consumed). The calling program can handle such unrecognized options as it
- * wishes, e.g.
- * @code
- * AVDictionaryEntry *e;
- * if (e = av_dict_get(options, "", NULL, AV_DICT_IGNORE_SUFFIX)) {
- * fprintf(stderr, "Option %s not recognized by the demuxer.\n", e->key);
- * abort();
- * }
- * @endcode
- *
- * After you have finished reading the file, you must close it with
- * avformat_close_input(). It will free everything associated with the file.
- *
- * @section lavf_decoding_read Reading from an opened file
- * Reading data from an opened AVFormatContext is done by repeatedly calling
- * av_read_frame() on it. Each call, if successful, will return an AVPacket
- * containing encoded data for one AVStream, identified by
- * AVPacket.stream_index. This packet may be passed straight into the libavcodec
- * decoding functions avcodec_decode_video2(), avcodec_decode_audio4() or
- * avcodec_decode_subtitle2() if the caller wishes to decode the data.
- *
- * AVPacket.pts, AVPacket.dts and AVPacket.duration timing information will be
- * set if known. They may also be unset (i.e. AV_NOPTS_VALUE for
- * pts/dts, 0 for duration) if the stream does not provide them. The timing
- * information will be in AVStream.time_base units, i.e. it has to be
- * multiplied by the timebase to convert them to seconds.
- *
- * If AVPacket.buf is set on the returned packet, then the packet is
- * allocated dynamically and the user may keep it indefinitely.
- * Otherwise, if AVPacket.buf is NULL, the packet data is backed by a
- * static storage somewhere inside the demuxer and the packet is only valid
- * until the next av_read_frame() call or closing the file. If the caller
- * requires a longer lifetime, av_dup_packet() will make an av_malloc()ed copy
- * of it.
- * In both cases, the packet must be freed with av_packet_unref() when it is no
- * longer needed.
- *
- * @section lavf_decoding_seek Seeking
- * @}
- *
- * @defgroup lavf_encoding Muxing
- * @{
- * Muxers take encoded data in the form of @ref AVPacket "AVPackets" and write
- * it into files or other output bytestreams in the specified container format.
- *
- * The main API functions for muxing are avformat_write_header() for writing the
- * file header, av_write_frame() / av_interleaved_write_frame() for writing the
- * packets and av_write_trailer() for finalizing the file.
- *
- * At the beginning of the muxing process, the caller must first call
- * avformat_alloc_context() to create a muxing context. The caller then sets up
- * the muxer by filling the various fields in this context:
- *
- * - The @ref AVFormatContext.oformat "oformat" field must be set to select the
- * muxer that will be used.
- * - Unless the format is of the AVFMT_NOFILE type, the @ref AVFormatContext.pb
- * "pb" field must be set to an opened IO context, either returned from
- * avio_open2() or a custom one.
- * - Unless the format is of the AVFMT_NOSTREAMS type, at least one stream must
- * be created with the avformat_new_stream() function. The caller should fill
- * the @ref AVStream.codec "stream codec context" information, such as the
- * codec @ref AVCodecContext.codec_type "type", @ref AVCodecContext.codec_id
- * "id" and other parameters (e.g. width / height, the pixel or sample format,
- * etc.) as known. The @ref AVStream.time_base "stream timebase" should
- * be set to the timebase that the caller desires to use for this stream (note
- * that the timebase actually used by the muxer can be different, as will be
- * described later).
- * - It is advised to manually initialize only the relevant fields in
- * AVCodecContext, rather than using @ref avcodec_copy_context() during
- * remuxing: there is no guarantee that the codec context values remain valid
- * for both input and output format contexts.
- * - The caller may fill in additional information, such as @ref
- * AVFormatContext.metadata "global" or @ref AVStream.metadata "per-stream"
- * metadata, @ref AVFormatContext.chapters "chapters", @ref
- * AVFormatContext.programs "programs", etc. as described in the
- * AVFormatContext documentation. Whether such information will actually be
- * stored in the output depends on what the container format and the muxer
- * support.
- *
- * When the muxing context is fully set up, the caller must call
- * avformat_write_header() to initialize the muxer internals and write the file
- * header. Whether anything actually is written to the IO context at this step
- * depends on the muxer, but this function must always be called. Any muxer
- * private options must be passed in the options parameter to this function.
- *
- * The data is then sent to the muxer by repeatedly calling av_write_frame() or
- * av_interleaved_write_frame() (consult those functions' documentation for
- * discussion on the difference between them; only one of them may be used with
- * a single muxing context, they should not be mixed). Do note that the timing
- * information on the packets sent to the muxer must be in the corresponding
- * AVStream's timebase. That timebase is set by the muxer (in the
- * avformat_write_header() step) and may be different from the timebase
- * requested by the caller.
- *
- * Once all the data has been written, the caller must call av_write_trailer()
- * to flush any buffered packets and finalize the output file, then close the IO
- * context (if any) and finally free the muxing context with
- * avformat_free_context().
- * @}
- *
- * @defgroup lavf_io I/O Read/Write
- * @{
- * @section lavf_io_dirlist Directory listing
- * The directory listing API makes it possible to list files on remote servers.
- *
- * Some of possible use cases:
- * - an "open file" dialog to choose files from a remote location,
- * - a recursive media finder providing a player with an ability to play all
- * files from a given directory.
- *
- * @subsection lavf_io_dirlist_open Opening a directory
- * At first, a directory needs to be opened by calling avio_open_dir()
- * supplied with a URL and, optionally, ::AVDictionary containing
- * protocol-specific parameters. The function returns zero or positive
- * integer and allocates AVIODirContext on success.
- *
- * @code
- * AVIODirContext *ctx = NULL;
- * if (avio_open_dir(&ctx, "smb://example.com/some_dir", NULL) < 0) {
- * fprintf(stderr, "Cannot open directory.\n");
- * abort();
- * }
- * @endcode
- *
- * This code tries to open a sample directory using smb protocol without
- * any additional parameters.
- *
- * @subsection lavf_io_dirlist_read Reading entries
- * Each directory's entry (i.e. file, another directory, anything else
- * within ::AVIODirEntryType) is represented by AVIODirEntry.
- * Reading consecutive entries from an opened AVIODirContext is done by
- * repeatedly calling avio_read_dir() on it. Each call returns zero or
- * positive integer if successful. Reading can be stopped right after the
- * NULL entry has been read -- it means there are no entries left to be
- * read. The following code reads all entries from a directory associated
- * with ctx and prints their names to standard output.
- * @code
- * AVIODirEntry *entry = NULL;
- * for (;;) {
- * if (avio_read_dir(ctx, &entry) < 0) {
- * fprintf(stderr, "Cannot list directory.\n");
- * abort();
- * }
- * if (!entry)
- * break;
- * printf("%s\n", entry->name);
- * avio_free_directory_entry(&entry);
- * }
- * @endcode
- * @}
- *
- * @defgroup lavf_codec Demuxers
- * @{
- * @defgroup lavf_codec_native Native Demuxers
- * @{
- * @}
- * @defgroup lavf_codec_wrappers External library wrappers
- * @{
- * @}
- * @}
- * @defgroup lavf_protos I/O Protocols
- * @{
- * @}
- * @defgroup lavf_internal Internal
- * @{
- * @}
- * @}
- *
- */
-
-#include <time.h>
-#include <stdio.h> /* FILE */
-#include "libavcodec/avcodec.h"
-#include "libavutil/dict.h"
-#include "libavutil/log.h"
-
-#include "avio.h"
-#include "libavformat/version.h"
-
-struct AVFormatContext;
-
-struct AVDeviceInfoList;
-struct AVDeviceCapabilitiesQuery;
-
-/**
- * @defgroup metadata_api Public Metadata API
- * @{
- * @ingroup libavf
- * The metadata API allows libavformat to export metadata tags to a client
- * application when demuxing. Conversely it allows a client application to
- * set metadata when muxing.
- *
- * Metadata is exported or set as pairs of key/value strings in the 'metadata'
- * fields of the AVFormatContext, AVStream, AVChapter and AVProgram structs
- * using the @ref lavu_dict "AVDictionary" API. Like all strings in FFmpeg,
- * metadata is assumed to be UTF-8 encoded Unicode. Note that metadata
- * exported by demuxers isn't checked to be valid UTF-8 in most cases.
- *
- * Important concepts to keep in mind:
- * - Keys are unique; there can never be 2 tags with the same key. This is
- * also meant semantically, i.e., a demuxer should not knowingly produce
- * several keys that are literally different but semantically identical.
- * E.g., key=Author5, key=Author6. In this example, all authors must be
- * placed in the same tag.
- * - Metadata is flat, not hierarchical; there are no subtags. If you
- * want to store, e.g., the email address of the child of producer Alice
- * and actor Bob, that could have key=alice_and_bobs_childs_email_address.
- * - Several modifiers can be applied to the tag name. This is done by
- * appending a dash character ('-') and the modifier name in the order
- * they appear in the list below -- e.g. foo-eng-sort, not foo-sort-eng.
- * - language -- a tag whose value is localized for a particular language
- * is appended with the ISO 639-2/B 3-letter language code.
- * For example: Author-ger=Michael, Author-eng=Mike
- * The original/default language is in the unqualified "Author" tag.
- * A demuxer should set a default if it sets any translated tag.
- * - sorting -- a modified version of a tag that should be used for
- * sorting will have '-sort' appended. E.g. artist="The Beatles",
- * artist-sort="Beatles, The".
- * - Some protocols and demuxers support metadata updates. After a successful
- * call to av_read_packet(), AVFormatContext.event_flags or AVStream.event_flags
- * will be updated to indicate if metadata changed. In order to detect metadata
- * changes on a stream, you need to loop through all streams in the AVFormatContext
- * and check their individual event_flags.
- *
- * - Demuxers attempt to export metadata in a generic format, however tags
- * with no generic equivalents are left as they are stored in the container.
- * Follows a list of generic tag names:
- *
- @verbatim
- album -- name of the set this work belongs to
- album_artist -- main creator of the set/album, if different from artist.
- e.g. "Various Artists" for compilation albums.
- artist -- main creator of the work
- comment -- any additional description of the file.
- composer -- who composed the work, if different from artist.
- copyright -- name of copyright holder.
- creation_time-- date when the file was created, preferably in ISO 8601.
- date -- date when the work was created, preferably in ISO 8601.
- disc -- number of a subset, e.g. disc in a multi-disc collection.
- encoder -- name/settings of the software/hardware that produced the file.
- encoded_by -- person/group who created the file.
- filename -- original name of the file.
- genre -- <self-evident>.
- language -- main language in which the work is performed, preferably
- in ISO 639-2 format. Multiple languages can be specified by
- separating them with commas.
- performer -- artist who performed the work, if different from artist.
- E.g for "Also sprach Zarathustra", artist would be "Richard
- Strauss" and performer "London Philharmonic Orchestra".
- publisher -- name of the label/publisher.
- service_name -- name of the service in broadcasting (channel name).
- service_provider -- name of the service provider in broadcasting.
- title -- name of the work.
- track -- number of this work in the set, can be in form current/total.
- variant_bitrate -- the total bitrate of the bitrate variant that the current stream is part of
- @endverbatim
- *
- * Look in the examples section for an application example how to use the Metadata API.
- *
- * @}
- */
-
-/* packet functions */
-
-
-/**
- * Allocate and read the payload of a packet and initialize its
- * fields with default values.
- *
- * @param s associated IO context
- * @param pkt packet
- * @param size desired payload size
- * @return >0 (read size) if OK, AVERROR_xxx otherwise
- */
-int av_get_packet(AVIOContext *s, AVPacket *pkt, int size);
-
-
-/**
- * Read data and append it to the current content of the AVPacket.
- * If pkt->size is 0 this is identical to av_get_packet.
- * Note that this uses av_grow_packet and thus involves a realloc
- * which is inefficient. Thus this function should only be used
- * when there is no reasonable way to know (an upper bound of)
- * the final size.
- *
- * @param s associated IO context
- * @param pkt packet
- * @param size amount of data to read
- * @return >0 (read size) if OK, AVERROR_xxx otherwise, previous data
- * will not be lost even if an error occurs.
- */
-int av_append_packet(AVIOContext *s, AVPacket *pkt, int size);
-
-#if FF_API_LAVF_FRAC
-/*************************************************/
-/* fractional numbers for exact pts handling */
-
-/**
- * The exact value of the fractional number is: 'val + num / den'.
- * num is assumed to be 0 <= num < den.
- */
-typedef struct AVFrac {
- int64_t val, num, den;
-} AVFrac;
-#endif
-
-/*************************************************/
-/* input/output formats */
-
-struct AVCodecTag;
-
-/**
- * This structure contains the data a format has to probe a file.
- */
-typedef struct AVProbeData {
- const char *filename;
- unsigned char *buf; /**< Buffer must have AVPROBE_PADDING_SIZE of extra allocated bytes filled with zero. */
- int buf_size; /**< Size of buf except extra allocated bytes */
- const char *mime_type; /**< mime_type, when known. */
-} AVProbeData;
-
-#define AVPROBE_SCORE_RETRY (AVPROBE_SCORE_MAX/4)
-#define AVPROBE_SCORE_STREAM_RETRY (AVPROBE_SCORE_MAX/4-1)
-
-#define AVPROBE_SCORE_EXTENSION 50 ///< score for file extension
-#define AVPROBE_SCORE_MIME 75 ///< score for file mime type
-#define AVPROBE_SCORE_MAX 100 ///< maximum score
-
-#define AVPROBE_PADDING_SIZE 32 ///< extra allocated bytes at the end of the probe buffer
-
-/// Demuxer will use avio_open, no opened file should be provided by the caller.
-#define AVFMT_NOFILE 0x0001
-#define AVFMT_NEEDNUMBER 0x0002 /**< Needs '%d' in filename. */
-#define AVFMT_SHOW_IDS 0x0008 /**< Show format stream IDs numbers. */
-#if FF_API_LAVF_FMT_RAWPICTURE
-#define AVFMT_RAWPICTURE 0x0020 /**< Format wants AVPicture structure for
- raw picture data. @deprecated Not used anymore */
-#endif
-#define AVFMT_GLOBALHEADER 0x0040 /**< Format wants global header. */
-#define AVFMT_NOTIMESTAMPS 0x0080 /**< Format does not need / have any timestamps. */
-#define AVFMT_GENERIC_INDEX 0x0100 /**< Use generic index building code. */
-#define AVFMT_TS_DISCONT 0x0200 /**< Format allows timestamp discontinuities. Note, muxers always require valid (monotone) timestamps */
-#define AVFMT_VARIABLE_FPS 0x0400 /**< Format allows variable fps. */
-#define AVFMT_NODIMENSIONS 0x0800 /**< Format does not need width/height */
-#define AVFMT_NOSTREAMS 0x1000 /**< Format does not require any streams */
-#define AVFMT_NOBINSEARCH 0x2000 /**< Format does not allow to fall back on binary search via read_timestamp */
-#define AVFMT_NOGENSEARCH 0x4000 /**< Format does not allow to fall back on generic search */
-#define AVFMT_NO_BYTE_SEEK 0x8000 /**< Format does not allow seeking by bytes */
-#define AVFMT_ALLOW_FLUSH 0x10000 /**< Format allows flushing. If not set, the muxer will not receive a NULL packet in the write_packet function. */
-#define AVFMT_TS_NONSTRICT 0x20000 /**< Format does not require strictly
- increasing timestamps, but they must
- still be monotonic */
-#define AVFMT_TS_NEGATIVE 0x40000 /**< Format allows muxing negative
- timestamps. If not set the timestamp
- will be shifted in av_write_frame and
- av_interleaved_write_frame so they
- start from 0.
- The user or muxer can override this through
- AVFormatContext.avoid_negative_ts
- */
-
-#define AVFMT_SEEK_TO_PTS 0x4000000 /**< Seeking is based on PTS */
-
-/**
- * @addtogroup lavf_encoding
- * @{
- */
-typedef struct AVOutputFormat {
- const char *name;
- /**
- * Descriptive name for the format, meant to be more human-readable
- * than name. You should use the NULL_IF_CONFIG_SMALL() macro
- * to define it.
- */
- const char *long_name;
- const char *mime_type;
- const char *extensions; /**< comma-separated filename extensions */
- /* output support */
- enum AVCodecID audio_codec; /**< default audio codec */
- enum AVCodecID video_codec; /**< default video codec */
- enum AVCodecID subtitle_codec; /**< default subtitle codec */
- /**
- * can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER,
- * AVFMT_GLOBALHEADER, AVFMT_NOTIMESTAMPS, AVFMT_VARIABLE_FPS,
- * AVFMT_NODIMENSIONS, AVFMT_NOSTREAMS, AVFMT_ALLOW_FLUSH,
- * AVFMT_TS_NONSTRICT
- */
- int flags;
-
- /**
- * List of supported codec_id-codec_tag pairs, ordered by "better
- * choice first". The arrays are all terminated by AV_CODEC_ID_NONE.
- */
- const struct AVCodecTag * const *codec_tag;
-
-
- const AVClass *priv_class; ///< AVClass for the private context
-
- /*****************************************************************
- * No fields below this line are part of the public API. They
- * may not be used outside of libavformat and can be changed and
- * removed at will.
- * New public fields should be added right above.
- *****************************************************************
- */
- struct AVOutputFormat *next;
- /**
- * size of private data so that it can be allocated in the wrapper
- */
- int priv_data_size;
-
- int (*write_header)(struct AVFormatContext *);
- /**
- * Write a packet. If AVFMT_ALLOW_FLUSH is set in flags,
- * pkt can be NULL in order to flush data buffered in the muxer.
- * When flushing, return 0 if there still is more data to flush,
- * or 1 if everything was flushed and there is no more buffered
- * data.
- */
- int (*write_packet)(struct AVFormatContext *, AVPacket *pkt);
- int (*write_trailer)(struct AVFormatContext *);
- /**
- * Currently only used to set pixel format if not YUV420P.
- */
- int (*interleave_packet)(struct AVFormatContext *, AVPacket *out,
- AVPacket *in, int flush);
- /**
- * Test if the given codec can be stored in this container.
- *
- * @return 1 if the codec is supported, 0 if it is not.
- * A negative number if unknown.
- * MKTAG('A', 'P', 'I', 'C') if the codec is only supported as AV_DISPOSITION_ATTACHED_PIC
- */
- int (*query_codec)(enum AVCodecID id, int std_compliance);
-
- void (*get_output_timestamp)(struct AVFormatContext *s, int stream,
- int64_t *dts, int64_t *wall);
- /**
- * Allows sending messages from application to device.
- */
- int (*control_message)(struct AVFormatContext *s, int type,
- void *data, size_t data_size);
-
- /**
- * Write an uncoded AVFrame.
- *
- * See av_write_uncoded_frame() for details.
- *
- * The library will free *frame afterwards, but the muxer can prevent it
- * by setting the pointer to NULL.
- */
- int (*write_uncoded_frame)(struct AVFormatContext *, int stream_index,
- AVFrame **frame, unsigned flags);
- /**
- * Returns device list with it properties.
- * @see avdevice_list_devices() for more details.
- */
- int (*get_device_list)(struct AVFormatContext *s, struct AVDeviceInfoList *device_list);
- /**
- * Initialize device capabilities submodule.
- * @see avdevice_capabilities_create() for more details.
- */
- int (*create_device_capabilities)(struct AVFormatContext *s, struct AVDeviceCapabilitiesQuery *caps);
- /**
- * Free device capabilities submodule.
- * @see avdevice_capabilities_free() for more details.
- */
- int (*free_device_capabilities)(struct AVFormatContext *s, struct AVDeviceCapabilitiesQuery *caps);
- enum AVCodecID data_codec; /**< default data codec */
- /**
- * Initialize format. May allocate data here, and set any AVFormatContext or
- * AVStream parameters that need to be set before packets are sent.
- * This method must not write output.
- *
- * Any allocations made here must be freed in deinit().
- */
- int (*init)(struct AVFormatContext *);
- /**
- * Deinitialize format. If present, this is called whenever the muxer is being
- * destroyed, regardless of whether or not the header has been written.
- *
- * If a trailer is being written, this is called after write_trailer().
- *
- * This is called if init() fails as well.
- */
- void (*deinit)(struct AVFormatContext *);
- /**
- * Set up any necessary bitstream filtering and extract any extra data needed
- * for the global header.
- * Return 0 if more packets from this stream must be checked; 1 if not.
- */
- int (*check_bitstream)(struct AVFormatContext *, const AVPacket *pkt);
-} AVOutputFormat;
-/**
- * @}
- */
-
-/**
- * @addtogroup lavf_decoding
- * @{
- */
-typedef struct AVInputFormat {
- /**
- * A comma separated list of short names for the format. New names
- * may be appended with a minor bump.
- */
- const char *name;
-
- /**
- * Descriptive name for the format, meant to be more human-readable
- * than name. You should use the NULL_IF_CONFIG_SMALL() macro
- * to define it.
- */
- const char *long_name;
-
- /**
- * Can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_SHOW_IDS,
- * AVFMT_GENERIC_INDEX, AVFMT_TS_DISCONT, AVFMT_NOBINSEARCH,
- * AVFMT_NOGENSEARCH, AVFMT_NO_BYTE_SEEK, AVFMT_SEEK_TO_PTS.
- */
- int flags;
-
- /**
- * If extensions are defined, then no probe is done. You should
- * usually not use extension format guessing because it is not
- * reliable enough
- */
- const char *extensions;
-
- const struct AVCodecTag * const *codec_tag;
-
- const AVClass *priv_class; ///< AVClass for the private context
-
- /**
- * Comma-separated list of mime types.
- * It is used check for matching mime types while probing.
- * @see av_probe_input_format2
- */
- const char *mime_type;
-
- /*****************************************************************
- * No fields below this line are part of the public API. They
- * may not be used outside of libavformat and can be changed and
- * removed at will.
- * New public fields should be added right above.
- *****************************************************************
- */
- struct AVInputFormat *next;
-
- /**
- * Raw demuxers store their codec ID here.
- */
- int raw_codec_id;
-
- /**
- * Size of private data so that it can be allocated in the wrapper.
- */
- int priv_data_size;
-
- /**
- * Tell if a given file has a chance of being parsed as this format.
- * The buffer provided is guaranteed to be AVPROBE_PADDING_SIZE bytes
- * big so you do not have to check for that unless you need more.
- */
- int (*read_probe)(AVProbeData *);
-
- /**
- * Read the format header and initialize the AVFormatContext
- * structure. Return 0 if OK. 'avformat_new_stream' should be
- * called to create new streams.
- */
- int (*read_header)(struct AVFormatContext *);
-
- /**
- * Read one packet and put it in 'pkt'. pts and flags are also
- * set. 'avformat_new_stream' can be called only if the flag
- * AVFMTCTX_NOHEADER is used and only in the calling thread (not in a
- * background thread).
- * @return 0 on success, < 0 on error.
- * When returning an error, pkt must not have been allocated
- * or must be freed before returning
- */
- int (*read_packet)(struct AVFormatContext *, AVPacket *pkt);
-
- /**
- * Close the stream. The AVFormatContext and AVStreams are not
- * freed by this function
- */
- int (*read_close)(struct AVFormatContext *);
-
- /**
- * Seek to a given timestamp relative to the frames in
- * stream component stream_index.
- * @param stream_index Must not be -1.
- * @param flags Selects which direction should be preferred if no exact
- * match is available.
- * @return >= 0 on success (but not necessarily the new offset)
- */
- int (*read_seek)(struct AVFormatContext *,
- int stream_index, int64_t timestamp, int flags);
-
- /**
- * Get the next timestamp in stream[stream_index].time_base units.
- * @return the timestamp or AV_NOPTS_VALUE if an error occurred
- */
- int64_t (*read_timestamp)(struct AVFormatContext *s, int stream_index,
- int64_t *pos, int64_t pos_limit);
-
- /**
- * Start/resume playing - only meaningful if using a network-based format
- * (RTSP).
- */
- int (*read_play)(struct AVFormatContext *);
-
- /**
- * Pause playing - only meaningful if using a network-based format
- * (RTSP).
- */
- int (*read_pause)(struct AVFormatContext *);
-
- /**
- * Seek to timestamp ts.
- * Seeking will be done so that the point from which all active streams
- * can be presented successfully will be closest to ts and within min/max_ts.
- * Active streams are all streams that have AVStream.discard < AVDISCARD_ALL.
- */
- int (*read_seek2)(struct AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags);
-
- /**
- * Returns device list with it properties.
- * @see avdevice_list_devices() for more details.
- */
- int (*get_device_list)(struct AVFormatContext *s, struct AVDeviceInfoList *device_list);
-
- /**
- * Initialize device capabilities submodule.
- * @see avdevice_capabilities_create() for more details.
- */
- int (*create_device_capabilities)(struct AVFormatContext *s, struct AVDeviceCapabilitiesQuery *caps);
-
- /**
- * Free device capabilities submodule.
- * @see avdevice_capabilities_free() for more details.
- */
- int (*free_device_capabilities)(struct AVFormatContext *s, struct AVDeviceCapabilitiesQuery *caps);
-} AVInputFormat;
-/**
- * @}
- */
-
-enum AVStreamParseType {
- AVSTREAM_PARSE_NONE,
- AVSTREAM_PARSE_FULL, /**< full parsing and repack */
- AVSTREAM_PARSE_HEADERS, /**< Only parse headers, do not repack. */
- AVSTREAM_PARSE_TIMESTAMPS, /**< full parsing and interpolation of timestamps for frames not starting on a packet boundary */
- AVSTREAM_PARSE_FULL_ONCE, /**< full parsing and repack of the first frame only, only implemented for H.264 currently */
- AVSTREAM_PARSE_FULL_RAW=MKTAG(0,'R','A','W'), /**< full parsing and repack with timestamp and position generation by parser for raw
- this assumes that each packet in the file contains no demuxer level headers and
- just codec level data, otherwise position generation would fail */
-};
-
-typedef struct AVIndexEntry {
- int64_t pos;
- int64_t timestamp; /**<
- * Timestamp in AVStream.time_base units, preferably the time from which on correctly decoded frames are available
- * when seeking to this entry. That means preferable PTS on keyframe based formats.
- * But demuxers can choose to store a different timestamp, if it is more convenient for the implementation or nothing better
- * is known
- */
-#define AVINDEX_KEYFRAME 0x0001
- int flags:2;
- int size:30; //Yeah, trying to keep the size of this small to reduce memory requirements (it is 24 vs. 32 bytes due to possible 8-byte alignment).
- int min_distance; /**< Minimum distance between this and the previous keyframe, used to avoid unneeded searching. */
-} AVIndexEntry;
-
-#define AV_DISPOSITION_DEFAULT 0x0001
-#define AV_DISPOSITION_DUB 0x0002
-#define AV_DISPOSITION_ORIGINAL 0x0004
-#define AV_DISPOSITION_COMMENT 0x0008
-#define AV_DISPOSITION_LYRICS 0x0010
-#define AV_DISPOSITION_KARAOKE 0x0020
-
-/**
- * Track should be used during playback by default.
- * Useful for subtitle track that should be displayed
- * even when user did not explicitly ask for subtitles.
- */
-#define AV_DISPOSITION_FORCED 0x0040
-#define AV_DISPOSITION_HEARING_IMPAIRED 0x0080 /**< stream for hearing impaired audiences */
-#define AV_DISPOSITION_VISUAL_IMPAIRED 0x0100 /**< stream for visual impaired audiences */
-#define AV_DISPOSITION_CLEAN_EFFECTS 0x0200 /**< stream without voice */
-/**
- * The stream is stored in the file as an attached picture/"cover art" (e.g.
- * APIC frame in ID3v2). The single packet associated with it will be returned
- * among the first few packets read from the file unless seeking takes place.
- * It can also be accessed at any time in AVStream.attached_pic.
- */
-#define AV_DISPOSITION_ATTACHED_PIC 0x0400
-
-typedef struct AVStreamInternal AVStreamInternal;
-
-/**
- * To specify text track kind (different from subtitles default).
- */
-#define AV_DISPOSITION_CAPTIONS 0x10000
-#define AV_DISPOSITION_DESCRIPTIONS 0x20000
-#define AV_DISPOSITION_METADATA 0x40000
-
-/**
- * Options for behavior on timestamp wrap detection.
- */
-#define AV_PTS_WRAP_IGNORE 0 ///< ignore the wrap
-#define AV_PTS_WRAP_ADD_OFFSET 1 ///< add the format specific offset on wrap detection
-#define AV_PTS_WRAP_SUB_OFFSET -1 ///< subtract the format specific offset on wrap detection
-
-/**
- * Stream structure.
- * New fields can be added to the end with minor version bumps.
- * Removal, reordering and changes to existing fields require a major
- * version bump.
- * sizeof(AVStream) must not be used outside libav*.
- */
-typedef struct AVStream {
- int index; /**< stream index in AVFormatContext */
- /**
- * Format-specific stream ID.
- * decoding: set by libavformat
- * encoding: set by the user, replaced by libavformat if left unset
- */
- int id;
- /**
- * Codec context associated with this stream. Allocated and freed by
- * libavformat.
- *
- * - decoding: The demuxer exports codec information stored in the headers
- * here.
- * - encoding: The user sets codec information, the muxer writes it to the
- * output. Mandatory fields as specified in AVCodecContext
- * documentation must be set even if this AVCodecContext is
- * not actually used for encoding.
- */
- AVCodecContext *codec;
- void *priv_data;
-
-#if FF_API_LAVF_FRAC
- /**
- * @deprecated this field is unused
- */
- attribute_deprecated
- struct AVFrac pts;
-#endif
-
- /**
- * This is the fundamental unit of time (in seconds) in terms
- * of which frame timestamps are represented.
- *
- * decoding: set by libavformat
- * encoding: May be set by the caller before avformat_write_header() to
- * provide a hint to the muxer about the desired timebase. In
- * avformat_write_header(), the muxer will overwrite this field
- * with the timebase that will actually be used for the timestamps
- * written into the file (which may or may not be related to the
- * user-provided one, depending on the format).
- */
- AVRational time_base;
-
- /**
- * Decoding: pts of the first frame of the stream in presentation order, in stream time base.
- * Only set this if you are absolutely 100% sure that the value you set
- * it to really is the pts of the first frame.
- * This may be undefined (AV_NOPTS_VALUE).
- * @note The ASF header does NOT contain a correct start_time the ASF
- * demuxer must NOT set this.
- */
- int64_t start_time;
-
- /**
- * Decoding: duration of the stream, in stream time base.
- * If a source file does not specify a duration, but does specify
- * a bitrate, this value will be estimated from bitrate and file size.
- */
- int64_t duration;
-
- int64_t nb_frames; ///< number of frames in this stream if known or 0
-
- int disposition; /**< AV_DISPOSITION_* bit field */
-
- enum AVDiscard discard; ///< Selects which packets can be discarded at will and do not need to be demuxed.
-
- /**
- * sample aspect ratio (0 if unknown)
- * - encoding: Set by user.
- * - decoding: Set by libavformat.
- */
- AVRational sample_aspect_ratio;
-
- AVDictionary *metadata;
-
- /**
- * Average framerate
- *
- * - demuxing: May be set by libavformat when creating the stream or in
- * avformat_find_stream_info().
- * - muxing: May be set by the caller before avformat_write_header().
- */
- AVRational avg_frame_rate;
-
- /**
- * For streams with AV_DISPOSITION_ATTACHED_PIC disposition, this packet
- * will contain the attached picture.
- *
- * decoding: set by libavformat, must not be modified by the caller.
- * encoding: unused
- */
- AVPacket attached_pic;
-
- /**
- * An array of side data that applies to the whole stream (i.e. the
- * container does not allow it to change between packets).
- *
- * There may be no overlap between the side data in this array and side data
- * in the packets. I.e. a given side data is either exported by the muxer
- * (demuxing) / set by the caller (muxing) in this array, then it never
- * appears in the packets, or the side data is exported / sent through
- * the packets (always in the first packet where the value becomes known or
- * changes), then it does not appear in this array.
- *
- * - demuxing: Set by libavformat when the stream is created.
- * - muxing: May be set by the caller before avformat_write_header().
- *
- * Freed by libavformat in avformat_free_context().
- *
- * @see av_format_inject_global_side_data()
- */
- AVPacketSideData *side_data;
- /**
- * The number of elements in the AVStream.side_data array.
- */
- int nb_side_data;
-
- /**
- * Flags for the user to detect events happening on the stream. Flags must
- * be cleared by the user once the event has been handled.
- * A combination of AVSTREAM_EVENT_FLAG_*.
- */
- int event_flags;
-#define AVSTREAM_EVENT_FLAG_METADATA_UPDATED 0x0001 ///< The call resulted in updated metadata.
-
- /*****************************************************************
- * All fields below this line are not part of the public API. They
- * may not be used outside of libavformat and can be changed and
- * removed at will.
- * New public fields should be added right above.
- *****************************************************************
- */
-
- /**
- * Stream information used internally by av_find_stream_info()
- */
-#define MAX_STD_TIMEBASES (30*12+7+6)
- struct {
- int64_t last_dts;
- int64_t duration_gcd;
- int duration_count;
- int64_t rfps_duration_sum;
- double (*duration_error)[2][MAX_STD_TIMEBASES];
- int64_t codec_info_duration;
- int64_t codec_info_duration_fields;
-
- /**
- * 0 -> decoder has not been searched for yet.
- * >0 -> decoder found
- * <0 -> decoder with codec_id == -found_decoder has not been found
- */
- int found_decoder;
-
- int64_t last_duration;
-
- /**
- * Those are used for average framerate estimation.
- */
- int64_t fps_first_dts;
- int fps_first_dts_idx;
- int64_t fps_last_dts;
- int fps_last_dts_idx;
-
- } *info;
-
- int pts_wrap_bits; /**< number of bits in pts (used for wrapping control) */
-
- // Timestamp generation support:
- /**
- * Timestamp corresponding to the last dts sync point.
- *
- * Initialized when AVCodecParserContext.dts_sync_point >= 0 and
- * a DTS is received from the underlying container. Otherwise set to
- * AV_NOPTS_VALUE by default.
- */
- int64_t first_dts;
- int64_t cur_dts;
- int64_t last_IP_pts;
- int last_IP_duration;
-
- /**
- * Number of packets to buffer for codec probing
- */
- int probe_packets;
-
- /**
- * Number of frames that have been demuxed during av_find_stream_info()
- */
- int codec_info_nb_frames;
-
- /* av_read_frame() support */
- enum AVStreamParseType need_parsing;
- struct AVCodecParserContext *parser;
-
- /**
- * last packet in packet_buffer for this stream when muxing.
- */
- struct AVPacketList *last_in_packet_buffer;
- AVProbeData probe_data;
-#define MAX_REORDER_DELAY 16
- int64_t pts_buffer[MAX_REORDER_DELAY+1];
-
- AVIndexEntry *index_entries; /**< Only used if the format does not
- support seeking natively. */
- int nb_index_entries;
- unsigned int index_entries_allocated_size;
-
- /**
- * Real base framerate of the stream.
- * This is the lowest framerate with which all timestamps can be
- * represented accurately (it is the least common multiple of all
- * framerates in the stream). Note, this value is just a guess!
- * For example, if the time base is 1/90000 and all frames have either
- * approximately 3600 or 1800 timer ticks, then r_frame_rate will be 50/1.
- *
- * Code outside avformat should access this field using:
- * av_stream_get/set_r_frame_rate(stream)
- */
- AVRational r_frame_rate;
-
- /**
- * Stream Identifier
- * This is the MPEG-TS stream identifier +1
- * 0 means unknown
- */
- int stream_identifier;
-
- int64_t interleaver_chunk_size;
- int64_t interleaver_chunk_duration;
-
- /**
- * stream probing state
- * -1 -> probing finished
- * 0 -> no probing requested
- * rest -> perform probing with request_probe being the minimum score to accept.
- * NOT PART OF PUBLIC API
- */
- int request_probe;
- /**
- * Indicates that everything up to the next keyframe
- * should be discarded.
- */
- int skip_to_keyframe;
-
- /**
- * Number of samples to skip at the start of the frame decoded from the next packet.
- */
- int skip_samples;
-
- /**
- * If not 0, the number of samples that should be skipped from the start of
- * the stream (the samples are removed from packets with pts==0, which also
- * assumes negative timestamps do not happen).
- * Intended for use with formats such as mp3 with ad-hoc gapless audio
- * support.
- */
- int64_t start_skip_samples;
-
- /**
- * If not 0, the first audio sample that should be discarded from the stream.
- * This is broken by design (needs global sample count), but can't be
- * avoided for broken by design formats such as mp3 with ad-hoc gapless
- * audio support.
- */
- int64_t first_discard_sample;
-
- /**
- * The sample after last sample that is intended to be discarded after
- * first_discard_sample. Works on frame boundaries only. Used to prevent
- * early EOF if the gapless info is broken (considered concatenated mp3s).
- */
- int64_t last_discard_sample;
-
- /**
- * Number of internally decoded frames, used internally in libavformat, do not access
- * its lifetime differs from info which is why it is not in that structure.
- */
- int nb_decoded_frames;
-
- /**
- * Timestamp offset added to timestamps before muxing
- * NOT PART OF PUBLIC API
- */
- int64_t mux_ts_offset;
-
- /**
- * Internal data to check for wrapping of the time stamp
- */
- int64_t pts_wrap_reference;
-
- /**
- * Options for behavior, when a wrap is detected.
- *
- * Defined by AV_PTS_WRAP_ values.
- *
- * If correction is enabled, there are two possibilities:
- * If the first time stamp is near the wrap point, the wrap offset
- * will be subtracted, which will create negative time stamps.
- * Otherwise the offset will be added.
- */
- int pts_wrap_behavior;
-
- /**
- * Internal data to prevent doing update_initial_durations() twice
- */
- int update_initial_durations_done;
-
- /**
- * Internal data to generate dts from pts
- */
- int64_t pts_reorder_error[MAX_REORDER_DELAY+1];
- uint8_t pts_reorder_error_count[MAX_REORDER_DELAY+1];
-
- /**
- * Internal data to analyze DTS and detect faulty mpeg streams
- */
- int64_t last_dts_for_order_check;
- uint8_t dts_ordered;
- uint8_t dts_misordered;
-
- /**
- * Internal data to inject global side data
- */
- int inject_global_side_data;
-
- /**
- * String containing paris of key and values describing recommended encoder configuration.
- * Paris are separated by ','.
- * Keys are separated from values by '='.
- */
- char *recommended_encoder_configuration;
-
- /**
- * display aspect ratio (0 if unknown)
- * - encoding: unused
- * - decoding: Set by libavformat to calculate sample_aspect_ratio internally
- */
- AVRational display_aspect_ratio;
-
- struct FFFrac *priv_pts;
-
- /**
- * An opaque field for libavformat internal usage.
- * Must not be accessed in any way by callers.
- */
- AVStreamInternal *internal;
-} AVStream;
-
-AVRational av_stream_get_r_frame_rate(const AVStream *s);
-void av_stream_set_r_frame_rate(AVStream *s, AVRational r);
-struct AVCodecParserContext *av_stream_get_parser(const AVStream *s);
-char* av_stream_get_recommended_encoder_configuration(const AVStream *s);
-void av_stream_set_recommended_encoder_configuration(AVStream *s, char *configuration);
-
-/**
- * Returns the pts of the last muxed packet + its duration
- *
- * the retuned value is undefined when used with a demuxer.
- */
-int64_t av_stream_get_end_pts(const AVStream *st);
-
-#define AV_PROGRAM_RUNNING 1
-
-/**
- * New fields can be added to the end with minor version bumps.
- * Removal, reordering and changes to existing fields require a major
- * version bump.
- * sizeof(AVProgram) must not be used outside libav*.
- */
-typedef struct AVProgram {
- int id;
- int flags;
- enum AVDiscard discard; ///< selects which program to discard and which to feed to the caller
- unsigned int *stream_index;
- unsigned int nb_stream_indexes;
- AVDictionary *metadata;
-
- int program_num;
- int pmt_pid;
- int pcr_pid;
-
- /*****************************************************************
- * All fields below this line are not part of the public API. They
- * may not be used outside of libavformat and can be changed and
- * removed at will.
- * New public fields should be added right above.
- *****************************************************************
- */
- int64_t start_time;
- int64_t end_time;
-
- int64_t pts_wrap_reference; ///< reference dts for wrap detection
- int pts_wrap_behavior; ///< behavior on wrap detection
-} AVProgram;
-
-#define AVFMTCTX_NOHEADER 0x0001 /**< signal that no header is present
- (streams are added dynamically) */
-
-typedef struct AVChapter {
- int id; ///< unique ID to identify the chapter
- AVRational time_base; ///< time base in which the start/end timestamps are specified
- int64_t start, end; ///< chapter start/end time in time_base units
- AVDictionary *metadata;
-} AVChapter;
-
-
-/**
- * Callback used by devices to communicate with application.
- */
-typedef int (*av_format_control_message)(struct AVFormatContext *s, int type,
- void *data, size_t data_size);
-
-typedef int (*AVOpenCallback)(struct AVFormatContext *s, AVIOContext **pb, const char *url, int flags,
- const AVIOInterruptCB *int_cb, AVDictionary **options);
-
-/**
- * The duration of a video can be estimated through various ways, and this enum can be used
- * to know how the duration was estimated.
- */
-enum AVDurationEstimationMethod {
- AVFMT_DURATION_FROM_PTS, ///< Duration accurately estimated from PTSes
- AVFMT_DURATION_FROM_STREAM, ///< Duration estimated from a stream with a known duration
- AVFMT_DURATION_FROM_BITRATE ///< Duration estimated from bitrate (less accurate)
-};
-
-typedef struct AVFormatInternal AVFormatInternal;
-
-/**
- * Format I/O context.
- * New fields can be added to the end with minor version bumps.
- * Removal, reordering and changes to existing fields require a major
- * version bump.
- * sizeof(AVFormatContext) must not be used outside libav*, use
- * avformat_alloc_context() to create an AVFormatContext.
- */
-typedef struct AVFormatContext {
- /**
- * A class for logging and @ref avoptions. Set by avformat_alloc_context().
- * Exports (de)muxer private options if they exist.
- */
- const AVClass *av_class;
-
- /**
- * The input container format.
- *
- * Demuxing only, set by avformat_open_input().
- */
- struct AVInputFormat *iformat;
-
- /**
- * The output container format.
- *
- * Muxing only, must be set by the caller before avformat_write_header().
- */
- struct AVOutputFormat *oformat;
-
- /**
- * Format private data. This is an AVOptions-enabled struct
- * if and only if iformat/oformat.priv_class is not NULL.
- *
- * - muxing: set by avformat_write_header()
- * - demuxing: set by avformat_open_input()
- */
- void *priv_data;
-
- /**
- * I/O context.
- *
- * - demuxing: either set by the user before avformat_open_input() (then
- * the user must close it manually) or set by avformat_open_input().
- * - muxing: set by the user before avformat_write_header(). The caller must
- * take care of closing / freeing the IO context.
- *
- * Do NOT set this field if AVFMT_NOFILE flag is set in
- * iformat/oformat.flags. In such a case, the (de)muxer will handle
- * I/O in some other way and this field will be NULL.
- */
- AVIOContext *pb;
-
- /* stream info */
- /**
- * Flags signalling stream properties. A combination of AVFMTCTX_*.
- * Set by libavformat.
- */
- int ctx_flags;
-
- /**
- * Number of elements in AVFormatContext.streams.
- *
- * Set by avformat_new_stream(), must not be modified by any other code.
- */
- unsigned int nb_streams;
- /**
- * A list of all streams in the file. New streams are created with
- * avformat_new_stream().
- *
- * - demuxing: streams are created by libavformat in avformat_open_input().
- * If AVFMTCTX_NOHEADER is set in ctx_flags, then new streams may also
- * appear in av_read_frame().
- * - muxing: streams are created by the user before avformat_write_header().
- *
- * Freed by libavformat in avformat_free_context().
- */
- AVStream **streams;
-
- /**
- * input or output filename
- *
- * - demuxing: set by avformat_open_input()
- * - muxing: may be set by the caller before avformat_write_header()
- */
- char filename[1024];
-
- /**
- * Position of the first frame of the component, in
- * AV_TIME_BASE fractional seconds. NEVER set this value directly:
- * It is deduced from the AVStream values.
- *
- * Demuxing only, set by libavformat.
- */
- int64_t start_time;
-
- /**
- * Duration of the stream, in AV_TIME_BASE fractional
- * seconds. Only set this value if you know none of the individual stream
- * durations and also do not set any of them. This is deduced from the
- * AVStream values if not set.
- *
- * Demuxing only, set by libavformat.
- */
- int64_t duration;
-
- /**
- * Total stream bitrate in bit/s, 0 if not
- * available. Never set it directly if the file_size and the
- * duration are known as FFmpeg can compute it automatically.
- */
- int64_t bit_rate;
-
- unsigned int packet_size;
- int max_delay;
-
- /**
- * Flags modifying the (de)muxer behaviour. A combination of AVFMT_FLAG_*.
- * Set by the user before avformat_open_input() / avformat_write_header().
- */
- int flags;
-#define AVFMT_FLAG_GENPTS 0x0001 ///< Generate missing pts even if it requires parsing future frames.
-#define AVFMT_FLAG_IGNIDX 0x0002 ///< Ignore index.
-#define AVFMT_FLAG_NONBLOCK 0x0004 ///< Do not block when reading packets from input.
-#define AVFMT_FLAG_IGNDTS 0x0008 ///< Ignore DTS on frames that contain both DTS & PTS
-#define AVFMT_FLAG_NOFILLIN 0x0010 ///< Do not infer any values from other values, just return what is stored in the container
-#define AVFMT_FLAG_NOPARSE 0x0020 ///< Do not use AVParsers, you also must set AVFMT_FLAG_NOFILLIN as the fillin code works on frames and no parsing -> no frames. Also seeking to frames can not work if parsing to find frame boundaries has been disabled
-#define AVFMT_FLAG_NOBUFFER 0x0040 ///< Do not buffer frames when possible
-#define AVFMT_FLAG_CUSTOM_IO 0x0080 ///< The caller has supplied a custom AVIOContext, don't avio_close() it.
-#define AVFMT_FLAG_DISCARD_CORRUPT 0x0100 ///< Discard frames marked corrupted
-#define AVFMT_FLAG_FLUSH_PACKETS 0x0200 ///< Flush the AVIOContext every packet.
-/**
- * When muxing, try to avoid writing any random/volatile data to the output.
- * This includes any random IDs, real-time timestamps/dates, muxer version, etc.
- *
- * This flag is mainly intended for testing.
- */
-#define AVFMT_FLAG_BITEXACT 0x0400
-#define AVFMT_FLAG_MP4A_LATM 0x8000 ///< Enable RTP MP4A-LATM payload
-#define AVFMT_FLAG_SORT_DTS 0x10000 ///< try to interleave outputted packets by dts (using this flag can slow demuxing down)
-#define AVFMT_FLAG_PRIV_OPT 0x20000 ///< Enable use of private options by delaying codec open (this could be made default once all code is converted)
-#define AVFMT_FLAG_KEEP_SIDE_DATA 0x40000 ///< Don't merge side data but keep it separate.
-#define AVFMT_FLAG_FAST_SEEK 0x80000 ///< Enable fast, but inaccurate seeks for some formats
-
- /**
- * Maximum size of the data read from input for determining
- * the input container format.
- * Demuxing only, set by the caller before avformat_open_input().
- */
- int64_t probesize;
-
- /**
- * Maximum duration (in AV_TIME_BASE units) of the data read
- * from input in avformat_find_stream_info().
- * Demuxing only, set by the caller before avformat_find_stream_info().
- * Can be set to 0 to let avformat choose using a heuristic.
- */
- int64_t max_analyze_duration;
-
- const uint8_t *key;
- int keylen;
-
- unsigned int nb_programs;
- AVProgram **programs;
-
- /**
- * Forced video codec_id.
- * Demuxing: Set by user.
- */
- enum AVCodecID video_codec_id;
-
- /**
- * Forced audio codec_id.
- * Demuxing: Set by user.
- */
- enum AVCodecID audio_codec_id;
-
- /**
- * Forced subtitle codec_id.
- * Demuxing: Set by user.
- */
- enum AVCodecID subtitle_codec_id;
-
- /**
- * Maximum amount of memory in bytes to use for the index of each stream.
- * If the index exceeds this size, entries will be discarded as
- * needed to maintain a smaller size. This can lead to slower or less
- * accurate seeking (depends on demuxer).
- * Demuxers for which a full in-memory index is mandatory will ignore
- * this.
- * - muxing: unused
- * - demuxing: set by user
- */
- unsigned int max_index_size;
-
- /**
- * Maximum amount of memory in bytes to use for buffering frames
- * obtained from realtime capture devices.
- */
- unsigned int max_picture_buffer;
-
- /**
- * Number of chapters in AVChapter array.
- * When muxing, chapters are normally written in the file header,
- * so nb_chapters should normally be initialized before write_header
- * is called. Some muxers (e.g. mov and mkv) can also write chapters
- * in the trailer. To write chapters in the trailer, nb_chapters
- * must be zero when write_header is called and non-zero when
- * write_trailer is called.
- * - muxing: set by user
- * - demuxing: set by libavformat
- */
- unsigned int nb_chapters;
- AVChapter **chapters;
-
- /**
- * Metadata that applies to the whole file.
- *
- * - demuxing: set by libavformat in avformat_open_input()
- * - muxing: may be set by the caller before avformat_write_header()
- *
- * Freed by libavformat in avformat_free_context().
- */
- AVDictionary *metadata;
-
- /**
- * Start time of the stream in real world time, in microseconds
- * since the Unix epoch (00:00 1st January 1970). That is, pts=0 in the
- * stream was captured at this real world time.
- * - muxing: Set by the caller before avformat_write_header(). If set to
- * either 0 or AV_NOPTS_VALUE, then the current wall-time will
- * be used.
- * - demuxing: Set by libavformat. AV_NOPTS_VALUE if unknown. Note that
- * the value may become known after some number of frames
- * have been received.
- */
- int64_t start_time_realtime;
-
- /**
- * The number of frames used for determining the framerate in
- * avformat_find_stream_info().
- * Demuxing only, set by the caller before avformat_find_stream_info().
- */
- int fps_probe_size;
-
- /**
- * Error recognition; higher values will detect more errors but may
- * misdetect some more or less valid parts as errors.
- * Demuxing only, set by the caller before avformat_open_input().
- */
- int error_recognition;
-
- /**
- * Custom interrupt callbacks for the I/O layer.
- *
- * demuxing: set by the user before avformat_open_input().
- * muxing: set by the user before avformat_write_header()
- * (mainly useful for AVFMT_NOFILE formats). The callback
- * should also be passed to avio_open2() if it's used to
- * open the file.
- */
- AVIOInterruptCB interrupt_callback;
-
- /**
- * Flags to enable debugging.
- */
- int debug;
-#define FF_FDEBUG_TS 0x0001
-
- /**
- * Maximum buffering duration for interleaving.
- *
- * To ensure all the streams are interleaved correctly,
- * av_interleaved_write_frame() will wait until it has at least one packet
- * for each stream before actually writing any packets to the output file.
- * When some streams are "sparse" (i.e. there are large gaps between
- * successive packets), this can result in excessive buffering.
- *
- * This field specifies the maximum difference between the timestamps of the
- * first and the last packet in the muxing queue, above which libavformat
- * will output a packet regardless of whether it has queued a packet for all
- * the streams.
- *
- * Muxing only, set by the caller before avformat_write_header().
- */
- int64_t max_interleave_delta;
-
- /**
- * Allow non-standard and experimental extension
- * @see AVCodecContext.strict_std_compliance
- */
- int strict_std_compliance;
-
- /**
- * Flags for the user to detect events happening on the file. Flags must
- * be cleared by the user once the event has been handled.
- * A combination of AVFMT_EVENT_FLAG_*.
- */
- int event_flags;
-#define AVFMT_EVENT_FLAG_METADATA_UPDATED 0x0001 ///< The call resulted in updated metadata.
-
- /**
- * Maximum number of packets to read while waiting for the first timestamp.
- * Decoding only.
- */
- int max_ts_probe;
-
- /**
- * Avoid negative timestamps during muxing.
- * Any value of the AVFMT_AVOID_NEG_TS_* constants.
- * Note, this only works when using av_interleaved_write_frame. (interleave_packet_per_dts is in use)
- * - muxing: Set by user
- * - demuxing: unused
- */
- int avoid_negative_ts;
-#define AVFMT_AVOID_NEG_TS_AUTO -1 ///< Enabled when required by target format
-#define AVFMT_AVOID_NEG_TS_MAKE_NON_NEGATIVE 1 ///< Shift timestamps so they are non negative
-#define AVFMT_AVOID_NEG_TS_MAKE_ZERO 2 ///< Shift timestamps so that they start at 0
-
- /**
- * Transport stream id.
- * This will be moved into demuxer private options. Thus no API/ABI compatibility
- */
- int ts_id;
-
- /**
- * Audio preload in microseconds.
- * Note, not all formats support this and unpredictable things may happen if it is used when not supported.
- * - encoding: Set by user via AVOptions (NO direct access)
- * - decoding: unused
- */
- int audio_preload;
-
- /**
- * Max chunk time in microseconds.
- * Note, not all formats support this and unpredictable things may happen if it is used when not supported.
- * - encoding: Set by user via AVOptions (NO direct access)
- * - decoding: unused
- */
- int max_chunk_duration;
-
- /**
- * Max chunk size in bytes
- * Note, not all formats support this and unpredictable things may happen if it is used when not supported.
- * - encoding: Set by user via AVOptions (NO direct access)
- * - decoding: unused
- */
- int max_chunk_size;
-
- /**
- * forces the use of wallclock timestamps as pts/dts of packets
- * This has undefined results in the presence of B frames.
- * - encoding: unused
- * - decoding: Set by user via AVOptions (NO direct access)
- */
- int use_wallclock_as_timestamps;
-
- /**
- * avio flags, used to force AVIO_FLAG_DIRECT.
- * - encoding: unused
- * - decoding: Set by user via AVOptions (NO direct access)
- */
- int avio_flags;
-
- /**
- * The duration field can be estimated through various ways, and this field can be used
- * to know how the duration was estimated.
- * - encoding: unused
- * - decoding: Read by user via AVOptions (NO direct access)
- */
- enum AVDurationEstimationMethod duration_estimation_method;
-
- /**
- * Skip initial bytes when opening stream
- * - encoding: unused
- * - decoding: Set by user via AVOptions (NO direct access)
- */
- int64_t skip_initial_bytes;
-
- /**
- * Correct single timestamp overflows
- * - encoding: unused
- * - decoding: Set by user via AVOptions (NO direct access)
- */
- unsigned int correct_ts_overflow;
-
- /**
- * Force seeking to any (also non key) frames.
- * - encoding: unused
- * - decoding: Set by user via AVOptions (NO direct access)
- */
- int seek2any;
-
- /**
- * Flush the I/O context after each packet.
- * - encoding: Set by user via AVOptions (NO direct access)
- * - decoding: unused
- */
- int flush_packets;
-
- /**
- * format probing score.
- * The maximal score is AVPROBE_SCORE_MAX, its set when the demuxer probes
- * the format.
- * - encoding: unused
- * - decoding: set by avformat, read by user via av_format_get_probe_score() (NO direct access)
- */
- int probe_score;
-
- /**
- * number of bytes to read maximally to identify format.
- * - encoding: unused
- * - decoding: set by user through AVOPtions (NO direct access)
- */
- int format_probesize;
-
- /**
- * ',' separated list of allowed decoders.
- * If NULL then all are allowed
- * - encoding: unused
- * - decoding: set by user through AVOptions (NO direct access)
- */
- char *codec_whitelist;
-
- /**
- * ',' separated list of allowed demuxers.
- * If NULL then all are allowed
- * - encoding: unused
- * - decoding: set by user through AVOptions (NO direct access)
- */
- char *format_whitelist;
-
- /**
- * An opaque field for libavformat internal usage.
- * Must not be accessed in any way by callers.
- */
- AVFormatInternal *internal;
-
- /**
- * IO repositioned flag.
- * This is set by avformat when the underlaying IO context read pointer
- * is repositioned, for example when doing byte based seeking.
- * Demuxers can use the flag to detect such changes.
- */
- int io_repositioned;
-
- /**
- * Forced video codec.
- * This allows forcing a specific decoder, even when there are multiple with
- * the same codec_id.
- * Demuxing: Set by user via av_format_set_video_codec (NO direct access).
- */
- AVCodec *video_codec;
-
- /**
- * Forced audio codec.
- * This allows forcing a specific decoder, even when there are multiple with
- * the same codec_id.
- * Demuxing: Set by user via av_format_set_audio_codec (NO direct access).
- */
- AVCodec *audio_codec;
-
- /**
- * Forced subtitle codec.
- * This allows forcing a specific decoder, even when there are multiple with
- * the same codec_id.
- * Demuxing: Set by user via av_format_set_subtitle_codec (NO direct access).
- */
- AVCodec *subtitle_codec;
-
- /**
- * Forced data codec.
- * This allows forcing a specific decoder, even when there are multiple with
- * the same codec_id.
- * Demuxing: Set by user via av_format_set_data_codec (NO direct access).
- */
- AVCodec *data_codec;
-
- /**
- * Number of bytes to be written as padding in a metadata header.
- * Demuxing: Unused.
- * Muxing: Set by user via av_format_set_metadata_header_padding.
- */
- int metadata_header_padding;
-
- /**
- * User data.
- * This is a place for some private data of the user.
- * Mostly usable with control_message_cb or any future callbacks in device's context.
- */
- void *opaque;
-
- /**
- * Callback used by devices to communicate with application.
- */
- av_format_control_message control_message_cb;
-
- /**
- * Output timestamp offset, in microseconds.
- * Muxing: set by user via AVOptions (NO direct access)
- */
- int64_t output_ts_offset;
-
- /**
- * dump format separator.
- * can be ", " or "\n " or anything else
- * Code outside libavformat should access this field using AVOptions
- * (NO direct access).
- * - muxing: Set by user.
- * - demuxing: Set by user.
- */
- uint8_t *dump_separator;
-
- /**
- * Forced Data codec_id.
- * Demuxing: Set by user.
- */
- enum AVCodecID data_codec_id;
-
- /**
- * Called to open further IO contexts when needed for demuxing.
- *
- * This can be set by the user application to perform security checks on
- * the URLs before opening them.
- * The function should behave like avio_open2(), AVFormatContext is provided
- * as contextual information and to reach AVFormatContext.opaque.
- *
- * If NULL then some simple checks are used together with avio_open2().
- *
- * Must not be accessed directly from outside avformat.
- * @See av_format_set_open_cb()
- *
- * Demuxing: Set by user.
- */
- int (*open_cb)(struct AVFormatContext *s, AVIOContext **p, const char *url, int flags, const AVIOInterruptCB *int_cb, AVDictionary **options);
-} AVFormatContext;
-
-int av_format_get_probe_score(const AVFormatContext *s);
-AVCodec * av_format_get_video_codec(const AVFormatContext *s);
-void av_format_set_video_codec(AVFormatContext *s, AVCodec *c);
-AVCodec * av_format_get_audio_codec(const AVFormatContext *s);
-void av_format_set_audio_codec(AVFormatContext *s, AVCodec *c);
-AVCodec * av_format_get_subtitle_codec(const AVFormatContext *s);
-void av_format_set_subtitle_codec(AVFormatContext *s, AVCodec *c);
-AVCodec * av_format_get_data_codec(const AVFormatContext *s);
-void av_format_set_data_codec(AVFormatContext *s, AVCodec *c);
-int av_format_get_metadata_header_padding(const AVFormatContext *s);
-void av_format_set_metadata_header_padding(AVFormatContext *s, int c);
-void * av_format_get_opaque(const AVFormatContext *s);
-void av_format_set_opaque(AVFormatContext *s, void *opaque);
-av_format_control_message av_format_get_control_message_cb(const AVFormatContext *s);
-void av_format_set_control_message_cb(AVFormatContext *s, av_format_control_message callback);
-AVOpenCallback av_format_get_open_cb(const AVFormatContext *s);
-void av_format_set_open_cb(AVFormatContext *s, AVOpenCallback callback);
-
-/**
- * This function will cause global side data to be injected in the next packet
- * of each stream as well as after any subsequent seek.
- */
-void av_format_inject_global_side_data(AVFormatContext *s);
-
-/**
- * Returns the method used to set ctx->duration.
- *
- * @return AVFMT_DURATION_FROM_PTS, AVFMT_DURATION_FROM_STREAM, or AVFMT_DURATION_FROM_BITRATE.
- */
-enum AVDurationEstimationMethod av_fmt_ctx_get_duration_estimation_method(const AVFormatContext* ctx);
-
-typedef struct AVPacketList {
- AVPacket pkt;
- struct AVPacketList *next;
-} AVPacketList;
-
-
-/**
- * @defgroup lavf_core Core functions
- * @ingroup libavf
- *
- * Functions for querying libavformat capabilities, allocating core structures,
- * etc.
- * @{
- */
-
-/**
- * Return the LIBAVFORMAT_VERSION_INT constant.
- */
-unsigned avformat_version(void);
-
-/**
- * Return the libavformat build-time configuration.
- */
-const char *avformat_configuration(void);
-
-/**
- * Return the libavformat license.
- */
-const char *avformat_license(void);
-
-/**
- * Initialize libavformat and register all the muxers, demuxers and
- * protocols. If you do not call this function, then you can select
- * exactly which formats you want to support.
- *
- * @see av_register_input_format()
- * @see av_register_output_format()
- */
-void av_register_all(void);
-
-void av_register_input_format(AVInputFormat *format);
-void av_register_output_format(AVOutputFormat *format);
-
-/**
- * Do global initialization of network components. This is optional,
- * but recommended, since it avoids the overhead of implicitly
- * doing the setup for each session.
- *
- * Calling this function will become mandatory if using network
- * protocols at some major version bump.
- */
-int avformat_network_init(void);
-
-/**
- * Undo the initialization done by avformat_network_init.
- */
-int avformat_network_deinit(void);
-
-/**
- * If f is NULL, returns the first registered input format,
- * if f is non-NULL, returns the next registered input format after f
- * or NULL if f is the last one.
- */
-AVInputFormat *av_iformat_next(const AVInputFormat *f);
-
-/**
- * If f is NULL, returns the first registered output format,
- * if f is non-NULL, returns the next registered output format after f
- * or NULL if f is the last one.
- */
-AVOutputFormat *av_oformat_next(const AVOutputFormat *f);
-
-/**
- * Allocate an AVFormatContext.
- * avformat_free_context() can be used to free the context and everything
- * allocated by the framework within it.
- */
-AVFormatContext *avformat_alloc_context(void);
-
-/**
- * Free an AVFormatContext and all its streams.
- * @param s context to free
- */
-void avformat_free_context(AVFormatContext *s);
-
-/**
- * Get the AVClass for AVFormatContext. It can be used in combination with
- * AV_OPT_SEARCH_FAKE_OBJ for examining options.
- *
- * @see av_opt_find().
- */
-const AVClass *avformat_get_class(void);
-
-/**
- * Add a new stream to a media file.
- *
- * When demuxing, it is called by the demuxer in read_header(). If the
- * flag AVFMTCTX_NOHEADER is set in s.ctx_flags, then it may also
- * be called in read_packet().
- *
- * When muxing, should be called by the user before avformat_write_header().
- *
- * User is required to call avcodec_close() and avformat_free_context() to
- * clean up the allocation by avformat_new_stream().
- *
- * @param s media file handle
- * @param c If non-NULL, the AVCodecContext corresponding to the new stream
- * will be initialized to use this codec. This is needed for e.g. codec-specific
- * defaults to be set, so codec should be provided if it is known.
- *
- * @return newly created stream or NULL on error.
- */
-AVStream *avformat_new_stream(AVFormatContext *s, const AVCodec *c);
-
-/**
- * Allocate new information from stream.
- *
- * @param stream stream
- * @param type desired side information type
- * @param size side information size
- * @return pointer to fresh allocated data or NULL otherwise
- */
-uint8_t *av_stream_new_side_data(AVStream *stream,
- enum AVPacketSideDataType type, int size);
-/**
- * Get side information from stream.
- *
- * @param stream stream
- * @param type desired side information type
- * @param size pointer for side information size to store (optional)
- * @return pointer to data if present or NULL otherwise
- */
-uint8_t *av_stream_get_side_data(AVStream *stream,
- enum AVPacketSideDataType type, int *size);
-
-AVProgram *av_new_program(AVFormatContext *s, int id);
-
-/**
- * @}
- */
-
-
-/**
- * Allocate an AVFormatContext for an output format.
- * avformat_free_context() can be used to free the context and
- * everything allocated by the framework within it.
- *
- * @param *ctx is set to the created format context, or to NULL in
- * case of failure
- * @param oformat format to use for allocating the context, if NULL
- * format_name and filename are used instead
- * @param format_name the name of output format to use for allocating the
- * context, if NULL filename is used instead
- * @param filename the name of the filename to use for allocating the
- * context, may be NULL
- * @return >= 0 in case of success, a negative AVERROR code in case of
- * failure
- */
-int avformat_alloc_output_context2(AVFormatContext **ctx, AVOutputFormat *oformat,
- const char *format_name, const char *filename);
-
-/**
- * @addtogroup lavf_decoding
- * @{
- */
-
-/**
- * Find AVInputFormat based on the short name of the input format.
- */
-AVInputFormat *av_find_input_format(const char *short_name);
-
-/**
- * Guess the file format.
- *
- * @param pd data to be probed
- * @param is_opened Whether the file is already opened; determines whether
- * demuxers with or without AVFMT_NOFILE are probed.
- */
-AVInputFormat *av_probe_input_format(AVProbeData *pd, int is_opened);
-
-/**
- * Guess the file format.
- *
- * @param pd data to be probed
- * @param is_opened Whether the file is already opened; determines whether
- * demuxers with or without AVFMT_NOFILE are probed.
- * @param score_max A probe score larger that this is required to accept a
- * detection, the variable is set to the actual detection
- * score afterwards.
- * If the score is <= AVPROBE_SCORE_MAX / 4 it is recommended
- * to retry with a larger probe buffer.
- */
-AVInputFormat *av_probe_input_format2(AVProbeData *pd, int is_opened, int *score_max);
-
-/**
- * Guess the file format.
- *
- * @param is_opened Whether the file is already opened; determines whether
- * demuxers with or without AVFMT_NOFILE are probed.
- * @param score_ret The score of the best detection.
- */
-AVInputFormat *av_probe_input_format3(AVProbeData *pd, int is_opened, int *score_ret);
-
-/**
- * Probe a bytestream to determine the input format. Each time a probe returns
- * with a score that is too low, the probe buffer size is increased and another
- * attempt is made. When the maximum probe size is reached, the input format
- * with the highest score is returned.
- *
- * @param pb the bytestream to probe
- * @param fmt the input format is put here
- * @param filename the filename of the stream
- * @param logctx the log context
- * @param offset the offset within the bytestream to probe from
- * @param max_probe_size the maximum probe buffer size (zero for default)
- * @return the score in case of success, a negative value corresponding to an
- * the maximal score is AVPROBE_SCORE_MAX
- * AVERROR code otherwise
- */
-int av_probe_input_buffer2(AVIOContext *pb, AVInputFormat **fmt,
- const char *filename, void *logctx,
- unsigned int offset, unsigned int max_probe_size);
-
-/**
- * Like av_probe_input_buffer2() but returns 0 on success
- */
-int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt,
- const char *filename, void *logctx,
- unsigned int offset, unsigned int max_probe_size);
-
-/**
- * Open an input stream and read the header. The codecs are not opened.
- * The stream must be closed with avformat_close_input().
- *
- * @param ps Pointer to user-supplied AVFormatContext (allocated by avformat_alloc_context).
- * May be a pointer to NULL, in which case an AVFormatContext is allocated by this
- * function and written into ps.
- * Note that a user-supplied AVFormatContext will be freed on failure.
- * @param filename Name of the stream to open.
- * @param fmt If non-NULL, this parameter forces a specific input format.
- * Otherwise the format is autodetected.
- * @param options A dictionary filled with AVFormatContext and demuxer-private options.
- * On return this parameter will be destroyed and replaced with a dict containing
- * options that were not found. May be NULL.
- *
- * @return 0 on success, a negative AVERROR on failure.
- *
- * @note If you want to use custom IO, preallocate the format context and set its pb field.
- */
-int avformat_open_input(AVFormatContext **ps, const char *filename, AVInputFormat *fmt, AVDictionary **options);
-
-attribute_deprecated
-int av_demuxer_open(AVFormatContext *ic);
-
-/**
- * Read packets of a media file to get stream information. This
- * is useful for file formats with no headers such as MPEG. This
- * function also computes the real framerate in case of MPEG-2 repeat
- * frame mode.
- * The logical file position is not changed by this function;
- * examined packets may be buffered for later processing.
- *
- * @param ic media file handle
- * @param options If non-NULL, an ic.nb_streams long array of pointers to
- * dictionaries, where i-th member contains options for
- * codec corresponding to i-th stream.
- * On return each dictionary will be filled with options that were not found.
- * @return >=0 if OK, AVERROR_xxx on error
- *
- * @note this function isn't guaranteed to open all the codecs, so
- * options being non-empty at return is a perfectly normal behavior.
- *
- * @todo Let the user decide somehow what information is needed so that
- * we do not waste time getting stuff the user does not need.
- */
-int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options);
-
-/**
- * Find the programs which belong to a given stream.
- *
- * @param ic media file handle
- * @param last the last found program, the search will start after this
- * program, or from the beginning if it is NULL
- * @param s stream index
- * @return the next program which belongs to s, NULL if no program is found or
- * the last program is not among the programs of ic.
- */
-AVProgram *av_find_program_from_stream(AVFormatContext *ic, AVProgram *last, int s);
-
-void av_program_add_stream_index(AVFormatContext *ac, int progid, unsigned int idx);
-
-/**
- * Find the "best" stream in the file.
- * The best stream is determined according to various heuristics as the most
- * likely to be what the user expects.
- * If the decoder parameter is non-NULL, av_find_best_stream will find the
- * default decoder for the stream's codec; streams for which no decoder can
- * be found are ignored.
- *
- * @param ic media file handle
- * @param type stream type: video, audio, subtitles, etc.
- * @param wanted_stream_nb user-requested stream number,
- * or -1 for automatic selection
- * @param related_stream try to find a stream related (eg. in the same
- * program) to this one, or -1 if none
- * @param decoder_ret if non-NULL, returns the decoder for the
- * selected stream
- * @param flags flags; none are currently defined
- * @return the non-negative stream number in case of success,
- * AVERROR_STREAM_NOT_FOUND if no stream with the requested type
- * could be found,
- * AVERROR_DECODER_NOT_FOUND if streams were found but no decoder
- * @note If av_find_best_stream returns successfully and decoder_ret is not
- * NULL, then *decoder_ret is guaranteed to be set to a valid AVCodec.
- */
-int av_find_best_stream(AVFormatContext *ic,
- enum AVMediaType type,
- int wanted_stream_nb,
- int related_stream,
- AVCodec **decoder_ret,
- int flags);
-
-/**
- * Return the next frame of a stream.
- * This function returns what is stored in the file, and does not validate
- * that what is there are valid frames for the decoder. It will split what is
- * stored in the file into frames and return one for each call. It will not
- * omit invalid data between valid frames so as to give the decoder the maximum
- * information possible for decoding.
- *
- * If pkt->buf is NULL, then the packet is valid until the next
- * av_read_frame() or until avformat_close_input(). Otherwise the packet
- * is valid indefinitely. In both cases the packet must be freed with
- * av_packet_unref when it is no longer needed. For video, the packet contains
- * exactly one frame. For audio, it contains an integer number of frames if each
- * frame has a known fixed size (e.g. PCM or ADPCM data). If the audio frames
- * have a variable size (e.g. MPEG audio), then it contains one frame.
- *
- * pkt->pts, pkt->dts and pkt->duration are always set to correct
- * values in AVStream.time_base units (and guessed if the format cannot
- * provide them). pkt->pts can be AV_NOPTS_VALUE if the video format
- * has B-frames, so it is better to rely on pkt->dts if you do not
- * decompress the payload.
- *
- * @return 0 if OK, < 0 on error or end of file
- */
-int av_read_frame(AVFormatContext *s, AVPacket *pkt);
-
-/**
- * Seek to the keyframe at timestamp.
- * 'timestamp' in 'stream_index'.
- *
- * @param s media file handle
- * @param stream_index If stream_index is (-1), a default
- * stream is selected, and timestamp is automatically converted
- * from AV_TIME_BASE units to the stream specific time_base.
- * @param timestamp Timestamp in AVStream.time_base units
- * or, if no stream is specified, in AV_TIME_BASE units.
- * @param flags flags which select direction and seeking mode
- * @return >= 0 on success
- */
-int av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp,
- int flags);
-
-/**
- * Seek to timestamp ts.
- * Seeking will be done so that the point from which all active streams
- * can be presented successfully will be closest to ts and within min/max_ts.
- * Active streams are all streams that have AVStream.discard < AVDISCARD_ALL.
- *
- * If flags contain AVSEEK_FLAG_BYTE, then all timestamps are in bytes and
- * are the file position (this may not be supported by all demuxers).
- * If flags contain AVSEEK_FLAG_FRAME, then all timestamps are in frames
- * in the stream with stream_index (this may not be supported by all demuxers).
- * Otherwise all timestamps are in units of the stream selected by stream_index
- * or if stream_index is -1, in AV_TIME_BASE units.
- * If flags contain AVSEEK_FLAG_ANY, then non-keyframes are treated as
- * keyframes (this may not be supported by all demuxers).
- * If flags contain AVSEEK_FLAG_BACKWARD, it is ignored.
- *
- * @param s media file handle
- * @param stream_index index of the stream which is used as time base reference
- * @param min_ts smallest acceptable timestamp
- * @param ts target timestamp
- * @param max_ts largest acceptable timestamp
- * @param flags flags
- * @return >=0 on success, error code otherwise
- *
- * @note This is part of the new seek API which is still under construction.
- * Thus do not use this yet. It may change at any time, do not expect
- * ABI compatibility yet!
- */
-int avformat_seek_file(AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags);
-
-/**
- * Discard all internally buffered data. This can be useful when dealing with
- * discontinuities in the byte stream. Generally works only with formats that
- * can resync. This includes headerless formats like MPEG-TS/TS but should also
- * work with NUT, Ogg and in a limited way AVI for example.
- *
- * The set of streams, the detected duration, stream parameters and codecs do
- * not change when calling this function. If you want a complete reset, it's
- * better to open a new AVFormatContext.
- *
- * This does not flush the AVIOContext (s->pb). If necessary, call
- * avio_flush(s->pb) before calling this function.
- *
- * @param s media file handle
- * @return >=0 on success, error code otherwise
- */
-int avformat_flush(AVFormatContext *s);
-
-/**
- * Start playing a network-based stream (e.g. RTSP stream) at the
- * current position.
- */
-int av_read_play(AVFormatContext *s);
-
-/**
- * Pause a network-based stream (e.g. RTSP stream).
- *
- * Use av_read_play() to resume it.
- */
-int av_read_pause(AVFormatContext *s);
-
-/**
- * Close an opened input AVFormatContext. Free it and all its contents
- * and set *s to NULL.
- */
-void avformat_close_input(AVFormatContext **s);
-/**
- * @}
- */
-
-#define AVSEEK_FLAG_BACKWARD 1 ///< seek backward
-#define AVSEEK_FLAG_BYTE 2 ///< seeking based on position in bytes
-#define AVSEEK_FLAG_ANY 4 ///< seek to any frame, even non-keyframes
-#define AVSEEK_FLAG_FRAME 8 ///< seeking based on frame number
-
-/**
- * @addtogroup lavf_encoding
- * @{
- */
-/**
- * Allocate the stream private data and write the stream header to
- * an output media file.
- *
- * @param s Media file handle, must be allocated with avformat_alloc_context().
- * Its oformat field must be set to the desired output format;
- * Its pb field must be set to an already opened AVIOContext.
- * @param options An AVDictionary filled with AVFormatContext and muxer-private options.
- * On return this parameter will be destroyed and replaced with a dict containing
- * options that were not found. May be NULL.
- *
- * @return 0 on success, negative AVERROR on failure.
- *
- * @see av_opt_find, av_dict_set, avio_open, av_oformat_next.
- */
-av_warn_unused_result
-int avformat_write_header(AVFormatContext *s, AVDictionary **options);
-
-/**
- * Write a packet to an output media file.
- *
- * This function passes the packet directly to the muxer, without any buffering
- * or reordering. The caller is responsible for correctly interleaving the
- * packets if the format requires it. Callers that want libavformat to handle
- * the interleaving should call av_interleaved_write_frame() instead of this
- * function.
- *
- * @param s media file handle
- * @param pkt The packet containing the data to be written. Note that unlike
- * av_interleaved_write_frame(), this function does not take
- * ownership of the packet passed to it (though some muxers may make
- * an internal reference to the input packet).
- * <br>
- * This parameter can be NULL (at any time, not just at the end), in
- * order to immediately flush data buffered within the muxer, for
- * muxers that buffer up data internally before writing it to the
- * output.
- * <br>
- * Packet's @ref AVPacket.stream_index "stream_index" field must be
- * set to the index of the corresponding stream in @ref
- * AVFormatContext.streams "s->streams".
- * <br>
- * The timestamps (@ref AVPacket.pts "pts", @ref AVPacket.dts "dts")
- * must be set to correct values in the stream's timebase (unless the
- * output format is flagged with the AVFMT_NOTIMESTAMPS flag, then
- * they can be set to AV_NOPTS_VALUE).
- * The dts for subsequent packets passed to this function must be strictly
- * increasing when compared in their respective timebases (unless the
- * output format is flagged with the AVFMT_TS_NONSTRICT, then they
- * merely have to be nondecreasing). @ref AVPacket.duration
- * "duration") should also be set if known.
- * @return < 0 on error, = 0 if OK, 1 if flushed and there is no more data to flush
- *
- * @see av_interleaved_write_frame()
- */
-int av_write_frame(AVFormatContext *s, AVPacket *pkt);
-
-/**
- * Write a packet to an output media file ensuring correct interleaving.
- *
- * This function will buffer the packets internally as needed to make sure the
- * packets in the output file are properly interleaved in the order of
- * increasing dts. Callers doing their own interleaving should call
- * av_write_frame() instead of this function.
- *
- * @param s media file handle
- * @param pkt The packet containing the data to be written.
- * <br>
- * If the packet is reference-counted, this function will take
- * ownership of this reference and unreference it later when it sees
- * fit.
- * The caller must not access the data through this reference after
- * this function returns. If the packet is not reference-counted,
- * libavformat will make a copy.
- * <br>
- * This parameter can be NULL (at any time, not just at the end), to
- * flush the interleaving queues.
- * <br>
- * Packet's @ref AVPacket.stream_index "stream_index" field must be
- * set to the index of the corresponding stream in @ref
- * AVFormatContext.streams "s->streams".
- * <br>
- * The timestamps (@ref AVPacket.pts "pts", @ref AVPacket.dts "dts")
- * must be set to correct values in the stream's timebase (unless the
- * output format is flagged with the AVFMT_NOTIMESTAMPS flag, then
- * they can be set to AV_NOPTS_VALUE).
- * The dts for subsequent packets in one stream must be strictly
- * increasing (unless the output format is flagged with the
- * AVFMT_TS_NONSTRICT, then they merely have to be nondecreasing).
- * @ref AVPacket.duration "duration") should also be set if known.
- *
- * @return 0 on success, a negative AVERROR on error. Libavformat will always
- * take care of freeing the packet, even if this function fails.
- *
- * @see av_write_frame(), AVFormatContext.max_interleave_delta
- */
-int av_interleaved_write_frame(AVFormatContext *s, AVPacket *pkt);
-
-/**
- * Write a uncoded frame to an output media file.
- *
- * The frame must be correctly interleaved according to the container
- * specification; if not, then av_interleaved_write_frame() must be used.
- *
- * See av_interleaved_write_frame() for details.
- */
-int av_write_uncoded_frame(AVFormatContext *s, int stream_index,
- AVFrame *frame);
-
-/**
- * Write a uncoded frame to an output media file.
- *
- * If the muxer supports it, this function makes it possible to write an AVFrame
- * structure directly, without encoding it into a packet.
- * It is mostly useful for devices and similar special muxers that use raw
- * video or PCM data and will not serialize it into a byte stream.
- *
- * To test whether it is possible to use it with a given muxer and stream,
- * use av_write_uncoded_frame_query().
- *
- * The caller gives up ownership of the frame and must not access it
- * afterwards.
- *
- * @return >=0 for success, a negative code on error
- */
-int av_interleaved_write_uncoded_frame(AVFormatContext *s, int stream_index,
- AVFrame *frame);
-
-/**
- * Test whether a muxer supports uncoded frame.
- *
- * @return >=0 if an uncoded frame can be written to that muxer and stream,
- * <0 if not
- */
-int av_write_uncoded_frame_query(AVFormatContext *s, int stream_index);
-
-/**
- * Write the stream trailer to an output media file and free the
- * file private data.
- *
- * May only be called after a successful call to avformat_write_header.
- *
- * @param s media file handle
- * @return 0 if OK, AVERROR_xxx on error
- */
-int av_write_trailer(AVFormatContext *s);
-
-/**
- * Return the output format in the list of registered output formats
- * which best matches the provided parameters, or return NULL if
- * there is no match.
- *
- * @param short_name if non-NULL checks if short_name matches with the
- * names of the registered formats
- * @param filename if non-NULL checks if filename terminates with the
- * extensions of the registered formats
- * @param mime_type if non-NULL checks if mime_type matches with the
- * MIME type of the registered formats
- */
-AVOutputFormat *av_guess_format(const char *short_name,
- const char *filename,
- const char *mime_type);
-
-/**
- * Guess the codec ID based upon muxer and filename.
- */
-enum AVCodecID av_guess_codec(AVOutputFormat *fmt, const char *short_name,
- const char *filename, const char *mime_type,
- enum AVMediaType type);
-
-/**
- * Get timing information for the data currently output.
- * The exact meaning of "currently output" depends on the format.
- * It is mostly relevant for devices that have an internal buffer and/or
- * work in real time.
- * @param s media file handle
- * @param stream stream in the media file
- * @param[out] dts DTS of the last packet output for the stream, in stream
- * time_base units
- * @param[out] wall absolute time when that packet whas output,
- * in microsecond
- * @return 0 if OK, AVERROR(ENOSYS) if the format does not support it
- * Note: some formats or devices may not allow to measure dts and wall
- * atomically.
- */
-int av_get_output_timestamp(struct AVFormatContext *s, int stream,
- int64_t *dts, int64_t *wall);
-
-
-/**
- * @}
- */
-
-
-/**
- * @defgroup lavf_misc Utility functions
- * @ingroup libavf
- * @{
- *
- * Miscellaneous utility functions related to both muxing and demuxing
- * (or neither).
- */
-
-/**
- * Send a nice hexadecimal dump of a buffer to the specified file stream.
- *
- * @param f The file stream pointer where the dump should be sent to.
- * @param buf buffer
- * @param size buffer size
- *
- * @see av_hex_dump_log, av_pkt_dump2, av_pkt_dump_log2
- */
-void av_hex_dump(FILE *f, const uint8_t *buf, int size);
-
-/**
- * Send a nice hexadecimal dump of a buffer to the log.
- *
- * @param avcl A pointer to an arbitrary struct of which the first field is a
- * pointer to an AVClass struct.
- * @param level The importance level of the message, lower values signifying
- * higher importance.
- * @param buf buffer
- * @param size buffer size
- *
- * @see av_hex_dump, av_pkt_dump2, av_pkt_dump_log2
- */
-void av_hex_dump_log(void *avcl, int level, const uint8_t *buf, int size);
-
-/**
- * Send a nice dump of a packet to the specified file stream.
- *
- * @param f The file stream pointer where the dump should be sent to.
- * @param pkt packet to dump
- * @param dump_payload True if the payload must be displayed, too.
- * @param st AVStream that the packet belongs to
- */
-void av_pkt_dump2(FILE *f, const AVPacket *pkt, int dump_payload, const AVStream *st);
-
-
-/**
- * Send a nice dump of a packet to the log.
- *
- * @param avcl A pointer to an arbitrary struct of which the first field is a
- * pointer to an AVClass struct.
- * @param level The importance level of the message, lower values signifying
- * higher importance.
- * @param pkt packet to dump
- * @param dump_payload True if the payload must be displayed, too.
- * @param st AVStream that the packet belongs to
- */
-void av_pkt_dump_log2(void *avcl, int level, const AVPacket *pkt, int dump_payload,
- const AVStream *st);
-
-/**
- * Get the AVCodecID for the given codec tag tag.
- * If no codec id is found returns AV_CODEC_ID_NONE.
- *
- * @param tags list of supported codec_id-codec_tag pairs, as stored
- * in AVInputFormat.codec_tag and AVOutputFormat.codec_tag
- * @param tag codec tag to match to a codec ID
- */
-enum AVCodecID av_codec_get_id(const struct AVCodecTag * const *tags, unsigned int tag);
-
-/**
- * Get the codec tag for the given codec id id.
- * If no codec tag is found returns 0.
- *
- * @param tags list of supported codec_id-codec_tag pairs, as stored
- * in AVInputFormat.codec_tag and AVOutputFormat.codec_tag
- * @param id codec ID to match to a codec tag
- */
-unsigned int av_codec_get_tag(const struct AVCodecTag * const *tags, enum AVCodecID id);
-
-/**
- * Get the codec tag for the given codec id.
- *
- * @param tags list of supported codec_id - codec_tag pairs, as stored
- * in AVInputFormat.codec_tag and AVOutputFormat.codec_tag
- * @param id codec id that should be searched for in the list
- * @param tag A pointer to the found tag
- * @return 0 if id was not found in tags, > 0 if it was found
- */
-int av_codec_get_tag2(const struct AVCodecTag * const *tags, enum AVCodecID id,
- unsigned int *tag);
-
-int av_find_default_stream_index(AVFormatContext *s);
-
-/**
- * Get the index for a specific timestamp.
- *
- * @param st stream that the timestamp belongs to
- * @param timestamp timestamp to retrieve the index for
- * @param flags if AVSEEK_FLAG_BACKWARD then the returned index will correspond
- * to the timestamp which is <= the requested one, if backward
- * is 0, then it will be >=
- * if AVSEEK_FLAG_ANY seek to any frame, only keyframes otherwise
- * @return < 0 if no such timestamp could be found
- */
-int av_index_search_timestamp(AVStream *st, int64_t timestamp, int flags);
-
-/**
- * Add an index entry into a sorted list. Update the entry if the list
- * already contains it.
- *
- * @param timestamp timestamp in the time base of the given stream
- */
-int av_add_index_entry(AVStream *st, int64_t pos, int64_t timestamp,
- int size, int distance, int flags);
-
-
-/**
- * Split a URL string into components.
- *
- * The pointers to buffers for storing individual components may be null,
- * in order to ignore that component. Buffers for components not found are
- * set to empty strings. If the port is not found, it is set to a negative
- * value.
- *
- * @param proto the buffer for the protocol
- * @param proto_size the size of the proto buffer
- * @param authorization the buffer for the authorization
- * @param authorization_size the size of the authorization buffer
- * @param hostname the buffer for the host name
- * @param hostname_size the size of the hostname buffer
- * @param port_ptr a pointer to store the port number in
- * @param path the buffer for the path
- * @param path_size the size of the path buffer
- * @param url the URL to split
- */
-void av_url_split(char *proto, int proto_size,
- char *authorization, int authorization_size,
- char *hostname, int hostname_size,
- int *port_ptr,
- char *path, int path_size,
- const char *url);
-
-
-/**
- * Print detailed information about the input or output format, such as
- * duration, bitrate, streams, container, programs, metadata, side data,
- * codec and time base.
- *
- * @param ic the context to analyze
- * @param index index of the stream to dump information about
- * @param url the URL to print, such as source or destination file
- * @param is_output Select whether the specified context is an input(0) or output(1)
- */
-void av_dump_format(AVFormatContext *ic,
- int index,
- const char *url,
- int is_output);
-
-/**
- * Return in 'buf' the path with '%d' replaced by a number.
- *
- * Also handles the '%0nd' format where 'n' is the total number
- * of digits and '%%'.
- *
- * @param buf destination buffer
- * @param buf_size destination buffer size
- * @param path numbered sequence string
- * @param number frame number
- * @return 0 if OK, -1 on format error
- */
-int av_get_frame_filename(char *buf, int buf_size,
- const char *path, int number);
-
-/**
- * Check whether filename actually is a numbered sequence generator.
- *
- * @param filename possible numbered sequence string
- * @return 1 if a valid numbered sequence string, 0 otherwise
- */
-int av_filename_number_test(const char *filename);
-
-/**
- * Generate an SDP for an RTP session.
- *
- * Note, this overwrites the id values of AVStreams in the muxer contexts
- * for getting unique dynamic payload types.
- *
- * @param ac array of AVFormatContexts describing the RTP streams. If the
- * array is composed by only one context, such context can contain
- * multiple AVStreams (one AVStream per RTP stream). Otherwise,
- * all the contexts in the array (an AVCodecContext per RTP stream)
- * must contain only one AVStream.
- * @param n_files number of AVCodecContexts contained in ac
- * @param buf buffer where the SDP will be stored (must be allocated by
- * the caller)
- * @param size the size of the buffer
- * @return 0 if OK, AVERROR_xxx on error
- */
-int av_sdp_create(AVFormatContext *ac[], int n_files, char *buf, int size);
-
-/**
- * Return a positive value if the given filename has one of the given
- * extensions, 0 otherwise.
- *
- * @param filename file name to check against the given extensions
- * @param extensions a comma-separated list of filename extensions
- */
-int av_match_ext(const char *filename, const char *extensions);
-
-/**
- * Test if the given container can store a codec.
- *
- * @param ofmt container to check for compatibility
- * @param codec_id codec to potentially store in container
- * @param std_compliance standards compliance level, one of FF_COMPLIANCE_*
- *
- * @return 1 if codec with ID codec_id can be stored in ofmt, 0 if it cannot.
- * A negative number if this information is not available.
- */
-int avformat_query_codec(const AVOutputFormat *ofmt, enum AVCodecID codec_id,
- int std_compliance);
-
-/**
- * @defgroup riff_fourcc RIFF FourCCs
- * @{
- * Get the tables mapping RIFF FourCCs to libavcodec AVCodecIDs. The tables are
- * meant to be passed to av_codec_get_id()/av_codec_get_tag() as in the
- * following code:
- * @code
- * uint32_t tag = MKTAG('H', '2', '6', '4');
- * const struct AVCodecTag *table[] = { avformat_get_riff_video_tags(), 0 };
- * enum AVCodecID id = av_codec_get_id(table, tag);
- * @endcode
- */
-/**
- * @return the table mapping RIFF FourCCs for video to libavcodec AVCodecID.
- */
-const struct AVCodecTag *avformat_get_riff_video_tags(void);
-/**
- * @return the table mapping RIFF FourCCs for audio to AVCodecID.
- */
-const struct AVCodecTag *avformat_get_riff_audio_tags(void);
-/**
- * @return the table mapping MOV FourCCs for video to libavcodec AVCodecID.
- */
-const struct AVCodecTag *avformat_get_mov_video_tags(void);
-/**
- * @return the table mapping MOV FourCCs for audio to AVCodecID.
- */
-const struct AVCodecTag *avformat_get_mov_audio_tags(void);
-
-/**
- * @}
- */
-
-/**
- * Guess the sample aspect ratio of a frame, based on both the stream and the
- * frame aspect ratio.
- *
- * Since the frame aspect ratio is set by the codec but the stream aspect ratio
- * is set by the demuxer, these two may not be equal. This function tries to
- * return the value that you should use if you would like to display the frame.
- *
- * Basic logic is to use the stream aspect ratio if it is set to something sane
- * otherwise use the frame aspect ratio. This way a container setting, which is
- * usually easy to modify can override the coded value in the frames.
- *
- * @param format the format context which the stream is part of
- * @param stream the stream which the frame is part of
- * @param frame the frame with the aspect ratio to be determined
- * @return the guessed (valid) sample_aspect_ratio, 0/1 if no idea
- */
-AVRational av_guess_sample_aspect_ratio(AVFormatContext *format, AVStream *stream, AVFrame *frame);
-
-/**
- * Guess the frame rate, based on both the container and codec information.
- *
- * @param ctx the format context which the stream is part of
- * @param stream the stream which the frame is part of
- * @param frame the frame for which the frame rate should be determined, may be NULL
- * @return the guessed (valid) frame rate, 0/1 if no idea
- */
-AVRational av_guess_frame_rate(AVFormatContext *ctx, AVStream *stream, AVFrame *frame);
-
-/**
- * Check if the stream st contained in s is matched by the stream specifier
- * spec.
- *
- * See the "stream specifiers" chapter in the documentation for the syntax
- * of spec.
- *
- * @return >0 if st is matched by spec;
- * 0 if st is not matched by spec;
- * AVERROR code if spec is invalid
- *
- * @note A stream specifier can match several streams in the format.
- */
-int avformat_match_stream_specifier(AVFormatContext *s, AVStream *st,
- const char *spec);
-
-int avformat_queue_attached_pictures(AVFormatContext *s);
-
-/**
- * Apply a list of bitstream filters to a packet.
- *
- * @param codec AVCodecContext, usually from an AVStream
- * @param pkt the packet to apply filters to
- * @param bsfc a NULL-terminated list of filters to apply
- * @return >=0 on success;
- * AVERROR code on failure
- */
-int av_apply_bitstream_filters(AVCodecContext *codec, AVPacket *pkt,
- AVBitStreamFilterContext *bsfc);
-
-/**
- * @}
- */
-
-#endif /* AVFORMAT_AVFORMAT_H */
diff --git a/src/main/jni/ffmpeg/include/libavformat/avio.h b/src/main/jni/ffmpeg/include/libavformat/avio.h
deleted file mode 100644
index c3c0b73f2..000000000
--- a/src/main/jni/ffmpeg/include/libavformat/avio.h
+++ /dev/null
@@ -1,727 +0,0 @@
-/*
- * copyright (c) 2001 Fabrice Bellard
- *
- * 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 AVFORMAT_AVIO_H
-#define AVFORMAT_AVIO_H
-
-/**
- * @file
- * @ingroup lavf_io
- * Buffered I/O operations
- */
-
-#include <stdint.h>
-
-#include "libavutil/common.h"
-#include "libavutil/dict.h"
-#include "libavutil/log.h"
-
-#include "libavformat/version.h"
-
-#define AVIO_SEEKABLE_NORMAL 0x0001 /**< Seeking works like for a local file */
-
-/**
- * Callback for checking whether to abort blocking functions.
- * AVERROR_EXIT is returned in this case by the interrupted
- * function. During blocking operations, callback is called with
- * opaque as parameter. If the callback returns 1, the
- * blocking operation will be aborted.
- *
- * No members can be added to this struct without a major bump, if
- * new elements have been added after this struct in AVFormatContext
- * or AVIOContext.
- */
-typedef struct AVIOInterruptCB {
- int (*callback)(void*);
- void *opaque;
-} AVIOInterruptCB;
-
-/**
- * Directory entry types.
- */
-enum AVIODirEntryType {
- AVIO_ENTRY_UNKNOWN,
- AVIO_ENTRY_BLOCK_DEVICE,
- AVIO_ENTRY_CHARACTER_DEVICE,
- AVIO_ENTRY_DIRECTORY,
- AVIO_ENTRY_NAMED_PIPE,
- AVIO_ENTRY_SYMBOLIC_LINK,
- AVIO_ENTRY_SOCKET,
- AVIO_ENTRY_FILE,
- AVIO_ENTRY_SERVER,
- AVIO_ENTRY_SHARE,
- AVIO_ENTRY_WORKGROUP,
-};
-
-/**
- * Describes single entry of the directory.
- *
- * Only name and type fields are guaranteed be set.
- * Rest of fields are protocol or/and platform dependent and might be unknown.
- */
-typedef struct AVIODirEntry {
- char *name; /**< Filename */
- int type; /**< Type of the entry */
- int utf8; /**< Set to 1 when name is encoded with UTF-8, 0 otherwise.
- Name can be encoded with UTF-8 even though 0 is set. */
- int64_t size; /**< File size in bytes, -1 if unknown. */
- int64_t modification_timestamp; /**< Time of last modification in microseconds since unix
- epoch, -1 if unknown. */
- int64_t access_timestamp; /**< Time of last access in microseconds since unix epoch,
- -1 if unknown. */
- int64_t status_change_timestamp; /**< Time of last status change in microseconds since unix
- epoch, -1 if unknown. */
- int64_t user_id; /**< User ID of owner, -1 if unknown. */
- int64_t group_id; /**< Group ID of owner, -1 if unknown. */
- int64_t filemode; /**< Unix file mode, -1 if unknown. */
-} AVIODirEntry;
-
-typedef struct AVIODirContext {
- struct URLContext *url_context;
-} AVIODirContext;
-
-/**
- * Bytestream IO Context.
- * New fields can be added to the end with minor version bumps.
- * Removal, reordering and changes to existing fields require a major
- * version bump.
- * sizeof(AVIOContext) must not be used outside libav*.
- *
- * @note None of the function pointers in AVIOContext should be called
- * directly, they should only be set by the client application
- * when implementing custom I/O. Normally these are set to the
- * function pointers specified in avio_alloc_context()
- */
-typedef struct AVIOContext {
- /**
- * A class for private options.
- *
- * If this AVIOContext is created by avio_open2(), av_class is set and
- * passes the options down to protocols.
- *
- * If this AVIOContext is manually allocated, then av_class may be set by
- * the caller.
- *
- * warning -- this field can be NULL, be sure to not pass this AVIOContext
- * to any av_opt_* functions in that case.
- */
- const AVClass *av_class;
-
- /*
- * The following shows the relationship between buffer, buf_ptr, buf_end, buf_size,
- * and pos, when reading and when writing (since AVIOContext is used for both):
- *
- **********************************************************************************
- * READING
- **********************************************************************************
- *
- * | buffer_size |
- * |---------------------------------------|
- * | |
- *
- * buffer buf_ptr buf_end
- * +---------------+-----------------------+
- * |/ / / / / / / /|/ / / / / / /| |
- * read buffer: |/ / consumed / | to be read /| |
- * |/ / / / / / / /|/ / / / / / /| |
- * +---------------+-----------------------+
- *
- * pos
- * +-------------------------------------------+-----------------+
- * input file: | | |
- * +-------------------------------------------+-----------------+
- *
- *
- **********************************************************************************
- * WRITING
- **********************************************************************************
- *
- * | buffer_size |
- * |-------------------------------|
- * | |
- *
- * buffer buf_ptr buf_end
- * +-------------------+-----------+
- * |/ / / / / / / / / /| |
- * write buffer: | / to be flushed / | |
- * |/ / / / / / / / / /| |
- * +-------------------+-----------+
- *
- * pos
- * +--------------------------+-----------------------------------+
- * output file: | | |
- * +--------------------------+-----------------------------------+
- *
- */
- unsigned char *buffer; /**< Start of the buffer. */
- int buffer_size; /**< Maximum buffer size */
- unsigned char *buf_ptr; /**< Current position in the buffer */
- unsigned char *buf_end; /**< End of the data, may be less than
- buffer+buffer_size if the read function returned
- less data than requested, e.g. for streams where
- no more data has been received yet. */
- void *opaque; /**< A private pointer, passed to the read/write/seek/...
- functions. */
- int (*read_packet)(void *opaque, uint8_t *buf, int buf_size);
- int (*write_packet)(void *opaque, uint8_t *buf, int buf_size);
- int64_t (*seek)(void *opaque, int64_t offset, int whence);
- int64_t pos; /**< position in the file of the current buffer */
- int must_flush; /**< true if the next seek should flush */
- int eof_reached; /**< true if eof reached */
- int write_flag; /**< true if open for writing */
- int max_packet_size;
- unsigned long checksum;
- unsigned char *checksum_ptr;
- unsigned long (*update_checksum)(unsigned long checksum, const uint8_t *buf, unsigned int size);
- int error; /**< contains the error code or 0 if no error happened */
- /**
- * Pause or resume playback for network streaming protocols - e.g. MMS.
- */
- int (*read_pause)(void *opaque, int pause);
- /**
- * Seek to a given timestamp in stream with the specified stream_index.
- * Needed for some network streaming protocols which don't support seeking
- * to byte position.
- */
- int64_t (*read_seek)(void *opaque, int stream_index,
- int64_t timestamp, int flags);
- /**
- * A combination of AVIO_SEEKABLE_ flags or 0 when the stream is not seekable.
- */
- int seekable;
-
- /**
- * max filesize, used to limit allocations
- * This field is internal to libavformat and access from outside is not allowed.
- */
- int64_t maxsize;
-
- /**
- * avio_read and avio_write should if possible be satisfied directly
- * instead of going through a buffer, and avio_seek will always
- * call the underlying seek function directly.
- */
- int direct;
-
- /**
- * Bytes read statistic
- * This field is internal to libavformat and access from outside is not allowed.
- */
- int64_t bytes_read;
-
- /**
- * seek statistic
- * This field is internal to libavformat and access from outside is not allowed.
- */
- int seek_count;
-
- /**
- * writeout statistic
- * This field is internal to libavformat and access from outside is not allowed.
- */
- int writeout_count;
-
- /**
- * Original buffer size
- * used internally after probing and ensure seekback to reset the buffer size
- * This field is internal to libavformat and access from outside is not allowed.
- */
- int orig_buffer_size;
-
- /**
- * Threshold to favor readahead over seek.
- * This is current internal only, do not use from outside.
- */
- int short_seek_threshold;
-} AVIOContext;
-
-/* unbuffered I/O */
-
-/**
- * Return the name of the protocol that will handle the passed URL.
- *
- * NULL is returned if no protocol could be found for the given URL.
- *
- * @return Name of the protocol or NULL.
- */
-const char *avio_find_protocol_name(const char *url);
-
-/**
- * Return AVIO_FLAG_* access flags corresponding to the access permissions
- * of the resource in url, or a negative value corresponding to an
- * AVERROR code in case of failure. The returned access flags are
- * masked by the value in flags.
- *
- * @note This function is intrinsically unsafe, in the sense that the
- * checked resource may change its existence or permission status from
- * one call to another. Thus you should not trust the returned value,
- * unless you are sure that no other processes are accessing the
- * checked resource.
- */
-int avio_check(const char *url, int flags);
-
-/**
- * Move or rename a resource.
- *
- * @note url_src and url_dst should share the same protocol and authority.
- *
- * @param url_src url to resource to be moved
- * @param url_dst new url to resource if the operation succeeded
- * @return >=0 on success or negative on error.
- */
-int avpriv_io_move(const char *url_src, const char *url_dst);
-
-/**
- * Delete a resource.
- *
- * @param url resource to be deleted.
- * @return >=0 on success or negative on error.
- */
-int avpriv_io_delete(const char *url);
-
-/**
- * Open directory for reading.
- *
- * @param s directory read context. Pointer to a NULL pointer must be passed.
- * @param url directory to be listed.
- * @param options A dictionary filled with protocol-private options. On return
- * this parameter will be destroyed and replaced with a dictionary
- * containing options that were not found. May be NULL.
- * @return >=0 on success or negative on error.
- */
-int avio_open_dir(AVIODirContext **s, const char *url, AVDictionary **options);
-
-/**
- * Get next directory entry.
- *
- * Returned entry must be freed with avio_free_directory_entry(). In particular
- * it may outlive AVIODirContext.
- *
- * @param s directory read context.
- * @param[out] next next entry or NULL when no more entries.
- * @return >=0 on success or negative on error. End of list is not considered an
- * error.
- */
-int avio_read_dir(AVIODirContext *s, AVIODirEntry **next);
-
-/**
- * Close directory.
- *
- * @note Entries created using avio_read_dir() are not deleted and must be
- * freeded with avio_free_directory_entry().
- *
- * @param s directory read context.
- * @return >=0 on success or negative on error.
- */
-int avio_close_dir(AVIODirContext **s);
-
-/**
- * Free entry allocated by avio_read_dir().
- *
- * @param entry entry to be freed.
- */
-void avio_free_directory_entry(AVIODirEntry **entry);
-
-/**
- * Allocate and initialize an AVIOContext for buffered I/O. It must be later
- * freed with av_free().
- *
- * @param buffer Memory block for input/output operations via AVIOContext.
- * The buffer must be allocated with av_malloc() and friends.
- * It may be freed and replaced with a new buffer by libavformat.
- * AVIOContext.buffer holds the buffer currently in use,
- * which must be later freed with av_free().
- * @param buffer_size The buffer size is very important for performance.
- * For protocols with fixed blocksize it should be set to this blocksize.
- * For others a typical size is a cache page, e.g. 4kb.
- * @param write_flag Set to 1 if the buffer should be writable, 0 otherwise.
- * @param opaque An opaque pointer to user-specific data.
- * @param read_packet A function for refilling the buffer, may be NULL.
- * @param write_packet A function for writing the buffer contents, may be NULL.
- * The function may not change the input buffers content.
- * @param seek A function for seeking to specified byte position, may be NULL.
- *
- * @return Allocated AVIOContext or NULL on failure.
- */
-AVIOContext *avio_alloc_context(
- unsigned char *buffer,
- int buffer_size,
- int write_flag,
- void *opaque,
- int (*read_packet)(void *opaque, uint8_t *buf, int buf_size),
- int (*write_packet)(void *opaque, uint8_t *buf, int buf_size),
- int64_t (*seek)(void *opaque, int64_t offset, int whence));
-
-void avio_w8(AVIOContext *s, int b);
-void avio_write(AVIOContext *s, const unsigned char *buf, int size);
-void avio_wl64(AVIOContext *s, uint64_t val);
-void avio_wb64(AVIOContext *s, uint64_t val);
-void avio_wl32(AVIOContext *s, unsigned int val);
-void avio_wb32(AVIOContext *s, unsigned int val);
-void avio_wl24(AVIOContext *s, unsigned int val);
-void avio_wb24(AVIOContext *s, unsigned int val);
-void avio_wl16(AVIOContext *s, unsigned int val);
-void avio_wb16(AVIOContext *s, unsigned int val);
-
-/**
- * Write a NULL-terminated string.
- * @return number of bytes written.
- */
-int avio_put_str(AVIOContext *s, const char *str);
-
-/**
- * Convert an UTF-8 string to UTF-16LE and write it.
- * @param s the AVIOContext
- * @param str NULL-terminated UTF-8 string
- *
- * @return number of bytes written.
- */
-int avio_put_str16le(AVIOContext *s, const char *str);
-
-/**
- * Convert an UTF-8 string to UTF-16BE and write it.
- * @param s the AVIOContext
- * @param str NULL-terminated UTF-8 string
- *
- * @return number of bytes written.
- */
-int avio_put_str16be(AVIOContext *s, const char *str);
-
-/**
- * Passing this as the "whence" parameter to a seek function causes it to
- * return the filesize without seeking anywhere. Supporting this is optional.
- * If it is not supported then the seek function will return <0.
- */
-#define AVSEEK_SIZE 0x10000
-
-/**
- * Oring this flag as into the "whence" parameter to a seek function causes it to
- * seek by any means (like reopening and linear reading) or other normally unreasonable
- * means that can be extremely slow.
- * This may be ignored by the seek code.
- */
-#define AVSEEK_FORCE 0x20000
-
-/**
- * fseek() equivalent for AVIOContext.
- * @return new position or AVERROR.
- */
-int64_t avio_seek(AVIOContext *s, int64_t offset, int whence);
-
-/**
- * Skip given number of bytes forward
- * @return new position or AVERROR.
- */
-int64_t avio_skip(AVIOContext *s, int64_t offset);
-
-/**
- * ftell() equivalent for AVIOContext.
- * @return position or AVERROR.
- */
-static av_always_inline int64_t avio_tell(AVIOContext *s)
-{
- return avio_seek(s, 0, SEEK_CUR);
-}
-
-/**
- * Get the filesize.
- * @return filesize or AVERROR
- */
-int64_t avio_size(AVIOContext *s);
-
-/**
- * feof() equivalent for AVIOContext.
- * @return non zero if and only if end of file
- */
-int avio_feof(AVIOContext *s);
-#if FF_API_URL_FEOF
-/**
- * @deprecated use avio_feof()
- */
-attribute_deprecated
-int url_feof(AVIOContext *s);
-#endif
-
-/** @warning Writes up to 4 KiB per call */
-int avio_printf(AVIOContext *s, const char *fmt, ...) av_printf_format(2, 3);
-
-/**
- * Force flushing of buffered data.
- *
- * For write streams, force the buffered data to be immediately written to the output,
- * without to wait to fill the internal buffer.
- *
- * For read streams, discard all currently buffered data, and advance the
- * reported file position to that of the underlying stream. This does not
- * read new data, and does not perform any seeks.
- */
-void avio_flush(AVIOContext *s);
-
-/**
- * Read size bytes from AVIOContext into buf.
- * @return number of bytes read or AVERROR
- */
-int avio_read(AVIOContext *s, unsigned char *buf, int size);
-
-/**
- * @name Functions for reading from AVIOContext
- * @{
- *
- * @note return 0 if EOF, so you cannot use it if EOF handling is
- * necessary
- */
-int avio_r8 (AVIOContext *s);
-unsigned int avio_rl16(AVIOContext *s);
-unsigned int avio_rl24(AVIOContext *s);
-unsigned int avio_rl32(AVIOContext *s);
-uint64_t avio_rl64(AVIOContext *s);
-unsigned int avio_rb16(AVIOContext *s);
-unsigned int avio_rb24(AVIOContext *s);
-unsigned int avio_rb32(AVIOContext *s);
-uint64_t avio_rb64(AVIOContext *s);
-/**
- * @}
- */
-
-/**
- * Read a string from pb into buf. The reading will terminate when either
- * a NULL character was encountered, maxlen bytes have been read, or nothing
- * more can be read from pb. The result is guaranteed to be NULL-terminated, it
- * will be truncated if buf is too small.
- * Note that the string is not interpreted or validated in any way, it
- * might get truncated in the middle of a sequence for multi-byte encodings.
- *
- * @return number of bytes read (is always <= maxlen).
- * If reading ends on EOF or error, the return value will be one more than
- * bytes actually read.
- */
-int avio_get_str(AVIOContext *pb, int maxlen, char *buf, int buflen);
-
-/**
- * Read a UTF-16 string from pb and convert it to UTF-8.
- * The reading will terminate when either a null or invalid character was
- * encountered or maxlen bytes have been read.
- * @return number of bytes read (is always <= maxlen)
- */
-int avio_get_str16le(AVIOContext *pb, int maxlen, char *buf, int buflen);
-int avio_get_str16be(AVIOContext *pb, int maxlen, char *buf, int buflen);
-
-
-/**
- * @name URL open modes
- * The flags argument to avio_open must be one of the following
- * constants, optionally ORed with other flags.
- * @{
- */
-#define AVIO_FLAG_READ 1 /**< read-only */
-#define AVIO_FLAG_WRITE 2 /**< write-only */
-#define AVIO_FLAG_READ_WRITE (AVIO_FLAG_READ|AVIO_FLAG_WRITE) /**< read-write pseudo flag */
-/**
- * @}
- */
-
-/**
- * Use non-blocking mode.
- * If this flag is set, operations on the context will return
- * AVERROR(EAGAIN) if they can not be performed immediately.
- * If this flag is not set, operations on the context will never return
- * AVERROR(EAGAIN).
- * Note that this flag does not affect the opening/connecting of the
- * context. Connecting a protocol will always block if necessary (e.g. on
- * network protocols) but never hang (e.g. on busy devices).
- * Warning: non-blocking protocols is work-in-progress; this flag may be
- * silently ignored.
- */
-#define AVIO_FLAG_NONBLOCK 8
-
-/**
- * Use direct mode.
- * avio_read and avio_write should if possible be satisfied directly
- * instead of going through a buffer, and avio_seek will always
- * call the underlying seek function directly.
- */
-#define AVIO_FLAG_DIRECT 0x8000
-
-/**
- * Create and initialize a AVIOContext for accessing the
- * resource indicated by url.
- * @note When the resource indicated by url has been opened in
- * read+write mode, the AVIOContext can be used only for writing.
- *
- * @param s Used to return the pointer to the created AVIOContext.
- * In case of failure the pointed to value is set to NULL.
- * @param url resource to access
- * @param flags flags which control how the resource indicated by url
- * is to be opened
- * @return >= 0 in case of success, a negative value corresponding to an
- * AVERROR code in case of failure
- */
-int avio_open(AVIOContext **s, const char *url, int flags);
-
-/**
- * Create and initialize a AVIOContext for accessing the
- * resource indicated by url.
- * @note When the resource indicated by url has been opened in
- * read+write mode, the AVIOContext can be used only for writing.
- *
- * @param s Used to return the pointer to the created AVIOContext.
- * In case of failure the pointed to value is set to NULL.
- * @param url resource to access
- * @param flags flags which control how the resource indicated by url
- * is to be opened
- * @param int_cb an interrupt callback to be used at the protocols level
- * @param options A dictionary filled with protocol-private options. On return
- * this parameter will be destroyed and replaced with a dict containing options
- * that were not found. May be NULL.
- * @return >= 0 in case of success, a negative value corresponding to an
- * AVERROR code in case of failure
- */
-int avio_open2(AVIOContext **s, const char *url, int flags,
- const AVIOInterruptCB *int_cb, AVDictionary **options);
-
-/**
- * Close the resource accessed by the AVIOContext s and free it.
- * This function can only be used if s was opened by avio_open().
- *
- * The internal buffer is automatically flushed before closing the
- * resource.
- *
- * @return 0 on success, an AVERROR < 0 on error.
- * @see avio_closep
- */
-int avio_close(AVIOContext *s);
-
-/**
- * Close the resource accessed by the AVIOContext *s, free it
- * and set the pointer pointing to it to NULL.
- * This function can only be used if s was opened by avio_open().
- *
- * The internal buffer is automatically flushed before closing the
- * resource.
- *
- * @return 0 on success, an AVERROR < 0 on error.
- * @see avio_close
- */
-int avio_closep(AVIOContext **s);
-
-
-/**
- * Open a write only memory stream.
- *
- * @param s new IO context
- * @return zero if no error.
- */
-int avio_open_dyn_buf(AVIOContext **s);
-
-/**
- * Return the written size and a pointer to the buffer. The buffer
- * must be freed with av_free().
- * Padding of AV_INPUT_BUFFER_PADDING_SIZE is added to the buffer.
- *
- * @param s IO context
- * @param pbuffer pointer to a byte buffer
- * @return the length of the byte buffer
- */
-int avio_close_dyn_buf(AVIOContext *s, uint8_t **pbuffer);
-
-/**
- * Iterate through names of available protocols.
- *
- * @param opaque A private pointer representing current protocol.
- * It must be a pointer to NULL on first iteration and will
- * be updated by successive calls to avio_enum_protocols.
- * @param output If set to 1, iterate over output protocols,
- * otherwise over input protocols.
- *
- * @return A static string containing the name of current protocol or NULL
- */
-const char *avio_enum_protocols(void **opaque, int output);
-
-/**
- * Pause and resume playing - only meaningful if using a network streaming
- * protocol (e.g. MMS).
- *
- * @param h IO context from which to call the read_pause function pointer
- * @param pause 1 for pause, 0 for resume
- */
-int avio_pause(AVIOContext *h, int pause);
-
-/**
- * Seek to a given timestamp relative to some component stream.
- * Only meaningful if using a network streaming protocol (e.g. MMS.).
- *
- * @param h IO context from which to call the seek function pointers
- * @param stream_index The stream index that the timestamp is relative to.
- * If stream_index is (-1) the timestamp should be in AV_TIME_BASE
- * units from the beginning of the presentation.
- * If a stream_index >= 0 is used and the protocol does not support
- * seeking based on component streams, the call will fail.
- * @param timestamp timestamp in AVStream.time_base units
- * or if there is no stream specified then in AV_TIME_BASE units.
- * @param flags Optional combination of AVSEEK_FLAG_BACKWARD, AVSEEK_FLAG_BYTE
- * and AVSEEK_FLAG_ANY. The protocol may silently ignore
- * AVSEEK_FLAG_BACKWARD and AVSEEK_FLAG_ANY, but AVSEEK_FLAG_BYTE will
- * fail if used and not supported.
- * @return >= 0 on success
- * @see AVInputFormat::read_seek
- */
-int64_t avio_seek_time(AVIOContext *h, int stream_index,
- int64_t timestamp, int flags);
-
-/* Avoid a warning. The header can not be included because it breaks c++. */
-struct AVBPrint;
-
-/**
- * Read contents of h into print buffer, up to max_size bytes, or up to EOF.
- *
- * @return 0 for success (max_size bytes read or EOF reached), negative error
- * code otherwise
- */
-int avio_read_to_bprint(AVIOContext *h, struct AVBPrint *pb, size_t max_size);
-
-/**
- * Accept and allocate a client context on a server context.
- * @param s the server context
- * @param c the client context, must be unallocated
- * @return >= 0 on success or a negative value corresponding
- * to an AVERROR on failure
- */
-int avio_accept(AVIOContext *s, AVIOContext **c);
-
-/**
- * Perform one step of the protocol handshake to accept a new client.
- * This function must be called on a client returned by avio_accept() before
- * using it as a read/write context.
- * It is separate from avio_accept() because it may block.
- * A step of the handshake is defined by places where the application may
- * decide to change the proceedings.
- * For example, on a protocol with a request header and a reply header, each
- * one can constitute a step because the application may use the parameters
- * from the request to change parameters in the reply; or each individual
- * chunk of the request can constitute a step.
- * If the handshake is already finished, avio_handshake() does nothing and
- * returns 0 immediately.
- *
- * @param c the client context to perform the handshake on
- * @return 0 on a complete and successful handshake
- * > 0 if the handshake progressed, but is not complete
- * < 0 for an AVERROR code
- */
-int avio_handshake(AVIOContext *c);
-#endif /* AVFORMAT_AVIO_H */
diff --git a/src/main/jni/ffmpeg/include/libavformat/version.h b/src/main/jni/ffmpeg/include/libavformat/version.h
deleted file mode 100644
index a57eb12fd..000000000
--- a/src/main/jni/ffmpeg/include/libavformat/version.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Version macros.
- *
- * 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 AVFORMAT_VERSION_H
-#define AVFORMAT_VERSION_H
-
-/**
- * @file
- * @ingroup libavf
- * Libavformat version macros
- */
-
-#include "libavutil/version.h"
-
-#define LIBAVFORMAT_VERSION_MAJOR 57
-#define LIBAVFORMAT_VERSION_MINOR 21
-#define LIBAVFORMAT_VERSION_MICRO 100
-
-#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
- LIBAVFORMAT_VERSION_MINOR, \
- LIBAVFORMAT_VERSION_MICRO)
-#define LIBAVFORMAT_VERSION AV_VERSION(LIBAVFORMAT_VERSION_MAJOR, \
- LIBAVFORMAT_VERSION_MINOR, \
- LIBAVFORMAT_VERSION_MICRO)
-#define LIBAVFORMAT_BUILD LIBAVFORMAT_VERSION_INT
-
-#define LIBAVFORMAT_IDENT "Lavf" AV_STRINGIFY(LIBAVFORMAT_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.
- *
- * @note, when bumping the major version it is recommended to manually
- * disable each FF_API_* in its own commit instead of disabling them all
- * at once through the bump. This improves the git bisect-ability of the change.
- *
- */
-#ifndef FF_API_LAVF_BITEXACT
-#define FF_API_LAVF_BITEXACT (LIBAVFORMAT_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_LAVF_FRAC
-#define FF_API_LAVF_FRAC (LIBAVFORMAT_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_LAVF_CODEC_TB
-#define FF_API_LAVF_CODEC_TB (LIBAVFORMAT_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_URL_FEOF
-#define FF_API_URL_FEOF (LIBAVFORMAT_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_LAVF_FMT_RAWPICTURE
-#define FF_API_LAVF_FMT_RAWPICTURE (LIBAVFORMAT_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_COMPUTE_PKT_FIELDS2
-#define FF_API_COMPUTE_PKT_FIELDS2 (LIBAVFORMAT_VERSION_MAJOR < 58)
-#endif
-
-#ifndef FF_API_R_FRAME_RATE
-#define FF_API_R_FRAME_RATE 1
-#endif
-#endif /* AVFORMAT_VERSION_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/adler32.h b/src/main/jni/ffmpeg/include/libavutil/adler32.h
deleted file mode 100644
index 0dc69ec0a..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/adler32.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * copyright (c) 2006 Mans Rullgard
- *
- * 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 AVUTIL_ADLER32_H
-#define AVUTIL_ADLER32_H
-
-#include <stdint.h>
-#include "attributes.h"
-
-/**
- * @file
- * Public header for libavutil Adler32 hasher
- *
- * @defgroup lavu_adler32 Adler32
- * @ingroup lavu_crypto
- * @{
- */
-
-/**
- * Calculate the Adler32 checksum of a buffer.
- *
- * Passing the return value to a subsequent av_adler32_update() call
- * allows the checksum of multiple buffers to be calculated as though
- * they were concatenated.
- *
- * @param adler initial checksum value
- * @param buf pointer to input buffer
- * @param len size of input buffer
- * @return updated checksum
- */
-unsigned long av_adler32_update(unsigned long adler, const uint8_t *buf,
- unsigned int len) av_pure;
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_ADLER32_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/aes.h b/src/main/jni/ffmpeg/include/libavutil/aes.h
deleted file mode 100644
index 09efbda10..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/aes.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * copyright (c) 2007 Michael Niedermayer <michaelni@gmx.at>
- *
- * 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 AVUTIL_AES_H
-#define AVUTIL_AES_H
-
-#include <stdint.h>
-
-#include "attributes.h"
-#include "version.h"
-
-/**
- * @defgroup lavu_aes AES
- * @ingroup lavu_crypto
- * @{
- */
-
-extern const int av_aes_size;
-
-struct AVAES;
-
-/**
- * Allocate an AVAES context.
- */
-struct AVAES *av_aes_alloc(void);
-
-/**
- * Initialize an AVAES context.
- * @param key_bits 128, 192 or 256
- * @param decrypt 0 for encryption, 1 for decryption
- */
-int av_aes_init(struct AVAES *a, const uint8_t *key, int key_bits, int decrypt);
-
-/**
- * Encrypt or decrypt a buffer using a previously initialized context.
- * @param count number of 16 byte blocks
- * @param dst destination array, can be equal to src
- * @param src source array, can be equal to dst
- * @param iv initialization vector for CBC mode, if NULL then ECB will be used
- * @param decrypt 0 for encryption, 1 for decryption
- */
-void av_aes_crypt(struct AVAES *a, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt);
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_AES_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/aes_ctr.h b/src/main/jni/ffmpeg/include/libavutil/aes_ctr.h
deleted file mode 100644
index f596fa6a4..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/aes_ctr.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * AES-CTR cipher
- * Copyright (c) 2015 Eran Kornblau <erankor at gmail dot com>
- *
- * 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 AVUTIL_AES_CTR_H
-#define AVUTIL_AES_CTR_H
-
-#include <stdint.h>
-
-#include "attributes.h"
-#include "version.h"
-
-#define AES_CTR_KEY_SIZE (16)
-#define AES_CTR_IV_SIZE (8)
-
-struct AVAESCTR;
-
-/**
- * Allocate an AVAESCTR context.
- */
-struct AVAESCTR *av_aes_ctr_alloc(void);
-
-/**
- * Initialize an AVAESCTR context.
- * @param key encryption key, must have a length of AES_CTR_KEY_SIZE
- */
-int av_aes_ctr_init(struct AVAESCTR *a, const uint8_t *key);
-
-/**
- * Release an AVAESCTR context.
- */
-void av_aes_ctr_free(struct AVAESCTR *a);
-
-/**
- * Process a buffer using a previously initialized context.
- * @param dst destination array, can be equal to src
- * @param src source array, can be equal to dst
- * @param size the size of src and dst
- */
-void av_aes_ctr_crypt(struct AVAESCTR *a, uint8_t *dst, const uint8_t *src, int size);
-
-/**
- * Get the current iv
- */
-const uint8_t* av_aes_ctr_get_iv(struct AVAESCTR *a);
-
-/**
- * Generate a random iv
- */
-void av_aes_ctr_set_random_iv(struct AVAESCTR *a);
-
-/**
- * Forcefully change the iv
- */
-void av_aes_ctr_set_iv(struct AVAESCTR *a, const uint8_t* iv);
-
-/**
- * Increment the top 64 bit of the iv (performed after each frame)
- */
-void av_aes_ctr_increment_iv(struct AVAESCTR *a);
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_AES_CTR_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/attributes.h b/src/main/jni/ffmpeg/include/libavutil/attributes.h
deleted file mode 100644
index 5c6b9deec..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/attributes.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- *
- * 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
- * Macro definitions for various function/variable attributes
- */
-
-#ifndef AVUTIL_ATTRIBUTES_H
-#define AVUTIL_ATTRIBUTES_H
-
-#ifdef __GNUC__
-# define AV_GCC_VERSION_AT_LEAST(x,y) (__GNUC__ > (x) || __GNUC__ == (x) && __GNUC_MINOR__ >= (y))
-# define AV_GCC_VERSION_AT_MOST(x,y) (__GNUC__ < (x) || __GNUC__ == (x) && __GNUC_MINOR__ <= (y))
-#else
-# define AV_GCC_VERSION_AT_LEAST(x,y) 0
-# define AV_GCC_VERSION_AT_MOST(x,y) 0
-#endif
-
-#ifndef av_always_inline
-#if AV_GCC_VERSION_AT_LEAST(3,1)
-# define av_always_inline __attribute__((always_inline)) inline
-#elif defined(_MSC_VER)
-# define av_always_inline __forceinline
-#else
-# define av_always_inline inline
-#endif
-#endif
-
-#ifndef av_extern_inline
-#if defined(__ICL) && __ICL >= 1210 || defined(__GNUC_STDC_INLINE__)
-# define av_extern_inline extern inline
-#else
-# define av_extern_inline inline
-#endif
-#endif
-
-#if AV_GCC_VERSION_AT_LEAST(3,4)
-# define av_warn_unused_result __attribute__((warn_unused_result))
-#else
-# define av_warn_unused_result
-#endif
-
-#if AV_GCC_VERSION_AT_LEAST(3,1)
-# define av_noinline __attribute__((noinline))
-#elif defined(_MSC_VER)
-# define av_noinline __declspec(noinline)
-#else
-# define av_noinline
-#endif
-
-#if AV_GCC_VERSION_AT_LEAST(3,1)
-# define av_pure __attribute__((pure))
-#else
-# define av_pure
-#endif
-
-#if AV_GCC_VERSION_AT_LEAST(2,6)
-# define av_const __attribute__((const))
-#else
-# define av_const
-#endif
-
-#if AV_GCC_VERSION_AT_LEAST(4,3)
-# define av_cold __attribute__((cold))
-#else
-# define av_cold
-#endif
-
-#if AV_GCC_VERSION_AT_LEAST(4,1) && !defined(__llvm__)
-# define av_flatten __attribute__((flatten))
-#else
-# define av_flatten
-#endif
-
-#if AV_GCC_VERSION_AT_LEAST(3,1)
-# define attribute_deprecated __attribute__((deprecated))
-#elif defined(_MSC_VER)
-# define attribute_deprecated __declspec(deprecated)
-#else
-# define attribute_deprecated
-#endif
-
-/**
- * Disable warnings about deprecated features
- * This is useful for sections of code kept for backward compatibility and
- * scheduled for removal.
- */
-#ifndef AV_NOWARN_DEPRECATED
-#if AV_GCC_VERSION_AT_LEAST(4,6)
-# define AV_NOWARN_DEPRECATED(code) \
- _Pragma("GCC diagnostic push") \
- _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \
- code \
- _Pragma("GCC diagnostic pop")
-#elif defined(_MSC_VER)
-# define AV_NOWARN_DEPRECATED(code) \
- __pragma(warning(push)) \
- __pragma(warning(disable : 4996)) \
- code; \
- __pragma(warning(pop))
-#else
-# define AV_NOWARN_DEPRECATED(code) code
-#endif
-#endif
-
-
-#if defined(__GNUC__)
-# define av_unused __attribute__((unused))
-#else
-# define av_unused
-#endif
-
-/**
- * Mark a variable as used and prevent the compiler from optimizing it
- * away. This is useful for variables accessed only from inline
- * assembler without the compiler being aware.
- */
-#if AV_GCC_VERSION_AT_LEAST(3,1)
-# define av_used __attribute__((used))
-#else
-# define av_used
-#endif
-
-#if AV_GCC_VERSION_AT_LEAST(3,3)
-# define av_alias __attribute__((may_alias))
-#else
-# define av_alias
-#endif
-
-#if defined(__GNUC__) && !defined(__INTEL_COMPILER) && !defined(__clang__)
-# define av_uninit(x) x=x
-#else
-# define av_uninit(x) x
-#endif
-
-#ifdef __GNUC__
-# define av_builtin_constant_p __builtin_constant_p
-# define av_printf_format(fmtpos, attrpos) __attribute__((__format__(__printf__, fmtpos, attrpos)))
-#else
-# define av_builtin_constant_p(x) 0
-# define av_printf_format(fmtpos, attrpos)
-#endif
-
-#if AV_GCC_VERSION_AT_LEAST(2,5)
-# define av_noreturn __attribute__((noreturn))
-#else
-# define av_noreturn
-#endif
-
-#endif /* AVUTIL_ATTRIBUTES_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/audio_fifo.h b/src/main/jni/ffmpeg/include/libavutil/audio_fifo.h
deleted file mode 100644
index 24f91dab7..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/audio_fifo.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Audio FIFO
- * Copyright (c) 2012 Justin Ruggles <justin.ruggles@gmail.com>
- *
- * 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
- * Audio FIFO Buffer
- */
-
-#ifndef AVUTIL_AUDIO_FIFO_H
-#define AVUTIL_AUDIO_FIFO_H
-
-#include "avutil.h"
-#include "fifo.h"
-#include "samplefmt.h"
-
-/**
- * @addtogroup lavu_audio
- * @{
- *
- * @defgroup lavu_audiofifo Audio FIFO Buffer
- * @{
- */
-
-/**
- * Context for an Audio FIFO Buffer.
- *
- * - Operates at the sample level rather than the byte level.
- * - Supports multiple channels with either planar or packed sample format.
- * - Automatic reallocation when writing to a full buffer.
- */
-typedef struct AVAudioFifo AVAudioFifo;
-
-/**
- * Free an AVAudioFifo.
- *
- * @param af AVAudioFifo to free
- */
-void av_audio_fifo_free(AVAudioFifo *af);
-
-/**
- * Allocate an AVAudioFifo.
- *
- * @param sample_fmt sample format
- * @param channels number of channels
- * @param nb_samples initial allocation size, in samples
- * @return newly allocated AVAudioFifo, or NULL on error
- */
-AVAudioFifo *av_audio_fifo_alloc(enum AVSampleFormat sample_fmt, int channels,
- int nb_samples);
-
-/**
- * Reallocate an AVAudioFifo.
- *
- * @param af AVAudioFifo to reallocate
- * @param nb_samples new allocation size, in samples
- * @return 0 if OK, or negative AVERROR code on failure
- */
-av_warn_unused_result
-int av_audio_fifo_realloc(AVAudioFifo *af, int nb_samples);
-
-/**
- * Write data to an AVAudioFifo.
- *
- * The AVAudioFifo will be reallocated automatically if the available space
- * is less than nb_samples.
- *
- * @see enum AVSampleFormat
- * The documentation for AVSampleFormat describes the data layout.
- *
- * @param af AVAudioFifo to write to
- * @param data audio data plane pointers
- * @param nb_samples number of samples to write
- * @return number of samples actually written, or negative AVERROR
- * code on failure. If successful, the number of samples
- * actually written will always be nb_samples.
- */
-int av_audio_fifo_write(AVAudioFifo *af, void **data, int nb_samples);
-
-/**
- * Peek data from an AVAudioFifo.
- *
- * @see enum AVSampleFormat
- * The documentation for AVSampleFormat describes the data layout.
- *
- * @param af AVAudioFifo to read from
- * @param data audio data plane pointers
- * @param nb_samples number of samples to peek
- * @return number of samples actually peek, or negative AVERROR code
- * on failure. The number of samples actually peek will not
- * be greater than nb_samples, and will only be less than
- * nb_samples if av_audio_fifo_size is less than nb_samples.
- */
-int av_audio_fifo_peek(AVAudioFifo *af, void **data, int nb_samples);
-
-/**
- * Read data from an AVAudioFifo.
- *
- * @see enum AVSampleFormat
- * The documentation for AVSampleFormat describes the data layout.
- *
- * @param af AVAudioFifo to read from
- * @param data audio data plane pointers
- * @param nb_samples number of samples to read
- * @return number of samples actually read, or negative AVERROR code
- * on failure. The number of samples actually read will not
- * be greater than nb_samples, and will only be less than
- * nb_samples if av_audio_fifo_size is less than nb_samples.
- */
-int av_audio_fifo_read(AVAudioFifo *af, void **data, int nb_samples);
-
-/**
- * Drain data from an AVAudioFifo.
- *
- * Removes the data without reading it.
- *
- * @param af AVAudioFifo to drain
- * @param nb_samples number of samples to drain
- * @return 0 if OK, or negative AVERROR code on failure
- */
-int av_audio_fifo_drain(AVAudioFifo *af, int nb_samples);
-
-/**
- * Reset the AVAudioFifo buffer.
- *
- * This empties all data in the buffer.
- *
- * @param af AVAudioFifo to reset
- */
-void av_audio_fifo_reset(AVAudioFifo *af);
-
-/**
- * Get the current number of samples in the AVAudioFifo available for reading.
- *
- * @param af the AVAudioFifo to query
- * @return number of samples available for reading
- */
-int av_audio_fifo_size(AVAudioFifo *af);
-
-/**
- * Get the current number of samples in the AVAudioFifo available for writing.
- *
- * @param af the AVAudioFifo to query
- * @return number of samples available for writing
- */
-int av_audio_fifo_space(AVAudioFifo *af);
-
-/**
- * @}
- * @}
- */
-
-#endif /* AVUTIL_AUDIO_FIFO_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/avassert.h b/src/main/jni/ffmpeg/include/libavutil/avassert.h
deleted file mode 100644
index 41f5e0eea..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/avassert.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * copyright (c) 2010 Michael Niedermayer <michaelni@gmx.at>
- *
- * 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
- * simple assert() macros that are a bit more flexible than ISO C assert().
- * @author Michael Niedermayer <michaelni@gmx.at>
- */
-
-#ifndef AVUTIL_AVASSERT_H
-#define AVUTIL_AVASSERT_H
-
-#include <stdlib.h>
-#include "avutil.h"
-#include "log.h"
-
-/**
- * assert() equivalent, that is always enabled.
- */
-#define av_assert0(cond) do { \
- if (!(cond)) { \
- av_log(NULL, AV_LOG_PANIC, "Assertion %s failed at %s:%d\n", \
- AV_STRINGIFY(cond), __FILE__, __LINE__); \
- abort(); \
- } \
-} while (0)
-
-
-/**
- * assert() equivalent, that does not lie in speed critical code.
- * These asserts() thus can be enabled without fearing speedloss.
- */
-#if defined(ASSERT_LEVEL) && ASSERT_LEVEL > 0
-#define av_assert1(cond) av_assert0(cond)
-#else
-#define av_assert1(cond) ((void)0)
-#endif
-
-
-/**
- * assert() equivalent, that does lie in speed critical code.
- */
-#if defined(ASSERT_LEVEL) && ASSERT_LEVEL > 1
-#define av_assert2(cond) av_assert0(cond)
-#else
-#define av_assert2(cond) ((void)0)
-#endif
-
-#endif /* AVUTIL_AVASSERT_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/avconfig.h b/src/main/jni/ffmpeg/include/libavutil/avconfig.h
deleted file mode 100644
index 123b3b28a..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/avconfig.h
+++ /dev/null
@@ -1,7 +0,0 @@
-/* Generated by ffconf */
-#ifndef AVUTIL_AVCONFIG_H
-#define AVUTIL_AVCONFIG_H
-#define AV_HAVE_BIGENDIAN 0
-#define AV_HAVE_FAST_UNALIGNED 0
-#define AV_HAVE_INCOMPATIBLE_LIBAV_ABI 0
-#endif /* AVUTIL_AVCONFIG_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/avstring.h b/src/main/jni/ffmpeg/include/libavutil/avstring.h
deleted file mode 100644
index a46d01255..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/avstring.h
+++ /dev/null
@@ -1,397 +0,0 @@
-/*
- * Copyright (c) 2007 Mans Rullgard
- *
- * 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 AVUTIL_AVSTRING_H
-#define AVUTIL_AVSTRING_H
-
-#include <stddef.h>
-#include <stdint.h>
-#include "attributes.h"
-
-/**
- * @addtogroup lavu_string
- * @{
- */
-
-/**
- * Return non-zero if pfx is a prefix of str. If it is, *ptr is set to
- * the address of the first character in str after the prefix.
- *
- * @param str input string
- * @param pfx prefix to test
- * @param ptr updated if the prefix is matched inside str
- * @return non-zero if the prefix matches, zero otherwise
- */
-int av_strstart(const char *str, const char *pfx, const char **ptr);
-
-/**
- * Return non-zero if pfx is a prefix of str independent of case. If
- * it is, *ptr is set to the address of the first character in str
- * after the prefix.
- *
- * @param str input string
- * @param pfx prefix to test
- * @param ptr updated if the prefix is matched inside str
- * @return non-zero if the prefix matches, zero otherwise
- */
-int av_stristart(const char *str, const char *pfx, const char **ptr);
-
-/**
- * Locate the first case-independent occurrence in the string haystack
- * of the string needle. A zero-length string needle is considered to
- * match at the start of haystack.
- *
- * This function is a case-insensitive version of the standard strstr().
- *
- * @param haystack string to search in
- * @param needle string to search for
- * @return pointer to the located match within haystack
- * or a null pointer if no match
- */
-char *av_stristr(const char *haystack, const char *needle);
-
-/**
- * Locate the first occurrence of the string needle in the string haystack
- * where not more than hay_length characters are searched. A zero-length
- * string needle is considered to match at the start of haystack.
- *
- * This function is a length-limited version of the standard strstr().
- *
- * @param haystack string to search in
- * @param needle string to search for
- * @param hay_length length of string to search in
- * @return pointer to the located match within haystack
- * or a null pointer if no match
- */
-char *av_strnstr(const char *haystack, const char *needle, size_t hay_length);
-
-/**
- * Copy the string src to dst, but no more than size - 1 bytes, and
- * null-terminate dst.
- *
- * This function is the same as BSD strlcpy().
- *
- * @param dst destination buffer
- * @param src source string
- * @param size size of destination buffer
- * @return the length of src
- *
- * @warning since the return value is the length of src, src absolutely
- * _must_ be a properly 0-terminated string, otherwise this will read beyond
- * the end of the buffer and possibly crash.
- */
-size_t av_strlcpy(char *dst, const char *src, size_t size);
-
-/**
- * Append the string src to the string dst, but to a total length of
- * no more than size - 1 bytes, and null-terminate dst.
- *
- * This function is similar to BSD strlcat(), but differs when
- * size <= strlen(dst).
- *
- * @param dst destination buffer
- * @param src source string
- * @param size size of destination buffer
- * @return the total length of src and dst
- *
- * @warning since the return value use the length of src and dst, these
- * absolutely _must_ be a properly 0-terminated strings, otherwise this
- * will read beyond the end of the buffer and possibly crash.
- */
-size_t av_strlcat(char *dst, const char *src, size_t size);
-
-/**
- * Append output to a string, according to a format. Never write out of
- * the destination buffer, and always put a terminating 0 within
- * the buffer.
- * @param dst destination buffer (string to which the output is
- * appended)
- * @param size total size of the destination buffer
- * @param fmt printf-compatible format string, specifying how the
- * following parameters are used
- * @return the length of the string that would have been generated
- * if enough space had been available
- */
-size_t av_strlcatf(char *dst, size_t size, const char *fmt, ...) av_printf_format(3, 4);
-
-/**
- * Get the count of continuous non zero chars starting from the beginning.
- *
- * @param len maximum number of characters to check in the string, that
- * is the maximum value which is returned by the function
- */
-static inline size_t av_strnlen(const char *s, size_t len)
-{
- size_t i;
- for (i = 0; i < len && s[i]; i++)
- ;
- return i;
-}
-
-/**
- * Print arguments following specified format into a large enough auto
- * allocated buffer. It is similar to GNU asprintf().
- * @param fmt printf-compatible format string, specifying how the
- * following parameters are used.
- * @return the allocated string
- * @note You have to free the string yourself with av_free().
- */
-char *av_asprintf(const char *fmt, ...) av_printf_format(1, 2);
-
-/**
- * Convert a number to a av_malloced string.
- */
-char *av_d2str(double d);
-
-/**
- * Unescape the given string until a non escaped terminating char,
- * and return the token corresponding to the unescaped string.
- *
- * The normal \ and ' escaping is supported. Leading and trailing
- * whitespaces are removed, unless they are escaped with '\' or are
- * enclosed between ''.
- *
- * @param buf the buffer to parse, buf will be updated to point to the
- * terminating char
- * @param term a 0-terminated list of terminating chars
- * @return the malloced unescaped string, which must be av_freed by
- * the user, NULL in case of allocation failure
- */
-char *av_get_token(const char **buf, const char *term);
-
-/**
- * Split the string into several tokens which can be accessed by
- * successive calls to av_strtok().
- *
- * A token is defined as a sequence of characters not belonging to the
- * set specified in delim.
- *
- * On the first call to av_strtok(), s should point to the string to
- * parse, and the value of saveptr is ignored. In subsequent calls, s
- * should be NULL, and saveptr should be unchanged since the previous
- * call.
- *
- * This function is similar to strtok_r() defined in POSIX.1.
- *
- * @param s the string to parse, may be NULL
- * @param delim 0-terminated list of token delimiters, must be non-NULL
- * @param saveptr user-provided pointer which points to stored
- * information necessary for av_strtok() to continue scanning the same
- * string. saveptr is updated to point to the next character after the
- * first delimiter found, or to NULL if the string was terminated
- * @return the found token, or NULL when no token is found
- */
-char *av_strtok(char *s, const char *delim, char **saveptr);
-
-/**
- * Locale-independent conversion of ASCII isdigit.
- */
-static inline av_const int av_isdigit(int c)
-{
- return c >= '0' && c <= '9';
-}
-
-/**
- * Locale-independent conversion of ASCII isgraph.
- */
-static inline av_const int av_isgraph(int c)
-{
- return c > 32 && c < 127;
-}
-
-/**
- * Locale-independent conversion of ASCII isspace.
- */
-static inline av_const int av_isspace(int c)
-{
- return c == ' ' || c == '\f' || c == '\n' || c == '\r' || c == '\t' ||
- c == '\v';
-}
-
-/**
- * Locale-independent conversion of ASCII characters to uppercase.
- */
-static inline av_const int av_toupper(int c)
-{
- if (c >= 'a' && c <= 'z')
- c ^= 0x20;
- return c;
-}
-
-/**
- * Locale-independent conversion of ASCII characters to lowercase.
- */
-static inline av_const int av_tolower(int c)
-{
- if (c >= 'A' && c <= 'Z')
- c ^= 0x20;
- return c;
-}
-
-/**
- * Locale-independent conversion of ASCII isxdigit.
- */
-static inline av_const int av_isxdigit(int c)
-{
- c = av_tolower(c);
- return av_isdigit(c) || (c >= 'a' && c <= 'f');
-}
-
-/**
- * Locale-independent case-insensitive compare.
- * @note This means only ASCII-range characters are case-insensitive
- */
-int av_strcasecmp(const char *a, const char *b);
-
-/**
- * Locale-independent case-insensitive compare.
- * @note This means only ASCII-range characters are case-insensitive
- */
-int av_strncasecmp(const char *a, const char *b, size_t n);
-
-
-/**
- * Thread safe basename.
- * @param path the path, on DOS both \ and / are considered separators.
- * @return pointer to the basename substring.
- */
-const char *av_basename(const char *path);
-
-/**
- * Thread safe dirname.
- * @param path the path, on DOS both \ and / are considered separators.
- * @return the path with the separator replaced by the string terminator or ".".
- * @note the function may change the input string.
- */
-const char *av_dirname(char *path);
-
-/**
- * Match instances of a name in a comma-separated list of names.
- * @param name Name to look for.
- * @param names List of names.
- * @return 1 on match, 0 otherwise.
- */
-int av_match_name(const char *name, const char *names);
-
-/**
- * Append path component to the existing path.
- * Path separator '/' is placed between when needed.
- * Resulting string have to be freed with av_free().
- * @param path base path
- * @param component component to be appended
- * @return new path or NULL on error.
- */
-char *av_append_path_component(const char *path, const char *component);
-
-enum AVEscapeMode {
- AV_ESCAPE_MODE_AUTO, ///< Use auto-selected escaping mode.
- AV_ESCAPE_MODE_BACKSLASH, ///< Use backslash escaping.
- AV_ESCAPE_MODE_QUOTE, ///< Use single-quote escaping.
-};
-
-/**
- * Consider spaces special and escape them even in the middle of the
- * string.
- *
- * This is equivalent to adding the whitespace characters to the special
- * characters lists, except it is guaranteed to use the exact same list
- * of whitespace characters as the rest of libavutil.
- */
-#define AV_ESCAPE_FLAG_WHITESPACE (1 << 0)
-
-/**
- * Escape only specified special characters.
- * Without this flag, escape also any characters that may be considered
- * special by av_get_token(), such as the single quote.
- */
-#define AV_ESCAPE_FLAG_STRICT (1 << 1)
-
-/**
- * Escape string in src, and put the escaped string in an allocated
- * string in *dst, which must be freed with av_free().
- *
- * @param dst pointer where an allocated string is put
- * @param src string to escape, must be non-NULL
- * @param special_chars string containing the special characters which
- * need to be escaped, can be NULL
- * @param mode escape mode to employ, see AV_ESCAPE_MODE_* macros.
- * Any unknown value for mode will be considered equivalent to
- * AV_ESCAPE_MODE_BACKSLASH, but this behaviour can change without
- * notice.
- * @param flags flags which control how to escape, see AV_ESCAPE_FLAG_ macros
- * @return the length of the allocated string, or a negative error code in case of error
- * @see av_bprint_escape()
- */
-av_warn_unused_result
-int av_escape(char **dst, const char *src, const char *special_chars,
- enum AVEscapeMode mode, int flags);
-
-#define AV_UTF8_FLAG_ACCEPT_INVALID_BIG_CODES 1 ///< accept codepoints over 0x10FFFF
-#define AV_UTF8_FLAG_ACCEPT_NON_CHARACTERS 2 ///< accept non-characters - 0xFFFE and 0xFFFF
-#define AV_UTF8_FLAG_ACCEPT_SURROGATES 4 ///< accept UTF-16 surrogates codes
-#define AV_UTF8_FLAG_EXCLUDE_XML_INVALID_CONTROL_CODES 8 ///< exclude control codes not accepted by XML
-
-#define AV_UTF8_FLAG_ACCEPT_ALL \
- AV_UTF8_FLAG_ACCEPT_INVALID_BIG_CODES|AV_UTF8_FLAG_ACCEPT_NON_CHARACTERS|AV_UTF8_FLAG_ACCEPT_SURROGATES
-
-/**
- * Read and decode a single UTF-8 code point (character) from the
- * buffer in *buf, and update *buf to point to the next byte to
- * decode.
- *
- * In case of an invalid byte sequence, the pointer will be updated to
- * the next byte after the invalid sequence and the function will
- * return an error code.
- *
- * Depending on the specified flags, the function will also fail in
- * case the decoded code point does not belong to a valid range.
- *
- * @note For speed-relevant code a carefully implemented use of
- * GET_UTF8() may be preferred.
- *
- * @param codep pointer used to return the parsed code in case of success.
- * The value in *codep is set even in case the range check fails.
- * @param bufp pointer to the address the first byte of the sequence
- * to decode, updated by the function to point to the
- * byte next after the decoded sequence
- * @param buf_end pointer to the end of the buffer, points to the next
- * byte past the last in the buffer. This is used to
- * avoid buffer overreads (in case of an unfinished
- * UTF-8 sequence towards the end of the buffer).
- * @param flags a collection of AV_UTF8_FLAG_* flags
- * @return >= 0 in case a sequence was successfully read, a negative
- * value in case of invalid sequence
- */
-av_warn_unused_result
-int av_utf8_decode(int32_t *codep, const uint8_t **bufp, const uint8_t *buf_end,
- unsigned int flags);
-
-/**
- * Check if a name is in a list.
- * @returns 0 if not found, or the 1 based index where it has been found in the
- * list.
- */
-int av_match_list(const char *name, const char *list, char separator);
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_AVSTRING_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/avutil.h b/src/main/jni/ffmpeg/include/libavutil/avutil.h
deleted file mode 100644
index 9bcf67412..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/avutil.h
+++ /dev/null
@@ -1,343 +0,0 @@
-/*
- * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- *
- * 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 AVUTIL_AVUTIL_H
-#define AVUTIL_AVUTIL_H
-
-/**
- * @file
- * external API header
- */
-
-/**
- * @mainpage
- *
- * @section ffmpeg_intro Introduction
- *
- * This document describes the usage of the different libraries
- * provided by FFmpeg.
- *
- * @li @ref libavc "libavcodec" encoding/decoding library
- * @li @ref lavfi "libavfilter" graph-based frame editing library
- * @li @ref libavf "libavformat" I/O and muxing/demuxing library
- * @li @ref lavd "libavdevice" special devices muxing/demuxing library
- * @li @ref lavu "libavutil" common utility library
- * @li @ref lswr "libswresample" audio resampling, format conversion and mixing
- * @li @ref lpp "libpostproc" post processing library
- * @li @ref libsws "libswscale" color conversion and scaling library
- *
- * @section ffmpeg_versioning Versioning and compatibility
- *
- * Each of the FFmpeg libraries contains a version.h header, which defines a
- * major, minor and micro version number with the
- * <em>LIBRARYNAME_VERSION_{MAJOR,MINOR,MICRO}</em> macros. The major version
- * number is incremented with backward incompatible changes - e.g. removing
- * parts of the public API, reordering public struct members, etc. The minor
- * version number is incremented for backward compatible API changes or major
- * new features - e.g. adding a new public function or a new decoder. The micro
- * version number is incremented for smaller changes that a calling program
- * might still want to check for - e.g. changing behavior in a previously
- * unspecified situation.
- *
- * FFmpeg guarantees backward API and ABI compatibility for each library as long
- * as its major version number is unchanged. This means that no public symbols
- * will be removed or renamed. Types and names of the public struct members and
- * values of public macros and enums will remain the same (unless they were
- * explicitly declared as not part of the public API). Documented behavior will
- * not change.
- *
- * In other words, any correct program that works with a given FFmpeg snapshot
- * should work just as well without any changes with any later snapshot with the
- * same major versions. This applies to both rebuilding the program against new
- * FFmpeg versions or to replacing the dynamic FFmpeg libraries that a program
- * links against.
- *
- * However, new public symbols may be added and new members may be appended to
- * public structs whose size is not part of public ABI (most public structs in
- * FFmpeg). New macros and enum values may be added. Behavior in undocumented
- * situations may change slightly (and be documented). All those are accompanied
- * by an entry in doc/APIchanges and incrementing either the minor or micro
- * version number.
- */
-
-/**
- * @defgroup lavu Common utility functions
- *
- * @brief
- * libavutil contains the code shared across all the other FFmpeg
- * libraries
- *
- * @note In order to use the functions provided by avutil you must include
- * the specific header.
- *
- * @{
- *
- * @defgroup lavu_crypto Crypto and Hashing
- *
- * @{
- * @}
- *
- * @defgroup lavu_math Maths
- * @{
- *
- * @}
- *
- * @defgroup lavu_string String Manipulation
- *
- * @{
- *
- * @}
- *
- * @defgroup lavu_mem Memory Management
- *
- * @{
- *
- * @}
- *
- * @defgroup lavu_data Data Structures
- * @{
- *
- * @}
- *
- * @defgroup lavu_audio Audio related
- *
- * @{
- *
- * @}
- *
- * @defgroup lavu_error Error Codes
- *
- * @{
- *
- * @}
- *
- * @defgroup lavu_log Logging Facility
- *
- * @{
- *
- * @}
- *
- * @defgroup lavu_misc Other
- *
- * @{
- *
- * @defgroup preproc_misc Preprocessor String Macros
- *
- * @{
- *
- * @}
- *
- * @defgroup version_utils Library Version Macros
- *
- * @{
- *
- * @}
- */
-
-
-/**
- * @addtogroup lavu_ver
- * @{
- */
-
-/**
- * Return the LIBAVUTIL_VERSION_INT constant.
- */
-unsigned avutil_version(void);
-
-/**
- * Return an informative version string. This usually is the actual release
- * version number or a git commit description. This string has no fixed format
- * and can change any time. It should never be parsed by code.
- */
-const char *av_version_info(void);
-
-/**
- * Return the libavutil build-time configuration.
- */
-const char *avutil_configuration(void);
-
-/**
- * Return the libavutil license.
- */
-const char *avutil_license(void);
-
-/**
- * @}
- */
-
-/**
- * @addtogroup lavu_media Media Type
- * @brief Media Type
- */
-
-enum AVMediaType {
- AVMEDIA_TYPE_UNKNOWN = -1, ///< Usually treated as AVMEDIA_TYPE_DATA
- AVMEDIA_TYPE_VIDEO,
- AVMEDIA_TYPE_AUDIO,
- AVMEDIA_TYPE_DATA, ///< Opaque data information usually continuous
- AVMEDIA_TYPE_SUBTITLE,
- AVMEDIA_TYPE_ATTACHMENT, ///< Opaque data information usually sparse
- AVMEDIA_TYPE_NB
-};
-
-/**
- * Return a string describing the media_type enum, NULL if media_type
- * is unknown.
- */
-const char *av_get_media_type_string(enum AVMediaType media_type);
-
-/**
- * @defgroup lavu_const Constants
- * @{
- *
- * @defgroup lavu_enc Encoding specific
- *
- * @note those definition should move to avcodec
- * @{
- */
-
-#define FF_LAMBDA_SHIFT 7
-#define FF_LAMBDA_SCALE (1<<FF_LAMBDA_SHIFT)
-#define FF_QP2LAMBDA 118 ///< factor to convert from H.263 QP to lambda
-#define FF_LAMBDA_MAX (256*128-1)
-
-#define FF_QUALITY_SCALE FF_LAMBDA_SCALE //FIXME maybe remove
-
-/**
- * @}
- * @defgroup lavu_time Timestamp specific
- *
- * FFmpeg internal timebase and timestamp definitions
- *
- * @{
- */
-
-/**
- * @brief Undefined timestamp value
- *
- * Usually reported by demuxer that work on containers that do not provide
- * either pts or dts.
- */
-
-#define AV_NOPTS_VALUE ((int64_t)UINT64_C(0x8000000000000000))
-
-/**
- * Internal time base represented as integer
- */
-
-#define AV_TIME_BASE 1000000
-
-/**
- * Internal time base represented as fractional value
- */
-
-#define AV_TIME_BASE_Q (AVRational){1, AV_TIME_BASE}
-
-/**
- * @}
- * @}
- * @defgroup lavu_picture Image related
- *
- * AVPicture types, pixel formats and basic image planes manipulation.
- *
- * @{
- */
-
-enum AVPictureType {
- AV_PICTURE_TYPE_NONE = 0, ///< Undefined
- AV_PICTURE_TYPE_I, ///< Intra
- AV_PICTURE_TYPE_P, ///< Predicted
- AV_PICTURE_TYPE_B, ///< Bi-dir predicted
- AV_PICTURE_TYPE_S, ///< S(GMC)-VOP MPEG4
- AV_PICTURE_TYPE_SI, ///< Switching Intra
- AV_PICTURE_TYPE_SP, ///< Switching Predicted
- AV_PICTURE_TYPE_BI, ///< BI type
-};
-
-/**
- * Return a single letter to describe the given picture type
- * pict_type.
- *
- * @param[in] pict_type the picture type @return a single character
- * representing the picture type, '?' if pict_type is unknown
- */
-char av_get_picture_type_char(enum AVPictureType pict_type);
-
-/**
- * @}
- */
-
-#include "common.h"
-#include "error.h"
-#include "rational.h"
-#include "version.h"
-#include "macros.h"
-#include "mathematics.h"
-#include "log.h"
-#include "pixfmt.h"
-
-/**
- * Return x default pointer in case p is NULL.
- */
-static inline void *av_x_if_null(const void *p, const void *x)
-{
- return (void *)(intptr_t)(p ? p : x);
-}
-
-/**
- * Compute the length of an integer list.
- *
- * @param elsize size in bytes of each list element (only 1, 2, 4 or 8)
- * @param term list terminator (usually 0 or -1)
- * @param list pointer to the list
- * @return length of the list, in elements, not counting the terminator
- */
-unsigned av_int_list_length_for_size(unsigned elsize,
- const void *list, uint64_t term) av_pure;
-
-/**
- * Compute the length of an integer list.
- *
- * @param term list terminator (usually 0 or -1)
- * @param list pointer to the list
- * @return length of the list, in elements, not counting the terminator
- */
-#define av_int_list_length(list, term) \
- av_int_list_length_for_size(sizeof(*(list)), list, term)
-
-/**
- * Open a file using a UTF-8 filename.
- * The API of this function matches POSIX fopen(), errors are returned through
- * errno.
- */
-FILE *av_fopen_utf8(const char *path, const char *mode);
-
-/**
- * Return the fractional representation of the internal time base.
- */
-AVRational av_get_time_base_q(void);
-
-/**
- * @}
- * @}
- */
-
-#endif /* AVUTIL_AVUTIL_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/base64.h b/src/main/jni/ffmpeg/include/libavutil/base64.h
deleted file mode 100644
index 514498eac..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/base64.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 2006 Ryan Martell. (rdm4@martellventures.com)
- *
- * 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 AVUTIL_BASE64_H
-#define AVUTIL_BASE64_H
-
-#include <stdint.h>
-
-/**
- * @defgroup lavu_base64 Base64
- * @ingroup lavu_crypto
- * @{
- */
-
-
-/**
- * Decode a base64-encoded string.
- *
- * @param out buffer for decoded data
- * @param in null-terminated input string
- * @param out_size size in bytes of the out buffer, must be at
- * least 3/4 of the length of in
- * @return number of bytes written, or a negative value in case of
- * invalid input
- */
-int av_base64_decode(uint8_t *out, const char *in, int out_size);
-
-/**
- * Encode data to base64 and null-terminate.
- *
- * @param out buffer for encoded data
- * @param out_size size in bytes of the out buffer (including the
- * null terminator), must be at least AV_BASE64_SIZE(in_size)
- * @param in input buffer containing the data to encode
- * @param in_size size in bytes of the in buffer
- * @return out or NULL in case of error
- */
-char *av_base64_encode(char *out, int out_size, const uint8_t *in, int in_size);
-
-/**
- * Calculate the output size needed to base64-encode x bytes to a
- * null-terminated string.
- */
-#define AV_BASE64_SIZE(x) (((x)+2) / 3 * 4 + 1)
-
- /**
- * @}
- */
-
-#endif /* AVUTIL_BASE64_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/blowfish.h b/src/main/jni/ffmpeg/include/libavutil/blowfish.h
deleted file mode 100644
index 9e289a40d..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/blowfish.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Blowfish algorithm
- * Copyright (c) 2012 Samuel Pitoiset
- *
- * 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 AVUTIL_BLOWFISH_H
-#define AVUTIL_BLOWFISH_H
-
-#include <stdint.h>
-
-/**
- * @defgroup lavu_blowfish Blowfish
- * @ingroup lavu_crypto
- * @{
- */
-
-#define AV_BF_ROUNDS 16
-
-typedef struct AVBlowfish {
- uint32_t p[AV_BF_ROUNDS + 2];
- uint32_t s[4][256];
-} AVBlowfish;
-
-/**
- * Allocate an AVBlowfish context.
- */
-AVBlowfish *av_blowfish_alloc(void);
-
-/**
- * Initialize an AVBlowfish context.
- *
- * @param ctx an AVBlowfish context
- * @param key a key
- * @param key_len length of the key
- */
-void av_blowfish_init(struct AVBlowfish *ctx, const uint8_t *key, int key_len);
-
-/**
- * Encrypt or decrypt a buffer using a previously initialized context.
- *
- * @param ctx an AVBlowfish context
- * @param xl left four bytes halves of input to be encrypted
- * @param xr right four bytes halves of input to be encrypted
- * @param decrypt 0 for encryption, 1 for decryption
- */
-void av_blowfish_crypt_ecb(struct AVBlowfish *ctx, uint32_t *xl, uint32_t *xr,
- int decrypt);
-
-/**
- * Encrypt or decrypt a buffer using a previously initialized context.
- *
- * @param ctx an AVBlowfish context
- * @param dst destination array, can be equal to src
- * @param src source array, can be equal to dst
- * @param count number of 8 byte blocks
- * @param iv initialization vector for CBC mode, if NULL ECB will be used
- * @param decrypt 0 for encryption, 1 for decryption
- */
-void av_blowfish_crypt(struct AVBlowfish *ctx, uint8_t *dst, const uint8_t *src,
- int count, uint8_t *iv, int decrypt);
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_BLOWFISH_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/bprint.h b/src/main/jni/ffmpeg/include/libavutil/bprint.h
deleted file mode 100644
index c09b1ac1e..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/bprint.h
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
- * Copyright (c) 2012 Nicolas George
- *
- * 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 AVUTIL_BPRINT_H
-#define AVUTIL_BPRINT_H
-
-#include <stdarg.h>
-
-#include "attributes.h"
-#include "avstring.h"
-
-/**
- * Define a structure with extra padding to a fixed size
- * This helps ensuring binary compatibility with future versions.
- */
-
-#define FF_PAD_STRUCTURE(name, size, ...) \
-struct ff_pad_helper_##name { __VA_ARGS__ }; \
-typedef struct name { \
- __VA_ARGS__ \
- char reserved_padding[size - sizeof(struct ff_pad_helper_##name)]; \
-} name;
-
-/**
- * Buffer to print data progressively
- *
- * The string buffer grows as necessary and is always 0-terminated.
- * The content of the string is never accessed, and thus is
- * encoding-agnostic and can even hold binary data.
- *
- * Small buffers are kept in the structure itself, and thus require no
- * memory allocation at all (unless the contents of the buffer is needed
- * after the structure goes out of scope). This is almost as lightweight as
- * declaring a local "char buf[512]".
- *
- * The length of the string can go beyond the allocated size: the buffer is
- * then truncated, but the functions still keep account of the actual total
- * length.
- *
- * In other words, buf->len can be greater than buf->size and records the
- * total length of what would have been to the buffer if there had been
- * enough memory.
- *
- * Append operations do not need to be tested for failure: if a memory
- * allocation fails, data stop being appended to the buffer, but the length
- * is still updated. This situation can be tested with
- * av_bprint_is_complete().
- *
- * The size_max field determines several possible behaviours:
- *
- * size_max = -1 (= UINT_MAX) or any large value will let the buffer be
- * reallocated as necessary, with an amortized linear cost.
- *
- * size_max = 0 prevents writing anything to the buffer: only the total
- * length is computed. The write operations can then possibly be repeated in
- * a buffer with exactly the necessary size
- * (using size_init = size_max = len + 1).
- *
- * size_max = 1 is automatically replaced by the exact size available in the
- * structure itself, thus ensuring no dynamic memory allocation. The
- * internal buffer is large enough to hold a reasonable paragraph of text,
- * such as the current paragraph.
- */
-
-FF_PAD_STRUCTURE(AVBPrint, 1024,
- char *str; /**< string so far */
- unsigned len; /**< length so far */
- unsigned size; /**< allocated memory */
- unsigned size_max; /**< maximum allocated memory */
- char reserved_internal_buffer[1];
-)
-
-/**
- * Convenience macros for special values for av_bprint_init() size_max
- * parameter.
- */
-#define AV_BPRINT_SIZE_UNLIMITED ((unsigned)-1)
-#define AV_BPRINT_SIZE_AUTOMATIC 1
-#define AV_BPRINT_SIZE_COUNT_ONLY 0
-
-/**
- * Init a print buffer.
- *
- * @param buf buffer to init
- * @param size_init initial size (including the final 0)
- * @param size_max maximum size;
- * 0 means do not write anything, just count the length;
- * 1 is replaced by the maximum value for automatic storage;
- * any large value means that the internal buffer will be
- * reallocated as needed up to that limit; -1 is converted to
- * UINT_MAX, the largest limit possible.
- * Check also AV_BPRINT_SIZE_* macros.
- */
-void av_bprint_init(AVBPrint *buf, unsigned size_init, unsigned size_max);
-
-/**
- * Init a print buffer using a pre-existing buffer.
- *
- * The buffer will not be reallocated.
- *
- * @param buf buffer structure to init
- * @param buffer byte buffer to use for the string data
- * @param size size of buffer
- */
-void av_bprint_init_for_buffer(AVBPrint *buf, char *buffer, unsigned size);
-
-/**
- * Append a formatted string to a print buffer.
- */
-void av_bprintf(AVBPrint *buf, const char *fmt, ...) av_printf_format(2, 3);
-
-/**
- * Append a formatted string to a print buffer.
- */
-void av_vbprintf(AVBPrint *buf, const char *fmt, va_list vl_arg);
-
-/**
- * Append char c n times to a print buffer.
- */
-void av_bprint_chars(AVBPrint *buf, char c, unsigned n);
-
-/**
- * Append data to a print buffer.
- *
- * param buf bprint buffer to use
- * param data pointer to data
- * param size size of data
- */
-void av_bprint_append_data(AVBPrint *buf, const char *data, unsigned size);
-
-struct tm;
-/**
- * Append a formatted date and time to a print buffer.
- *
- * param buf bprint buffer to use
- * param fmt date and time format string, see strftime()
- * param tm broken-down time structure to translate
- *
- * @note due to poor design of the standard strftime function, it may
- * produce poor results if the format string expands to a very long text and
- * the bprint buffer is near the limit stated by the size_max option.
- */
-void av_bprint_strftime(AVBPrint *buf, const char *fmt, const struct tm *tm);
-
-/**
- * Allocate bytes in the buffer for external use.
- *
- * @param[in] buf buffer structure
- * @param[in] size required size
- * @param[out] mem pointer to the memory area
- * @param[out] actual_size size of the memory area after allocation;
- * can be larger or smaller than size
- */
-void av_bprint_get_buffer(AVBPrint *buf, unsigned size,
- unsigned char **mem, unsigned *actual_size);
-
-/**
- * Reset the string to "" but keep internal allocated data.
- */
-void av_bprint_clear(AVBPrint *buf);
-
-/**
- * Test if the print buffer is complete (not truncated).
- *
- * It may have been truncated due to a memory allocation failure
- * or the size_max limit (compare size and size_max if necessary).
- */
-static inline int av_bprint_is_complete(const AVBPrint *buf)
-{
- return buf->len < buf->size;
-}
-
-/**
- * Finalize a print buffer.
- *
- * The print buffer can no longer be used afterwards,
- * but the len and size fields are still valid.
- *
- * @arg[out] ret_str if not NULL, used to return a permanent copy of the
- * buffer contents, or NULL if memory allocation fails;
- * if NULL, the buffer is discarded and freed
- * @return 0 for success or error code (probably AVERROR(ENOMEM))
- */
-int av_bprint_finalize(AVBPrint *buf, char **ret_str);
-
-/**
- * Escape the content in src and append it to dstbuf.
- *
- * @param dstbuf already inited destination bprint buffer
- * @param src string containing the text to escape
- * @param special_chars string containing the special characters which
- * need to be escaped, can be NULL
- * @param mode escape mode to employ, see AV_ESCAPE_MODE_* macros.
- * Any unknown value for mode will be considered equivalent to
- * AV_ESCAPE_MODE_BACKSLASH, but this behaviour can change without
- * notice.
- * @param flags flags which control how to escape, see AV_ESCAPE_FLAG_* macros
- */
-void av_bprint_escape(AVBPrint *dstbuf, const char *src, const char *special_chars,
- enum AVEscapeMode mode, int flags);
-
-#endif /* AVUTIL_BPRINT_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/bswap.h b/src/main/jni/ffmpeg/include/libavutil/bswap.h
deleted file mode 100644
index 91cb79538..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/bswap.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- *
- * 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
- * byte swapping routines
- */
-
-#ifndef AVUTIL_BSWAP_H
-#define AVUTIL_BSWAP_H
-
-#include <stdint.h>
-#include "libavutil/avconfig.h"
-#include "attributes.h"
-
-#ifdef HAVE_AV_CONFIG_H
-
-#include "config.h"
-
-#if ARCH_AARCH64
-# include "aarch64/bswap.h"
-#elif ARCH_ARM
-# include "arm/bswap.h"
-#elif ARCH_AVR32
-# include "avr32/bswap.h"
-#elif ARCH_SH4
-# include "sh4/bswap.h"
-#elif ARCH_X86
-# include "x86/bswap.h"
-#endif
-
-#endif /* HAVE_AV_CONFIG_H */
-
-#define AV_BSWAP16C(x) (((x) << 8 & 0xff00) | ((x) >> 8 & 0x00ff))
-#define AV_BSWAP32C(x) (AV_BSWAP16C(x) << 16 | AV_BSWAP16C((x) >> 16))
-#define AV_BSWAP64C(x) (AV_BSWAP32C(x) << 32 | AV_BSWAP32C((x) >> 32))
-
-#define AV_BSWAPC(s, x) AV_BSWAP##s##C(x)
-
-#ifndef av_bswap16
-static av_always_inline av_const uint16_t av_bswap16(uint16_t x)
-{
- x= (x>>8) | (x<<8);
- return x;
-}
-#endif
-
-#ifndef av_bswap32
-static av_always_inline av_const uint32_t av_bswap32(uint32_t x)
-{
- return AV_BSWAP32C(x);
-}
-#endif
-
-#ifndef av_bswap64
-static inline uint64_t av_const av_bswap64(uint64_t x)
-{
- return (uint64_t)av_bswap32(x) << 32 | av_bswap32(x >> 32);
-}
-#endif
-
-// be2ne ... big-endian to native-endian
-// le2ne ... little-endian to native-endian
-
-#if AV_HAVE_BIGENDIAN
-#define av_be2ne16(x) (x)
-#define av_be2ne32(x) (x)
-#define av_be2ne64(x) (x)
-#define av_le2ne16(x) av_bswap16(x)
-#define av_le2ne32(x) av_bswap32(x)
-#define av_le2ne64(x) av_bswap64(x)
-#define AV_BE2NEC(s, x) (x)
-#define AV_LE2NEC(s, x) AV_BSWAPC(s, x)
-#else
-#define av_be2ne16(x) av_bswap16(x)
-#define av_be2ne32(x) av_bswap32(x)
-#define av_be2ne64(x) av_bswap64(x)
-#define av_le2ne16(x) (x)
-#define av_le2ne32(x) (x)
-#define av_le2ne64(x) (x)
-#define AV_BE2NEC(s, x) AV_BSWAPC(s, x)
-#define AV_LE2NEC(s, x) (x)
-#endif
-
-#define AV_BE2NE16C(x) AV_BE2NEC(16, x)
-#define AV_BE2NE32C(x) AV_BE2NEC(32, x)
-#define AV_BE2NE64C(x) AV_BE2NEC(64, x)
-#define AV_LE2NE16C(x) AV_LE2NEC(16, x)
-#define AV_LE2NE32C(x) AV_LE2NEC(32, x)
-#define AV_LE2NE64C(x) AV_LE2NEC(64, x)
-
-#endif /* AVUTIL_BSWAP_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/buffer.h b/src/main/jni/ffmpeg/include/libavutil/buffer.h
deleted file mode 100644
index b4399fd39..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/buffer.h
+++ /dev/null
@@ -1,274 +0,0 @@
-/*
- * 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
- * @ingroup lavu_buffer
- * refcounted data buffer API
- */
-
-#ifndef AVUTIL_BUFFER_H
-#define AVUTIL_BUFFER_H
-
-#include <stdint.h>
-
-/**
- * @defgroup lavu_buffer AVBuffer
- * @ingroup lavu_data
- *
- * @{
- * AVBuffer is an API for reference-counted data buffers.
- *
- * There are two core objects in this API -- AVBuffer and AVBufferRef. AVBuffer
- * represents the data buffer itself; it is opaque and not meant to be accessed
- * by the caller directly, but only through AVBufferRef. However, the caller may
- * e.g. compare two AVBuffer pointers to check whether two different references
- * are describing the same data buffer. AVBufferRef represents a single
- * reference to an AVBuffer and it is the object that may be manipulated by the
- * caller directly.
- *
- * There are two functions provided for creating a new AVBuffer with a single
- * reference -- av_buffer_alloc() to just allocate a new buffer, and
- * av_buffer_create() to wrap an existing array in an AVBuffer. From an existing
- * reference, additional references may be created with av_buffer_ref().
- * Use av_buffer_unref() to free a reference (this will automatically free the
- * data once all the references are freed).
- *
- * The convention throughout this API and the rest of FFmpeg is such that the
- * buffer is considered writable if there exists only one reference to it (and
- * it has not been marked as read-only). The av_buffer_is_writable() function is
- * provided to check whether this is true and av_buffer_make_writable() will
- * automatically create a new writable buffer when necessary.
- * Of course nothing prevents the calling code from violating this convention,
- * however that is safe only when all the existing references are under its
- * control.
- *
- * @note Referencing and unreferencing the buffers is thread-safe and thus
- * may be done from multiple threads simultaneously without any need for
- * additional locking.
- *
- * @note Two different references to the same buffer can point to different
- * parts of the buffer (i.e. their AVBufferRef.data will not be equal).
- */
-
-/**
- * A reference counted buffer type. It is opaque and is meant to be used through
- * references (AVBufferRef).
- */
-typedef struct AVBuffer AVBuffer;
-
-/**
- * A reference to a data buffer.
- *
- * The size of this struct is not a part of the public ABI and it is not meant
- * to be allocated directly.
- */
-typedef struct AVBufferRef {
- AVBuffer *buffer;
-
- /**
- * The data buffer. It is considered writable if and only if
- * this is the only reference to the buffer, in which case
- * av_buffer_is_writable() returns 1.
- */
- uint8_t *data;
- /**
- * Size of data in bytes.
- */
- int size;
-} AVBufferRef;
-
-/**
- * Allocate an AVBuffer of the given size using av_malloc().
- *
- * @return an AVBufferRef of given size or NULL when out of memory
- */
-AVBufferRef *av_buffer_alloc(int size);
-
-/**
- * Same as av_buffer_alloc(), except the returned buffer will be initialized
- * to zero.
- */
-AVBufferRef *av_buffer_allocz(int size);
-
-/**
- * Always treat the buffer as read-only, even when it has only one
- * reference.
- */
-#define AV_BUFFER_FLAG_READONLY (1 << 0)
-
-/**
- * Create an AVBuffer from an existing array.
- *
- * If this function is successful, data is owned by the AVBuffer. The caller may
- * only access data through the returned AVBufferRef and references derived from
- * it.
- * If this function fails, data is left untouched.
- * @param data data array
- * @param size size of data in bytes
- * @param free a callback for freeing this buffer's data
- * @param opaque parameter to be got for processing or passed to free
- * @param flags a combination of AV_BUFFER_FLAG_*
- *
- * @return an AVBufferRef referring to data on success, NULL on failure.
- */
-AVBufferRef *av_buffer_create(uint8_t *data, int size,
- void (*free)(void *opaque, uint8_t *data),
- void *opaque, int flags);
-
-/**
- * Default free callback, which calls av_free() on the buffer data.
- * This function is meant to be passed to av_buffer_create(), not called
- * directly.
- */
-void av_buffer_default_free(void *opaque, uint8_t *data);
-
-/**
- * Create a new reference to an AVBuffer.
- *
- * @return a new AVBufferRef referring to the same AVBuffer as buf or NULL on
- * failure.
- */
-AVBufferRef *av_buffer_ref(AVBufferRef *buf);
-
-/**
- * Free a given reference and automatically free the buffer if there are no more
- * references to it.
- *
- * @param buf the reference to be freed. The pointer is set to NULL on return.
- */
-void av_buffer_unref(AVBufferRef **buf);
-
-/**
- * @return 1 if the caller may write to the data referred to by buf (which is
- * true if and only if buf is the only reference to the underlying AVBuffer).
- * Return 0 otherwise.
- * A positive answer is valid until av_buffer_ref() is called on buf.
- */
-int av_buffer_is_writable(const AVBufferRef *buf);
-
-/**
- * @return the opaque parameter set by av_buffer_create.
- */
-void *av_buffer_get_opaque(const AVBufferRef *buf);
-
-int av_buffer_get_ref_count(const AVBufferRef *buf);
-
-/**
- * Create a writable reference from a given buffer reference, avoiding data copy
- * if possible.
- *
- * @param buf buffer reference to make writable. On success, buf is either left
- * untouched, or it is unreferenced and a new writable AVBufferRef is
- * written in its place. On failure, buf is left untouched.
- * @return 0 on success, a negative AVERROR on failure.
- */
-int av_buffer_make_writable(AVBufferRef **buf);
-
-/**
- * Reallocate a given buffer.
- *
- * @param buf a buffer reference to reallocate. On success, buf will be
- * unreferenced and a new reference with the required size will be
- * written in its place. On failure buf will be left untouched. *buf
- * may be NULL, then a new buffer is allocated.
- * @param size required new buffer size.
- * @return 0 on success, a negative AVERROR on failure.
- *
- * @note the buffer is actually reallocated with av_realloc() only if it was
- * initially allocated through av_buffer_realloc(NULL) and there is only one
- * reference to it (i.e. the one passed to this function). In all other cases
- * a new buffer is allocated and the data is copied.
- */
-int av_buffer_realloc(AVBufferRef **buf, int size);
-
-/**
- * @}
- */
-
-/**
- * @defgroup lavu_bufferpool AVBufferPool
- * @ingroup lavu_data
- *
- * @{
- * AVBufferPool is an API for a lock-free thread-safe pool of AVBuffers.
- *
- * Frequently allocating and freeing large buffers may be slow. AVBufferPool is
- * meant to solve this in cases when the caller needs a set of buffers of the
- * same size (the most obvious use case being buffers for raw video or audio
- * frames).
- *
- * At the beginning, the user must call av_buffer_pool_init() to create the
- * buffer pool. Then whenever a buffer is needed, call av_buffer_pool_get() to
- * get a reference to a new buffer, similar to av_buffer_alloc(). This new
- * reference works in all aspects the same way as the one created by
- * av_buffer_alloc(). However, when the last reference to this buffer is
- * unreferenced, it is returned to the pool instead of being freed and will be
- * reused for subsequent av_buffer_pool_get() calls.
- *
- * When the caller is done with the pool and no longer needs to allocate any new
- * buffers, av_buffer_pool_uninit() must be called to mark the pool as freeable.
- * Once all the buffers are released, it will automatically be freed.
- *
- * Allocating and releasing buffers with this API is thread-safe as long as
- * either the default alloc callback is used, or the user-supplied one is
- * thread-safe.
- */
-
-/**
- * The buffer pool. This structure is opaque and not meant to be accessed
- * directly. It is allocated with av_buffer_pool_init() and freed with
- * av_buffer_pool_uninit().
- */
-typedef struct AVBufferPool AVBufferPool;
-
-/**
- * Allocate and initialize a buffer pool.
- *
- * @param size size of each buffer in this pool
- * @param alloc a function that will be used to allocate new buffers when the
- * pool is empty. May be NULL, then the default allocator will be used
- * (av_buffer_alloc()).
- * @return newly created buffer pool on success, NULL on error.
- */
-AVBufferPool *av_buffer_pool_init(int size, AVBufferRef* (*alloc)(int size));
-
-/**
- * Mark the pool as being available for freeing. It will actually be freed only
- * once all the allocated buffers associated with the pool are released. Thus it
- * is safe to call this function while some of the allocated buffers are still
- * in use.
- *
- * @param pool pointer to the pool to be freed. It will be set to NULL.
- * @see av_buffer_pool_can_uninit()
- */
-void av_buffer_pool_uninit(AVBufferPool **pool);
-
-/**
- * Allocate a new AVBuffer, reusing an old buffer from the pool when available.
- * This function may be called simultaneously from multiple threads.
- *
- * @return a reference to the new buffer on success, NULL on error.
- */
-AVBufferRef *av_buffer_pool_get(AVBufferPool *pool);
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_BUFFER_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/camellia.h b/src/main/jni/ffmpeg/include/libavutil/camellia.h
deleted file mode 100644
index e674c9b9a..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/camellia.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * An implementation of the CAMELLIA algorithm as mentioned in RFC3713
- * Copyright (c) 2014 Supraja Meedinti
- *
- * 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 AVUTIL_CAMELLIA_H
-#define AVUTIL_CAMELLIA_H
-
-#include <stdint.h>
-
-
-/**
- * @file
- * @brief Public header for libavutil CAMELLIA algorithm
- * @defgroup lavu_camellia CAMELLIA
- * @ingroup lavu_crypto
- * @{
- */
-
-extern const int av_camellia_size;
-
-struct AVCAMELLIA;
-
-/**
- * Allocate an AVCAMELLIA context
- * To free the struct: av_free(ptr)
- */
-struct AVCAMELLIA *av_camellia_alloc(void);
-
-/**
- * Initialize an AVCAMELLIA context.
- *
- * @param ctx an AVCAMELLIA context
- * @param key a key of 16, 24, 32 bytes used for encryption/decryption
- * @param key_bits number of keybits: possible are 128, 192, 256
- */
-int av_camellia_init(struct AVCAMELLIA *ctx, const uint8_t *key, int key_bits);
-
-/**
- * Encrypt or decrypt a buffer using a previously initialized context
- *
- * @param ctx an AVCAMELLIA context
- * @param dst destination array, can be equal to src
- * @param src source array, can be equal to dst
- * @param count number of 16 byte blocks
- * @paran iv initialization vector for CBC mode, NULL for ECB mode
- * @param decrypt 0 for encryption, 1 for decryption
- */
-void av_camellia_crypt(struct AVCAMELLIA *ctx, uint8_t *dst, const uint8_t *src, int count, uint8_t* iv, int decrypt);
-
-/**
- * @}
- */
-#endif /* AVUTIL_CAMELLIA_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/cast5.h b/src/main/jni/ffmpeg/include/libavutil/cast5.h
deleted file mode 100644
index ad5b347e6..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/cast5.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * An implementation of the CAST128 algorithm as mentioned in RFC2144
- * Copyright (c) 2014 Supraja Meedinti
- *
- * 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 AVUTIL_CAST5_H
-#define AVUTIL_CAST5_H
-
-#include <stdint.h>
-
-
-/**
- * @file
- * @brief Public header for libavutil CAST5 algorithm
- * @defgroup lavu_cast5 CAST5
- * @ingroup lavu_crypto
- * @{
- */
-
-extern const int av_cast5_size;
-
-struct AVCAST5;
-
-/**
- * Allocate an AVCAST5 context
- * To free the struct: av_free(ptr)
- */
-struct AVCAST5 *av_cast5_alloc(void);
-/**
- * Initialize an AVCAST5 context.
- *
- * @param ctx an AVCAST5 context
- * @param key a key of 5,6,...16 bytes used for encryption/decryption
- * @param key_bits number of keybits: possible are 40,48,...,128
- * @return 0 on success, less than 0 on failure
- */
-int av_cast5_init(struct AVCAST5 *ctx, const uint8_t *key, int key_bits);
-
-/**
- * Encrypt or decrypt a buffer using a previously initialized context, ECB mode only
- *
- * @param ctx an AVCAST5 context
- * @param dst destination array, can be equal to src
- * @param src source array, can be equal to dst
- * @param count number of 8 byte blocks
- * @param decrypt 0 for encryption, 1 for decryption
- */
-void av_cast5_crypt(struct AVCAST5 *ctx, uint8_t *dst, const uint8_t *src, int count, int decrypt);
-
-/**
- * Encrypt or decrypt a buffer using a previously initialized context
- *
- * @param ctx an AVCAST5 context
- * @param dst destination array, can be equal to src
- * @param src source array, can be equal to dst
- * @param count number of 8 byte blocks
- * @param iv initialization vector for CBC mode, NULL for ECB mode
- * @param decrypt 0 for encryption, 1 for decryption
- */
-void av_cast5_crypt2(struct AVCAST5 *ctx, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt);
-/**
- * @}
- */
-#endif /* AVUTIL_CAST5_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/channel_layout.h b/src/main/jni/ffmpeg/include/libavutil/channel_layout.h
deleted file mode 100644
index ec7effead..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/channel_layout.h
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * Copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- * Copyright (c) 2008 Peter Ross
- *
- * 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 AVUTIL_CHANNEL_LAYOUT_H
-#define AVUTIL_CHANNEL_LAYOUT_H
-
-#include <stdint.h>
-
-/**
- * @file
- * audio channel layout utility functions
- */
-
-/**
- * @addtogroup lavu_audio
- * @{
- */
-
-/**
- * @defgroup channel_masks Audio channel masks
- *
- * A channel layout is a 64-bits integer with a bit set for every channel.
- * The number of bits set must be equal to the number of channels.
- * The value 0 means that the channel layout is not known.
- * @note this data structure is not powerful enough to handle channels
- * combinations that have the same channel multiple times, such as
- * dual-mono.
- *
- * @{
- */
-#define AV_CH_FRONT_LEFT 0x00000001
-#define AV_CH_FRONT_RIGHT 0x00000002
-#define AV_CH_FRONT_CENTER 0x00000004
-#define AV_CH_LOW_FREQUENCY 0x00000008
-#define AV_CH_BACK_LEFT 0x00000010
-#define AV_CH_BACK_RIGHT 0x00000020
-#define AV_CH_FRONT_LEFT_OF_CENTER 0x00000040
-#define AV_CH_FRONT_RIGHT_OF_CENTER 0x00000080
-#define AV_CH_BACK_CENTER 0x00000100
-#define AV_CH_SIDE_LEFT 0x00000200
-#define AV_CH_SIDE_RIGHT 0x00000400
-#define AV_CH_TOP_CENTER 0x00000800
-#define AV_CH_TOP_FRONT_LEFT 0x00001000
-#define AV_CH_TOP_FRONT_CENTER 0x00002000
-#define AV_CH_TOP_FRONT_RIGHT 0x00004000
-#define AV_CH_TOP_BACK_LEFT 0x00008000
-#define AV_CH_TOP_BACK_CENTER 0x00010000
-#define AV_CH_TOP_BACK_RIGHT 0x00020000
-#define AV_CH_STEREO_LEFT 0x20000000 ///< Stereo downmix.
-#define AV_CH_STEREO_RIGHT 0x40000000 ///< See AV_CH_STEREO_LEFT.
-#define AV_CH_WIDE_LEFT 0x0000000080000000ULL
-#define AV_CH_WIDE_RIGHT 0x0000000100000000ULL
-#define AV_CH_SURROUND_DIRECT_LEFT 0x0000000200000000ULL
-#define AV_CH_SURROUND_DIRECT_RIGHT 0x0000000400000000ULL
-#define AV_CH_LOW_FREQUENCY_2 0x0000000800000000ULL
-
-/** Channel mask value used for AVCodecContext.request_channel_layout
- to indicate that the user requests the channel order of the decoder output
- to be the native codec channel order. */
-#define AV_CH_LAYOUT_NATIVE 0x8000000000000000ULL
-
-/**
- * @}
- * @defgroup channel_mask_c Audio channel layouts
- * @{
- * */
-#define AV_CH_LAYOUT_MONO (AV_CH_FRONT_CENTER)
-#define AV_CH_LAYOUT_STEREO (AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT)
-#define AV_CH_LAYOUT_2POINT1 (AV_CH_LAYOUT_STEREO|AV_CH_LOW_FREQUENCY)
-#define AV_CH_LAYOUT_2_1 (AV_CH_LAYOUT_STEREO|AV_CH_BACK_CENTER)
-#define AV_CH_LAYOUT_SURROUND (AV_CH_LAYOUT_STEREO|AV_CH_FRONT_CENTER)
-#define AV_CH_LAYOUT_3POINT1 (AV_CH_LAYOUT_SURROUND|AV_CH_LOW_FREQUENCY)
-#define AV_CH_LAYOUT_4POINT0 (AV_CH_LAYOUT_SURROUND|AV_CH_BACK_CENTER)
-#define AV_CH_LAYOUT_4POINT1 (AV_CH_LAYOUT_4POINT0|AV_CH_LOW_FREQUENCY)
-#define AV_CH_LAYOUT_2_2 (AV_CH_LAYOUT_STEREO|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT)
-#define AV_CH_LAYOUT_QUAD (AV_CH_LAYOUT_STEREO|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT)
-#define AV_CH_LAYOUT_5POINT0 (AV_CH_LAYOUT_SURROUND|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT)
-#define AV_CH_LAYOUT_5POINT1 (AV_CH_LAYOUT_5POINT0|AV_CH_LOW_FREQUENCY)
-#define AV_CH_LAYOUT_5POINT0_BACK (AV_CH_LAYOUT_SURROUND|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT)
-#define AV_CH_LAYOUT_5POINT1_BACK (AV_CH_LAYOUT_5POINT0_BACK|AV_CH_LOW_FREQUENCY)
-#define AV_CH_LAYOUT_6POINT0 (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_CENTER)
-#define AV_CH_LAYOUT_6POINT0_FRONT (AV_CH_LAYOUT_2_2|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER)
-#define AV_CH_LAYOUT_HEXAGONAL (AV_CH_LAYOUT_5POINT0_BACK|AV_CH_BACK_CENTER)
-#define AV_CH_LAYOUT_6POINT1 (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_CENTER)
-#define AV_CH_LAYOUT_6POINT1_BACK (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_BACK_CENTER)
-#define AV_CH_LAYOUT_6POINT1_FRONT (AV_CH_LAYOUT_6POINT0_FRONT|AV_CH_LOW_FREQUENCY)
-#define AV_CH_LAYOUT_7POINT0 (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT)
-#define AV_CH_LAYOUT_7POINT0_FRONT (AV_CH_LAYOUT_5POINT0|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER)
-#define AV_CH_LAYOUT_7POINT1 (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT)
-#define AV_CH_LAYOUT_7POINT1_WIDE (AV_CH_LAYOUT_5POINT1|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER)
-#define AV_CH_LAYOUT_7POINT1_WIDE_BACK (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER)
-#define AV_CH_LAYOUT_OCTAGONAL (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_LEFT|AV_CH_BACK_CENTER|AV_CH_BACK_RIGHT)
-#define AV_CH_LAYOUT_HEXADECAGONAL (AV_CH_LAYOUT_OCTAGONAL|AV_CH_WIDE_LEFT|AV_CH_WIDE_RIGHT|AV_CH_TOP_BACK_LEFT|AV_CH_TOP_BACK_RIGHT|AV_CH_TOP_BACK_CENTER|AV_CH_TOP_FRONT_CENTER|AV_CH_TOP_FRONT_LEFT|AV_CH_TOP_FRONT_RIGHT)
-#define AV_CH_LAYOUT_STEREO_DOWNMIX (AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT)
-
-enum AVMatrixEncoding {
- AV_MATRIX_ENCODING_NONE,
- AV_MATRIX_ENCODING_DOLBY,
- AV_MATRIX_ENCODING_DPLII,
- AV_MATRIX_ENCODING_DPLIIX,
- AV_MATRIX_ENCODING_DPLIIZ,
- AV_MATRIX_ENCODING_DOLBYEX,
- AV_MATRIX_ENCODING_DOLBYHEADPHONE,
- AV_MATRIX_ENCODING_NB
-};
-
-/**
- * Return a channel layout id that matches name, or 0 if no match is found.
- *
- * name can be one or several of the following notations,
- * separated by '+' or '|':
- * - the name of an usual channel layout (mono, stereo, 4.0, quad, 5.0,
- * 5.0(side), 5.1, 5.1(side), 7.1, 7.1(wide), downmix);
- * - the name of a single channel (FL, FR, FC, LFE, BL, BR, FLC, FRC, BC,
- * SL, SR, TC, TFL, TFC, TFR, TBL, TBC, TBR, DL, DR);
- * - a number of channels, in decimal, optionally followed by 'c', yielding
- * the default channel layout for that number of channels (@see
- * av_get_default_channel_layout);
- * - a channel layout mask, in hexadecimal starting with "0x" (see the
- * AV_CH_* macros).
- *
- * @warning Starting from the next major bump the trailing character
- * 'c' to specify a number of channels will be required, while a
- * channel layout mask could also be specified as a decimal number
- * (if and only if not followed by "c").
- *
- * Example: "stereo+FC" = "2c+FC" = "2c+1c" = "0x7"
- */
-uint64_t av_get_channel_layout(const char *name);
-
-/**
- * Return a description of a channel layout.
- * If nb_channels is <= 0, it is guessed from the channel_layout.
- *
- * @param buf put here the string containing the channel layout
- * @param buf_size size in bytes of the buffer
- */
-void av_get_channel_layout_string(char *buf, int buf_size, int nb_channels, uint64_t channel_layout);
-
-struct AVBPrint;
-/**
- * Append a description of a channel layout to a bprint buffer.
- */
-void av_bprint_channel_layout(struct AVBPrint *bp, int nb_channels, uint64_t channel_layout);
-
-/**
- * Return the number of channels in the channel layout.
- */
-int av_get_channel_layout_nb_channels(uint64_t channel_layout);
-
-/**
- * Return default channel layout for a given number of channels.
- */
-int64_t av_get_default_channel_layout(int nb_channels);
-
-/**
- * Get the index of a channel in channel_layout.
- *
- * @param channel a channel layout describing exactly one channel which must be
- * present in channel_layout.
- *
- * @return index of channel in channel_layout on success, a negative AVERROR
- * on error.
- */
-int av_get_channel_layout_channel_index(uint64_t channel_layout,
- uint64_t channel);
-
-/**
- * Get the channel with the given index in channel_layout.
- */
-uint64_t av_channel_layout_extract_channel(uint64_t channel_layout, int index);
-
-/**
- * Get the name of a given channel.
- *
- * @return channel name on success, NULL on error.
- */
-const char *av_get_channel_name(uint64_t channel);
-
-/**
- * Get the description of a given channel.
- *
- * @param channel a channel layout with a single channel
- * @return channel description on success, NULL on error
- */
-const char *av_get_channel_description(uint64_t channel);
-
-/**
- * Get the value and name of a standard channel layout.
- *
- * @param[in] index index in an internal list, starting at 0
- * @param[out] layout channel layout mask
- * @param[out] name name of the layout
- * @return 0 if the layout exists,
- * <0 if index is beyond the limits
- */
-int av_get_standard_channel_layout(unsigned index, uint64_t *layout,
- const char **name);
-
-/**
- * @}
- * @}
- */
-
-#endif /* AVUTIL_CHANNEL_LAYOUT_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/common.h b/src/main/jni/ffmpeg/include/libavutil/common.h
deleted file mode 100644
index 6f0f5827e..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/common.h
+++ /dev/null
@@ -1,519 +0,0 @@
-/*
- * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- *
- * 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
- * common internal and external API header
- */
-
-#ifndef AVUTIL_COMMON_H
-#define AVUTIL_COMMON_H
-
-#if defined(__cplusplus) && !defined(__STDC_CONSTANT_MACROS) && !defined(UINT64_C)
-#error missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS
-#endif
-
-#include <errno.h>
-#include <inttypes.h>
-#include <limits.h>
-#include <math.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "attributes.h"
-#include "version.h"
-#include "libavutil/avconfig.h"
-
-#if AV_HAVE_BIGENDIAN
-# define AV_NE(be, le) (be)
-#else
-# define AV_NE(be, le) (le)
-#endif
-
-//rounded division & shift
-#define RSHIFT(a,b) ((a) > 0 ? ((a) + ((1<<(b))>>1))>>(b) : ((a) + ((1<<(b))>>1)-1)>>(b))
-/* assume b>0 */
-#define ROUNDED_DIV(a,b) (((a)>0 ? (a) + ((b)>>1) : (a) - ((b)>>1))/(b))
-/* assume a>0 and b>0 */
-#define FF_CEIL_RSHIFT(a,b) (!av_builtin_constant_p(b) ? -((-(a)) >> (b)) \
- : ((a) + (1<<(b)) - 1) >> (b))
-#define FFUDIV(a,b) (((a)>0 ?(a):(a)-(b)+1) / (b))
-#define FFUMOD(a,b) ((a)-(b)*FFUDIV(a,b))
-
-/**
- * Absolute value, Note, INT_MIN / INT64_MIN result in undefined behavior as they
- * are not representable as absolute values of their type. This is the same
- * as with *abs()
- * @see FFNABS()
- */
-#define FFABS(a) ((a) >= 0 ? (a) : (-(a)))
-#define FFSIGN(a) ((a) > 0 ? 1 : -1)
-
-/**
- * Negative Absolute value.
- * this works for all integers of all types.
- * As with many macros, this evaluates its argument twice, it thus must not have
- * a sideeffect, that is FFNABS(x++) has undefined behavior.
- */
-#define FFNABS(a) ((a) <= 0 ? (a) : (-(a)))
-
-/**
- * Comparator.
- * For two numerical expressions x and y, gives 1 if x > y, -1 if x < y, and 0
- * if x == y. This is useful for instance in a qsort comparator callback.
- * Furthermore, compilers are able to optimize this to branchless code, and
- * there is no risk of overflow with signed types.
- * As with many macros, this evaluates its argument multiple times, it thus
- * must not have a side-effect.
- */
-#define FFDIFFSIGN(x,y) (((x)>(y)) - ((x)<(y)))
-
-#define FFMAX(a,b) ((a) > (b) ? (a) : (b))
-#define FFMAX3(a,b,c) FFMAX(FFMAX(a,b),c)
-#define FFMIN(a,b) ((a) > (b) ? (b) : (a))
-#define FFMIN3(a,b,c) FFMIN(FFMIN(a,b),c)
-
-#define FFSWAP(type,a,b) do{type SWAP_tmp= b; b= a; a= SWAP_tmp;}while(0)
-#define FF_ARRAY_ELEMS(a) (sizeof(a) / sizeof((a)[0]))
-#define FFALIGN(x, a) (((x)+(a)-1)&~((a)-1))
-
-/* misc math functions */
-
-#ifdef HAVE_AV_CONFIG_H
-# include "config.h"
-# include "intmath.h"
-#endif
-
-/* Pull in unguarded fallback defines at the end of this file. */
-#include "common.h"
-
-#ifndef av_log2
-av_const int av_log2(unsigned v);
-#endif
-
-#ifndef av_log2_16bit
-av_const int av_log2_16bit(unsigned v);
-#endif
-
-/**
- * Clip a signed integer value into the amin-amax range.
- * @param a value to clip
- * @param amin minimum value of the clip range
- * @param amax maximum value of the clip range
- * @return clipped value
- */
-static av_always_inline av_const int av_clip_c(int a, int amin, int amax)
-{
-#if defined(HAVE_AV_CONFIG_H) && defined(ASSERT_LEVEL) && ASSERT_LEVEL >= 2
- if (amin > amax) abort();
-#endif
- if (a < amin) return amin;
- else if (a > amax) return amax;
- else return a;
-}
-
-/**
- * Clip a signed 64bit integer value into the amin-amax range.
- * @param a value to clip
- * @param amin minimum value of the clip range
- * @param amax maximum value of the clip range
- * @return clipped value
- */
-static av_always_inline av_const int64_t av_clip64_c(int64_t a, int64_t amin, int64_t amax)
-{
-#if defined(HAVE_AV_CONFIG_H) && defined(ASSERT_LEVEL) && ASSERT_LEVEL >= 2
- if (amin > amax) abort();
-#endif
- if (a < amin) return amin;
- else if (a > amax) return amax;
- else return a;
-}
-
-/**
- * Clip a signed integer value into the 0-255 range.
- * @param a value to clip
- * @return clipped value
- */
-static av_always_inline av_const uint8_t av_clip_uint8_c(int a)
-{
- if (a&(~0xFF)) return (-a)>>31;
- else return a;
-}
-
-/**
- * Clip a signed integer value into the -128,127 range.
- * @param a value to clip
- * @return clipped value
- */
-static av_always_inline av_const int8_t av_clip_int8_c(int a)
-{
- if ((a+0x80U) & ~0xFF) return (a>>31) ^ 0x7F;
- else return a;
-}
-
-/**
- * Clip a signed integer value into the 0-65535 range.
- * @param a value to clip
- * @return clipped value
- */
-static av_always_inline av_const uint16_t av_clip_uint16_c(int a)
-{
- if (a&(~0xFFFF)) return (-a)>>31;
- else return a;
-}
-
-/**
- * Clip a signed integer value into the -32768,32767 range.
- * @param a value to clip
- * @return clipped value
- */
-static av_always_inline av_const int16_t av_clip_int16_c(int a)
-{
- if ((a+0x8000U) & ~0xFFFF) return (a>>31) ^ 0x7FFF;
- else return a;
-}
-
-/**
- * Clip a signed 64-bit integer value into the -2147483648,2147483647 range.
- * @param a value to clip
- * @return clipped value
- */
-static av_always_inline av_const int32_t av_clipl_int32_c(int64_t a)
-{
- if ((a+0x80000000u) & ~UINT64_C(0xFFFFFFFF)) return (int32_t)((a>>63) ^ 0x7FFFFFFF);
- else return (int32_t)a;
-}
-
-/**
- * Clip a signed integer into the -(2^p),(2^p-1) range.
- * @param a value to clip
- * @param p bit position to clip at
- * @return clipped value
- */
-static av_always_inline av_const int av_clip_intp2_c(int a, int p)
-{
- if ((a + (1 << p)) & ~((2 << p) - 1))
- return (a >> 31) ^ ((1 << p) - 1);
- else
- return a;
-}
-
-/**
- * Clip a signed integer to an unsigned power of two range.
- * @param a value to clip
- * @param p bit position to clip at
- * @return clipped value
- */
-static av_always_inline av_const unsigned av_clip_uintp2_c(int a, int p)
-{
- if (a & ~((1<<p) - 1)) return -a >> 31 & ((1<<p) - 1);
- else return a;
-}
-
-/**
- * Clear high bits from an unsigned integer starting with specific bit position
- * @param a value to clip
- * @param p bit position to clip at
- * @return clipped value
- */
-static av_always_inline av_const unsigned av_mod_uintp2_c(unsigned a, unsigned p)
-{
- return a & ((1 << p) - 1);
-}
-
-/**
- * Add two signed 32-bit values with saturation.
- *
- * @param a one value
- * @param b another value
- * @return sum with signed saturation
- */
-static av_always_inline int av_sat_add32_c(int a, int b)
-{
- return av_clipl_int32((int64_t)a + b);
-}
-
-/**
- * Add a doubled value to another value with saturation at both stages.
- *
- * @param a first value
- * @param b value doubled and added to a
- * @return sum with signed saturation
- */
-static av_always_inline int av_sat_dadd32_c(int a, int b)
-{
- return av_sat_add32(a, av_sat_add32(b, b));
-}
-
-/**
- * Clip a float value into the amin-amax range.
- * @param a value to clip
- * @param amin minimum value of the clip range
- * @param amax maximum value of the clip range
- * @return clipped value
- */
-static av_always_inline av_const float av_clipf_c(float a, float amin, float amax)
-{
-#if defined(HAVE_AV_CONFIG_H) && defined(ASSERT_LEVEL) && ASSERT_LEVEL >= 2
- if (amin > amax) abort();
-#endif
- if (a < amin) return amin;
- else if (a > amax) return amax;
- else return a;
-}
-
-/**
- * Clip a double value into the amin-amax range.
- * @param a value to clip
- * @param amin minimum value of the clip range
- * @param amax maximum value of the clip range
- * @return clipped value
- */
-static av_always_inline av_const double av_clipd_c(double a, double amin, double amax)
-{
-#if defined(HAVE_AV_CONFIG_H) && defined(ASSERT_LEVEL) && ASSERT_LEVEL >= 2
- if (amin > amax) abort();
-#endif
- if (a < amin) return amin;
- else if (a > amax) return amax;
- else return a;
-}
-
-/** Compute ceil(log2(x)).
- * @param x value used to compute ceil(log2(x))
- * @return computed ceiling of log2(x)
- */
-static av_always_inline av_const int av_ceil_log2_c(int x)
-{
- return av_log2((x - 1) << 1);
-}
-
-/**
- * Count number of bits set to one in x
- * @param x value to count bits of
- * @return the number of bits set to one in x
- */
-static av_always_inline av_const int av_popcount_c(uint32_t x)
-{
- x -= (x >> 1) & 0x55555555;
- x = (x & 0x33333333) + ((x >> 2) & 0x33333333);
- x = (x + (x >> 4)) & 0x0F0F0F0F;
- x += x >> 8;
- return (x + (x >> 16)) & 0x3F;
-}
-
-/**
- * Count number of bits set to one in x
- * @param x value to count bits of
- * @return the number of bits set to one in x
- */
-static av_always_inline av_const int av_popcount64_c(uint64_t x)
-{
- return av_popcount((uint32_t)x) + av_popcount((uint32_t)(x >> 32));
-}
-
-#define MKTAG(a,b,c,d) ((a) | ((b) << 8) | ((c) << 16) | ((unsigned)(d) << 24))
-#define MKBETAG(a,b,c,d) ((d) | ((c) << 8) | ((b) << 16) | ((unsigned)(a) << 24))
-
-/**
- * Convert a UTF-8 character (up to 4 bytes) to its 32-bit UCS-4 encoded form.
- *
- * @param val Output value, must be an lvalue of type uint32_t.
- * @param GET_BYTE Expression reading one byte from the input.
- * Evaluated up to 7 times (4 for the currently
- * assigned Unicode range). With a memory buffer
- * input, this could be *ptr++.
- * @param ERROR Expression to be evaluated on invalid input,
- * typically a goto statement.
- *
- * @warning ERROR should not contain a loop control statement which
- * could interact with the internal while loop, and should force an
- * exit from the macro code (e.g. through a goto or a return) in order
- * to prevent undefined results.
- */
-#define GET_UTF8(val, GET_BYTE, ERROR)\
- val= GET_BYTE;\
- {\
- uint32_t top = (val & 128) >> 1;\
- if ((val & 0xc0) == 0x80 || val >= 0xFE)\
- ERROR\
- while (val & top) {\
- int tmp= GET_BYTE - 128;\
- if(tmp>>6)\
- ERROR\
- val= (val<<6) + tmp;\
- top <<= 5;\
- }\
- val &= (top << 1) - 1;\
- }
-
-/**
- * Convert a UTF-16 character (2 or 4 bytes) to its 32-bit UCS-4 encoded form.
- *
- * @param val Output value, must be an lvalue of type uint32_t.
- * @param GET_16BIT Expression returning two bytes of UTF-16 data converted
- * to native byte order. Evaluated one or two times.
- * @param ERROR Expression to be evaluated on invalid input,
- * typically a goto statement.
- */
-#define GET_UTF16(val, GET_16BIT, ERROR)\
- val = GET_16BIT;\
- {\
- unsigned int hi = val - 0xD800;\
- if (hi < 0x800) {\
- val = GET_16BIT - 0xDC00;\
- if (val > 0x3FFU || hi > 0x3FFU)\
- ERROR\
- val += (hi<<10) + 0x10000;\
- }\
- }\
-
-/**
- * @def PUT_UTF8(val, tmp, PUT_BYTE)
- * Convert a 32-bit Unicode character to its UTF-8 encoded form (up to 4 bytes long).
- * @param val is an input-only argument and should be of type uint32_t. It holds
- * a UCS-4 encoded Unicode character that is to be converted to UTF-8. If
- * val is given as a function it is executed only once.
- * @param tmp is a temporary variable and should be of type uint8_t. It
- * represents an intermediate value during conversion that is to be
- * output by PUT_BYTE.
- * @param PUT_BYTE writes the converted UTF-8 bytes to any proper destination.
- * It could be a function or a statement, and uses tmp as the input byte.
- * For example, PUT_BYTE could be "*output++ = tmp;" PUT_BYTE will be
- * executed up to 4 times for values in the valid UTF-8 range and up to
- * 7 times in the general case, depending on the length of the converted
- * Unicode character.
- */
-#define PUT_UTF8(val, tmp, PUT_BYTE)\
- {\
- int bytes, shift;\
- uint32_t in = val;\
- if (in < 0x80) {\
- tmp = in;\
- PUT_BYTE\
- } else {\
- bytes = (av_log2(in) + 4) / 5;\
- shift = (bytes - 1) * 6;\
- tmp = (256 - (256 >> bytes)) | (in >> shift);\
- PUT_BYTE\
- while (shift >= 6) {\
- shift -= 6;\
- tmp = 0x80 | ((in >> shift) & 0x3f);\
- PUT_BYTE\
- }\
- }\
- }
-
-/**
- * @def PUT_UTF16(val, tmp, PUT_16BIT)
- * Convert a 32-bit Unicode character to its UTF-16 encoded form (2 or 4 bytes).
- * @param val is an input-only argument and should be of type uint32_t. It holds
- * a UCS-4 encoded Unicode character that is to be converted to UTF-16. If
- * val is given as a function it is executed only once.
- * @param tmp is a temporary variable and should be of type uint16_t. It
- * represents an intermediate value during conversion that is to be
- * output by PUT_16BIT.
- * @param PUT_16BIT writes the converted UTF-16 data to any proper destination
- * in desired endianness. It could be a function or a statement, and uses tmp
- * as the input byte. For example, PUT_BYTE could be "*output++ = tmp;"
- * PUT_BYTE will be executed 1 or 2 times depending on input character.
- */
-#define PUT_UTF16(val, tmp, PUT_16BIT)\
- {\
- uint32_t in = val;\
- if (in < 0x10000) {\
- tmp = in;\
- PUT_16BIT\
- } else {\
- tmp = 0xD800 | ((in - 0x10000) >> 10);\
- PUT_16BIT\
- tmp = 0xDC00 | ((in - 0x10000) & 0x3FF);\
- PUT_16BIT\
- }\
- }\
-
-
-
-#include "mem.h"
-
-#ifdef HAVE_AV_CONFIG_H
-# include "internal.h"
-#endif /* HAVE_AV_CONFIG_H */
-
-#endif /* AVUTIL_COMMON_H */
-
-/*
- * The following definitions are outside the multiple inclusion guard
- * to ensure they are immediately available in intmath.h.
- */
-
-#ifndef av_ceil_log2
-# define av_ceil_log2 av_ceil_log2_c
-#endif
-#ifndef av_clip
-# define av_clip av_clip_c
-#endif
-#ifndef av_clip64
-# define av_clip64 av_clip64_c
-#endif
-#ifndef av_clip_uint8
-# define av_clip_uint8 av_clip_uint8_c
-#endif
-#ifndef av_clip_int8
-# define av_clip_int8 av_clip_int8_c
-#endif
-#ifndef av_clip_uint16
-# define av_clip_uint16 av_clip_uint16_c
-#endif
-#ifndef av_clip_int16
-# define av_clip_int16 av_clip_int16_c
-#endif
-#ifndef av_clipl_int32
-# define av_clipl_int32 av_clipl_int32_c
-#endif
-#ifndef av_clip_intp2
-# define av_clip_intp2 av_clip_intp2_c
-#endif
-#ifndef av_clip_uintp2
-# define av_clip_uintp2 av_clip_uintp2_c
-#endif
-#ifndef av_mod_uintp2
-# define av_mod_uintp2 av_mod_uintp2_c
-#endif
-#ifndef av_sat_add32
-# define av_sat_add32 av_sat_add32_c
-#endif
-#ifndef av_sat_dadd32
-# define av_sat_dadd32 av_sat_dadd32_c
-#endif
-#ifndef av_clipf
-# define av_clipf av_clipf_c
-#endif
-#ifndef av_clipd
-# define av_clipd av_clipd_c
-#endif
-#ifndef av_popcount
-# define av_popcount av_popcount_c
-#endif
-#ifndef av_popcount64
-# define av_popcount64 av_popcount64_c
-#endif
diff --git a/src/main/jni/ffmpeg/include/libavutil/cpu.h b/src/main/jni/ffmpeg/include/libavutil/cpu.h
deleted file mode 100644
index bff8518cc..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/cpu.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (c) 2000, 2001, 2002 Fabrice Bellard
- *
- * 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 AVUTIL_CPU_H
-#define AVUTIL_CPU_H
-
-#include "attributes.h"
-
-#define AV_CPU_FLAG_FORCE 0x80000000 /* force usage of selected flags (OR) */
-
- /* lower 16 bits - CPU features */
-#define AV_CPU_FLAG_MMX 0x0001 ///< standard MMX
-#define AV_CPU_FLAG_MMXEXT 0x0002 ///< SSE integer functions or AMD MMX ext
-#define AV_CPU_FLAG_MMX2 0x0002 ///< SSE integer functions or AMD MMX ext
-#define AV_CPU_FLAG_3DNOW 0x0004 ///< AMD 3DNOW
-#define AV_CPU_FLAG_SSE 0x0008 ///< SSE functions
-#define AV_CPU_FLAG_SSE2 0x0010 ///< PIV SSE2 functions
-#define AV_CPU_FLAG_SSE2SLOW 0x40000000 ///< SSE2 supported, but usually not faster
- ///< than regular MMX/SSE (e.g. Core1)
-#define AV_CPU_FLAG_3DNOWEXT 0x0020 ///< AMD 3DNowExt
-#define AV_CPU_FLAG_SSE3 0x0040 ///< Prescott SSE3 functions
-#define AV_CPU_FLAG_SSE3SLOW 0x20000000 ///< SSE3 supported, but usually not faster
- ///< than regular MMX/SSE (e.g. Core1)
-#define AV_CPU_FLAG_SSSE3 0x0080 ///< Conroe SSSE3 functions
-#define AV_CPU_FLAG_ATOM 0x10000000 ///< Atom processor, some SSSE3 instructions are slower
-#define AV_CPU_FLAG_SSE4 0x0100 ///< Penryn SSE4.1 functions
-#define AV_CPU_FLAG_SSE42 0x0200 ///< Nehalem SSE4.2 functions
-#define AV_CPU_FLAG_AESNI 0x80000 ///< Advanced Encryption Standard functions
-#define AV_CPU_FLAG_AVX 0x4000 ///< AVX functions: requires OS support even if YMM registers aren't used
-#define AV_CPU_FLAG_AVXSLOW 0x8000000 ///< AVX supported, but slow when using YMM registers (e.g. Bulldozer)
-#define AV_CPU_FLAG_XOP 0x0400 ///< Bulldozer XOP functions
-#define AV_CPU_FLAG_FMA4 0x0800 ///< Bulldozer FMA4 functions
-#define AV_CPU_FLAG_CMOV 0x1000 ///< supports cmov instruction
-#define AV_CPU_FLAG_AVX2 0x8000 ///< AVX2 functions: requires OS support even if YMM registers aren't used
-#define AV_CPU_FLAG_FMA3 0x10000 ///< Haswell FMA3 functions
-#define AV_CPU_FLAG_BMI1 0x20000 ///< Bit Manipulation Instruction Set 1
-#define AV_CPU_FLAG_BMI2 0x40000 ///< Bit Manipulation Instruction Set 2
-
-#define AV_CPU_FLAG_ALTIVEC 0x0001 ///< standard
-#define AV_CPU_FLAG_VSX 0x0002 ///< ISA 2.06
-#define AV_CPU_FLAG_POWER8 0x0004 ///< ISA 2.07
-
-#define AV_CPU_FLAG_ARMV5TE (1 << 0)
-#define AV_CPU_FLAG_ARMV6 (1 << 1)
-#define AV_CPU_FLAG_ARMV6T2 (1 << 2)
-#define AV_CPU_FLAG_VFP (1 << 3)
-#define AV_CPU_FLAG_VFPV3 (1 << 4)
-#define AV_CPU_FLAG_NEON (1 << 5)
-#define AV_CPU_FLAG_ARMV8 (1 << 6)
-#define AV_CPU_FLAG_SETEND (1 <<16)
-
-/**
- * Return the flags which specify extensions supported by the CPU.
- * The returned value is affected by av_force_cpu_flags() if that was used
- * before. So av_get_cpu_flags() can easily be used in a application to
- * detect the enabled cpu flags.
- */
-int av_get_cpu_flags(void);
-
-/**
- * Disables cpu detection and forces the specified flags.
- * -1 is a special case that disables forcing of specific flags.
- */
-void av_force_cpu_flags(int flags);
-
-/**
- * Set a mask on flags returned by av_get_cpu_flags().
- * This function is mainly useful for testing.
- * Please use av_force_cpu_flags() and av_get_cpu_flags() instead which are more flexible
- *
- * @warning this function is not thread safe.
- */
-attribute_deprecated void av_set_cpu_flags_mask(int mask);
-
-/**
- * Parse CPU flags from a string.
- *
- * The returned flags contain the specified flags as well as related unspecified flags.
- *
- * This function exists only for compatibility with libav.
- * Please use av_parse_cpu_caps() when possible.
- * @return a combination of AV_CPU_* flags, negative on error.
- */
-attribute_deprecated
-int av_parse_cpu_flags(const char *s);
-
-/**
- * Parse CPU caps from a string and update the given AV_CPU_* flags based on that.
- *
- * @return negative on error.
- */
-int av_parse_cpu_caps(unsigned *flags, const char *s);
-
-/**
- * @return the number of logical CPU cores present.
- */
-int av_cpu_count(void);
-
-#endif /* AVUTIL_CPU_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/crc.h b/src/main/jni/ffmpeg/include/libavutil/crc.h
deleted file mode 100644
index ef8a7137e..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/crc.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- *
- * 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 AVUTIL_CRC_H
-#define AVUTIL_CRC_H
-
-#include <stdint.h>
-#include <stddef.h>
-#include "attributes.h"
-#include "version.h"
-
-/**
- * @defgroup lavu_crc32 CRC32
- * @ingroup lavu_crypto
- * @{
- */
-
-typedef uint32_t AVCRC;
-
-typedef enum {
- AV_CRC_8_ATM,
- AV_CRC_16_ANSI,
- AV_CRC_16_CCITT,
- AV_CRC_32_IEEE,
- AV_CRC_32_IEEE_LE, /*< reversed bitorder version of AV_CRC_32_IEEE */
- AV_CRC_16_ANSI_LE, /*< reversed bitorder version of AV_CRC_16_ANSI */
-#if FF_API_CRC_BIG_TABLE
- AV_CRC_24_IEEE = 12,
-#else
- AV_CRC_24_IEEE,
-#endif /* FF_API_CRC_BIG_TABLE */
- AV_CRC_MAX, /*< Not part of public API! Do not use outside libavutil. */
-}AVCRCId;
-
-/**
- * Initialize a CRC table.
- * @param ctx must be an array of size sizeof(AVCRC)*257 or sizeof(AVCRC)*1024
- * @param le If 1, the lowest bit represents the coefficient for the highest
- * exponent of the corresponding polynomial (both for poly and
- * actual CRC).
- * If 0, you must swap the CRC parameter and the result of av_crc
- * if you need the standard representation (can be simplified in
- * most cases to e.g. bswap16):
- * av_bswap32(crc << (32-bits))
- * @param bits number of bits for the CRC
- * @param poly generator polynomial without the x**bits coefficient, in the
- * representation as specified by le
- * @param ctx_size size of ctx in bytes
- * @return <0 on failure
- */
-int av_crc_init(AVCRC *ctx, int le, int bits, uint32_t poly, int ctx_size);
-
-/**
- * Get an initialized standard CRC table.
- * @param crc_id ID of a standard CRC
- * @return a pointer to the CRC table or NULL on failure
- */
-const AVCRC *av_crc_get_table(AVCRCId crc_id);
-
-/**
- * Calculate the CRC of a block.
- * @param crc CRC of previous blocks if any or initial value for CRC
- * @return CRC updated with the data from the given block
- *
- * @see av_crc_init() "le" parameter
- */
-uint32_t av_crc(const AVCRC *ctx, uint32_t crc,
- const uint8_t *buffer, size_t length) av_pure;
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_CRC_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/des.h b/src/main/jni/ffmpeg/include/libavutil/des.h
deleted file mode 100644
index 4cf11f5bc..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/des.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * DES encryption/decryption
- * Copyright (c) 2007 Reimar Doeffinger
- *
- * 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 AVUTIL_DES_H
-#define AVUTIL_DES_H
-
-#include <stdint.h>
-
-/**
- * @defgroup lavu_des DES
- * @ingroup lavu_crypto
- * @{
- */
-
-typedef struct AVDES {
- uint64_t round_keys[3][16];
- int triple_des;
-} AVDES;
-
-/**
- * Allocate an AVDES context.
- */
-AVDES *av_des_alloc(void);
-
-/**
- * @brief Initializes an AVDES context.
- *
- * @param key_bits must be 64 or 192
- * @param decrypt 0 for encryption/CBC-MAC, 1 for decryption
- * @return zero on success, negative value otherwise
- */
-int av_des_init(struct AVDES *d, const uint8_t *key, int key_bits, int decrypt);
-
-/**
- * @brief Encrypts / decrypts using the DES algorithm.
- *
- * @param count number of 8 byte blocks
- * @param dst destination array, can be equal to src, must be 8-byte aligned
- * @param src source array, can be equal to dst, must be 8-byte aligned, may be NULL
- * @param iv initialization vector for CBC mode, if NULL then ECB will be used,
- * must be 8-byte aligned
- * @param decrypt 0 for encryption, 1 for decryption
- */
-void av_des_crypt(struct AVDES *d, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt);
-
-/**
- * @brief Calculates CBC-MAC using the DES algorithm.
- *
- * @param count number of 8 byte blocks
- * @param dst destination array, can be equal to src, must be 8-byte aligned
- * @param src source array, can be equal to dst, must be 8-byte aligned, may be NULL
- */
-void av_des_mac(struct AVDES *d, uint8_t *dst, const uint8_t *src, int count);
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_DES_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/dict.h b/src/main/jni/ffmpeg/include/libavutil/dict.h
deleted file mode 100644
index 5b8d00339..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/dict.h
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- *
- * 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
- * Public dictionary API.
- * @deprecated
- * AVDictionary is provided for compatibility with libav. It is both in
- * implementation as well as API inefficient. It does not scale and is
- * extremely slow with large dictionaries.
- * It is recommended that new code uses our tree container from tree.c/h
- * where applicable, which uses AVL trees to achieve O(log n) performance.
- */
-
-#ifndef AVUTIL_DICT_H
-#define AVUTIL_DICT_H
-
-#include <stdint.h>
-
-#include "version.h"
-
-/**
- * @addtogroup lavu_dict AVDictionary
- * @ingroup lavu_data
- *
- * @brief Simple key:value store
- *
- * @{
- * Dictionaries are used for storing key:value pairs. To create
- * an AVDictionary, simply pass an address of a NULL pointer to
- * av_dict_set(). NULL can be used as an empty dictionary wherever
- * a pointer to an AVDictionary is required.
- * Use av_dict_get() to retrieve an entry or iterate over all
- * entries and finally av_dict_free() to free the dictionary
- * and all its contents.
- *
- @code
- AVDictionary *d = NULL; // "create" an empty dictionary
- AVDictionaryEntry *t = NULL;
-
- av_dict_set(&d, "foo", "bar", 0); // add an entry
-
- char *k = av_strdup("key"); // if your strings are already allocated,
- char *v = av_strdup("value"); // you can avoid copying them like this
- av_dict_set(&d, k, v, AV_DICT_DONT_STRDUP_KEY | AV_DICT_DONT_STRDUP_VAL);
-
- while (t = av_dict_get(d, "", t, AV_DICT_IGNORE_SUFFIX)) {
- <....> // iterate over all entries in d
- }
- av_dict_free(&d);
- @endcode
- *
- */
-
-#define AV_DICT_MATCH_CASE 1 /**< Only get an entry with exact-case key match. Only relevant in av_dict_get(). */
-#define AV_DICT_IGNORE_SUFFIX 2 /**< Return first entry in a dictionary whose first part corresponds to the search key,
- ignoring the suffix of the found key string. Only relevant in av_dict_get(). */
-#define AV_DICT_DONT_STRDUP_KEY 4 /**< Take ownership of a key that's been
- allocated with av_malloc() or another memory allocation function. */
-#define AV_DICT_DONT_STRDUP_VAL 8 /**< Take ownership of a value that's been
- allocated with av_malloc() or another memory allocation function. */
-#define AV_DICT_DONT_OVERWRITE 16 ///< Don't overwrite existing entries.
-#define AV_DICT_APPEND 32 /**< If the entry already exists, append to it. Note that no
- delimiter is added, the strings are simply concatenated. */
-
-typedef struct AVDictionaryEntry {
- char *key;
- char *value;
-} AVDictionaryEntry;
-
-typedef struct AVDictionary AVDictionary;
-
-/**
- * Get a dictionary entry with matching key.
- *
- * The returned entry key or value must not be changed, or it will
- * cause undefined behavior.
- *
- * To iterate through all the dictionary entries, you can set the matching key
- * to the null string "" and set the AV_DICT_IGNORE_SUFFIX flag.
- *
- * @param prev Set to the previous matching element to find the next.
- * If set to NULL the first matching element is returned.
- * @param key matching key
- * @param flags a collection of AV_DICT_* flags controlling how the entry is retrieved
- * @return found entry or NULL in case no matching entry was found in the dictionary
- */
-AVDictionaryEntry *av_dict_get(const AVDictionary *m, const char *key,
- const AVDictionaryEntry *prev, int flags);
-
-/**
- * Get number of entries in dictionary.
- *
- * @param m dictionary
- * @return number of entries in dictionary
- */
-int av_dict_count(const AVDictionary *m);
-
-/**
- * Set the given entry in *pm, overwriting an existing entry.
- *
- * Note: If AV_DICT_DONT_STRDUP_KEY or AV_DICT_DONT_STRDUP_VAL is set,
- * these arguments will be freed on error.
- *
- * @param pm pointer to a pointer to a dictionary struct. If *pm is NULL
- * a dictionary struct is allocated and put in *pm.
- * @param key entry key to add to *pm (will be av_strduped depending on flags)
- * @param value entry value to add to *pm (will be av_strduped depending on flags).
- * Passing a NULL value will cause an existing entry to be deleted.
- * @return >= 0 on success otherwise an error code <0
- */
-int av_dict_set(AVDictionary **pm, const char *key, const char *value, int flags);
-
-/**
- * Convenience wrapper for av_dict_set that converts the value to a string
- * and stores it.
- *
- * Note: If AV_DICT_DONT_STRDUP_KEY is set, key will be freed on error.
- */
-int av_dict_set_int(AVDictionary **pm, const char *key, int64_t value, int flags);
-
-/**
- * Parse the key/value pairs list and add the parsed entries to a dictionary.
- *
- * In case of failure, all the successfully set entries are stored in
- * *pm. You may need to manually free the created dictionary.
- *
- * @param key_val_sep a 0-terminated list of characters used to separate
- * key from value
- * @param pairs_sep a 0-terminated list of characters used to separate
- * two pairs from each other
- * @param flags flags to use when adding to dictionary.
- * AV_DICT_DONT_STRDUP_KEY and AV_DICT_DONT_STRDUP_VAL
- * are ignored since the key/value tokens will always
- * be duplicated.
- * @return 0 on success, negative AVERROR code on failure
- */
-int av_dict_parse_string(AVDictionary **pm, const char *str,
- const char *key_val_sep, const char *pairs_sep,
- int flags);
-
-/**
- * Copy entries from one AVDictionary struct into another.
- * @param dst pointer to a pointer to a AVDictionary struct. If *dst is NULL,
- * this function will allocate a struct for you and put it in *dst
- * @param src pointer to source AVDictionary struct
- * @param flags flags to use when setting entries in *dst
- * @note metadata is read using the AV_DICT_IGNORE_SUFFIX flag
- * @return 0 on success, negative AVERROR code on failure. If dst was allocated
- * by this function, callers should free the associated memory.
- */
-int av_dict_copy(AVDictionary **dst, const AVDictionary *src, int flags);
-
-/**
- * Free all the memory allocated for an AVDictionary struct
- * and all keys and values.
- */
-void av_dict_free(AVDictionary **m);
-
-/**
- * Get dictionary entries as a string.
- *
- * Create a string containing dictionary's entries.
- * Such string may be passed back to av_dict_parse_string().
- * @note String is escaped with backslashes ('\').
- *
- * @param[in] m dictionary
- * @param[out] buffer Pointer to buffer that will be allocated with string containg entries.
- * Buffer must be freed by the caller when is no longer needed.
- * @param[in] key_val_sep character used to separate key from value
- * @param[in] pairs_sep character used to separate two pairs from each other
- * @return >= 0 on success, negative on error
- * @warning Separators cannot be neither '\\' nor '\0'. They also cannot be the same.
- */
-int av_dict_get_string(const AVDictionary *m, char **buffer,
- const char key_val_sep, const char pairs_sep);
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_DICT_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/display.h b/src/main/jni/ffmpeg/include/libavutil/display.h
deleted file mode 100644
index c0cfee326..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/display.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 2014 Vittorio Giovara <vittorio.giovara@gmail.com>
- *
- * 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 AVUTIL_DISPLAY_H
-#define AVUTIL_DISPLAY_H
-
-#include <stdint.h>
-
-/**
- * The display transformation matrix specifies an affine transformation that
- * should be applied to video frames for correct presentation. It is compatible
- * with the matrices stored in the ISO/IEC 14496-12 container format.
- *
- * The data is a 3x3 matrix represented as a 9-element array:
- *
- * | a b u |
- * (a, b, u, c, d, v, x, y, w) -> | c d v |
- * | x y w |
- *
- * All numbers are stored in native endianness, as 16.16 fixed-point values,
- * except for u, v and w, which are stored as 2.30 fixed-point values.
- *
- * The transformation maps a point (p, q) in the source (pre-transformation)
- * frame to the point (p', q') in the destination (post-transformation) frame as
- * follows:
- * | a b u |
- * (p, q, 1) . | c d v | = z * (p', q', 1)
- * | x y w |
- *
- * The transformation can also be more explicitly written in components as
- * follows:
- * p' = (a * p + c * q + x) / z;
- * q' = (b * p + d * q + y) / z;
- * z = u * p + v * q + w
- */
-
-/**
- * Extract the rotation component of the transformation matrix.
- *
- * @param matrix the transformation matrix
- * @return the angle (in degrees) by which the transformation rotates the frame
- * counterclockwise. The angle will be in range [-180.0, 180.0],
- * or NaN if the matrix is singular.
- *
- * @note floating point numbers are inherently inexact, so callers are
- * recommended to round the return value to nearest integer before use.
- */
-double av_display_rotation_get(const int32_t matrix[9]);
-
-/**
- * Initialize a transformation matrix describing a pure counterclockwise
- * rotation by the specified angle (in degrees).
- *
- * @param matrix an allocated transformation matrix (will be fully overwritten
- * by this function)
- * @param angle rotation angle in degrees.
- */
-void av_display_rotation_set(int32_t matrix[9], double angle);
-
-/**
- * Flip the input matrix horizontally and/or vertically.
- *
- * @param matrix an allocated transformation matrix
- * @param hflip whether the matrix should be flipped horizontally
- * @param vflip whether the matrix should be flipped vertically
- */
-void av_display_matrix_flip(int32_t matrix[9], int hflip, int vflip);
-
-#endif /* AVUTIL_DISPLAY_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/downmix_info.h b/src/main/jni/ffmpeg/include/libavutil/downmix_info.h
deleted file mode 100644
index 221cf5bf9..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/downmix_info.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (c) 2014 Tim Walker <tdskywalker@gmail.com>
- *
- * 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 AVUTIL_DOWNMIX_INFO_H
-#define AVUTIL_DOWNMIX_INFO_H
-
-#include "frame.h"
-
-/**
- * @file
- * audio downmix medatata
- */
-
-/**
- * @addtogroup lavu_audio
- * @{
- */
-
-/**
- * @defgroup downmix_info Audio downmix metadata
- * @{
- */
-
-/**
- * Possible downmix types.
- */
-enum AVDownmixType {
- AV_DOWNMIX_TYPE_UNKNOWN, /**< Not indicated. */
- AV_DOWNMIX_TYPE_LORO, /**< Lo/Ro 2-channel downmix (Stereo). */
- AV_DOWNMIX_TYPE_LTRT, /**< Lt/Rt 2-channel downmix, Dolby Surround compatible. */
- AV_DOWNMIX_TYPE_DPLII, /**< Lt/Rt 2-channel downmix, Dolby Pro Logic II compatible. */
- AV_DOWNMIX_TYPE_NB /**< Number of downmix types. Not part of ABI. */
-};
-
-/**
- * This structure describes optional metadata relevant to a downmix procedure.
- *
- * All fields are set by the decoder to the value indicated in the audio
- * bitstream (if present), or to a "sane" default otherwise.
- */
-typedef struct AVDownmixInfo {
- /**
- * Type of downmix preferred by the mastering engineer.
- */
- enum AVDownmixType preferred_downmix_type;
-
- /**
- * Absolute scale factor representing the nominal level of the center
- * channel during a regular downmix.
- */
- double center_mix_level;
-
- /**
- * Absolute scale factor representing the nominal level of the center
- * channel during an Lt/Rt compatible downmix.
- */
- double center_mix_level_ltrt;
-
- /**
- * Absolute scale factor representing the nominal level of the surround
- * channels during a regular downmix.
- */
- double surround_mix_level;
-
- /**
- * Absolute scale factor representing the nominal level of the surround
- * channels during an Lt/Rt compatible downmix.
- */
- double surround_mix_level_ltrt;
-
- /**
- * Absolute scale factor representing the level at which the LFE data is
- * mixed into L/R channels during downmixing.
- */
- double lfe_mix_level;
-} AVDownmixInfo;
-
-/**
- * Get a frame's AV_FRAME_DATA_DOWNMIX_INFO side data for editing.
- *
- * If the side data is absent, it is created and added to the frame.
- *
- * @param frame the frame for which the side data is to be obtained or created
- *
- * @return the AVDownmixInfo structure to be edited by the caller, or NULL if
- * the structure cannot be allocated.
- */
-AVDownmixInfo *av_downmix_info_update_side_data(AVFrame *frame);
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_DOWNMIX_INFO_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/error.h b/src/main/jni/ffmpeg/include/libavutil/error.h
deleted file mode 100644
index 71df4da35..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/error.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * 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
- * error code definitions
- */
-
-#ifndef AVUTIL_ERROR_H
-#define AVUTIL_ERROR_H
-
-#include <errno.h>
-#include <stddef.h>
-
-/**
- * @addtogroup lavu_error
- *
- * @{
- */
-
-
-/* error handling */
-#if EDOM > 0
-#define AVERROR(e) (-(e)) ///< Returns a negative error code from a POSIX error code, to return from library functions.
-#define AVUNERROR(e) (-(e)) ///< Returns a POSIX error code from a library function error return value.
-#else
-/* Some platforms have E* and errno already negated. */
-#define AVERROR(e) (e)
-#define AVUNERROR(e) (e)
-#endif
-
-#define FFERRTAG(a, b, c, d) (-(int)MKTAG(a, b, c, d))
-
-#define AVERROR_BSF_NOT_FOUND FFERRTAG(0xF8,'B','S','F') ///< Bitstream filter not found
-#define AVERROR_BUG FFERRTAG( 'B','U','G','!') ///< Internal bug, also see AVERROR_BUG2
-#define AVERROR_BUFFER_TOO_SMALL FFERRTAG( 'B','U','F','S') ///< Buffer too small
-#define AVERROR_DECODER_NOT_FOUND FFERRTAG(0xF8,'D','E','C') ///< Decoder not found
-#define AVERROR_DEMUXER_NOT_FOUND FFERRTAG(0xF8,'D','E','M') ///< Demuxer not found
-#define AVERROR_ENCODER_NOT_FOUND FFERRTAG(0xF8,'E','N','C') ///< Encoder not found
-#define AVERROR_EOF FFERRTAG( 'E','O','F',' ') ///< End of file
-#define AVERROR_EXIT FFERRTAG( 'E','X','I','T') ///< Immediate exit was requested; the called function should not be restarted
-#define AVERROR_EXTERNAL FFERRTAG( 'E','X','T',' ') ///< Generic error in an external library
-#define AVERROR_FILTER_NOT_FOUND FFERRTAG(0xF8,'F','I','L') ///< Filter not found
-#define AVERROR_INVALIDDATA FFERRTAG( 'I','N','D','A') ///< Invalid data found when processing input
-#define AVERROR_MUXER_NOT_FOUND FFERRTAG(0xF8,'M','U','X') ///< Muxer not found
-#define AVERROR_OPTION_NOT_FOUND FFERRTAG(0xF8,'O','P','T') ///< Option not found
-#define AVERROR_PATCHWELCOME FFERRTAG( 'P','A','W','E') ///< Not yet implemented in FFmpeg, patches welcome
-#define AVERROR_PROTOCOL_NOT_FOUND FFERRTAG(0xF8,'P','R','O') ///< Protocol not found
-
-#define AVERROR_STREAM_NOT_FOUND FFERRTAG(0xF8,'S','T','R') ///< Stream not found
-/**
- * This is semantically identical to AVERROR_BUG
- * it has been introduced in Libav after our AVERROR_BUG and with a modified value.
- */
-#define AVERROR_BUG2 FFERRTAG( 'B','U','G',' ')
-#define AVERROR_UNKNOWN FFERRTAG( 'U','N','K','N') ///< Unknown error, typically from an external library
-#define AVERROR_EXPERIMENTAL (-0x2bb2afa8) ///< Requested feature is flagged experimental. Set strict_std_compliance if you really want to use it.
-#define AVERROR_INPUT_CHANGED (-0x636e6701) ///< Input changed between calls. Reconfiguration is required. (can be OR-ed with AVERROR_OUTPUT_CHANGED)
-#define AVERROR_OUTPUT_CHANGED (-0x636e6702) ///< Output changed between calls. Reconfiguration is required. (can be OR-ed with AVERROR_INPUT_CHANGED)
-/* HTTP & RTSP errors */
-#define AVERROR_HTTP_BAD_REQUEST FFERRTAG(0xF8,'4','0','0')
-#define AVERROR_HTTP_UNAUTHORIZED FFERRTAG(0xF8,'4','0','1')
-#define AVERROR_HTTP_FORBIDDEN FFERRTAG(0xF8,'4','0','3')
-#define AVERROR_HTTP_NOT_FOUND FFERRTAG(0xF8,'4','0','4')
-#define AVERROR_HTTP_OTHER_4XX FFERRTAG(0xF8,'4','X','X')
-#define AVERROR_HTTP_SERVER_ERROR FFERRTAG(0xF8,'5','X','X')
-
-#define AV_ERROR_MAX_STRING_SIZE 64
-
-/**
- * Put a description of the AVERROR code errnum in errbuf.
- * In case of failure the global variable errno is set to indicate the
- * error. Even in case of failure av_strerror() will print a generic
- * error message indicating the errnum provided to errbuf.
- *
- * @param errnum error code to describe
- * @param errbuf buffer to which description is written
- * @param errbuf_size the size in bytes of errbuf
- * @return 0 on success, a negative value if a description for errnum
- * cannot be found
- */
-int av_strerror(int errnum, char *errbuf, size_t errbuf_size);
-
-/**
- * Fill the provided buffer with a string containing an error string
- * corresponding to the AVERROR code errnum.
- *
- * @param errbuf a buffer
- * @param errbuf_size size in bytes of errbuf
- * @param errnum error code to describe
- * @return the buffer in input, filled with the error description
- * @see av_strerror()
- */
-static inline char *av_make_error_string(char *errbuf, size_t errbuf_size, int errnum)
-{
- av_strerror(errnum, errbuf, errbuf_size);
- return errbuf;
-}
-
-/**
- * Convenience macro, the return value should be used only directly in
- * function arguments but never stand-alone.
- */
-#define av_err2str(errnum) \
- av_make_error_string((char[AV_ERROR_MAX_STRING_SIZE]){0}, AV_ERROR_MAX_STRING_SIZE, errnum)
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_ERROR_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/eval.h b/src/main/jni/ffmpeg/include/libavutil/eval.h
deleted file mode 100644
index dacd22b96..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/eval.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (c) 2002 Michael Niedermayer <michaelni@gmx.at>
- *
- * 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
- * simple arithmetic expression evaluator
- */
-
-#ifndef AVUTIL_EVAL_H
-#define AVUTIL_EVAL_H
-
-#include "avutil.h"
-
-typedef struct AVExpr AVExpr;
-
-/**
- * Parse and evaluate an expression.
- * Note, this is significantly slower than av_expr_eval().
- *
- * @param res a pointer to a double where is put the result value of
- * the expression, or NAN in case of error
- * @param s expression as a zero terminated string, for example "1+2^3+5*5+sin(2/3)"
- * @param const_names NULL terminated array of zero terminated strings of constant identifiers, for example {"PI", "E", 0}
- * @param const_values a zero terminated array of values for the identifiers from const_names
- * @param func1_names NULL terminated array of zero terminated strings of funcs1 identifiers
- * @param funcs1 NULL terminated array of function pointers for functions which take 1 argument
- * @param func2_names NULL terminated array of zero terminated strings of funcs2 identifiers
- * @param funcs2 NULL terminated array of function pointers for functions which take 2 arguments
- * @param opaque a pointer which will be passed to all functions from funcs1 and funcs2
- * @param log_ctx parent logging context
- * @return >= 0 in case of success, a negative value corresponding to an
- * AVERROR code otherwise
- */
-int av_expr_parse_and_eval(double *res, const char *s,
- const char * const *const_names, const double *const_values,
- const char * const *func1_names, double (* const *funcs1)(void *, double),
- const char * const *func2_names, double (* const *funcs2)(void *, double, double),
- void *opaque, int log_offset, void *log_ctx);
-
-/**
- * Parse an expression.
- *
- * @param expr a pointer where is put an AVExpr containing the parsed
- * value in case of successful parsing, or NULL otherwise.
- * The pointed to AVExpr must be freed with av_expr_free() by the user
- * when it is not needed anymore.
- * @param s expression as a zero terminated string, for example "1+2^3+5*5+sin(2/3)"
- * @param const_names NULL terminated array of zero terminated strings of constant identifiers, for example {"PI", "E", 0}
- * @param func1_names NULL terminated array of zero terminated strings of funcs1 identifiers
- * @param funcs1 NULL terminated array of function pointers for functions which take 1 argument
- * @param func2_names NULL terminated array of zero terminated strings of funcs2 identifiers
- * @param funcs2 NULL terminated array of function pointers for functions which take 2 arguments
- * @param log_ctx parent logging context
- * @return >= 0 in case of success, a negative value corresponding to an
- * AVERROR code otherwise
- */
-int av_expr_parse(AVExpr **expr, const char *s,
- const char * const *const_names,
- const char * const *func1_names, double (* const *funcs1)(void *, double),
- const char * const *func2_names, double (* const *funcs2)(void *, double, double),
- int log_offset, void *log_ctx);
-
-/**
- * Evaluate a previously parsed expression.
- *
- * @param const_values a zero terminated array of values for the identifiers from av_expr_parse() const_names
- * @param opaque a pointer which will be passed to all functions from funcs1 and funcs2
- * @return the value of the expression
- */
-double av_expr_eval(AVExpr *e, const double *const_values, void *opaque);
-
-/**
- * Free a parsed expression previously created with av_expr_parse().
- */
-void av_expr_free(AVExpr *e);
-
-/**
- * Parse the string in numstr and return its value as a double. If
- * the string is empty, contains only whitespaces, or does not contain
- * an initial substring that has the expected syntax for a
- * floating-point number, no conversion is performed. In this case,
- * returns a value of zero and the value returned in tail is the value
- * of numstr.
- *
- * @param numstr a string representing a number, may contain one of
- * the International System number postfixes, for example 'K', 'M',
- * 'G'. If 'i' is appended after the postfix, powers of 2 are used
- * instead of powers of 10. The 'B' postfix multiplies the value by
- * 8, and can be appended after another postfix or used alone. This
- * allows using for example 'KB', 'MiB', 'G' and 'B' as postfix.
- * @param tail if non-NULL puts here the pointer to the char next
- * after the last parsed character
- */
-double av_strtod(const char *numstr, char **tail);
-
-#endif /* AVUTIL_EVAL_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/ffversion.h b/src/main/jni/ffmpeg/include/libavutil/ffversion.h
deleted file mode 100644
index e84489812..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/ffversion.h
+++ /dev/null
@@ -1,5 +0,0 @@
-/* Automatically generated by version.sh, do not manually edit! */
-#ifndef AVUTIL_FFVERSION_H
-#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "2.8.git"
-#endif /* AVUTIL_FFVERSION_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/fifo.h b/src/main/jni/ffmpeg/include/libavutil/fifo.h
deleted file mode 100644
index dc7bc6f0d..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/fifo.h
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * 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 very simple circular buffer FIFO implementation
- */
-
-#ifndef AVUTIL_FIFO_H
-#define AVUTIL_FIFO_H
-
-#include <stdint.h>
-#include "avutil.h"
-#include "attributes.h"
-
-typedef struct AVFifoBuffer {
- uint8_t *buffer;
- uint8_t *rptr, *wptr, *end;
- uint32_t rndx, wndx;
-} AVFifoBuffer;
-
-/**
- * Initialize an AVFifoBuffer.
- * @param size of FIFO
- * @return AVFifoBuffer or NULL in case of memory allocation failure
- */
-AVFifoBuffer *av_fifo_alloc(unsigned int size);
-
-/**
- * Initialize an AVFifoBuffer.
- * @param nmemb number of elements
- * @param size size of the single element
- * @return AVFifoBuffer or NULL in case of memory allocation failure
- */
-AVFifoBuffer *av_fifo_alloc_array(size_t nmemb, size_t size);
-
-/**
- * Free an AVFifoBuffer.
- * @param f AVFifoBuffer to free
- */
-void av_fifo_free(AVFifoBuffer *f);
-
-/**
- * Free an AVFifoBuffer and reset pointer to NULL.
- * @param f AVFifoBuffer to free
- */
-void av_fifo_freep(AVFifoBuffer **f);
-
-/**
- * Reset the AVFifoBuffer to the state right after av_fifo_alloc, in particular it is emptied.
- * @param f AVFifoBuffer to reset
- */
-void av_fifo_reset(AVFifoBuffer *f);
-
-/**
- * Return the amount of data in bytes in the AVFifoBuffer, that is the
- * amount of data you can read from it.
- * @param f AVFifoBuffer to read from
- * @return size
- */
-int av_fifo_size(const AVFifoBuffer *f);
-
-/**
- * Return the amount of space in bytes in the AVFifoBuffer, that is the
- * amount of data you can write into it.
- * @param f AVFifoBuffer to write into
- * @return size
- */
-int av_fifo_space(const AVFifoBuffer *f);
-
-/**
- * Feed data at specific position from an AVFifoBuffer to a user-supplied callback.
- * Similar as av_fifo_gereric_read but without discarding data.
- * @param f AVFifoBuffer to read from
- * @param offset offset from current read position
- * @param buf_size number of bytes to read
- * @param func generic read function
- * @param dest data destination
- */
-int av_fifo_generic_peek_at(AVFifoBuffer *f, void *dest, int offset, int buf_size, void (*func)(void*, void*, int));
-
-/**
- * Feed data from an AVFifoBuffer to a user-supplied callback.
- * Similar as av_fifo_gereric_read but without discarding data.
- * @param f AVFifoBuffer to read from
- * @param buf_size number of bytes to read
- * @param func generic read function
- * @param dest data destination
- */
-int av_fifo_generic_peek(AVFifoBuffer *f, void *dest, int buf_size, void (*func)(void*, void*, int));
-
-/**
- * Feed data from an AVFifoBuffer to a user-supplied callback.
- * @param f AVFifoBuffer to read from
- * @param buf_size number of bytes to read
- * @param func generic read function
- * @param dest data destination
- */
-int av_fifo_generic_read(AVFifoBuffer *f, void *dest, int buf_size, void (*func)(void*, void*, int));
-
-/**
- * Feed data from a user-supplied callback to an AVFifoBuffer.
- * @param f AVFifoBuffer to write to
- * @param src data source; non-const since it may be used as a
- * modifiable context by the function defined in func
- * @param size number of bytes to write
- * @param func generic write function; the first parameter is src,
- * the second is dest_buf, the third is dest_buf_size.
- * func must return the number of bytes written to dest_buf, or <= 0 to
- * indicate no more data available to write.
- * If func is NULL, src is interpreted as a simple byte array for source data.
- * @return the number of bytes written to the FIFO
- */
-int av_fifo_generic_write(AVFifoBuffer *f, void *src, int size, int (*func)(void*, void*, int));
-
-/**
- * Resize an AVFifoBuffer.
- * In case of reallocation failure, the old FIFO is kept unchanged.
- *
- * @param f AVFifoBuffer to resize
- * @param size new AVFifoBuffer size in bytes
- * @return <0 for failure, >=0 otherwise
- */
-int av_fifo_realloc2(AVFifoBuffer *f, unsigned int size);
-
-/**
- * Enlarge an AVFifoBuffer.
- * In case of reallocation failure, the old FIFO is kept unchanged.
- * The new fifo size may be larger than the requested size.
- *
- * @param f AVFifoBuffer to resize
- * @param additional_space the amount of space in bytes to allocate in addition to av_fifo_size()
- * @return <0 for failure, >=0 otherwise
- */
-int av_fifo_grow(AVFifoBuffer *f, unsigned int additional_space);
-
-/**
- * Read and discard the specified amount of data from an AVFifoBuffer.
- * @param f AVFifoBuffer to read from
- * @param size amount of data to read in bytes
- */
-void av_fifo_drain(AVFifoBuffer *f, int size);
-
-/**
- * Return a pointer to the data stored in a FIFO buffer at a certain offset.
- * The FIFO buffer is not modified.
- *
- * @param f AVFifoBuffer to peek at, f must be non-NULL
- * @param offs an offset in bytes, its absolute value must be less
- * than the used buffer size or the returned pointer will
- * point outside to the buffer data.
- * The used buffer size can be checked with av_fifo_size().
- */
-static inline uint8_t *av_fifo_peek2(const AVFifoBuffer *f, int offs)
-{
- uint8_t *ptr = f->rptr + offs;
- if (ptr >= f->end)
- ptr = f->buffer + (ptr - f->end);
- else if (ptr < f->buffer)
- ptr = f->end - (f->buffer - ptr);
- return ptr;
-}
-
-#endif /* AVUTIL_FIFO_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/file.h b/src/main/jni/ffmpeg/include/libavutil/file.h
deleted file mode 100644
index e931be71e..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/file.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * 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 AVUTIL_FILE_H
-#define AVUTIL_FILE_H
-
-#include <stdint.h>
-
-#include "avutil.h"
-
-/**
- * @file
- * Misc file utilities.
- */
-
-/**
- * Read the file with name filename, and put its content in a newly
- * allocated buffer or map it with mmap() when available.
- * In case of success set *bufptr to the read or mmapped buffer, and
- * *size to the size in bytes of the buffer in *bufptr.
- * The returned buffer must be released with av_file_unmap().
- *
- * @param log_offset loglevel offset used for logging
- * @param log_ctx context used for logging
- * @return a non negative number in case of success, a negative value
- * corresponding to an AVERROR error code in case of failure
- */
-av_warn_unused_result
-int av_file_map(const char *filename, uint8_t **bufptr, size_t *size,
- int log_offset, void *log_ctx);
-
-/**
- * Unmap or free the buffer bufptr created by av_file_map().
- *
- * @param size size in bytes of bufptr, must be the same as returned
- * by av_file_map()
- */
-void av_file_unmap(uint8_t *bufptr, size_t size);
-
-/**
- * Wrapper to work around the lack of mkstemp() on mingw.
- * Also, tries to create file in /tmp first, if possible.
- * *prefix can be a character constant; *filename will be allocated internally.
- * @return file descriptor of opened file (or negative value corresponding to an
- * AVERROR code on error)
- * and opened file name in **filename.
- * @note On very old libcs it is necessary to set a secure umask before
- * calling this, av_tempfile() can't call umask itself as it is used in
- * libraries and could interfere with the calling application.
- */
-int av_tempfile(const char *prefix, char **filename, int log_offset, void *log_ctx);
-
-#endif /* AVUTIL_FILE_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/frame.h b/src/main/jni/ffmpeg/include/libavutil/frame.h
deleted file mode 100644
index 9c6061a11..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/frame.h
+++ /dev/null
@@ -1,713 +0,0 @@
-/*
- *
- * 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
- * @ingroup lavu_frame
- * reference-counted frame API
- */
-
-#ifndef AVUTIL_FRAME_H
-#define AVUTIL_FRAME_H
-
-#include <stdint.h>
-
-#include "avutil.h"
-#include "buffer.h"
-#include "dict.h"
-#include "rational.h"
-#include "samplefmt.h"
-#include "pixfmt.h"
-#include "version.h"
-
-
-/**
- * @defgroup lavu_frame AVFrame
- * @ingroup lavu_data
- *
- * @{
- * AVFrame is an abstraction for reference-counted raw multimedia data.
- */
-
-enum AVFrameSideDataType {
- /**
- * The data is the AVPanScan struct defined in libavcodec.
- */
- AV_FRAME_DATA_PANSCAN,
- /**
- * ATSC A53 Part 4 Closed Captions.
- * A53 CC bitstream is stored as uint8_t in AVFrameSideData.data.
- * The number of bytes of CC data is AVFrameSideData.size.
- */
- AV_FRAME_DATA_A53_CC,
- /**
- * Stereoscopic 3d metadata.
- * The data is the AVStereo3D struct defined in libavutil/stereo3d.h.
- */
- AV_FRAME_DATA_STEREO3D,
- /**
- * The data is the AVMatrixEncoding enum defined in libavutil/channel_layout.h.
- */
- AV_FRAME_DATA_MATRIXENCODING,
- /**
- * Metadata relevant to a downmix procedure.
- * The data is the AVDownmixInfo struct defined in libavutil/downmix_info.h.
- */
- AV_FRAME_DATA_DOWNMIX_INFO,
- /**
- * ReplayGain information in the form of the AVReplayGain struct.
- */
- AV_FRAME_DATA_REPLAYGAIN,
- /**
- * This side data contains a 3x3 transformation matrix describing an affine
- * transformation that needs to be applied to the frame for correct
- * presentation.
- *
- * See libavutil/display.h for a detailed description of the data.
- */
- AV_FRAME_DATA_DISPLAYMATRIX,
- /**
- * Active Format Description data consisting of a single byte as specified
- * in ETSI TS 101 154 using AVActiveFormatDescription enum.
- */
- AV_FRAME_DATA_AFD,
- /**
- * Motion vectors exported by some codecs (on demand through the export_mvs
- * flag set in the libavcodec AVCodecContext flags2 option).
- * The data is the AVMotionVector struct defined in
- * libavutil/motion_vector.h.
- */
- AV_FRAME_DATA_MOTION_VECTORS,
- /**
- * Recommmends skipping the specified number of samples. This is exported
- * only if the "skip_manual" AVOption is set in libavcodec.
- * This has the same format as AV_PKT_DATA_SKIP_SAMPLES.
- * @code
- * u32le number of samples to skip from start of this packet
- * u32le number of samples to skip from end of this packet
- * u8 reason for start skip
- * u8 reason for end skip (0=padding silence, 1=convergence)
- * @endcode
- */
- AV_FRAME_DATA_SKIP_SAMPLES,
-
- /**
- * This side data must be associated with an audio frame and corresponds to
- * enum AVAudioServiceType defined in avcodec.h.
- */
- AV_FRAME_DATA_AUDIO_SERVICE_TYPE,
-};
-
-enum AVActiveFormatDescription {
- AV_AFD_SAME = 8,
- AV_AFD_4_3 = 9,
- AV_AFD_16_9 = 10,
- AV_AFD_14_9 = 11,
- AV_AFD_4_3_SP_14_9 = 13,
- AV_AFD_16_9_SP_14_9 = 14,
- AV_AFD_SP_4_3 = 15,
-};
-
-
-/**
- * Structure to hold side data for an AVFrame.
- *
- * sizeof(AVFrameSideData) is not a part of the public ABI, so new fields may be added
- * to the end with a minor bump.
- */
-typedef struct AVFrameSideData {
- enum AVFrameSideDataType type;
- uint8_t *data;
- int size;
- AVDictionary *metadata;
- AVBufferRef *buf;
-} AVFrameSideData;
-
-/**
- * This structure describes decoded (raw) audio or video data.
- *
- * AVFrame must be allocated using av_frame_alloc(). Note that this only
- * allocates the AVFrame itself, the buffers for the data must be managed
- * through other means (see below).
- * AVFrame must be freed with av_frame_free().
- *
- * AVFrame is typically allocated once and then reused multiple times to hold
- * different data (e.g. a single AVFrame to hold frames received from a
- * decoder). In such a case, av_frame_unref() will free any references held by
- * the frame and reset it to its original clean state before it
- * is reused again.
- *
- * The data described by an AVFrame is usually reference counted through the
- * AVBuffer API. The underlying buffer references are stored in AVFrame.buf /
- * AVFrame.extended_buf. An AVFrame is considered to be reference counted if at
- * least one reference is set, i.e. if AVFrame.buf[0] != NULL. In such a case,
- * every single data plane must be contained in one of the buffers in
- * AVFrame.buf or AVFrame.extended_buf.
- * There may be a single buffer for all the data, or one separate buffer for
- * each plane, or anything in between.
- *
- * sizeof(AVFrame) is not a part of the public ABI, so new fields may be added
- * to the end with a minor bump.
- * Similarly fields that are marked as to be only accessed by
- * av_opt_ptr() can be reordered. This allows 2 forks to add fields
- * without breaking compatibility with each other.
- */
-typedef struct AVFrame {
-#define AV_NUM_DATA_POINTERS 8
- /**
- * pointer to the picture/channel planes.
- * This might be different from the first allocated byte
- *
- * Some decoders access areas outside 0,0 - width,height, please
- * see avcodec_align_dimensions2(). Some filters and swscale can read
- * up to 16 bytes beyond the planes, if these filters are to be used,
- * then 16 extra bytes must be allocated.
- */
- uint8_t *data[AV_NUM_DATA_POINTERS];
-
- /**
- * For video, size in bytes of each picture line.
- * For audio, size in bytes of each plane.
- *
- * For audio, only linesize[0] may be set. For planar audio, each channel
- * plane must be the same size.
- *
- * For video the linesizes should be multiples of the CPUs alignment
- * preference, this is 16 or 32 for modern desktop CPUs.
- * Some code requires such alignment other code can be slower without
- * correct alignment, for yet other it makes no difference.
- *
- * @note The linesize may be larger than the size of usable data -- there
- * may be extra padding present for performance reasons.
- */
- int linesize[AV_NUM_DATA_POINTERS];
-
- /**
- * pointers to the data planes/channels.
- *
- * For video, this should simply point to data[].
- *
- * For planar audio, each channel has a separate data pointer, and
- * linesize[0] contains the size of each channel buffer.
- * For packed audio, there is just one data pointer, and linesize[0]
- * contains the total size of the buffer for all channels.
- *
- * Note: Both data and extended_data should always be set in a valid frame,
- * but for planar audio with more channels that can fit in data,
- * extended_data must be used in order to access all channels.
- */
- uint8_t **extended_data;
-
- /**
- * width and height of the video frame
- */
- int width, height;
-
- /**
- * number of audio samples (per channel) described by this frame
- */
- int nb_samples;
-
- /**
- * format of the frame, -1 if unknown or unset
- * Values correspond to enum AVPixelFormat for video frames,
- * enum AVSampleFormat for audio)
- */
- int format;
-
- /**
- * 1 -> keyframe, 0-> not
- */
- int key_frame;
-
- /**
- * Picture type of the frame.
- */
- enum AVPictureType pict_type;
-
- /**
- * Sample aspect ratio for the video frame, 0/1 if unknown/unspecified.
- */
- AVRational sample_aspect_ratio;
-
- /**
- * Presentation timestamp in time_base units (time when frame should be shown to user).
- */
- int64_t pts;
-
- /**
- * PTS copied from the AVPacket that was decoded to produce this frame.
- */
- int64_t pkt_pts;
-
- /**
- * DTS copied from the AVPacket that triggered returning this frame. (if frame threading isn't used)
- * This is also the Presentation time of this AVFrame calculated from
- * only AVPacket.dts values without pts values.
- */
- int64_t pkt_dts;
-
- /**
- * picture number in bitstream order
- */
- int coded_picture_number;
- /**
- * picture number in display order
- */
- int display_picture_number;
-
- /**
- * quality (between 1 (good) and FF_LAMBDA_MAX (bad))
- */
- int quality;
-
- /**
- * for some private data of the user
- */
- void *opaque;
-
-#if FF_API_ERROR_FRAME
- /**
- * @deprecated unused
- */
- attribute_deprecated
- uint64_t error[AV_NUM_DATA_POINTERS];
-#endif
-
- /**
- * When decoding, this signals how much the picture must be delayed.
- * extra_delay = repeat_pict / (2*fps)
- */
- int repeat_pict;
-
- /**
- * The content of the picture is interlaced.
- */
- int interlaced_frame;
-
- /**
- * If the content is interlaced, is top field displayed first.
- */
- int top_field_first;
-
- /**
- * Tell user application that palette has changed from previous frame.
- */
- int palette_has_changed;
-
- /**
- * reordered opaque 64bit (generally an integer or a double precision float
- * PTS but can be anything).
- * The user sets AVCodecContext.reordered_opaque to represent the input at
- * that time,
- * the decoder reorders values as needed and sets AVFrame.reordered_opaque
- * to exactly one of the values provided by the user through AVCodecContext.reordered_opaque
- * @deprecated in favor of pkt_pts
- */
- int64_t reordered_opaque;
-
- /**
- * Sample rate of the audio data.
- */
- int sample_rate;
-
- /**
- * Channel layout of the audio data.
- */
- uint64_t channel_layout;
-
- /**
- * AVBuffer references backing the data for this frame. If all elements of
- * this array are NULL, then this frame is not reference counted. This array
- * must be filled contiguously -- if buf[i] is non-NULL then buf[j] must
- * also be non-NULL for all j < i.
- *
- * There may be at most one AVBuffer per data plane, so for video this array
- * always contains all the references. For planar audio with more than
- * AV_NUM_DATA_POINTERS channels, there may be more buffers than can fit in
- * this array. Then the extra AVBufferRef pointers are stored in the
- * extended_buf array.
- */
- AVBufferRef *buf[AV_NUM_DATA_POINTERS];
-
- /**
- * For planar audio which requires more than AV_NUM_DATA_POINTERS
- * AVBufferRef pointers, this array will hold all the references which
- * cannot fit into AVFrame.buf.
- *
- * Note that this is different from AVFrame.extended_data, which always
- * contains all the pointers. This array only contains the extra pointers,
- * which cannot fit into AVFrame.buf.
- *
- * This array is always allocated using av_malloc() by whoever constructs
- * the frame. It is freed in av_frame_unref().
- */
- AVBufferRef **extended_buf;
- /**
- * Number of elements in extended_buf.
- */
- int nb_extended_buf;
-
- AVFrameSideData **side_data;
- int nb_side_data;
-
-/**
- * @defgroup lavu_frame_flags AV_FRAME_FLAGS
- * Flags describing additional frame properties.
- *
- * @{
- */
-
-/**
- * The frame data may be corrupted, e.g. due to decoding errors.
- */
-#define AV_FRAME_FLAG_CORRUPT (1 << 0)
-/**
- * @}
- */
-
- /**
- * Frame flags, a combination of @ref lavu_frame_flags
- */
- int flags;
-
- /**
- * MPEG vs JPEG YUV range.
- * It must be accessed using av_frame_get_color_range() and
- * av_frame_set_color_range().
- * - encoding: Set by user
- * - decoding: Set by libavcodec
- */
- enum AVColorRange color_range;
-
- enum AVColorPrimaries color_primaries;
-
- enum AVColorTransferCharacteristic color_trc;
-
- /**
- * YUV colorspace type.
- * It must be accessed using av_frame_get_colorspace() and
- * av_frame_set_colorspace().
- * - encoding: Set by user
- * - decoding: Set by libavcodec
- */
- enum AVColorSpace colorspace;
-
- enum AVChromaLocation chroma_location;
-
- /**
- * frame timestamp estimated using various heuristics, in stream time base
- * Code outside libavutil should access this field using:
- * av_frame_get_best_effort_timestamp(frame)
- * - encoding: unused
- * - decoding: set by libavcodec, read by user.
- */
- int64_t best_effort_timestamp;
-
- /**
- * reordered pos from the last AVPacket that has been input into the decoder
- * Code outside libavutil should access this field using:
- * av_frame_get_pkt_pos(frame)
- * - encoding: unused
- * - decoding: Read by user.
- */
- int64_t pkt_pos;
-
- /**
- * duration of the corresponding packet, expressed in
- * AVStream->time_base units, 0 if unknown.
- * Code outside libavutil should access this field using:
- * av_frame_get_pkt_duration(frame)
- * - encoding: unused
- * - decoding: Read by user.
- */
- int64_t pkt_duration;
-
- /**
- * metadata.
- * Code outside libavutil should access this field using:
- * av_frame_get_metadata(frame)
- * - encoding: Set by user.
- * - decoding: Set by libavcodec.
- */
- AVDictionary *metadata;
-
- /**
- * decode error flags of the frame, set to a combination of
- * FF_DECODE_ERROR_xxx flags if the decoder produced a frame, but there
- * were errors during the decoding.
- * Code outside libavutil should access this field using:
- * av_frame_get_decode_error_flags(frame)
- * - encoding: unused
- * - decoding: set by libavcodec, read by user.
- */
- int decode_error_flags;
-#define FF_DECODE_ERROR_INVALID_BITSTREAM 1
-#define FF_DECODE_ERROR_MISSING_REFERENCE 2
-
- /**
- * number of audio channels, only used for audio.
- * Code outside libavutil should access this field using:
- * av_frame_get_channels(frame)
- * - encoding: unused
- * - decoding: Read by user.
- */
- int channels;
-
- /**
- * size of the corresponding packet containing the compressed
- * frame. It must be accessed using av_frame_get_pkt_size() and
- * av_frame_set_pkt_size().
- * It is set to a negative value if unknown.
- * - encoding: unused
- * - decoding: set by libavcodec, read by user.
- */
- int pkt_size;
-
-#if FF_API_FRAME_QP
- /**
- * QP table
- * Not to be accessed directly from outside libavutil
- */
- attribute_deprecated
- int8_t *qscale_table;
- /**
- * QP store stride
- * Not to be accessed directly from outside libavutil
- */
- attribute_deprecated
- int qstride;
-
- attribute_deprecated
- int qscale_type;
-
- /**
- * Not to be accessed directly from outside libavutil
- */
- AVBufferRef *qp_table_buf;
-#endif
-} AVFrame;
-
-/**
- * Accessors for some AVFrame fields.
- * The position of these field in the structure is not part of the ABI,
- * they should not be accessed directly outside libavutil.
- */
-int64_t av_frame_get_best_effort_timestamp(const AVFrame *frame);
-void av_frame_set_best_effort_timestamp(AVFrame *frame, int64_t val);
-int64_t av_frame_get_pkt_duration (const AVFrame *frame);
-void av_frame_set_pkt_duration (AVFrame *frame, int64_t val);
-int64_t av_frame_get_pkt_pos (const AVFrame *frame);
-void av_frame_set_pkt_pos (AVFrame *frame, int64_t val);
-int64_t av_frame_get_channel_layout (const AVFrame *frame);
-void av_frame_set_channel_layout (AVFrame *frame, int64_t val);
-int av_frame_get_channels (const AVFrame *frame);
-void av_frame_set_channels (AVFrame *frame, int val);
-int av_frame_get_sample_rate (const AVFrame *frame);
-void av_frame_set_sample_rate (AVFrame *frame, int val);
-AVDictionary *av_frame_get_metadata (const AVFrame *frame);
-void av_frame_set_metadata (AVFrame *frame, AVDictionary *val);
-int av_frame_get_decode_error_flags (const AVFrame *frame);
-void av_frame_set_decode_error_flags (AVFrame *frame, int val);
-int av_frame_get_pkt_size(const AVFrame *frame);
-void av_frame_set_pkt_size(AVFrame *frame, int val);
-AVDictionary **avpriv_frame_get_metadatap(AVFrame *frame);
-#if FF_API_FRAME_QP
-int8_t *av_frame_get_qp_table(AVFrame *f, int *stride, int *type);
-int av_frame_set_qp_table(AVFrame *f, AVBufferRef *buf, int stride, int type);
-#endif
-enum AVColorSpace av_frame_get_colorspace(const AVFrame *frame);
-void av_frame_set_colorspace(AVFrame *frame, enum AVColorSpace val);
-enum AVColorRange av_frame_get_color_range(const AVFrame *frame);
-void av_frame_set_color_range(AVFrame *frame, enum AVColorRange val);
-
-/**
- * Get the name of a colorspace.
- * @return a static string identifying the colorspace; can be NULL.
- */
-const char *av_get_colorspace_name(enum AVColorSpace val);
-
-/**
- * Allocate an AVFrame and set its fields to default values. The resulting
- * struct must be freed using av_frame_free().
- *
- * @return An AVFrame filled with default values or NULL on failure.
- *
- * @note this only allocates the AVFrame itself, not the data buffers. Those
- * must be allocated through other means, e.g. with av_frame_get_buffer() or
- * manually.
- */
-AVFrame *av_frame_alloc(void);
-
-/**
- * Free the frame and any dynamically allocated objects in it,
- * e.g. extended_data. If the frame is reference counted, it will be
- * unreferenced first.
- *
- * @param frame frame to be freed. The pointer will be set to NULL.
- */
-void av_frame_free(AVFrame **frame);
-
-/**
- * Set up a new reference to the data described by the source frame.
- *
- * Copy frame properties from src to dst and create a new reference for each
- * AVBufferRef from src.
- *
- * If src is not reference counted, new buffers are allocated and the data is
- * copied.
- *
- * @return 0 on success, a negative AVERROR on error
- */
-int av_frame_ref(AVFrame *dst, const AVFrame *src);
-
-/**
- * Create a new frame that references the same data as src.
- *
- * This is a shortcut for av_frame_alloc()+av_frame_ref().
- *
- * @return newly created AVFrame on success, NULL on error.
- */
-AVFrame *av_frame_clone(const AVFrame *src);
-
-/**
- * Unreference all the buffers referenced by frame and reset the frame fields.
- */
-void av_frame_unref(AVFrame *frame);
-
-/**
- * Move everything contained in src to dst and reset src.
- */
-void av_frame_move_ref(AVFrame *dst, AVFrame *src);
-
-/**
- * Allocate new buffer(s) for audio or video data.
- *
- * The following fields must be set on frame before calling this function:
- * - format (pixel format for video, sample format for audio)
- * - width and height for video
- * - nb_samples and channel_layout for audio
- *
- * This function will fill AVFrame.data and AVFrame.buf arrays and, if
- * necessary, allocate and fill AVFrame.extended_data and AVFrame.extended_buf.
- * For planar formats, one buffer will be allocated for each plane.
- *
- * @param frame frame in which to store the new buffers.
- * @param align required buffer size alignment
- *
- * @return 0 on success, a negative AVERROR on error.
- */
-int av_frame_get_buffer(AVFrame *frame, int align);
-
-/**
- * Check if the frame data is writable.
- *
- * @return A positive value if the frame data is writable (which is true if and
- * only if each of the underlying buffers has only one reference, namely the one
- * stored in this frame). Return 0 otherwise.
- *
- * If 1 is returned the answer is valid until av_buffer_ref() is called on any
- * of the underlying AVBufferRefs (e.g. through av_frame_ref() or directly).
- *
- * @see av_frame_make_writable(), av_buffer_is_writable()
- */
-int av_frame_is_writable(AVFrame *frame);
-
-/**
- * Ensure that the frame data is writable, avoiding data copy if possible.
- *
- * Do nothing if the frame is writable, allocate new buffers and copy the data
- * if it is not.
- *
- * @return 0 on success, a negative AVERROR on error.
- *
- * @see av_frame_is_writable(), av_buffer_is_writable(),
- * av_buffer_make_writable()
- */
-int av_frame_make_writable(AVFrame *frame);
-
-/**
- * Copy the frame data from src to dst.
- *
- * This function does not allocate anything, dst must be already initialized and
- * allocated with the same parameters as src.
- *
- * This function only copies the frame data (i.e. the contents of the data /
- * extended data arrays), not any other properties.
- *
- * @return >= 0 on success, a negative AVERROR on error.
- */
-int av_frame_copy(AVFrame *dst, const AVFrame *src);
-
-/**
- * Copy only "metadata" fields from src to dst.
- *
- * Metadata for the purpose of this function are those fields that do not affect
- * the data layout in the buffers. E.g. pts, sample rate (for audio) or sample
- * aspect ratio (for video), but not width/height or channel layout.
- * Side data is also copied.
- */
-int av_frame_copy_props(AVFrame *dst, const AVFrame *src);
-
-/**
- * Get the buffer reference a given data plane is stored in.
- *
- * @param plane index of the data plane of interest in frame->extended_data.
- *
- * @return the buffer reference that contains the plane or NULL if the input
- * frame is not valid.
- */
-AVBufferRef *av_frame_get_plane_buffer(AVFrame *frame, int plane);
-
-/**
- * Add a new side data to a frame.
- *
- * @param frame a frame to which the side data should be added
- * @param type type of the added side data
- * @param size size of the side data
- *
- * @return newly added side data on success, NULL on error
- */
-AVFrameSideData *av_frame_new_side_data(AVFrame *frame,
- enum AVFrameSideDataType type,
- int size);
-
-/**
- * @return a pointer to the side data of a given type on success, NULL if there
- * is no side data with such type in this frame.
- */
-AVFrameSideData *av_frame_get_side_data(const AVFrame *frame,
- enum AVFrameSideDataType type);
-
-/**
- * If side data of the supplied type exists in the frame, free it and remove it
- * from the frame.
- */
-void av_frame_remove_side_data(AVFrame *frame, enum AVFrameSideDataType type);
-
-/**
- * @return a string identifying the side data type
- */
-const char *av_frame_side_data_name(enum AVFrameSideDataType type);
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_FRAME_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/hash.h b/src/main/jni/ffmpeg/include/libavutil/hash.h
deleted file mode 100644
index d4bcbf8cc..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/hash.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright (C) 2013 Reimar Döffinger <Reimar.Doeffinger@gmx.de>
- *
- * 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 AVUTIL_HASH_H
-#define AVUTIL_HASH_H
-
-#include <stdint.h>
-
-struct AVHashContext;
-
-/**
- * Allocate a hash context for the algorithm specified by name.
- *
- * @return >= 0 for success, a negative error code for failure
- * @note The context is not initialized, you must call av_hash_init().
- */
-int av_hash_alloc(struct AVHashContext **ctx, const char *name);
-
-/**
- * Get the names of available hash algorithms.
- *
- * This function can be used to enumerate the algorithms.
- *
- * @param i index of the hash algorithm, starting from 0
- * @return a pointer to a static string or NULL if i is out of range
- */
-const char *av_hash_names(int i);
-
-/**
- * Get the name of the algorithm corresponding to the given hash context.
- */
-const char *av_hash_get_name(const struct AVHashContext *ctx);
-
-/**
- * Maximum value that av_hash_get_size will currently return.
- *
- * You can use this if you absolutely want or need to use static allocation
- * and are fine with not supporting hashes newly added to libavutil without
- * recompilation.
- * Note that you still need to check against av_hash_get_size, adding new hashes
- * with larger sizes will not be considered an ABI change and should not cause
- * your code to overflow a buffer.
- */
-#define AV_HASH_MAX_SIZE 64
-
-/**
- * Get the size of the resulting hash value in bytes.
- *
- * The pointer passed to av_hash_final have space for at least this many bytes.
- */
-int av_hash_get_size(const struct AVHashContext *ctx);
-
-/**
- * Initialize or reset a hash context.
- */
-void av_hash_init(struct AVHashContext *ctx);
-
-/**
- * Update a hash context with additional data.
- */
-void av_hash_update(struct AVHashContext *ctx, const uint8_t *src, int len);
-
-/**
- * Finalize a hash context and compute the actual hash value.
- */
-void av_hash_final(struct AVHashContext *ctx, uint8_t *dst);
-
-/**
- * Finalize a hash context and compute the actual hash value.
- * If size is smaller than the hash size, the hash is truncated;
- * if size is larger, the buffer is padded with 0.
- */
-void av_hash_final_bin(struct AVHashContext *ctx, uint8_t *dst, int size);
-
-/**
- * Finalize a hash context and compute the actual hash value as a hex string.
- * The string is always 0-terminated.
- * If size is smaller than 2 * hash_size + 1, the hex string is truncated.
- */
-void av_hash_final_hex(struct AVHashContext *ctx, uint8_t *dst, int size);
-
-/**
- * Finalize a hash context and compute the actual hash value as a base64 string.
- * The string is always 0-terminated.
- * If size is smaller than AV_BASE64_SIZE(hash_size), the base64 string is
- * truncated.
- */
-void av_hash_final_b64(struct AVHashContext *ctx, uint8_t *dst, int size);
-
-/**
- * Free hash context.
- */
-void av_hash_freep(struct AVHashContext **ctx);
-
-#endif /* AVUTIL_HASH_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/hmac.h b/src/main/jni/ffmpeg/include/libavutil/hmac.h
deleted file mode 100644
index 576a0a4fb..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/hmac.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (C) 2012 Martin Storsjo
- *
- * 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 AVUTIL_HMAC_H
-#define AVUTIL_HMAC_H
-
-#include <stdint.h>
-
-#include "version.h"
-/**
- * @defgroup lavu_hmac HMAC
- * @ingroup lavu_crypto
- * @{
- */
-
-enum AVHMACType {
- AV_HMAC_MD5,
- AV_HMAC_SHA1,
- AV_HMAC_SHA224,
- AV_HMAC_SHA256,
- AV_HMAC_SHA384 = 12,
- AV_HMAC_SHA512,
-};
-
-typedef struct AVHMAC AVHMAC;
-
-/**
- * Allocate an AVHMAC context.
- * @param type The hash function used for the HMAC.
- */
-AVHMAC *av_hmac_alloc(enum AVHMACType type);
-
-/**
- * Free an AVHMAC context.
- * @param ctx The context to free, may be NULL
- */
-void av_hmac_free(AVHMAC *ctx);
-
-/**
- * Initialize an AVHMAC context with an authentication key.
- * @param ctx The HMAC context
- * @param key The authentication key
- * @param keylen The length of the key, in bytes
- */
-void av_hmac_init(AVHMAC *ctx, const uint8_t *key, unsigned int keylen);
-
-/**
- * Hash data with the HMAC.
- * @param ctx The HMAC context
- * @param data The data to hash
- * @param len The length of the data, in bytes
- */
-void av_hmac_update(AVHMAC *ctx, const uint8_t *data, unsigned int len);
-
-/**
- * Finish hashing and output the HMAC digest.
- * @param ctx The HMAC context
- * @param out The output buffer to write the digest into
- * @param outlen The length of the out buffer, in bytes
- * @return The number of bytes written to out, or a negative error code.
- */
-int av_hmac_final(AVHMAC *ctx, uint8_t *out, unsigned int outlen);
-
-/**
- * Hash an array of data with a key.
- * @param ctx The HMAC context
- * @param data The data to hash
- * @param len The length of the data, in bytes
- * @param key The authentication key
- * @param keylen The length of the key, in bytes
- * @param out The output buffer to write the digest into
- * @param outlen The length of the out buffer, in bytes
- * @return The number of bytes written to out, or a negative error code.
- */
-int av_hmac_calc(AVHMAC *ctx, const uint8_t *data, unsigned int len,
- const uint8_t *key, unsigned int keylen,
- uint8_t *out, unsigned int outlen);
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_HMAC_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/imgutils.h b/src/main/jni/ffmpeg/include/libavutil/imgutils.h
deleted file mode 100644
index 23282a38f..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/imgutils.h
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * 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 AVUTIL_IMGUTILS_H
-#define AVUTIL_IMGUTILS_H
-
-/**
- * @file
- * misc image utilities
- *
- * @addtogroup lavu_picture
- * @{
- */
-
-#include "avutil.h"
-#include "pixdesc.h"
-#include "rational.h"
-
-/**
- * Compute the max pixel step for each plane of an image with a
- * format described by pixdesc.
- *
- * The pixel step is the distance in bytes between the first byte of
- * the group of bytes which describe a pixel component and the first
- * byte of the successive group in the same plane for the same
- * component.
- *
- * @param max_pixsteps an array which is filled with the max pixel step
- * for each plane. Since a plane may contain different pixel
- * components, the computed max_pixsteps[plane] is relative to the
- * component in the plane with the max pixel step.
- * @param max_pixstep_comps an array which is filled with the component
- * for each plane which has the max pixel step. May be NULL.
- */
-void av_image_fill_max_pixsteps(int max_pixsteps[4], int max_pixstep_comps[4],
- const AVPixFmtDescriptor *pixdesc);
-
-/**
- * Compute the size of an image line with format pix_fmt and width
- * width for the plane plane.
- *
- * @return the computed size in bytes
- */
-int av_image_get_linesize(enum AVPixelFormat pix_fmt, int width, int plane);
-
-/**
- * Fill plane linesizes for an image with pixel format pix_fmt and
- * width width.
- *
- * @param linesizes array to be filled with the linesize for each plane
- * @return >= 0 in case of success, a negative error code otherwise
- */
-int av_image_fill_linesizes(int linesizes[4], enum AVPixelFormat pix_fmt, int width);
-
-/**
- * Fill plane data pointers for an image with pixel format pix_fmt and
- * height height.
- *
- * @param data pointers array to be filled with the pointer for each image plane
- * @param ptr the pointer to a buffer which will contain the image
- * @param linesizes the array containing the linesize for each
- * plane, should be filled by av_image_fill_linesizes()
- * @return the size in bytes required for the image buffer, a negative
- * error code in case of failure
- */
-int av_image_fill_pointers(uint8_t *data[4], enum AVPixelFormat pix_fmt, int height,
- uint8_t *ptr, const int linesizes[4]);
-
-/**
- * Allocate an image with size w and h and pixel format pix_fmt, and
- * fill pointers and linesizes accordingly.
- * The allocated image buffer has to be freed by using
- * av_freep(&pointers[0]).
- *
- * @param align the value to use for buffer size alignment
- * @return the size in bytes required for the image buffer, a negative
- * error code in case of failure
- */
-int av_image_alloc(uint8_t *pointers[4], int linesizes[4],
- int w, int h, enum AVPixelFormat pix_fmt, int align);
-
-/**
- * Copy image plane from src to dst.
- * That is, copy "height" number of lines of "bytewidth" bytes each.
- * The first byte of each successive line is separated by *_linesize
- * bytes.
- *
- * bytewidth must be contained by both absolute values of dst_linesize
- * and src_linesize, otherwise the function behavior is undefined.
- *
- * @param dst_linesize linesize for the image plane in dst
- * @param src_linesize linesize for the image plane in src
- */
-void av_image_copy_plane(uint8_t *dst, int dst_linesize,
- const uint8_t *src, int src_linesize,
- int bytewidth, int height);
-
-/**
- * Copy image in src_data to dst_data.
- *
- * @param dst_linesizes linesizes for the image in dst_data
- * @param src_linesizes linesizes for the image in src_data
- */
-void av_image_copy(uint8_t *dst_data[4], int dst_linesizes[4],
- const uint8_t *src_data[4], const int src_linesizes[4],
- enum AVPixelFormat pix_fmt, int width, int height);
-
-/**
- * Setup the data pointers and linesizes based on the specified image
- * parameters and the provided array.
- *
- * The fields of the given image are filled in by using the src
- * address which points to the image data buffer. Depending on the
- * specified pixel format, one or multiple image data pointers and
- * line sizes will be set. If a planar format is specified, several
- * pointers will be set pointing to the different picture planes and
- * the line sizes of the different planes will be stored in the
- * lines_sizes array. Call with src == NULL to get the required
- * size for the src buffer.
- *
- * To allocate the buffer and fill in the dst_data and dst_linesize in
- * one call, use av_image_alloc().
- *
- * @param dst_data data pointers to be filled in
- * @param dst_linesizes linesizes for the image in dst_data to be filled in
- * @param src buffer which will contain or contains the actual image data, can be NULL
- * @param pix_fmt the pixel format of the image
- * @param width the width of the image in pixels
- * @param height the height of the image in pixels
- * @param align the value used in src for linesize alignment
- * @return the size in bytes required for src, a negative error code
- * in case of failure
- */
-int av_image_fill_arrays(uint8_t *dst_data[4], int dst_linesize[4],
- const uint8_t *src,
- enum AVPixelFormat pix_fmt, int width, int height, int align);
-
-/**
- * Return the size in bytes of the amount of data required to store an
- * image with the given parameters.
- *
- * @param[in] align the assumed linesize alignment
- */
-int av_image_get_buffer_size(enum AVPixelFormat pix_fmt, int width, int height, int align);
-
-/**
- * Copy image data from an image into a buffer.
- *
- * av_image_get_buffer_size() can be used to compute the required size
- * for the buffer to fill.
- *
- * @param dst a buffer into which picture data will be copied
- * @param dst_size the size in bytes of dst
- * @param src_data pointers containing the source image data
- * @param src_linesizes linesizes for the image in src_data
- * @param pix_fmt the pixel format of the source image
- * @param width the width of the source image in pixels
- * @param height the height of the source image in pixels
- * @param align the assumed linesize alignment for dst
- * @return the number of bytes written to dst, or a negative value
- * (error code) on error
- */
-int av_image_copy_to_buffer(uint8_t *dst, int dst_size,
- const uint8_t * const src_data[4], const int src_linesize[4],
- enum AVPixelFormat pix_fmt, int width, int height, int align);
-
-/**
- * Check if the given dimension of an image is valid, meaning that all
- * bytes of the image can be addressed with a signed int.
- *
- * @param w the width of the picture
- * @param h the height of the picture
- * @param log_offset the offset to sum to the log level for logging with log_ctx
- * @param log_ctx the parent logging context, it may be NULL
- * @return >= 0 if valid, a negative error code otherwise
- */
-int av_image_check_size(unsigned int w, unsigned int h, int log_offset, void *log_ctx);
-
-/**
- * Check if the given sample aspect ratio of an image is valid.
- *
- * It is considered invalid if the denominator is 0 or if applying the ratio
- * to the image size would make the smaller dimension less than 1. If the
- * sar numerator is 0, it is considered unknown and will return as valid.
- *
- * @param w width of the image
- * @param h height of the image
- * @param sar sample aspect ratio of the image
- * @return 0 if valid, a negative AVERROR code otherwise
- */
-int av_image_check_sar(unsigned int w, unsigned int h, AVRational sar);
-
-/**
- * @}
- */
-
-
-#endif /* AVUTIL_IMGUTILS_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/intfloat.h b/src/main/jni/ffmpeg/include/libavutil/intfloat.h
deleted file mode 100644
index fe3d7ec4a..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/intfloat.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (c) 2011 Mans Rullgard
- *
- * 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 AVUTIL_INTFLOAT_H
-#define AVUTIL_INTFLOAT_H
-
-#include <stdint.h>
-#include "attributes.h"
-
-union av_intfloat32 {
- uint32_t i;
- float f;
-};
-
-union av_intfloat64 {
- uint64_t i;
- double f;
-};
-
-/**
- * Reinterpret a 32-bit integer as a float.
- */
-static av_always_inline float av_int2float(uint32_t i)
-{
- union av_intfloat32 v;
- v.i = i;
- return v.f;
-}
-
-/**
- * Reinterpret a float as a 32-bit integer.
- */
-static av_always_inline uint32_t av_float2int(float f)
-{
- union av_intfloat32 v;
- v.f = f;
- return v.i;
-}
-
-/**
- * Reinterpret a 64-bit integer as a double.
- */
-static av_always_inline double av_int2double(uint64_t i)
-{
- union av_intfloat64 v;
- v.i = i;
- return v.f;
-}
-
-/**
- * Reinterpret a double as a 64-bit integer.
- */
-static av_always_inline uint64_t av_double2int(double f)
-{
- union av_intfloat64 v;
- v.f = f;
- return v.i;
-}
-
-#endif /* AVUTIL_INTFLOAT_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/intreadwrite.h b/src/main/jni/ffmpeg/include/libavutil/intreadwrite.h
deleted file mode 100644
index 51fbe30a2..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/intreadwrite.h
+++ /dev/null
@@ -1,629 +0,0 @@
-/*
- * 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 AVUTIL_INTREADWRITE_H
-#define AVUTIL_INTREADWRITE_H
-
-#include <stdint.h>
-#include "libavutil/avconfig.h"
-#include "attributes.h"
-#include "bswap.h"
-
-typedef union {
- uint64_t u64;
- uint32_t u32[2];
- uint16_t u16[4];
- uint8_t u8 [8];
- double f64;
- float f32[2];
-} av_alias av_alias64;
-
-typedef union {
- uint32_t u32;
- uint16_t u16[2];
- uint8_t u8 [4];
- float f32;
-} av_alias av_alias32;
-
-typedef union {
- uint16_t u16;
- uint8_t u8 [2];
-} av_alias av_alias16;
-
-/*
- * Arch-specific headers can provide any combination of
- * AV_[RW][BLN](16|24|32|48|64) and AV_(COPY|SWAP|ZERO)(64|128) macros.
- * Preprocessor symbols must be defined, even if these are implemented
- * as inline functions.
- *
- * R/W means read/write, B/L/N means big/little/native endianness.
- * The following macros require aligned access, compared to their
- * unaligned variants: AV_(COPY|SWAP|ZERO)(64|128), AV_[RW]N[8-64]A.
- * Incorrect usage may range from abysmal performance to crash
- * depending on the platform.
- *
- * The unaligned variants are AV_[RW][BLN][8-64] and AV_COPY*U.
- */
-
-#ifdef HAVE_AV_CONFIG_H
-
-#include "config.h"
-
-#if ARCH_ARM
-# include "arm/intreadwrite.h"
-#elif ARCH_AVR32
-# include "avr32/intreadwrite.h"
-#elif ARCH_MIPS
-# include "mips/intreadwrite.h"
-#elif ARCH_PPC
-# include "ppc/intreadwrite.h"
-#elif ARCH_TOMI
-# include "tomi/intreadwrite.h"
-#elif ARCH_X86
-# include "x86/intreadwrite.h"
-#endif
-
-#endif /* HAVE_AV_CONFIG_H */
-
-/*
- * Map AV_RNXX <-> AV_R[BL]XX for all variants provided by per-arch headers.
- */
-
-#if AV_HAVE_BIGENDIAN
-
-# if defined(AV_RN16) && !defined(AV_RB16)
-# define AV_RB16(p) AV_RN16(p)
-# elif !defined(AV_RN16) && defined(AV_RB16)
-# define AV_RN16(p) AV_RB16(p)
-# endif
-
-# if defined(AV_WN16) && !defined(AV_WB16)
-# define AV_WB16(p, v) AV_WN16(p, v)
-# elif !defined(AV_WN16) && defined(AV_WB16)
-# define AV_WN16(p, v) AV_WB16(p, v)
-# endif
-
-# if defined(AV_RN24) && !defined(AV_RB24)
-# define AV_RB24(p) AV_RN24(p)
-# elif !defined(AV_RN24) && defined(AV_RB24)
-# define AV_RN24(p) AV_RB24(p)
-# endif
-
-# if defined(AV_WN24) && !defined(AV_WB24)
-# define AV_WB24(p, v) AV_WN24(p, v)
-# elif !defined(AV_WN24) && defined(AV_WB24)
-# define AV_WN24(p, v) AV_WB24(p, v)
-# endif
-
-# if defined(AV_RN32) && !defined(AV_RB32)
-# define AV_RB32(p) AV_RN32(p)
-# elif !defined(AV_RN32) && defined(AV_RB32)
-# define AV_RN32(p) AV_RB32(p)
-# endif
-
-# if defined(AV_WN32) && !defined(AV_WB32)
-# define AV_WB32(p, v) AV_WN32(p, v)
-# elif !defined(AV_WN32) && defined(AV_WB32)
-# define AV_WN32(p, v) AV_WB32(p, v)
-# endif
-
-# if defined(AV_RN48) && !defined(AV_RB48)
-# define AV_RB48(p) AV_RN48(p)
-# elif !defined(AV_RN48) && defined(AV_RB48)
-# define AV_RN48(p) AV_RB48(p)
-# endif
-
-# if defined(AV_WN48) && !defined(AV_WB48)
-# define AV_WB48(p, v) AV_WN48(p, v)
-# elif !defined(AV_WN48) && defined(AV_WB48)
-# define AV_WN48(p, v) AV_WB48(p, v)
-# endif
-
-# if defined(AV_RN64) && !defined(AV_RB64)
-# define AV_RB64(p) AV_RN64(p)
-# elif !defined(AV_RN64) && defined(AV_RB64)
-# define AV_RN64(p) AV_RB64(p)
-# endif
-
-# if defined(AV_WN64) && !defined(AV_WB64)
-# define AV_WB64(p, v) AV_WN64(p, v)
-# elif !defined(AV_WN64) && defined(AV_WB64)
-# define AV_WN64(p, v) AV_WB64(p, v)
-# endif
-
-#else /* AV_HAVE_BIGENDIAN */
-
-# if defined(AV_RN16) && !defined(AV_RL16)
-# define AV_RL16(p) AV_RN16(p)
-# elif !defined(AV_RN16) && defined(AV_RL16)
-# define AV_RN16(p) AV_RL16(p)
-# endif
-
-# if defined(AV_WN16) && !defined(AV_WL16)
-# define AV_WL16(p, v) AV_WN16(p, v)
-# elif !defined(AV_WN16) && defined(AV_WL16)
-# define AV_WN16(p, v) AV_WL16(p, v)
-# endif
-
-# if defined(AV_RN24) && !defined(AV_RL24)
-# define AV_RL24(p) AV_RN24(p)
-# elif !defined(AV_RN24) && defined(AV_RL24)
-# define AV_RN24(p) AV_RL24(p)
-# endif
-
-# if defined(AV_WN24) && !defined(AV_WL24)
-# define AV_WL24(p, v) AV_WN24(p, v)
-# elif !defined(AV_WN24) && defined(AV_WL24)
-# define AV_WN24(p, v) AV_WL24(p, v)
-# endif
-
-# if defined(AV_RN32) && !defined(AV_RL32)
-# define AV_RL32(p) AV_RN32(p)
-# elif !defined(AV_RN32) && defined(AV_RL32)
-# define AV_RN32(p) AV_RL32(p)
-# endif
-
-# if defined(AV_WN32) && !defined(AV_WL32)
-# define AV_WL32(p, v) AV_WN32(p, v)
-# elif !defined(AV_WN32) && defined(AV_WL32)
-# define AV_WN32(p, v) AV_WL32(p, v)
-# endif
-
-# if defined(AV_RN48) && !defined(AV_RL48)
-# define AV_RL48(p) AV_RN48(p)
-# elif !defined(AV_RN48) && defined(AV_RL48)
-# define AV_RN48(p) AV_RL48(p)
-# endif
-
-# if defined(AV_WN48) && !defined(AV_WL48)
-# define AV_WL48(p, v) AV_WN48(p, v)
-# elif !defined(AV_WN48) && defined(AV_WL48)
-# define AV_WN48(p, v) AV_WL48(p, v)
-# endif
-
-# if defined(AV_RN64) && !defined(AV_RL64)
-# define AV_RL64(p) AV_RN64(p)
-# elif !defined(AV_RN64) && defined(AV_RL64)
-# define AV_RN64(p) AV_RL64(p)
-# endif
-
-# if defined(AV_WN64) && !defined(AV_WL64)
-# define AV_WL64(p, v) AV_WN64(p, v)
-# elif !defined(AV_WN64) && defined(AV_WL64)
-# define AV_WN64(p, v) AV_WL64(p, v)
-# endif
-
-#endif /* !AV_HAVE_BIGENDIAN */
-
-/*
- * Define AV_[RW]N helper macros to simplify definitions not provided
- * by per-arch headers.
- */
-
-#if defined(__GNUC__) && !defined(__TI_COMPILER_VERSION__)
-
-union unaligned_64 { uint64_t l; } __attribute__((packed)) av_alias;
-union unaligned_32 { uint32_t l; } __attribute__((packed)) av_alias;
-union unaligned_16 { uint16_t l; } __attribute__((packed)) av_alias;
-
-# define AV_RN(s, p) (((const union unaligned_##s *) (p))->l)
-# define AV_WN(s, p, v) ((((union unaligned_##s *) (p))->l) = (v))
-
-#elif defined(__DECC)
-
-# define AV_RN(s, p) (*((const __unaligned uint##s##_t*)(p)))
-# define AV_WN(s, p, v) (*((__unaligned uint##s##_t*)(p)) = (v))
-
-#elif AV_HAVE_FAST_UNALIGNED
-
-# define AV_RN(s, p) (((const av_alias##s*)(p))->u##s)
-# define AV_WN(s, p, v) (((av_alias##s*)(p))->u##s = (v))
-
-#else
-
-#ifndef AV_RB16
-# define AV_RB16(x) \
- ((((const uint8_t*)(x))[0] << 8) | \
- ((const uint8_t*)(x))[1])
-#endif
-#ifndef AV_WB16
-# define AV_WB16(p, darg) do { \
- unsigned d = (darg); \
- ((uint8_t*)(p))[1] = (d); \
- ((uint8_t*)(p))[0] = (d)>>8; \
- } while(0)
-#endif
-
-#ifndef AV_RL16
-# define AV_RL16(x) \
- ((((const uint8_t*)(x))[1] << 8) | \
- ((const uint8_t*)(x))[0])
-#endif
-#ifndef AV_WL16
-# define AV_WL16(p, darg) do { \
- unsigned d = (darg); \
- ((uint8_t*)(p))[0] = (d); \
- ((uint8_t*)(p))[1] = (d)>>8; \
- } while(0)
-#endif
-
-#ifndef AV_RB32
-# define AV_RB32(x) \
- (((uint32_t)((const uint8_t*)(x))[0] << 24) | \
- (((const uint8_t*)(x))[1] << 16) | \
- (((const uint8_t*)(x))[2] << 8) | \
- ((const uint8_t*)(x))[3])
-#endif
-#ifndef AV_WB32
-# define AV_WB32(p, darg) do { \
- unsigned d = (darg); \
- ((uint8_t*)(p))[3] = (d); \
- ((uint8_t*)(p))[2] = (d)>>8; \
- ((uint8_t*)(p))[1] = (d)>>16; \
- ((uint8_t*)(p))[0] = (d)>>24; \
- } while(0)
-#endif
-
-#ifndef AV_RL32
-# define AV_RL32(x) \
- (((uint32_t)((const uint8_t*)(x))[3] << 24) | \
- (((const uint8_t*)(x))[2] << 16) | \
- (((const uint8_t*)(x))[1] << 8) | \
- ((const uint8_t*)(x))[0])
-#endif
-#ifndef AV_WL32
-# define AV_WL32(p, darg) do { \
- unsigned d = (darg); \
- ((uint8_t*)(p))[0] = (d); \
- ((uint8_t*)(p))[1] = (d)>>8; \
- ((uint8_t*)(p))[2] = (d)>>16; \
- ((uint8_t*)(p))[3] = (d)>>24; \
- } while(0)
-#endif
-
-#ifndef AV_RB64
-# define AV_RB64(x) \
- (((uint64_t)((const uint8_t*)(x))[0] << 56) | \
- ((uint64_t)((const uint8_t*)(x))[1] << 48) | \
- ((uint64_t)((const uint8_t*)(x))[2] << 40) | \
- ((uint64_t)((const uint8_t*)(x))[3] << 32) | \
- ((uint64_t)((const uint8_t*)(x))[4] << 24) | \
- ((uint64_t)((const uint8_t*)(x))[5] << 16) | \
- ((uint64_t)((const uint8_t*)(x))[6] << 8) | \
- (uint64_t)((const uint8_t*)(x))[7])
-#endif
-#ifndef AV_WB64
-# define AV_WB64(p, darg) do { \
- uint64_t d = (darg); \
- ((uint8_t*)(p))[7] = (d); \
- ((uint8_t*)(p))[6] = (d)>>8; \
- ((uint8_t*)(p))[5] = (d)>>16; \
- ((uint8_t*)(p))[4] = (d)>>24; \
- ((uint8_t*)(p))[3] = (d)>>32; \
- ((uint8_t*)(p))[2] = (d)>>40; \
- ((uint8_t*)(p))[1] = (d)>>48; \
- ((uint8_t*)(p))[0] = (d)>>56; \
- } while(0)
-#endif
-
-#ifndef AV_RL64
-# define AV_RL64(x) \
- (((uint64_t)((const uint8_t*)(x))[7] << 56) | \
- ((uint64_t)((const uint8_t*)(x))[6] << 48) | \
- ((uint64_t)((const uint8_t*)(x))[5] << 40) | \
- ((uint64_t)((const uint8_t*)(x))[4] << 32) | \
- ((uint64_t)((const uint8_t*)(x))[3] << 24) | \
- ((uint64_t)((const uint8_t*)(x))[2] << 16) | \
- ((uint64_t)((const uint8_t*)(x))[1] << 8) | \
- (uint64_t)((const uint8_t*)(x))[0])
-#endif
-#ifndef AV_WL64
-# define AV_WL64(p, darg) do { \
- uint64_t d = (darg); \
- ((uint8_t*)(p))[0] = (d); \
- ((uint8_t*)(p))[1] = (d)>>8; \
- ((uint8_t*)(p))[2] = (d)>>16; \
- ((uint8_t*)(p))[3] = (d)>>24; \
- ((uint8_t*)(p))[4] = (d)>>32; \
- ((uint8_t*)(p))[5] = (d)>>40; \
- ((uint8_t*)(p))[6] = (d)>>48; \
- ((uint8_t*)(p))[7] = (d)>>56; \
- } while(0)
-#endif
-
-#if AV_HAVE_BIGENDIAN
-# define AV_RN(s, p) AV_RB##s(p)
-# define AV_WN(s, p, v) AV_WB##s(p, v)
-#else
-# define AV_RN(s, p) AV_RL##s(p)
-# define AV_WN(s, p, v) AV_WL##s(p, v)
-#endif
-
-#endif /* HAVE_FAST_UNALIGNED */
-
-#ifndef AV_RN16
-# define AV_RN16(p) AV_RN(16, p)
-#endif
-
-#ifndef AV_RN32
-# define AV_RN32(p) AV_RN(32, p)
-#endif
-
-#ifndef AV_RN64
-# define AV_RN64(p) AV_RN(64, p)
-#endif
-
-#ifndef AV_WN16
-# define AV_WN16(p, v) AV_WN(16, p, v)
-#endif
-
-#ifndef AV_WN32
-# define AV_WN32(p, v) AV_WN(32, p, v)
-#endif
-
-#ifndef AV_WN64
-# define AV_WN64(p, v) AV_WN(64, p, v)
-#endif
-
-#if AV_HAVE_BIGENDIAN
-# define AV_RB(s, p) AV_RN##s(p)
-# define AV_WB(s, p, v) AV_WN##s(p, v)
-# define AV_RL(s, p) av_bswap##s(AV_RN##s(p))
-# define AV_WL(s, p, v) AV_WN##s(p, av_bswap##s(v))
-#else
-# define AV_RB(s, p) av_bswap##s(AV_RN##s(p))
-# define AV_WB(s, p, v) AV_WN##s(p, av_bswap##s(v))
-# define AV_RL(s, p) AV_RN##s(p)
-# define AV_WL(s, p, v) AV_WN##s(p, v)
-#endif
-
-#define AV_RB8(x) (((const uint8_t*)(x))[0])
-#define AV_WB8(p, d) do { ((uint8_t*)(p))[0] = (d); } while(0)
-
-#define AV_RL8(x) AV_RB8(x)
-#define AV_WL8(p, d) AV_WB8(p, d)
-
-#ifndef AV_RB16
-# define AV_RB16(p) AV_RB(16, p)
-#endif
-#ifndef AV_WB16
-# define AV_WB16(p, v) AV_WB(16, p, v)
-#endif
-
-#ifndef AV_RL16
-# define AV_RL16(p) AV_RL(16, p)
-#endif
-#ifndef AV_WL16
-# define AV_WL16(p, v) AV_WL(16, p, v)
-#endif
-
-#ifndef AV_RB32
-# define AV_RB32(p) AV_RB(32, p)
-#endif
-#ifndef AV_WB32
-# define AV_WB32(p, v) AV_WB(32, p, v)
-#endif
-
-#ifndef AV_RL32
-# define AV_RL32(p) AV_RL(32, p)
-#endif
-#ifndef AV_WL32
-# define AV_WL32(p, v) AV_WL(32, p, v)
-#endif
-
-#ifndef AV_RB64
-# define AV_RB64(p) AV_RB(64, p)
-#endif
-#ifndef AV_WB64
-# define AV_WB64(p, v) AV_WB(64, p, v)
-#endif
-
-#ifndef AV_RL64
-# define AV_RL64(p) AV_RL(64, p)
-#endif
-#ifndef AV_WL64
-# define AV_WL64(p, v) AV_WL(64, p, v)
-#endif
-
-#ifndef AV_RB24
-# define AV_RB24(x) \
- ((((const uint8_t*)(x))[0] << 16) | \
- (((const uint8_t*)(x))[1] << 8) | \
- ((const uint8_t*)(x))[2])
-#endif
-#ifndef AV_WB24
-# define AV_WB24(p, d) do { \
- ((uint8_t*)(p))[2] = (d); \
- ((uint8_t*)(p))[1] = (d)>>8; \
- ((uint8_t*)(p))[0] = (d)>>16; \
- } while(0)
-#endif
-
-#ifndef AV_RL24
-# define AV_RL24(x) \
- ((((const uint8_t*)(x))[2] << 16) | \
- (((const uint8_t*)(x))[1] << 8) | \
- ((const uint8_t*)(x))[0])
-#endif
-#ifndef AV_WL24
-# define AV_WL24(p, d) do { \
- ((uint8_t*)(p))[0] = (d); \
- ((uint8_t*)(p))[1] = (d)>>8; \
- ((uint8_t*)(p))[2] = (d)>>16; \
- } while(0)
-#endif
-
-#ifndef AV_RB48
-# define AV_RB48(x) \
- (((uint64_t)((const uint8_t*)(x))[0] << 40) | \
- ((uint64_t)((const uint8_t*)(x))[1] << 32) | \
- ((uint64_t)((const uint8_t*)(x))[2] << 24) | \
- ((uint64_t)((const uint8_t*)(x))[3] << 16) | \
- ((uint64_t)((const uint8_t*)(x))[4] << 8) | \
- (uint64_t)((const uint8_t*)(x))[5])
-#endif
-#ifndef AV_WB48
-# define AV_WB48(p, darg) do { \
- uint64_t d = (darg); \
- ((uint8_t*)(p))[5] = (d); \
- ((uint8_t*)(p))[4] = (d)>>8; \
- ((uint8_t*)(p))[3] = (d)>>16; \
- ((uint8_t*)(p))[2] = (d)>>24; \
- ((uint8_t*)(p))[1] = (d)>>32; \
- ((uint8_t*)(p))[0] = (d)>>40; \
- } while(0)
-#endif
-
-#ifndef AV_RL48
-# define AV_RL48(x) \
- (((uint64_t)((const uint8_t*)(x))[5] << 40) | \
- ((uint64_t)((const uint8_t*)(x))[4] << 32) | \
- ((uint64_t)((const uint8_t*)(x))[3] << 24) | \
- ((uint64_t)((const uint8_t*)(x))[2] << 16) | \
- ((uint64_t)((const uint8_t*)(x))[1] << 8) | \
- (uint64_t)((const uint8_t*)(x))[0])
-#endif
-#ifndef AV_WL48
-# define AV_WL48(p, darg) do { \
- uint64_t d = (darg); \
- ((uint8_t*)(p))[0] = (d); \
- ((uint8_t*)(p))[1] = (d)>>8; \
- ((uint8_t*)(p))[2] = (d)>>16; \
- ((uint8_t*)(p))[3] = (d)>>24; \
- ((uint8_t*)(p))[4] = (d)>>32; \
- ((uint8_t*)(p))[5] = (d)>>40; \
- } while(0)
-#endif
-
-/*
- * The AV_[RW]NA macros access naturally aligned data
- * in a type-safe way.
- */
-
-#define AV_RNA(s, p) (((const av_alias##s*)(p))->u##s)
-#define AV_WNA(s, p, v) (((av_alias##s*)(p))->u##s = (v))
-
-#ifndef AV_RN16A
-# define AV_RN16A(p) AV_RNA(16, p)
-#endif
-
-#ifndef AV_RN32A
-# define AV_RN32A(p) AV_RNA(32, p)
-#endif
-
-#ifndef AV_RN64A
-# define AV_RN64A(p) AV_RNA(64, p)
-#endif
-
-#ifndef AV_WN16A
-# define AV_WN16A(p, v) AV_WNA(16, p, v)
-#endif
-
-#ifndef AV_WN32A
-# define AV_WN32A(p, v) AV_WNA(32, p, v)
-#endif
-
-#ifndef AV_WN64A
-# define AV_WN64A(p, v) AV_WNA(64, p, v)
-#endif
-
-/*
- * The AV_COPYxxU macros are suitable for copying data to/from unaligned
- * memory locations.
- */
-
-#define AV_COPYU(n, d, s) AV_WN##n(d, AV_RN##n(s));
-
-#ifndef AV_COPY16U
-# define AV_COPY16U(d, s) AV_COPYU(16, d, s)
-#endif
-
-#ifndef AV_COPY32U
-# define AV_COPY32U(d, s) AV_COPYU(32, d, s)
-#endif
-
-#ifndef AV_COPY64U
-# define AV_COPY64U(d, s) AV_COPYU(64, d, s)
-#endif
-
-#ifndef AV_COPY128U
-# define AV_COPY128U(d, s) \
- do { \
- AV_COPY64U(d, s); \
- AV_COPY64U((char *)(d) + 8, (const char *)(s) + 8); \
- } while(0)
-#endif
-
-/* Parameters for AV_COPY*, AV_SWAP*, AV_ZERO* must be
- * naturally aligned. They may be implemented using MMX,
- * so emms_c() must be called before using any float code
- * afterwards.
- */
-
-#define AV_COPY(n, d, s) \
- (((av_alias##n*)(d))->u##n = ((const av_alias##n*)(s))->u##n)
-
-#ifndef AV_COPY16
-# define AV_COPY16(d, s) AV_COPY(16, d, s)
-#endif
-
-#ifndef AV_COPY32
-# define AV_COPY32(d, s) AV_COPY(32, d, s)
-#endif
-
-#ifndef AV_COPY64
-# define AV_COPY64(d, s) AV_COPY(64, d, s)
-#endif
-
-#ifndef AV_COPY128
-# define AV_COPY128(d, s) \
- do { \
- AV_COPY64(d, s); \
- AV_COPY64((char*)(d)+8, (char*)(s)+8); \
- } while(0)
-#endif
-
-#define AV_SWAP(n, a, b) FFSWAP(av_alias##n, *(av_alias##n*)(a), *(av_alias##n*)(b))
-
-#ifndef AV_SWAP64
-# define AV_SWAP64(a, b) AV_SWAP(64, a, b)
-#endif
-
-#define AV_ZERO(n, d) (((av_alias##n*)(d))->u##n = 0)
-
-#ifndef AV_ZERO16
-# define AV_ZERO16(d) AV_ZERO(16, d)
-#endif
-
-#ifndef AV_ZERO32
-# define AV_ZERO32(d) AV_ZERO(32, d)
-#endif
-
-#ifndef AV_ZERO64
-# define AV_ZERO64(d) AV_ZERO(64, d)
-#endif
-
-#ifndef AV_ZERO128
-# define AV_ZERO128(d) \
- do { \
- AV_ZERO64(d); \
- AV_ZERO64((char*)(d)+8); \
- } while(0)
-#endif
-
-#endif /* AVUTIL_INTREADWRITE_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/lfg.h b/src/main/jni/ffmpeg/include/libavutil/lfg.h
deleted file mode 100644
index ec90562cf..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/lfg.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Lagged Fibonacci PRNG
- * Copyright (c) 2008 Michael Niedermayer
- *
- * 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 AVUTIL_LFG_H
-#define AVUTIL_LFG_H
-
-typedef struct AVLFG {
- unsigned int state[64];
- int index;
-} AVLFG;
-
-void av_lfg_init(AVLFG *c, unsigned int seed);
-
-/**
- * Get the next random unsigned 32-bit number using an ALFG.
- *
- * Please also consider a simple LCG like state= state*1664525+1013904223,
- * it may be good enough and faster for your specific use case.
- */
-static inline unsigned int av_lfg_get(AVLFG *c){
- c->state[c->index & 63] = c->state[(c->index-24) & 63] + c->state[(c->index-55) & 63];
- return c->state[c->index++ & 63];
-}
-
-/**
- * Get the next random unsigned 32-bit number using a MLFG.
- *
- * Please also consider av_lfg_get() above, it is faster.
- */
-static inline unsigned int av_mlfg_get(AVLFG *c){
- unsigned int a= c->state[(c->index-55) & 63];
- unsigned int b= c->state[(c->index-24) & 63];
- return c->state[c->index++ & 63] = 2*a*b+a+b;
-}
-
-/**
- * Get the next two numbers generated by a Box-Muller Gaussian
- * generator using the random numbers issued by lfg.
- *
- * @param out array where the two generated numbers are placed
- */
-void av_bmg_get(AVLFG *lfg, double out[2]);
-
-#endif /* AVUTIL_LFG_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/log.h b/src/main/jni/ffmpeg/include/libavutil/log.h
deleted file mode 100644
index 321748cd8..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/log.h
+++ /dev/null
@@ -1,359 +0,0 @@
-/*
- * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- *
- * 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 AVUTIL_LOG_H
-#define AVUTIL_LOG_H
-
-#include <stdarg.h>
-#include "avutil.h"
-#include "attributes.h"
-#include "version.h"
-
-typedef enum {
- AV_CLASS_CATEGORY_NA = 0,
- AV_CLASS_CATEGORY_INPUT,
- AV_CLASS_CATEGORY_OUTPUT,
- AV_CLASS_CATEGORY_MUXER,
- AV_CLASS_CATEGORY_DEMUXER,
- AV_CLASS_CATEGORY_ENCODER,
- AV_CLASS_CATEGORY_DECODER,
- AV_CLASS_CATEGORY_FILTER,
- AV_CLASS_CATEGORY_BITSTREAM_FILTER,
- AV_CLASS_CATEGORY_SWSCALER,
- AV_CLASS_CATEGORY_SWRESAMPLER,
- AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT = 40,
- AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT,
- AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT,
- AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT,
- AV_CLASS_CATEGORY_DEVICE_OUTPUT,
- AV_CLASS_CATEGORY_DEVICE_INPUT,
- AV_CLASS_CATEGORY_NB, ///< not part of ABI/API
-}AVClassCategory;
-
-#define AV_IS_INPUT_DEVICE(category) \
- (((category) == AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT) || \
- ((category) == AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT) || \
- ((category) == AV_CLASS_CATEGORY_DEVICE_INPUT))
-
-#define AV_IS_OUTPUT_DEVICE(category) \
- (((category) == AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT) || \
- ((category) == AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT) || \
- ((category) == AV_CLASS_CATEGORY_DEVICE_OUTPUT))
-
-struct AVOptionRanges;
-
-/**
- * Describe the class of an AVClass context structure. That is an
- * arbitrary struct of which the first field is a pointer to an
- * AVClass struct (e.g. AVCodecContext, AVFormatContext etc.).
- */
-typedef struct AVClass {
- /**
- * The name of the class; usually it is the same name as the
- * context structure type to which the AVClass is associated.
- */
- const char* class_name;
-
- /**
- * A pointer to a function which returns the name of a context
- * instance ctx associated with the class.
- */
- const char* (*item_name)(void* ctx);
-
- /**
- * a pointer to the first option specified in the class if any or NULL
- *
- * @see av_set_default_options()
- */
- const struct AVOption *option;
-
- /**
- * LIBAVUTIL_VERSION with which this structure was created.
- * This is used to allow fields to be added without requiring major
- * version bumps everywhere.
- */
-
- int version;
-
- /**
- * Offset in the structure where log_level_offset is stored.
- * 0 means there is no such variable
- */
- int log_level_offset_offset;
-
- /**
- * Offset in the structure where a pointer to the parent context for
- * logging is stored. For example a decoder could pass its AVCodecContext
- * to eval as such a parent context, which an av_log() implementation
- * could then leverage to display the parent context.
- * The offset can be NULL.
- */
- int parent_log_context_offset;
-
- /**
- * Return next AVOptions-enabled child or NULL
- */
- void* (*child_next)(void *obj, void *prev);
-
- /**
- * Return an AVClass corresponding to the next potential
- * AVOptions-enabled child.
- *
- * The difference between child_next and this is that
- * child_next iterates over _already existing_ objects, while
- * child_class_next iterates over _all possible_ children.
- */
- const struct AVClass* (*child_class_next)(const struct AVClass *prev);
-
- /**
- * Category used for visualization (like color)
- * This is only set if the category is equal for all objects using this class.
- * available since version (51 << 16 | 56 << 8 | 100)
- */
- AVClassCategory category;
-
- /**
- * Callback to return the category.
- * available since version (51 << 16 | 59 << 8 | 100)
- */
- AVClassCategory (*get_category)(void* ctx);
-
- /**
- * Callback to return the supported/allowed ranges.
- * available since version (52.12)
- */
- int (*query_ranges)(struct AVOptionRanges **, void *obj, const char *key, int flags);
-} AVClass;
-
-/**
- * @addtogroup lavu_log
- *
- * @{
- *
- * @defgroup lavu_log_constants Logging Constants
- *
- * @{
- */
-
-/**
- * Print no output.
- */
-#define AV_LOG_QUIET -8
-
-/**
- * Something went really wrong and we will crash now.
- */
-#define AV_LOG_PANIC 0
-
-/**
- * Something went wrong and recovery is not possible.
- * For example, no header was found for a format which depends
- * on headers or an illegal combination of parameters is used.
- */
-#define AV_LOG_FATAL 8
-
-/**
- * Something went wrong and cannot losslessly be recovered.
- * However, not all future data is affected.
- */
-#define AV_LOG_ERROR 16
-
-/**
- * Something somehow does not look correct. This may or may not
- * lead to problems. An example would be the use of '-vstrict -2'.
- */
-#define AV_LOG_WARNING 24
-
-/**
- * Standard information.
- */
-#define AV_LOG_INFO 32
-
-/**
- * Detailed information.
- */
-#define AV_LOG_VERBOSE 40
-
-/**
- * Stuff which is only useful for libav* developers.
- */
-#define AV_LOG_DEBUG 48
-
-/**
- * Extremely verbose debugging, useful for libav* development.
- */
-#define AV_LOG_TRACE 56
-
-#define AV_LOG_MAX_OFFSET (AV_LOG_TRACE - AV_LOG_QUIET)
-
-/**
- * @}
- */
-
-/**
- * Sets additional colors for extended debugging sessions.
- * @code
- av_log(ctx, AV_LOG_DEBUG|AV_LOG_C(134), "Message in purple\n");
- @endcode
- * Requires 256color terminal support. Uses outside debugging is not
- * recommended.
- */
-#define AV_LOG_C(x) ((x) << 8)
-
-/**
- * Send the specified message to the log if the level is less than or equal
- * to the current av_log_level. By default, all logging messages are sent to
- * stderr. This behavior can be altered by setting a different logging callback
- * function.
- * @see av_log_set_callback
- *
- * @param avcl A pointer to an arbitrary struct of which the first field is a
- * pointer to an AVClass struct or NULL if general log.
- * @param level The importance level of the message expressed using a @ref
- * lavu_log_constants "Logging Constant".
- * @param fmt The format string (printf-compatible) that specifies how
- * subsequent arguments are converted to output.
- */
-void av_log(void *avcl, int level, const char *fmt, ...) av_printf_format(3, 4);
-
-
-/**
- * Send the specified message to the log if the level is less than or equal
- * to the current av_log_level. By default, all logging messages are sent to
- * stderr. This behavior can be altered by setting a different logging callback
- * function.
- * @see av_log_set_callback
- *
- * @param avcl A pointer to an arbitrary struct of which the first field is a
- * pointer to an AVClass struct.
- * @param level The importance level of the message expressed using a @ref
- * lavu_log_constants "Logging Constant".
- * @param fmt The format string (printf-compatible) that specifies how
- * subsequent arguments are converted to output.
- * @param vl The arguments referenced by the format string.
- */
-void av_vlog(void *avcl, int level, const char *fmt, va_list vl);
-
-/**
- * Get the current log level
- *
- * @see lavu_log_constants
- *
- * @return Current log level
- */
-int av_log_get_level(void);
-
-/**
- * Set the log level
- *
- * @see lavu_log_constants
- *
- * @param level Logging level
- */
-void av_log_set_level(int level);
-
-/**
- * Set the logging callback
- *
- * @note The callback must be thread safe, even if the application does not use
- * threads itself as some codecs are multithreaded.
- *
- * @see av_log_default_callback
- *
- * @param callback A logging function with a compatible signature.
- */
-void av_log_set_callback(void (*callback)(void*, int, const char*, va_list));
-
-/**
- * Default logging callback
- *
- * It prints the message to stderr, optionally colorizing it.
- *
- * @param avcl A pointer to an arbitrary struct of which the first field is a
- * pointer to an AVClass struct.
- * @param level The importance level of the message expressed using a @ref
- * lavu_log_constants "Logging Constant".
- * @param fmt The format string (printf-compatible) that specifies how
- * subsequent arguments are converted to output.
- * @param vl The arguments referenced by the format string.
- */
-void av_log_default_callback(void *avcl, int level, const char *fmt,
- va_list vl);
-
-/**
- * Return the context name
- *
- * @param ctx The AVClass context
- *
- * @return The AVClass class_name
- */
-const char* av_default_item_name(void* ctx);
-AVClassCategory av_default_get_category(void *ptr);
-
-/**
- * Format a line of log the same way as the default callback.
- * @param line buffer to receive the formatted line
- * @param line_size size of the buffer
- * @param print_prefix used to store whether the prefix must be printed;
- * must point to a persistent integer initially set to 1
- */
-void av_log_format_line(void *ptr, int level, const char *fmt, va_list vl,
- char *line, int line_size, int *print_prefix);
-
-#if FF_API_DLOG
-/**
- * av_dlog macros
- * @deprecated unused
- * Useful to print debug messages that shouldn't get compiled in normally.
- */
-
-#ifdef DEBUG
-# define av_dlog(pctx, ...) av_log(pctx, AV_LOG_DEBUG, __VA_ARGS__)
-#else
-# define av_dlog(pctx, ...) do { if (0) av_log(pctx, AV_LOG_DEBUG, __VA_ARGS__); } while (0)
-#endif
-#endif /* FF_API_DLOG */
-
-/**
- * Skip repeated messages, this requires the user app to use av_log() instead of
- * (f)printf as the 2 would otherwise interfere and lead to
- * "Last message repeated x times" messages below (f)printf messages with some
- * bad luck.
- * Also to receive the last, "last repeated" line if any, the user app must
- * call av_log(NULL, AV_LOG_QUIET, "%s", ""); at the end
- */
-#define AV_LOG_SKIP_REPEATED 1
-
-/**
- * Include the log severity in messages originating from codecs.
- *
- * Results in messages such as:
- * [rawvideo @ 0xDEADBEEF] [error] encode did not produce valid pts
- */
-#define AV_LOG_PRINT_LEVEL 2
-
-void av_log_set_flags(int arg);
-int av_log_get_flags(void);
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_LOG_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/macros.h b/src/main/jni/ffmpeg/include/libavutil/macros.h
deleted file mode 100644
index 446532377..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/macros.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * 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
- * @ingroup lavu
- * Utility Preprocessor macros
- */
-
-#ifndef AVUTIL_MACROS_H
-#define AVUTIL_MACROS_H
-
-/**
- * @addtogroup preproc_misc Preprocessor String Macros
- *
- * String manipulation macros
- *
- * @{
- */
-
-#define AV_STRINGIFY(s) AV_TOSTRING(s)
-#define AV_TOSTRING(s) #s
-
-#define AV_GLUE(a, b) a ## b
-#define AV_JOIN(a, b) AV_GLUE(a, b)
-
-/**
- * @}
- */
-
-#define AV_PRAGMA(s) _Pragma(#s)
-
-#endif /* AVUTIL_MACROS_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/mathematics.h b/src/main/jni/ffmpeg/include/libavutil/mathematics.h
deleted file mode 100644
index 57c44f845..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/mathematics.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * copyright (c) 2005-2012 Michael Niedermayer <michaelni@gmx.at>
- *
- * 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 AVUTIL_MATHEMATICS_H
-#define AVUTIL_MATHEMATICS_H
-
-#include <stdint.h>
-#include <math.h>
-#include "attributes.h"
-#include "rational.h"
-#include "intfloat.h"
-
-#ifndef M_E
-#define M_E 2.7182818284590452354 /* e */
-#endif
-#ifndef M_LN2
-#define M_LN2 0.69314718055994530942 /* log_e 2 */
-#endif
-#ifndef M_LN10
-#define M_LN10 2.30258509299404568402 /* log_e 10 */
-#endif
-#ifndef M_LOG2_10
-#define M_LOG2_10 3.32192809488736234787 /* log_2 10 */
-#endif
-#ifndef M_PHI
-#define M_PHI 1.61803398874989484820 /* phi / golden ratio */
-#endif
-#ifndef M_PI
-#define M_PI 3.14159265358979323846 /* pi */
-#endif
-#ifndef M_PI_2
-#define M_PI_2 1.57079632679489661923 /* pi/2 */
-#endif
-#ifndef M_SQRT1_2
-#define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */
-#endif
-#ifndef M_SQRT2
-#define M_SQRT2 1.41421356237309504880 /* sqrt(2) */
-#endif
-#ifndef NAN
-#define NAN av_int2float(0x7fc00000)
-#endif
-#ifndef INFINITY
-#define INFINITY av_int2float(0x7f800000)
-#endif
-
-/**
- * @addtogroup lavu_math
- * @{
- */
-
-
-enum AVRounding {
- AV_ROUND_ZERO = 0, ///< Round toward zero.
- AV_ROUND_INF = 1, ///< Round away from zero.
- AV_ROUND_DOWN = 2, ///< Round toward -infinity.
- AV_ROUND_UP = 3, ///< Round toward +infinity.
- AV_ROUND_NEAR_INF = 5, ///< Round to nearest and halfway cases away from zero.
- AV_ROUND_PASS_MINMAX = 8192, ///< Flag to pass INT64_MIN/MAX through instead of rescaling, this avoids special cases for AV_NOPTS_VALUE
-};
-
-/**
- * Compute the greatest common divisor of a and b.
- *
- * @return gcd of a and b up to sign; if a >= 0 and b >= 0, return value is >= 0;
- * if a == 0 and b == 0, returns 0.
- */
-int64_t av_const av_gcd(int64_t a, int64_t b);
-
-/**
- * Rescale a 64-bit integer with rounding to nearest.
- * A simple a*b/c isn't possible as it can overflow.
- */
-int64_t av_rescale(int64_t a, int64_t b, int64_t c) av_const;
-
-/**
- * Rescale a 64-bit integer with specified rounding.
- * A simple a*b/c isn't possible as it can overflow.
- *
- * @return rescaled value a, or if AV_ROUND_PASS_MINMAX is set and a is
- * INT64_MIN or INT64_MAX then a is passed through unchanged.
- */
-int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding) av_const;
-
-/**
- * Rescale a 64-bit integer by 2 rational numbers.
- */
-int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq) av_const;
-
-/**
- * Rescale a 64-bit integer by 2 rational numbers with specified rounding.
- *
- * @return rescaled value a, or if AV_ROUND_PASS_MINMAX is set and a is
- * INT64_MIN or INT64_MAX then a is passed through unchanged.
- */
-int64_t av_rescale_q_rnd(int64_t a, AVRational bq, AVRational cq,
- enum AVRounding) av_const;
-
-/**
- * Compare 2 timestamps each in its own timebases.
- * The result of the function is undefined if one of the timestamps
- * is outside the int64_t range when represented in the others timebase.
- * @return -1 if ts_a is before ts_b, 1 if ts_a is after ts_b or 0 if they represent the same position
- */
-int av_compare_ts(int64_t ts_a, AVRational tb_a, int64_t ts_b, AVRational tb_b);
-
-/**
- * Compare 2 integers modulo mod.
- * That is we compare integers a and b for which only the least
- * significant log2(mod) bits are known.
- *
- * @param mod must be a power of 2
- * @return a negative value if a is smaller than b
- * a positive value if a is greater than b
- * 0 if a equals b
- */
-int64_t av_compare_mod(uint64_t a, uint64_t b, uint64_t mod);
-
-/**
- * Rescale a timestamp while preserving known durations.
- *
- * @param in_ts Input timestamp
- * @param in_tb Input timebase
- * @param fs_tb Duration and *last timebase
- * @param duration duration till the next call
- * @param out_tb Output timebase
- */
-int64_t av_rescale_delta(AVRational in_tb, int64_t in_ts, AVRational fs_tb, int duration, int64_t *last, AVRational out_tb);
-
-/**
- * Add a value to a timestamp.
- *
- * This function guarantees that when the same value is repeatly added that
- * no accumulation of rounding errors occurs.
- *
- * @param ts Input timestamp
- * @param ts_tb Input timestamp timebase
- * @param inc value to add to ts
- * @param inc_tb inc timebase
- */
-int64_t av_add_stable(AVRational ts_tb, int64_t ts, AVRational inc_tb, int64_t inc);
-
-
- /**
- * @}
- */
-
-#endif /* AVUTIL_MATHEMATICS_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/md5.h b/src/main/jni/ffmpeg/include/libavutil/md5.h
deleted file mode 100644
index 79702c88c..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/md5.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- *
- * 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 AVUTIL_MD5_H
-#define AVUTIL_MD5_H
-
-#include <stdint.h>
-
-#include "attributes.h"
-#include "version.h"
-
-/**
- * @defgroup lavu_md5 MD5
- * @ingroup lavu_crypto
- * @{
- */
-
-extern const int av_md5_size;
-
-struct AVMD5;
-
-/**
- * Allocate an AVMD5 context.
- */
-struct AVMD5 *av_md5_alloc(void);
-
-/**
- * Initialize MD5 hashing.
- *
- * @param ctx pointer to the function context (of size av_md5_size)
- */
-void av_md5_init(struct AVMD5 *ctx);
-
-/**
- * Update hash value.
- *
- * @param ctx hash function context
- * @param src input data to update hash with
- * @param len input data length
- */
-void av_md5_update(struct AVMD5 *ctx, const uint8_t *src, int len);
-
-/**
- * Finish hashing and output digest value.
- *
- * @param ctx hash function context
- * @param dst buffer where output digest value is stored
- */
-void av_md5_final(struct AVMD5 *ctx, uint8_t *dst);
-
-/**
- * Hash an array of data.
- *
- * @param dst The output buffer to write the digest into
- * @param src The data to hash
- * @param len The length of the data, in bytes
- */
-void av_md5_sum(uint8_t *dst, const uint8_t *src, const int len);
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_MD5_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/mem.h b/src/main/jni/ffmpeg/include/libavutil/mem.h
deleted file mode 100644
index d25b3229b..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/mem.h
+++ /dev/null
@@ -1,406 +0,0 @@
-/*
- * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- *
- * 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
- * memory handling functions
- */
-
-#ifndef AVUTIL_MEM_H
-#define AVUTIL_MEM_H
-
-#include <limits.h>
-#include <stdint.h>
-
-#include "attributes.h"
-#include "error.h"
-#include "avutil.h"
-
-/**
- * @addtogroup lavu_mem
- * @{
- */
-
-
-#if defined(__INTEL_COMPILER) && __INTEL_COMPILER < 1110 || defined(__SUNPRO_C)
- #define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v
- #define DECLARE_ASM_CONST(n,t,v) const t __attribute__ ((aligned (n))) v
-#elif defined(__TI_COMPILER_VERSION__)
- #define DECLARE_ALIGNED(n,t,v) \
- AV_PRAGMA(DATA_ALIGN(v,n)) \
- t __attribute__((aligned(n))) v
- #define DECLARE_ASM_CONST(n,t,v) \
- AV_PRAGMA(DATA_ALIGN(v,n)) \
- static const t __attribute__((aligned(n))) v
-#elif defined(__GNUC__)
- #define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v
- #define DECLARE_ASM_CONST(n,t,v) static const t av_used __attribute__ ((aligned (n))) v
-#elif defined(_MSC_VER)
- #define DECLARE_ALIGNED(n,t,v) __declspec(align(n)) t v
- #define DECLARE_ASM_CONST(n,t,v) __declspec(align(n)) static const t v
-#else
- #define DECLARE_ALIGNED(n,t,v) t v
- #define DECLARE_ASM_CONST(n,t,v) static const t v
-#endif
-
-#if AV_GCC_VERSION_AT_LEAST(3,1)
- #define av_malloc_attrib __attribute__((__malloc__))
-#else
- #define av_malloc_attrib
-#endif
-
-#if AV_GCC_VERSION_AT_LEAST(4,3)
- #define av_alloc_size(...) __attribute__((alloc_size(__VA_ARGS__)))
-#else
- #define av_alloc_size(...)
-#endif
-
-/**
- * Allocate a block of size bytes with alignment suitable for all
- * memory accesses (including vectors if available on the CPU).
- * @param size Size in bytes for the memory block to be allocated.
- * @return Pointer to the allocated block, NULL if the block cannot
- * be allocated.
- * @see av_mallocz()
- */
-void *av_malloc(size_t size) av_malloc_attrib av_alloc_size(1);
-
-/**
- * Allocate a block of size * nmemb bytes with av_malloc().
- * @param nmemb Number of elements
- * @param size Size of the single element
- * @return Pointer to the allocated block, NULL if the block cannot
- * be allocated.
- * @see av_malloc()
- */
-av_alloc_size(1, 2) static inline void *av_malloc_array(size_t nmemb, size_t size)
-{
- if (!size || nmemb >= INT_MAX / size)
- return NULL;
- return av_malloc(nmemb * size);
-}
-
-/**
- * Allocate or reallocate a block of memory.
- * If ptr is NULL and size > 0, allocate a new block. If
- * size is zero, free the memory block pointed to by ptr.
- * @param ptr Pointer to a memory block already allocated with
- * av_realloc() or NULL.
- * @param size Size in bytes of the memory block to be allocated or
- * reallocated.
- * @return Pointer to a newly-reallocated block or NULL if the block
- * cannot be reallocated or the function is used to free the memory block.
- * @warning Pointers originating from the av_malloc() family of functions must
- * not be passed to av_realloc(). The former can be implemented using
- * memalign() (or other functions), and there is no guarantee that
- * pointers from such functions can be passed to realloc() at all.
- * The situation is undefined according to POSIX and may crash with
- * some libc implementations.
- * @see av_fast_realloc()
- */
-void *av_realloc(void *ptr, size_t size) av_alloc_size(2);
-
-/**
- * Allocate or reallocate a block of memory.
- * This function does the same thing as av_realloc, except:
- * - It takes two arguments and checks the result of the multiplication for
- * integer overflow.
- * - It frees the input block in case of failure, thus avoiding the memory
- * leak with the classic "buf = realloc(buf); if (!buf) return -1;".
- */
-void *av_realloc_f(void *ptr, size_t nelem, size_t elsize);
-
-/**
- * Allocate or reallocate a block of memory.
- * If *ptr is NULL and size > 0, allocate a new block. If
- * size is zero, free the memory block pointed to by ptr.
- * @param ptr Pointer to a pointer to a memory block already allocated
- * with av_realloc(), or pointer to a pointer to NULL.
- * The pointer is updated on success, or freed on failure.
- * @param size Size in bytes for the memory block to be allocated or
- * reallocated
- * @return Zero on success, an AVERROR error code on failure.
- * @warning Pointers originating from the av_malloc() family of functions must
- * not be passed to av_reallocp(). The former can be implemented using
- * memalign() (or other functions), and there is no guarantee that
- * pointers from such functions can be passed to realloc() at all.
- * The situation is undefined according to POSIX and may crash with
- * some libc implementations.
- */
-av_warn_unused_result
-int av_reallocp(void *ptr, size_t size);
-
-/**
- * Allocate or reallocate an array.
- * If ptr is NULL and nmemb > 0, allocate a new block. If
- * nmemb is zero, free the memory block pointed to by ptr.
- * @param ptr Pointer to a memory block already allocated with
- * av_realloc() or NULL.
- * @param nmemb Number of elements
- * @param size Size of the single element
- * @return Pointer to a newly-reallocated block or NULL if the block
- * cannot be reallocated or the function is used to free the memory block.
- * @warning Pointers originating from the av_malloc() family of functions must
- * not be passed to av_realloc(). The former can be implemented using
- * memalign() (or other functions), and there is no guarantee that
- * pointers from such functions can be passed to realloc() at all.
- * The situation is undefined according to POSIX and may crash with
- * some libc implementations.
- */
-av_alloc_size(2, 3) void *av_realloc_array(void *ptr, size_t nmemb, size_t size);
-
-/**
- * Allocate or reallocate an array through a pointer to a pointer.
- * If *ptr is NULL and nmemb > 0, allocate a new block. If
- * nmemb is zero, free the memory block pointed to by ptr.
- * @param ptr Pointer to a pointer to a memory block already allocated
- * with av_realloc(), or pointer to a pointer to NULL.
- * The pointer is updated on success, or freed on failure.
- * @param nmemb Number of elements
- * @param size Size of the single element
- * @return Zero on success, an AVERROR error code on failure.
- * @warning Pointers originating from the av_malloc() family of functions must
- * not be passed to av_realloc(). The former can be implemented using
- * memalign() (or other functions), and there is no guarantee that
- * pointers from such functions can be passed to realloc() at all.
- * The situation is undefined according to POSIX and may crash with
- * some libc implementations.
- */
-av_alloc_size(2, 3) int av_reallocp_array(void *ptr, size_t nmemb, size_t size);
-
-/**
- * Free a memory block which has been allocated with av_malloc(z)() or
- * av_realloc().
- * @param ptr Pointer to the memory block which should be freed.
- * @note ptr = NULL is explicitly allowed.
- * @note It is recommended that you use av_freep() instead.
- * @see av_freep()
- */
-void av_free(void *ptr);
-
-/**
- * Allocate a block of size bytes with alignment suitable for all
- * memory accesses (including vectors if available on the CPU) and
- * zero all the bytes of the block.
- * @param size Size in bytes for the memory block to be allocated.
- * @return Pointer to the allocated block, NULL if it cannot be allocated.
- * @see av_malloc()
- */
-void *av_mallocz(size_t size) av_malloc_attrib av_alloc_size(1);
-
-/**
- * Allocate a block of nmemb * size bytes with alignment suitable for all
- * memory accesses (including vectors if available on the CPU) and
- * zero all the bytes of the block.
- * The allocation will fail if nmemb * size is greater than or equal
- * to INT_MAX.
- * @param nmemb
- * @param size
- * @return Pointer to the allocated block, NULL if it cannot be allocated.
- */
-void *av_calloc(size_t nmemb, size_t size) av_malloc_attrib;
-
-/**
- * Allocate a block of size * nmemb bytes with av_mallocz().
- * @param nmemb Number of elements
- * @param size Size of the single element
- * @return Pointer to the allocated block, NULL if the block cannot
- * be allocated.
- * @see av_mallocz()
- * @see av_malloc_array()
- */
-av_alloc_size(1, 2) static inline void *av_mallocz_array(size_t nmemb, size_t size)
-{
- if (!size || nmemb >= INT_MAX / size)
- return NULL;
- return av_mallocz(nmemb * size);
-}
-
-/**
- * Duplicate the string s.
- * @param s string to be duplicated
- * @return Pointer to a newly-allocated string containing a
- * copy of s or NULL if the string cannot be allocated.
- */
-char *av_strdup(const char *s) av_malloc_attrib;
-
-/**
- * Duplicate a substring of the string s.
- * @param s string to be duplicated
- * @param len the maximum length of the resulting string (not counting the
- * terminating byte).
- * @return Pointer to a newly-allocated string containing a
- * copy of s or NULL if the string cannot be allocated.
- */
-char *av_strndup(const char *s, size_t len) av_malloc_attrib;
-
-/**
- * Duplicate the buffer p.
- * @param p buffer to be duplicated
- * @return Pointer to a newly allocated buffer containing a
- * copy of p or NULL if the buffer cannot be allocated.
- */
-void *av_memdup(const void *p, size_t size);
-
-/**
- * Free a memory block which has been allocated with av_malloc(z)() or
- * av_realloc() and set the pointer pointing to it to NULL.
- * @param ptr Pointer to the pointer to the memory block which should
- * be freed.
- * @note passing a pointer to a NULL pointer is safe and leads to no action.
- * @see av_free()
- */
-void av_freep(void *ptr);
-
-/**
- * Add an element to a dynamic array.
- *
- * The array to grow is supposed to be an array of pointers to
- * structures, and the element to add must be a pointer to an already
- * allocated structure.
- *
- * The array is reallocated when its size reaches powers of 2.
- * Therefore, the amortized cost of adding an element is constant.
- *
- * In case of success, the pointer to the array is updated in order to
- * point to the new grown array, and the number pointed to by nb_ptr
- * is incremented.
- * In case of failure, the array is freed, *tab_ptr is set to NULL and
- * *nb_ptr is set to 0.
- *
- * @param tab_ptr pointer to the array to grow
- * @param nb_ptr pointer to the number of elements in the array
- * @param elem element to add
- * @see av_dynarray_add_nofree(), av_dynarray2_add()
- */
-void av_dynarray_add(void *tab_ptr, int *nb_ptr, void *elem);
-
-/**
- * Add an element to a dynamic array.
- *
- * Function has the same functionality as av_dynarray_add(),
- * but it doesn't free memory on fails. It returns error code
- * instead and leave current buffer untouched.
- *
- * @param tab_ptr pointer to the array to grow
- * @param nb_ptr pointer to the number of elements in the array
- * @param elem element to add
- * @return >=0 on success, negative otherwise.
- * @see av_dynarray_add(), av_dynarray2_add()
- */
-av_warn_unused_result
-int av_dynarray_add_nofree(void *tab_ptr, int *nb_ptr, void *elem);
-
-/**
- * Add an element of size elem_size to a dynamic array.
- *
- * The array is reallocated when its number of elements reaches powers of 2.
- * Therefore, the amortized cost of adding an element is constant.
- *
- * In case of success, the pointer to the array is updated in order to
- * point to the new grown array, and the number pointed to by nb_ptr
- * is incremented.
- * In case of failure, the array is freed, *tab_ptr is set to NULL and
- * *nb_ptr is set to 0.
- *
- * @param tab_ptr pointer to the array to grow
- * @param nb_ptr pointer to the number of elements in the array
- * @param elem_size size in bytes of the elements in the array
- * @param elem_data pointer to the data of the element to add. If NULL, the space of
- * the new added element is not filled.
- * @return pointer to the data of the element to copy in the new allocated space.
- * If NULL, the new allocated space is left uninitialized."
- * @see av_dynarray_add(), av_dynarray_add_nofree()
- */
-void *av_dynarray2_add(void **tab_ptr, int *nb_ptr, size_t elem_size,
- const uint8_t *elem_data);
-
-/**
- * Multiply two size_t values checking for overflow.
- * @return 0 if success, AVERROR(EINVAL) if overflow.
- */
-static inline int av_size_mult(size_t a, size_t b, size_t *r)
-{
- size_t t = a * b;
- /* Hack inspired from glibc: only try the division if nelem and elsize
- * are both greater than sqrt(SIZE_MAX). */
- if ((a | b) >= ((size_t)1 << (sizeof(size_t) * 4)) && a && t / a != b)
- return AVERROR(EINVAL);
- *r = t;
- return 0;
-}
-
-/**
- * Set the maximum size that may me allocated in one block.
- */
-void av_max_alloc(size_t max);
-
-/**
- * deliberately overlapping memcpy implementation
- * @param dst destination buffer
- * @param back how many bytes back we start (the initial size of the overlapping window), must be > 0
- * @param cnt number of bytes to copy, must be >= 0
- *
- * cnt > back is valid, this will copy the bytes we just copied,
- * thus creating a repeating pattern with a period length of back.
- */
-void av_memcpy_backptr(uint8_t *dst, int back, int cnt);
-
-/**
- * Reallocate the given block if it is not large enough, otherwise do nothing.
- *
- * @see av_realloc
- */
-void *av_fast_realloc(void *ptr, unsigned int *size, size_t min_size);
-
-/**
- * Allocate a buffer, reusing the given one if large enough.
- *
- * Contrary to av_fast_realloc the current buffer contents might not be
- * preserved and on error the old buffer is freed, thus no special
- * handling to avoid memleaks is necessary.
- *
- * @param ptr pointer to pointer to already allocated buffer, overwritten with pointer to new buffer
- * @param size size of the buffer *ptr points to
- * @param min_size minimum size of *ptr buffer after returning, *ptr will be NULL and
- * *size 0 if an error occurred.
- */
-void av_fast_malloc(void *ptr, unsigned int *size, size_t min_size);
-
-/**
- * Allocate a buffer, reusing the given one if large enough.
- *
- * All newly allocated space is initially cleared
- * Contrary to av_fast_realloc the current buffer contents might not be
- * preserved and on error the old buffer is freed, thus no special
- * handling to avoid memleaks is necessary.
- *
- * @param ptr pointer to pointer to already allocated buffer, overwritten with pointer to new buffer
- * @param size size of the buffer *ptr points to
- * @param min_size minimum size of *ptr buffer after returning, *ptr will be NULL and
- * *size 0 if an error occurred.
- */
-void av_fast_mallocz(void *ptr, unsigned int *size, size_t min_size);
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_MEM_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/motion_vector.h b/src/main/jni/ffmpeg/include/libavutil/motion_vector.h
deleted file mode 100644
index ec2955638..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/motion_vector.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * 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 AVUTIL_MOTION_VECTOR_H
-#define AVUTIL_MOTION_VECTOR_H
-
-#include <stdint.h>
-
-typedef struct AVMotionVector {
- /**
- * Where the current macroblock comes from; negative value when it comes
- * from the past, positive value when it comes from the future.
- * XXX: set exact relative ref frame reference instead of a +/- 1 "direction".
- */
- int32_t source;
- /**
- * Width and height of the block.
- */
- uint8_t w, h;
- /**
- * Absolute source position. Can be outside the frame area.
- */
- int16_t src_x, src_y;
- /**
- * Absolute destination position. Can be outside the frame area.
- */
- int16_t dst_x, dst_y;
- /**
- * Extra flag information.
- * Currently unused.
- */
- uint64_t flags;
- /**
- * Motion vector
- * src_x = dst_x + motion_x / motion_scale
- * src_y = dst_y + motion_y / motion_scale
- */
- int32_t motion_x, motion_y;
- uint16_t motion_scale;
-} AVMotionVector;
-
-#endif /* AVUTIL_MOTION_VECTOR_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/murmur3.h b/src/main/jni/ffmpeg/include/libavutil/murmur3.h
deleted file mode 100644
index f29ed973e..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/murmur3.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2013 Reimar Döffinger <Reimar.Doeffinger@gmx.de>
- *
- * 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 AVUTIL_MURMUR3_H
-#define AVUTIL_MURMUR3_H
-
-#include <stdint.h>
-
-struct AVMurMur3 *av_murmur3_alloc(void);
-void av_murmur3_init_seeded(struct AVMurMur3 *c, uint64_t seed);
-void av_murmur3_init(struct AVMurMur3 *c);
-void av_murmur3_update(struct AVMurMur3 *c, const uint8_t *src, int len);
-void av_murmur3_final(struct AVMurMur3 *c, uint8_t dst[16]);
-
-#endif /* AVUTIL_MURMUR3_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/opt.h b/src/main/jni/ffmpeg/include/libavutil/opt.h
deleted file mode 100644
index 753434d62..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/opt.h
+++ /dev/null
@@ -1,865 +0,0 @@
-/*
- * AVOptions
- * copyright (c) 2005 Michael Niedermayer <michaelni@gmx.at>
- *
- * 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 AVUTIL_OPT_H
-#define AVUTIL_OPT_H
-
-/**
- * @file
- * AVOptions
- */
-
-#include "rational.h"
-#include "avutil.h"
-#include "dict.h"
-#include "log.h"
-#include "pixfmt.h"
-#include "samplefmt.h"
-#include "version.h"
-
-/**
- * @defgroup avoptions AVOptions
- * @ingroup lavu_data
- * @{
- * AVOptions provide a generic system to declare options on arbitrary structs
- * ("objects"). An option can have a help text, a type and a range of possible
- * values. Options may then be enumerated, read and written to.
- *
- * @section avoptions_implement Implementing AVOptions
- * This section describes how to add AVOptions capabilities to a struct.
- *
- * All AVOptions-related information is stored in an AVClass. Therefore
- * the first member of the struct should be a pointer to an AVClass describing it.
- * The option field of the AVClass must be set to a NULL-terminated static array
- * of AVOptions. Each AVOption must have a non-empty name, a type, a default
- * value and for number-type AVOptions also a range of allowed values. It must
- * also declare an offset in bytes from the start of the struct, where the field
- * associated with this AVOption is located. Other fields in the AVOption struct
- * should also be set when applicable, but are not required.
- *
- * The following example illustrates an AVOptions-enabled struct:
- * @code
- * typedef struct test_struct {
- * AVClass *class;
- * int int_opt;
- * char *str_opt;
- * uint8_t *bin_opt;
- * int bin_len;
- * } test_struct;
- *
- * static const AVOption test_options[] = {
- * { "test_int", "This is a test option of int type.", offsetof(test_struct, int_opt),
- * AV_OPT_TYPE_INT, { .i64 = -1 }, INT_MIN, INT_MAX },
- * { "test_str", "This is a test option of string type.", offsetof(test_struct, str_opt),
- * AV_OPT_TYPE_STRING },
- * { "test_bin", "This is a test option of binary type.", offsetof(test_struct, bin_opt),
- * AV_OPT_TYPE_BINARY },
- * { NULL },
- * };
- *
- * static const AVClass test_class = {
- * .class_name = "test class",
- * .item_name = av_default_item_name,
- * .option = test_options,
- * .version = LIBAVUTIL_VERSION_INT,
- * };
- * @endcode
- *
- * Next, when allocating your struct, you must ensure that the AVClass pointer
- * is set to the correct value. Then, av_opt_set_defaults() can be called to
- * initialize defaults. After that the struct is ready to be used with the
- * AVOptions API.
- *
- * When cleaning up, you may use the av_opt_free() function to automatically
- * free all the allocated string and binary options.
- *
- * Continuing with the above example:
- *
- * @code
- * test_struct *alloc_test_struct(void)
- * {
- * test_struct *ret = av_malloc(sizeof(*ret));
- * ret->class = &test_class;
- * av_opt_set_defaults(ret);
- * return ret;
- * }
- * void free_test_struct(test_struct **foo)
- * {
- * av_opt_free(*foo);
- * av_freep(foo);
- * }
- * @endcode
- *
- * @subsection avoptions_implement_nesting Nesting
- * It may happen that an AVOptions-enabled struct contains another
- * AVOptions-enabled struct as a member (e.g. AVCodecContext in
- * libavcodec exports generic options, while its priv_data field exports
- * codec-specific options). In such a case, it is possible to set up the
- * parent struct to export a child's options. To do that, simply
- * implement AVClass.child_next() and AVClass.child_class_next() in the
- * parent struct's AVClass.
- * Assuming that the test_struct from above now also contains a
- * child_struct field:
- *
- * @code
- * typedef struct child_struct {
- * AVClass *class;
- * int flags_opt;
- * } child_struct;
- * static const AVOption child_opts[] = {
- * { "test_flags", "This is a test option of flags type.",
- * offsetof(child_struct, flags_opt), AV_OPT_TYPE_FLAGS, { .i64 = 0 }, INT_MIN, INT_MAX },
- * { NULL },
- * };
- * static const AVClass child_class = {
- * .class_name = "child class",
- * .item_name = av_default_item_name,
- * .option = child_opts,
- * .version = LIBAVUTIL_VERSION_INT,
- * };
- *
- * void *child_next(void *obj, void *prev)
- * {
- * test_struct *t = obj;
- * if (!prev && t->child_struct)
- * return t->child_struct;
- * return NULL
- * }
- * const AVClass child_class_next(const AVClass *prev)
- * {
- * return prev ? NULL : &child_class;
- * }
- * @endcode
- * Putting child_next() and child_class_next() as defined above into
- * test_class will now make child_struct's options accessible through
- * test_struct (again, proper setup as described above needs to be done on
- * child_struct right after it is created).
- *
- * From the above example it might not be clear why both child_next()
- * and child_class_next() are needed. The distinction is that child_next()
- * iterates over actually existing objects, while child_class_next()
- * iterates over all possible child classes. E.g. if an AVCodecContext
- * was initialized to use a codec which has private options, then its
- * child_next() will return AVCodecContext.priv_data and finish
- * iterating. OTOH child_class_next() on AVCodecContext.av_class will
- * iterate over all available codecs with private options.
- *
- * @subsection avoptions_implement_named_constants Named constants
- * It is possible to create named constants for options. Simply set the unit
- * field of the option the constants should apply to a string and
- * create the constants themselves as options of type AV_OPT_TYPE_CONST
- * with their unit field set to the same string.
- * Their default_val field should contain the value of the named
- * constant.
- * For example, to add some named constants for the test_flags option
- * above, put the following into the child_opts array:
- * @code
- * { "test_flags", "This is a test option of flags type.",
- * offsetof(child_struct, flags_opt), AV_OPT_TYPE_FLAGS, { .i64 = 0 }, INT_MIN, INT_MAX, "test_unit" },
- * { "flag1", "This is a flag with value 16", 0, AV_OPT_TYPE_CONST, { .i64 = 16 }, 0, 0, "test_unit" },
- * @endcode
- *
- * @section avoptions_use Using AVOptions
- * This section deals with accessing options in an AVOptions-enabled struct.
- * Such structs in FFmpeg are e.g. AVCodecContext in libavcodec or
- * AVFormatContext in libavformat.
- *
- * @subsection avoptions_use_examine Examining AVOptions
- * The basic functions for examining options are av_opt_next(), which iterates
- * over all options defined for one object, and av_opt_find(), which searches
- * for an option with the given name.
- *
- * The situation is more complicated with nesting. An AVOptions-enabled struct
- * may have AVOptions-enabled children. Passing the AV_OPT_SEARCH_CHILDREN flag
- * to av_opt_find() will make the function search children recursively.
- *
- * For enumerating there are basically two cases. The first is when you want to
- * get all options that may potentially exist on the struct and its children
- * (e.g. when constructing documentation). In that case you should call
- * av_opt_child_class_next() recursively on the parent struct's AVClass. The
- * second case is when you have an already initialized struct with all its
- * children and you want to get all options that can be actually written or read
- * from it. In that case you should call av_opt_child_next() recursively (and
- * av_opt_next() on each result).
- *
- * @subsection avoptions_use_get_set Reading and writing AVOptions
- * When setting options, you often have a string read directly from the
- * user. In such a case, simply passing it to av_opt_set() is enough. For
- * non-string type options, av_opt_set() will parse the string according to the
- * option type.
- *
- * Similarly av_opt_get() will read any option type and convert it to a string
- * which will be returned. Do not forget that the string is allocated, so you
- * have to free it with av_free().
- *
- * In some cases it may be more convenient to put all options into an
- * AVDictionary and call av_opt_set_dict() on it. A specific case of this
- * are the format/codec open functions in lavf/lavc which take a dictionary
- * filled with option as a parameter. This makes it possible to set some options
- * that cannot be set otherwise, since e.g. the input file format is not known
- * before the file is actually opened.
- */
-
-enum AVOptionType{
- AV_OPT_TYPE_FLAGS,
- AV_OPT_TYPE_INT,
- AV_OPT_TYPE_INT64,
- AV_OPT_TYPE_DOUBLE,
- AV_OPT_TYPE_FLOAT,
- AV_OPT_TYPE_STRING,
- AV_OPT_TYPE_RATIONAL,
- AV_OPT_TYPE_BINARY, ///< offset must point to a pointer immediately followed by an int for the length
- AV_OPT_TYPE_DICT,
- AV_OPT_TYPE_CONST = 128,
- AV_OPT_TYPE_IMAGE_SIZE = MKBETAG('S','I','Z','E'), ///< offset must point to two consecutive integers
- AV_OPT_TYPE_PIXEL_FMT = MKBETAG('P','F','M','T'),
- AV_OPT_TYPE_SAMPLE_FMT = MKBETAG('S','F','M','T'),
- AV_OPT_TYPE_VIDEO_RATE = MKBETAG('V','R','A','T'), ///< offset must point to AVRational
- AV_OPT_TYPE_DURATION = MKBETAG('D','U','R',' '),
- AV_OPT_TYPE_COLOR = MKBETAG('C','O','L','R'),
- AV_OPT_TYPE_CHANNEL_LAYOUT = MKBETAG('C','H','L','A'),
- AV_OPT_TYPE_BOOL = MKBETAG('B','O','O','L'),
-};
-
-/**
- * AVOption
- */
-typedef struct AVOption {
- const char *name;
-
- /**
- * short English help text
- * @todo What about other languages?
- */
- const char *help;
-
- /**
- * The offset relative to the context structure where the option
- * value is stored. It should be 0 for named constants.
- */
- int offset;
- enum AVOptionType type;
-
- /**
- * the default value for scalar options
- */
- union {
- int64_t i64;
- double dbl;
- const char *str;
- /* TODO those are unused now */
- AVRational q;
- } default_val;
- double min; ///< minimum valid value for the option
- double max; ///< maximum valid value for the option
-
- int flags;
-#define AV_OPT_FLAG_ENCODING_PARAM 1 ///< a generic parameter which can be set by the user for muxing or encoding
-#define AV_OPT_FLAG_DECODING_PARAM 2 ///< a generic parameter which can be set by the user for demuxing or decoding
-#if FF_API_OPT_TYPE_METADATA
-#define AV_OPT_FLAG_METADATA 4 ///< some data extracted or inserted into the file like title, comment, ...
-#endif
-#define AV_OPT_FLAG_AUDIO_PARAM 8
-#define AV_OPT_FLAG_VIDEO_PARAM 16
-#define AV_OPT_FLAG_SUBTITLE_PARAM 32
-/**
- * The option is inteded for exporting values to the caller.
- */
-#define AV_OPT_FLAG_EXPORT 64
-/**
- * The option may not be set through the AVOptions API, only read.
- * This flag only makes sense when AV_OPT_FLAG_EXPORT is also set.
- */
-#define AV_OPT_FLAG_READONLY 128
-#define AV_OPT_FLAG_FILTERING_PARAM (1<<16) ///< a generic parameter which can be set by the user for filtering
-//FIXME think about enc-audio, ... style flags
-
- /**
- * The logical unit to which the option belongs. Non-constant
- * options and corresponding named constants share the same
- * unit. May be NULL.
- */
- const char *unit;
-} AVOption;
-
-/**
- * A single allowed range of values, or a single allowed value.
- */
-typedef struct AVOptionRange {
- const char *str;
- /**
- * Value range.
- * For string ranges this represents the min/max length.
- * For dimensions this represents the min/max pixel count or width/height in multi-component case.
- */
- double value_min, value_max;
- /**
- * Value's component range.
- * For string this represents the unicode range for chars, 0-127 limits to ASCII.
- */
- double component_min, component_max;
- /**
- * Range flag.
- * If set to 1 the struct encodes a range, if set to 0 a single value.
- */
- int is_range;
-} AVOptionRange;
-
-/**
- * List of AVOptionRange structs.
- */
-typedef struct AVOptionRanges {
- /**
- * Array of option ranges.
- *
- * Most of option types use just one component.
- * Following describes multi-component option types:
- *
- * AV_OPT_TYPE_IMAGE_SIZE:
- * component index 0: range of pixel count (width * height).
- * component index 1: range of width.
- * component index 2: range of height.
- *
- * @note To obtain multi-component version of this structure, user must
- * provide AV_OPT_MULTI_COMPONENT_RANGE to av_opt_query_ranges or
- * av_opt_query_ranges_default function.
- *
- * Multi-component range can be read as in following example:
- *
- * @code
- * int range_index, component_index;
- * AVOptionRanges *ranges;
- * AVOptionRange *range[3]; //may require more than 3 in the future.
- * av_opt_query_ranges(&ranges, obj, key, AV_OPT_MULTI_COMPONENT_RANGE);
- * for (range_index = 0; range_index < ranges->nb_ranges; range_index++) {
- * for (component_index = 0; component_index < ranges->nb_components; component_index++)
- * range[component_index] = ranges->range[ranges->nb_ranges * component_index + range_index];
- * //do something with range here.
- * }
- * av_opt_freep_ranges(&ranges);
- * @endcode
- */
- AVOptionRange **range;
- /**
- * Number of ranges per component.
- */
- int nb_ranges;
- /**
- * Number of componentes.
- */
- int nb_components;
-} AVOptionRanges;
-
-/**
- * Show the obj options.
- *
- * @param req_flags requested flags for the options to show. Show only the
- * options for which it is opt->flags & req_flags.
- * @param rej_flags rejected flags for the options to show. Show only the
- * options for which it is !(opt->flags & req_flags).
- * @param av_log_obj log context to use for showing the options
- */
-int av_opt_show2(void *obj, void *av_log_obj, int req_flags, int rej_flags);
-
-/**
- * Set the values of all AVOption fields to their default values.
- *
- * @param s an AVOption-enabled struct (its first member must be a pointer to AVClass)
- */
-void av_opt_set_defaults(void *s);
-
-/**
- * Set the values of all AVOption fields to their default values. Only these
- * AVOption fields for which (opt->flags & mask) == flags will have their
- * default applied to s.
- *
- * @param s an AVOption-enabled struct (its first member must be a pointer to AVClass)
- * @param mask combination of AV_OPT_FLAG_*
- * @param flags combination of AV_OPT_FLAG_*
- */
-void av_opt_set_defaults2(void *s, int mask, int flags);
-
-/**
- * Parse the key/value pairs list in opts. For each key/value pair
- * found, stores the value in the field in ctx that is named like the
- * key. ctx must be an AVClass context, storing is done using
- * AVOptions.
- *
- * @param opts options string to parse, may be NULL
- * @param key_val_sep a 0-terminated list of characters used to
- * separate key from value
- * @param pairs_sep a 0-terminated list of characters used to separate
- * two pairs from each other
- * @return the number of successfully set key/value pairs, or a negative
- * value corresponding to an AVERROR code in case of error:
- * AVERROR(EINVAL) if opts cannot be parsed,
- * the error code issued by av_opt_set() if a key/value pair
- * cannot be set
- */
-int av_set_options_string(void *ctx, const char *opts,
- const char *key_val_sep, const char *pairs_sep);
-
-/**
- * Parse the key-value pairs list in opts. For each key=value pair found,
- * set the value of the corresponding option in ctx.
- *
- * @param ctx the AVClass object to set options on
- * @param opts the options string, key-value pairs separated by a
- * delimiter
- * @param shorthand a NULL-terminated array of options names for shorthand
- * notation: if the first field in opts has no key part,
- * the key is taken from the first element of shorthand;
- * then again for the second, etc., until either opts is
- * finished, shorthand is finished or a named option is
- * found; after that, all options must be named
- * @param key_val_sep a 0-terminated list of characters used to separate
- * key from value, for example '='
- * @param pairs_sep a 0-terminated list of characters used to separate
- * two pairs from each other, for example ':' or ','
- * @return the number of successfully set key=value pairs, or a negative
- * value corresponding to an AVERROR code in case of error:
- * AVERROR(EINVAL) if opts cannot be parsed,
- * the error code issued by av_set_string3() if a key/value pair
- * cannot be set
- *
- * Options names must use only the following characters: a-z A-Z 0-9 - . / _
- * Separators must use characters distinct from option names and from each
- * other.
- */
-int av_opt_set_from_string(void *ctx, const char *opts,
- const char *const *shorthand,
- const char *key_val_sep, const char *pairs_sep);
-/**
- * Free all allocated objects in obj.
- */
-void av_opt_free(void *obj);
-
-/**
- * Check whether a particular flag is set in a flags field.
- *
- * @param field_name the name of the flag field option
- * @param flag_name the name of the flag to check
- * @return non-zero if the flag is set, zero if the flag isn't set,
- * isn't of the right type, or the flags field doesn't exist.
- */
-int av_opt_flag_is_set(void *obj, const char *field_name, const char *flag_name);
-
-/**
- * Set all the options from a given dictionary on an object.
- *
- * @param obj a struct whose first element is a pointer to AVClass
- * @param options options to process. This dictionary will be freed and replaced
- * by a new one containing all options not found in obj.
- * Of course this new dictionary needs to be freed by caller
- * with av_dict_free().
- *
- * @return 0 on success, a negative AVERROR if some option was found in obj,
- * but could not be set.
- *
- * @see av_dict_copy()
- */
-int av_opt_set_dict(void *obj, struct AVDictionary **options);
-
-
-/**
- * Set all the options from a given dictionary on an object.
- *
- * @param obj a struct whose first element is a pointer to AVClass
- * @param options options to process. This dictionary will be freed and replaced
- * by a new one containing all options not found in obj.
- * Of course this new dictionary needs to be freed by caller
- * with av_dict_free().
- * @param search_flags A combination of AV_OPT_SEARCH_*.
- *
- * @return 0 on success, a negative AVERROR if some option was found in obj,
- * but could not be set.
- *
- * @see av_dict_copy()
- */
-int av_opt_set_dict2(void *obj, struct AVDictionary **options, int search_flags);
-
-/**
- * Extract a key-value pair from the beginning of a string.
- *
- * @param ropts pointer to the options string, will be updated to
- * point to the rest of the string (one of the pairs_sep
- * or the final NUL)
- * @param key_val_sep a 0-terminated list of characters used to separate
- * key from value, for example '='
- * @param pairs_sep a 0-terminated list of characters used to separate
- * two pairs from each other, for example ':' or ','
- * @param flags flags; see the AV_OPT_FLAG_* values below
- * @param rkey parsed key; must be freed using av_free()
- * @param rval parsed value; must be freed using av_free()
- *
- * @return >=0 for success, or a negative value corresponding to an
- * AVERROR code in case of error; in particular:
- * AVERROR(EINVAL) if no key is present
- *
- */
-int av_opt_get_key_value(const char **ropts,
- const char *key_val_sep, const char *pairs_sep,
- unsigned flags,
- char **rkey, char **rval);
-
-enum {
-
- /**
- * Accept to parse a value without a key; the key will then be returned
- * as NULL.
- */
- AV_OPT_FLAG_IMPLICIT_KEY = 1,
-};
-
-/**
- * @defgroup opt_eval_funcs Evaluating option strings
- * @{
- * This group of functions can be used to evaluate option strings
- * and get numbers out of them. They do the same thing as av_opt_set(),
- * except the result is written into the caller-supplied pointer.
- *
- * @param obj a struct whose first element is a pointer to AVClass.
- * @param o an option for which the string is to be evaluated.
- * @param val string to be evaluated.
- * @param *_out value of the string will be written here.
- *
- * @return 0 on success, a negative number on failure.
- */
-int av_opt_eval_flags (void *obj, const AVOption *o, const char *val, int *flags_out);
-int av_opt_eval_int (void *obj, const AVOption *o, const char *val, int *int_out);
-int av_opt_eval_int64 (void *obj, const AVOption *o, const char *val, int64_t *int64_out);
-int av_opt_eval_float (void *obj, const AVOption *o, const char *val, float *float_out);
-int av_opt_eval_double(void *obj, const AVOption *o, const char *val, double *double_out);
-int av_opt_eval_q (void *obj, const AVOption *o, const char *val, AVRational *q_out);
-/**
- * @}
- */
-
-#define AV_OPT_SEARCH_CHILDREN (1 << 0) /**< Search in possible children of the
- given object first. */
-/**
- * The obj passed to av_opt_find() is fake -- only a double pointer to AVClass
- * instead of a required pointer to a struct containing AVClass. This is
- * useful for searching for options without needing to allocate the corresponding
- * object.
- */
-#define AV_OPT_SEARCH_FAKE_OBJ (1 << 1)
-
-/**
- * In av_opt_get, return NULL if the option has a pointer type and is set to NULL,
- * rather than returning an empty string.
- */
-#define AV_OPT_ALLOW_NULL (1 << 2)
-
-/**
- * Allows av_opt_query_ranges and av_opt_query_ranges_default to return more than
- * one component for certain option types.
- * @see AVOptionRanges for details.
- */
-#define AV_OPT_MULTI_COMPONENT_RANGE (1 << 12)
-
-/**
- * Look for an option in an object. Consider only options which
- * have all the specified flags set.
- *
- * @param[in] obj A pointer to a struct whose first element is a
- * pointer to an AVClass.
- * Alternatively a double pointer to an AVClass, if
- * AV_OPT_SEARCH_FAKE_OBJ search flag is set.
- * @param[in] name The name of the option to look for.
- * @param[in] unit When searching for named constants, name of the unit
- * it belongs to.
- * @param opt_flags Find only options with all the specified flags set (AV_OPT_FLAG).
- * @param search_flags A combination of AV_OPT_SEARCH_*.
- *
- * @return A pointer to the option found, or NULL if no option
- * was found.
- *
- * @note Options found with AV_OPT_SEARCH_CHILDREN flag may not be settable
- * directly with av_opt_set(). Use special calls which take an options
- * AVDictionary (e.g. avformat_open_input()) to set options found with this
- * flag.
- */
-const AVOption *av_opt_find(void *obj, const char *name, const char *unit,
- int opt_flags, int search_flags);
-
-/**
- * Look for an option in an object. Consider only options which
- * have all the specified flags set.
- *
- * @param[in] obj A pointer to a struct whose first element is a
- * pointer to an AVClass.
- * Alternatively a double pointer to an AVClass, if
- * AV_OPT_SEARCH_FAKE_OBJ search flag is set.
- * @param[in] name The name of the option to look for.
- * @param[in] unit When searching for named constants, name of the unit
- * it belongs to.
- * @param opt_flags Find only options with all the specified flags set (AV_OPT_FLAG).
- * @param search_flags A combination of AV_OPT_SEARCH_*.
- * @param[out] target_obj if non-NULL, an object to which the option belongs will be
- * written here. It may be different from obj if AV_OPT_SEARCH_CHILDREN is present
- * in search_flags. This parameter is ignored if search_flags contain
- * AV_OPT_SEARCH_FAKE_OBJ.
- *
- * @return A pointer to the option found, or NULL if no option
- * was found.
- */
-const AVOption *av_opt_find2(void *obj, const char *name, const char *unit,
- int opt_flags, int search_flags, void **target_obj);
-
-/**
- * Iterate over all AVOptions belonging to obj.
- *
- * @param obj an AVOptions-enabled struct or a double pointer to an
- * AVClass describing it.
- * @param prev result of the previous call to av_opt_next() on this object
- * or NULL
- * @return next AVOption or NULL
- */
-const AVOption *av_opt_next(const void *obj, const AVOption *prev);
-
-/**
- * Iterate over AVOptions-enabled children of obj.
- *
- * @param prev result of a previous call to this function or NULL
- * @return next AVOptions-enabled child or NULL
- */
-void *av_opt_child_next(void *obj, void *prev);
-
-/**
- * Iterate over potential AVOptions-enabled children of parent.
- *
- * @param prev result of a previous call to this function or NULL
- * @return AVClass corresponding to next potential child or NULL
- */
-const AVClass *av_opt_child_class_next(const AVClass *parent, const AVClass *prev);
-
-/**
- * @defgroup opt_set_funcs Option setting functions
- * @{
- * Those functions set the field of obj with the given name to value.
- *
- * @param[in] obj A struct whose first element is a pointer to an AVClass.
- * @param[in] name the name of the field to set
- * @param[in] val The value to set. In case of av_opt_set() if the field is not
- * of a string type, then the given string is parsed.
- * SI postfixes and some named scalars are supported.
- * If the field is of a numeric type, it has to be a numeric or named
- * scalar. Behavior with more than one scalar and +- infix operators
- * is undefined.
- * If the field is of a flags type, it has to be a sequence of numeric
- * scalars or named flags separated by '+' or '-'. Prefixing a flag
- * with '+' causes it to be set without affecting the other flags;
- * similarly, '-' unsets a flag.
- * @param search_flags flags passed to av_opt_find2. I.e. if AV_OPT_SEARCH_CHILDREN
- * is passed here, then the option may be set on a child of obj.
- *
- * @return 0 if the value has been set, or an AVERROR code in case of
- * error:
- * AVERROR_OPTION_NOT_FOUND if no matching option exists
- * AVERROR(ERANGE) if the value is out of range
- * AVERROR(EINVAL) if the value is not valid
- */
-int av_opt_set (void *obj, const char *name, const char *val, int search_flags);
-int av_opt_set_int (void *obj, const char *name, int64_t val, int search_flags);
-int av_opt_set_double (void *obj, const char *name, double val, int search_flags);
-int av_opt_set_q (void *obj, const char *name, AVRational val, int search_flags);
-int av_opt_set_bin (void *obj, const char *name, const uint8_t *val, int size, int search_flags);
-int av_opt_set_image_size(void *obj, const char *name, int w, int h, int search_flags);
-int av_opt_set_pixel_fmt (void *obj, const char *name, enum AVPixelFormat fmt, int search_flags);
-int av_opt_set_sample_fmt(void *obj, const char *name, enum AVSampleFormat fmt, int search_flags);
-int av_opt_set_video_rate(void *obj, const char *name, AVRational val, int search_flags);
-int av_opt_set_channel_layout(void *obj, const char *name, int64_t ch_layout, int search_flags);
-/**
- * @note Any old dictionary present is discarded and replaced with a copy of the new one. The
- * caller still owns val is and responsible for freeing it.
- */
-int av_opt_set_dict_val(void *obj, const char *name, const AVDictionary *val, int search_flags);
-
-/**
- * Set a binary option to an integer list.
- *
- * @param obj AVClass object to set options on
- * @param name name of the binary option
- * @param val pointer to an integer list (must have the correct type with
- * regard to the contents of the list)
- * @param term list terminator (usually 0 or -1)
- * @param flags search flags
- */
-#define av_opt_set_int_list(obj, name, val, term, flags) \
- (av_int_list_length(val, term) > INT_MAX / sizeof(*(val)) ? \
- AVERROR(EINVAL) : \
- av_opt_set_bin(obj, name, (const uint8_t *)(val), \
- av_int_list_length(val, term) * sizeof(*(val)), flags))
-
-/**
- * @}
- */
-
-/**
- * @defgroup opt_get_funcs Option getting functions
- * @{
- * Those functions get a value of the option with the given name from an object.
- *
- * @param[in] obj a struct whose first element is a pointer to an AVClass.
- * @param[in] name name of the option to get.
- * @param[in] search_flags flags passed to av_opt_find2. I.e. if AV_OPT_SEARCH_CHILDREN
- * is passed here, then the option may be found in a child of obj.
- * @param[out] out_val value of the option will be written here
- * @return >=0 on success, a negative error code otherwise
- */
-/**
- * @note the returned string will be av_malloc()ed and must be av_free()ed by the caller
- *
- * @note if AV_OPT_ALLOW_NULL is set in search_flags in av_opt_get, and the option has
- * AV_OPT_TYPE_STRING or AV_OPT_TYPE_BINARY and is set to NULL, *out_val will be set
- * to NULL instead of an allocated empty string.
- */
-int av_opt_get (void *obj, const char *name, int search_flags, uint8_t **out_val);
-int av_opt_get_int (void *obj, const char *name, int search_flags, int64_t *out_val);
-int av_opt_get_double (void *obj, const char *name, int search_flags, double *out_val);
-int av_opt_get_q (void *obj, const char *name, int search_flags, AVRational *out_val);
-int av_opt_get_image_size(void *obj, const char *name, int search_flags, int *w_out, int *h_out);
-int av_opt_get_pixel_fmt (void *obj, const char *name, int search_flags, enum AVPixelFormat *out_fmt);
-int av_opt_get_sample_fmt(void *obj, const char *name, int search_flags, enum AVSampleFormat *out_fmt);
-int av_opt_get_video_rate(void *obj, const char *name, int search_flags, AVRational *out_val);
-int av_opt_get_channel_layout(void *obj, const char *name, int search_flags, int64_t *ch_layout);
-/**
- * @param[out] out_val The returned dictionary is a copy of the actual value and must
- * be freed with av_dict_free() by the caller
- */
-int av_opt_get_dict_val(void *obj, const char *name, int search_flags, AVDictionary **out_val);
-/**
- * @}
- */
-/**
- * Gets a pointer to the requested field in a struct.
- * This function allows accessing a struct even when its fields are moved or
- * renamed since the application making the access has been compiled,
- *
- * @returns a pointer to the field, it can be cast to the correct type and read
- * or written to.
- */
-void *av_opt_ptr(const AVClass *avclass, void *obj, const char *name);
-
-/**
- * Free an AVOptionRanges struct and set it to NULL.
- */
-void av_opt_freep_ranges(AVOptionRanges **ranges);
-
-/**
- * Get a list of allowed ranges for the given option.
- *
- * The returned list may depend on other fields in obj like for example profile.
- *
- * @param flags is a bitmask of flags, undefined flags should not be set and should be ignored
- * AV_OPT_SEARCH_FAKE_OBJ indicates that the obj is a double pointer to a AVClass instead of a full instance
- * AV_OPT_MULTI_COMPONENT_RANGE indicates that function may return more than one component, @see AVOptionRanges
- *
- * The result must be freed with av_opt_freep_ranges.
- *
- * @return number of compontents returned on success, a negative errro code otherwise
- */
-int av_opt_query_ranges(AVOptionRanges **, void *obj, const char *key, int flags);
-
-/**
- * Copy options from src object into dest object.
- *
- * Options that require memory allocation (e.g. string or binary) are malloc'ed in dest object.
- * Original memory allocated for such options is freed unless both src and dest options points to the same memory.
- *
- * @param dest Object to copy from
- * @param src Object to copy into
- * @return 0 on success, negative on error
- */
-int av_opt_copy(void *dest, const void *src);
-
-/**
- * Get a default list of allowed ranges for the given option.
- *
- * This list is constructed without using the AVClass.query_ranges() callback
- * and can be used as fallback from within the callback.
- *
- * @param flags is a bitmask of flags, undefined flags should not be set and should be ignored
- * AV_OPT_SEARCH_FAKE_OBJ indicates that the obj is a double pointer to a AVClass instead of a full instance
- * AV_OPT_MULTI_COMPONENT_RANGE indicates that function may return more than one component, @see AVOptionRanges
- *
- * The result must be freed with av_opt_free_ranges.
- *
- * @return number of compontents returned on success, a negative errro code otherwise
- */
-int av_opt_query_ranges_default(AVOptionRanges **, void *obj, const char *key, int flags);
-
-/**
- * Check if given option is set to its default value.
- *
- * Options o must belong to the obj. This function must not be called to check child's options state.
- * @see av_opt_is_set_to_default_by_name().
- *
- * @param obj AVClass object to check option on
- * @param o option to be checked
- * @return >0 when option is set to its default,
- * 0 when option is not set its default,
- * <0 on error
- */
-int av_opt_is_set_to_default(void *obj, const AVOption *o);
-
-/**
- * Check if given option is set to its default value.
- *
- * @param obj AVClass object to check option on
- * @param name option name
- * @param search_flags combination of AV_OPT_SEARCH_*
- * @return >0 when option is set to its default,
- * 0 when option is not set its default,
- * <0 on error
- */
-int av_opt_is_set_to_default_by_name(void *obj, const char *name, int search_flags);
-
-
-#define AV_OPT_SERIALIZE_SKIP_DEFAULTS 0x00000001 ///< Serialize options that are not set to default values only.
-#define AV_OPT_SERIALIZE_OPT_FLAGS_EXACT 0x00000002 ///< Serialize options that exactly match opt_flags only.
-
-/**
- * Serialize object's options.
- *
- * Create a string containing object's serialized options.
- * Such string may be passed back to av_opt_set_from_string() in order to restore option values.
- * A key/value or pairs separator occurring in the serialized value or
- * name string are escaped through the av_escape() function.
- *
- * @param[in] obj AVClass object to serialize
- * @param[in] opt_flags serialize options with all the specified flags set (AV_OPT_FLAG)
- * @param[in] flags combination of AV_OPT_SERIALIZE_* flags
- * @param[out] buffer Pointer to buffer that will be allocated with string containg serialized options.
- * Buffer must be freed by the caller when is no longer needed.
- * @param[in] key_val_sep character used to separate key from value
- * @param[in] pairs_sep character used to separate two pairs from each other
- * @return >= 0 on success, negative on error
- * @warning Separators cannot be neither '\\' nor '\0'. They also cannot be the same.
- */
-int av_opt_serialize(void *obj, int opt_flags, int flags, char **buffer,
- const char key_val_sep, const char pairs_sep);
-/**
- * @}
- */
-
-#endif /* AVUTIL_OPT_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/parseutils.h b/src/main/jni/ffmpeg/include/libavutil/parseutils.h
deleted file mode 100644
index e66d24b76..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/parseutils.h
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * 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 AVUTIL_PARSEUTILS_H
-#define AVUTIL_PARSEUTILS_H
-
-#include <time.h>
-
-#include "rational.h"
-
-/**
- * @file
- * misc parsing utilities
- */
-
-/**
- * Parse str and store the parsed ratio in q.
- *
- * Note that a ratio with infinite (1/0) or negative value is
- * considered valid, so you should check on the returned value if you
- * want to exclude those values.
- *
- * The undefined value can be expressed using the "0:0" string.
- *
- * @param[in,out] q pointer to the AVRational which will contain the ratio
- * @param[in] str the string to parse: it has to be a string in the format
- * num:den, a float number or an expression
- * @param[in] max the maximum allowed numerator and denominator
- * @param[in] log_offset log level offset which is applied to the log
- * level of log_ctx
- * @param[in] log_ctx parent logging context
- * @return >= 0 on success, a negative error code otherwise
- */
-int av_parse_ratio(AVRational *q, const char *str, int max,
- int log_offset, void *log_ctx);
-
-#define av_parse_ratio_quiet(rate, str, max) \
- av_parse_ratio(rate, str, max, AV_LOG_MAX_OFFSET, NULL)
-
-/**
- * Parse str and put in width_ptr and height_ptr the detected values.
- *
- * @param[in,out] width_ptr pointer to the variable which will contain the detected
- * width value
- * @param[in,out] height_ptr pointer to the variable which will contain the detected
- * height value
- * @param[in] str the string to parse: it has to be a string in the format
- * width x height or a valid video size abbreviation.
- * @return >= 0 on success, a negative error code otherwise
- */
-int av_parse_video_size(int *width_ptr, int *height_ptr, const char *str);
-
-/**
- * Parse str and store the detected values in *rate.
- *
- * @param[in,out] rate pointer to the AVRational which will contain the detected
- * frame rate
- * @param[in] str the string to parse: it has to be a string in the format
- * rate_num / rate_den, a float number or a valid video rate abbreviation
- * @return >= 0 on success, a negative error code otherwise
- */
-int av_parse_video_rate(AVRational *rate, const char *str);
-
-/**
- * Put the RGBA values that correspond to color_string in rgba_color.
- *
- * @param color_string a string specifying a color. It can be the name of
- * a color (case insensitive match) or a [0x|#]RRGGBB[AA] sequence,
- * possibly followed by "@" and a string representing the alpha
- * component.
- * The alpha component may be a string composed by "0x" followed by an
- * hexadecimal number or a decimal number between 0.0 and 1.0, which
- * represents the opacity value (0x00/0.0 means completely transparent,
- * 0xff/1.0 completely opaque).
- * If the alpha component is not specified then 0xff is assumed.
- * The string "random" will result in a random color.
- * @param slen length of the initial part of color_string containing the
- * color. It can be set to -1 if color_string is a null terminated string
- * containing nothing else than the color.
- * @return >= 0 in case of success, a negative value in case of
- * failure (for example if color_string cannot be parsed).
- */
-int av_parse_color(uint8_t *rgba_color, const char *color_string, int slen,
- void *log_ctx);
-
-/**
- * Get the name of a color from the internal table of hard-coded named
- * colors.
- *
- * This function is meant to enumerate the color names recognized by
- * av_parse_color().
- *
- * @param color_idx index of the requested color, starting from 0
- * @param rgbp if not NULL, will point to a 3-elements array with the color value in RGB
- * @return the color name string or NULL if color_idx is not in the array
- */
-const char *av_get_known_color_name(int color_idx, const uint8_t **rgb);
-
-/**
- * Parse timestr and return in *time a corresponding number of
- * microseconds.
- *
- * @param timeval puts here the number of microseconds corresponding
- * to the string in timestr. If the string represents a duration, it
- * is the number of microseconds contained in the time interval. If
- * the string is a date, is the number of microseconds since 1st of
- * January, 1970 up to the time of the parsed date. If timestr cannot
- * be successfully parsed, set *time to INT64_MIN.
-
- * @param timestr a string representing a date or a duration.
- * - If a date the syntax is:
- * @code
- * [{YYYY-MM-DD|YYYYMMDD}[T|t| ]]{{HH:MM:SS[.m...]]]}|{HHMMSS[.m...]]]}}[Z]
- * now
- * @endcode
- * If the value is "now" it takes the current time.
- * Time is local time unless Z is appended, in which case it is
- * interpreted as UTC.
- * If the year-month-day part is not specified it takes the current
- * year-month-day.
- * - If a duration the syntax is:
- * @code
- * [-][HH:]MM:SS[.m...]
- * [-]S+[.m...]
- * @endcode
- * @param duration flag which tells how to interpret timestr, if not
- * zero timestr is interpreted as a duration, otherwise as a date
- * @return >= 0 in case of success, a negative value corresponding to an
- * AVERROR code otherwise
- */
-int av_parse_time(int64_t *timeval, const char *timestr, int duration);
-
-/**
- * Attempt to find a specific tag in a URL.
- *
- * syntax: '?tag1=val1&tag2=val2...'. Little URL decoding is done.
- * Return 1 if found.
- */
-int av_find_info_tag(char *arg, int arg_size, const char *tag1, const char *info);
-
-/**
- * Simplified version of strptime
- *
- * Parse the input string p according to the format string fmt and
- * store its results in the structure dt.
- * This implementation supports only a subset of the formats supported
- * by the standard strptime().
- *
- * The supported input field descriptors are listed below.
- * - %H: the hour as a decimal number, using a 24-hour clock, in the
- * range '00' through '23'
- * - %J: hours as a decimal number, in the range '0' through INT_MAX
- * - %M: the minute as a decimal number, using a 24-hour clock, in the
- * range '00' through '59'
- * - %S: the second as a decimal number, using a 24-hour clock, in the
- * range '00' through '59'
- * - %Y: the year as a decimal number, using the Gregorian calendar
- * - %m: the month as a decimal number, in the range '1' through '12'
- * - %d: the day of the month as a decimal number, in the range '1'
- * through '31'
- * - %T: alias for '%H:%M:%S'
- * - %%: a literal '%'
- *
- * @return a pointer to the first character not processed in this function
- * call. In case the input string contains more characters than
- * required by the format string the return value points right after
- * the last consumed input character. In case the whole input string
- * is consumed the return value points to the null byte at the end of
- * the string. On failure NULL is returned.
- */
-char *av_small_strptime(const char *p, const char *fmt, struct tm *dt);
-
-/**
- * Convert the decomposed UTC time in tm to a time_t value.
- */
-time_t av_timegm(struct tm *tm);
-
-#endif /* AVUTIL_PARSEUTILS_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/pixdesc.h b/src/main/jni/ffmpeg/include/libavutil/pixdesc.h
deleted file mode 100644
index a6056fe1c..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/pixdesc.h
+++ /dev/null
@@ -1,394 +0,0 @@
-/*
- * pixel format descriptor
- * Copyright (c) 2009 Michael Niedermayer <michaelni@gmx.at>
- *
- * 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 AVUTIL_PIXDESC_H
-#define AVUTIL_PIXDESC_H
-
-#include <inttypes.h>
-
-#include "attributes.h"
-#include "pixfmt.h"
-#include "version.h"
-
-typedef struct AVComponentDescriptor {
- /**
- * Which of the 4 planes contains the component.
- */
- int plane;
-
- /**
- * Number of elements between 2 horizontally consecutive pixels.
- * Elements are bits for bitstream formats, bytes otherwise.
- */
- int step;
-
- /**
- * Number of elements before the component of the first pixel.
- * Elements are bits for bitstream formats, bytes otherwise.
- */
- int offset;
-
- /**
- * Number of least significant bits that must be shifted away
- * to get the value.
- */
- int shift;
-
- /**
- * Number of bits in the component.
- */
- int depth;
-
-#if FF_API_PLUS1_MINUS1
- /** deprecated, use step instead */
- attribute_deprecated int step_minus1;
-
- /** deprecated, use depth instead */
- attribute_deprecated int depth_minus1;
-
- /** deprecated, use offset instead */
- attribute_deprecated int offset_plus1;
-#endif
-} AVComponentDescriptor;
-
-/**
- * Descriptor that unambiguously describes how the bits of a pixel are
- * stored in the up to 4 data planes of an image. It also stores the
- * subsampling factors and number of components.
- *
- * @note This is separate of the colorspace (RGB, YCbCr, YPbPr, JPEG-style YUV
- * and all the YUV variants) AVPixFmtDescriptor just stores how values
- * are stored not what these values represent.
- */
-typedef struct AVPixFmtDescriptor {
- const char *name;
- uint8_t nb_components; ///< The number of components each pixel has, (1-4)
-
- /**
- * Amount to shift the luma width right to find the chroma width.
- * For YV12 this is 1 for example.
- * chroma_width = -((-luma_width) >> log2_chroma_w)
- * The note above is needed to ensure rounding up.
- * This value only refers to the chroma components.
- */
- uint8_t log2_chroma_w; ///< chroma_width = -((-luma_width )>>log2_chroma_w)
-
- /**
- * Amount to shift the luma height right to find the chroma height.
- * For YV12 this is 1 for example.
- * chroma_height= -((-luma_height) >> log2_chroma_h)
- * The note above is needed to ensure rounding up.
- * This value only refers to the chroma components.
- */
- uint8_t log2_chroma_h;
-
- /**
- * Combination of AV_PIX_FMT_FLAG_... flags.
- */
- uint64_t flags;
-
- /**
- * Parameters that describe how pixels are packed.
- * If the format has 1 or 2 components, then luma is 0.
- * If the format has 3 or 4 components:
- * if the RGB flag is set then 0 is red, 1 is green and 2 is blue;
- * otherwise 0 is luma, 1 is chroma-U and 2 is chroma-V.
- *
- * If present, the Alpha channel is always the last component.
- */
- AVComponentDescriptor comp[4];
-
- /**
- * Alternative comma-separated names.
- */
- const char *alias;
-} AVPixFmtDescriptor;
-
-/**
- * Pixel format is big-endian.
- */
-#define AV_PIX_FMT_FLAG_BE (1 << 0)
-/**
- * Pixel format has a palette in data[1], values are indexes in this palette.
- */
-#define AV_PIX_FMT_FLAG_PAL (1 << 1)
-/**
- * All values of a component are bit-wise packed end to end.
- */
-#define AV_PIX_FMT_FLAG_BITSTREAM (1 << 2)
-/**
- * Pixel format is an HW accelerated format.
- */
-#define AV_PIX_FMT_FLAG_HWACCEL (1 << 3)
-/**
- * At least one pixel component is not in the first data plane.
- */
-#define AV_PIX_FMT_FLAG_PLANAR (1 << 4)
-/**
- * The pixel format contains RGB-like data (as opposed to YUV/grayscale).
- */
-#define AV_PIX_FMT_FLAG_RGB (1 << 5)
-
-/**
- * The pixel format is "pseudo-paletted". This means that it contains a
- * fixed palette in the 2nd plane but the palette is fixed/constant for each
- * PIX_FMT. This allows interpreting the data as if it was PAL8, which can
- * in some cases be simpler. Or the data can be interpreted purely based on
- * the pixel format without using the palette.
- * An example of a pseudo-paletted format is AV_PIX_FMT_GRAY8
- */
-#define AV_PIX_FMT_FLAG_PSEUDOPAL (1 << 6)
-
-/**
- * The pixel format has an alpha channel. This is set on all formats that
- * support alpha in some way. The exception is AV_PIX_FMT_PAL8, which can
- * carry alpha as part of the palette. Details are explained in the
- * AVPixelFormat enum, and are also encoded in the corresponding
- * AVPixFmtDescriptor.
- *
- * The alpha is always straight, never pre-multiplied.
- *
- * If a codec or a filter does not support alpha, it should set all alpha to
- * opaque, or use the equivalent pixel formats without alpha component, e.g.
- * AV_PIX_FMT_RGB0 (or AV_PIX_FMT_RGB24 etc.) instead of AV_PIX_FMT_RGBA.
- */
-#define AV_PIX_FMT_FLAG_ALPHA (1 << 7)
-
-/**
- * Read a line from an image, and write the values of the
- * pixel format component c to dst.
- *
- * @param data the array containing the pointers to the planes of the image
- * @param linesize the array containing the linesizes of the image
- * @param desc the pixel format descriptor for the image
- * @param x the horizontal coordinate of the first pixel to read
- * @param y the vertical coordinate of the first pixel to read
- * @param w the width of the line to read, that is the number of
- * values to write to dst
- * @param read_pal_component if not zero and the format is a paletted
- * format writes the values corresponding to the palette
- * component c in data[1] to dst, rather than the palette indexes in
- * data[0]. The behavior is undefined if the format is not paletted.
- */
-void av_read_image_line(uint16_t *dst, const uint8_t *data[4],
- const int linesize[4], const AVPixFmtDescriptor *desc,
- int x, int y, int c, int w, int read_pal_component);
-
-/**
- * Write the values from src to the pixel format component c of an
- * image line.
- *
- * @param src array containing the values to write
- * @param data the array containing the pointers to the planes of the
- * image to write into. It is supposed to be zeroed.
- * @param linesize the array containing the linesizes of the image
- * @param desc the pixel format descriptor for the image
- * @param x the horizontal coordinate of the first pixel to write
- * @param y the vertical coordinate of the first pixel to write
- * @param w the width of the line to write, that is the number of
- * values to write to the image line
- */
-void av_write_image_line(const uint16_t *src, uint8_t *data[4],
- const int linesize[4], const AVPixFmtDescriptor *desc,
- int x, int y, int c, int w);
-
-/**
- * Return the pixel format corresponding to name.
- *
- * If there is no pixel format with name name, then looks for a
- * pixel format with the name corresponding to the native endian
- * format of name.
- * For example in a little-endian system, first looks for "gray16",
- * then for "gray16le".
- *
- * Finally if no pixel format has been found, returns AV_PIX_FMT_NONE.
- */
-enum AVPixelFormat av_get_pix_fmt(const char *name);
-
-/**
- * Return the short name for a pixel format, NULL in case pix_fmt is
- * unknown.
- *
- * @see av_get_pix_fmt(), av_get_pix_fmt_string()
- */
-const char *av_get_pix_fmt_name(enum AVPixelFormat pix_fmt);
-
-/**
- * Print in buf the string corresponding to the pixel format with
- * number pix_fmt, or a header if pix_fmt is negative.
- *
- * @param buf the buffer where to write the string
- * @param buf_size the size of buf
- * @param pix_fmt the number of the pixel format to print the
- * corresponding info string, or a negative value to print the
- * corresponding header.
- */
-char *av_get_pix_fmt_string(char *buf, int buf_size,
- enum AVPixelFormat pix_fmt);
-
-/**
- * Return the number of bits per pixel used by the pixel format
- * described by pixdesc. Note that this is not the same as the number
- * of bits per sample.
- *
- * The returned number of bits refers to the number of bits actually
- * used for storing the pixel information, that is padding bits are
- * not counted.
- */
-int av_get_bits_per_pixel(const AVPixFmtDescriptor *pixdesc);
-
-/**
- * Return the number of bits per pixel for the pixel format
- * described by pixdesc, including any padding or unused bits.
- */
-int av_get_padded_bits_per_pixel(const AVPixFmtDescriptor *pixdesc);
-
-/**
- * @return a pixel format descriptor for provided pixel format or NULL if
- * this pixel format is unknown.
- */
-const AVPixFmtDescriptor *av_pix_fmt_desc_get(enum AVPixelFormat pix_fmt);
-
-/**
- * Iterate over all pixel format descriptors known to libavutil.
- *
- * @param prev previous descriptor. NULL to get the first descriptor.
- *
- * @return next descriptor or NULL after the last descriptor
- */
-const AVPixFmtDescriptor *av_pix_fmt_desc_next(const AVPixFmtDescriptor *prev);
-
-/**
- * @return an AVPixelFormat id described by desc, or AV_PIX_FMT_NONE if desc
- * is not a valid pointer to a pixel format descriptor.
- */
-enum AVPixelFormat av_pix_fmt_desc_get_id(const AVPixFmtDescriptor *desc);
-
-/**
- * Utility function to access log2_chroma_w log2_chroma_h from
- * the pixel format AVPixFmtDescriptor.
- *
- * See av_get_chroma_sub_sample() for a function that asserts a
- * valid pixel format instead of returning an error code.
- * Its recommended that you use avcodec_get_chroma_sub_sample unless
- * you do check the return code!
- *
- * @param[in] pix_fmt the pixel format
- * @param[out] h_shift store log2_chroma_w
- * @param[out] v_shift store log2_chroma_h
- *
- * @return 0 on success, AVERROR(ENOSYS) on invalid or unknown pixel format
- */
-int av_pix_fmt_get_chroma_sub_sample(enum AVPixelFormat pix_fmt,
- int *h_shift, int *v_shift);
-
-/**
- * @return number of planes in pix_fmt, a negative AVERROR if pix_fmt is not a
- * valid pixel format.
- */
-int av_pix_fmt_count_planes(enum AVPixelFormat pix_fmt);
-
-/**
- * Utility function to swap the endianness of a pixel format.
- *
- * @param[in] pix_fmt the pixel format
- *
- * @return pixel format with swapped endianness if it exists,
- * otherwise AV_PIX_FMT_NONE
- */
-enum AVPixelFormat av_pix_fmt_swap_endianness(enum AVPixelFormat pix_fmt);
-
-#define FF_LOSS_RESOLUTION 0x0001 /**< loss due to resolution change */
-#define FF_LOSS_DEPTH 0x0002 /**< loss due to color depth change */
-#define FF_LOSS_COLORSPACE 0x0004 /**< loss due to color space conversion */
-#define FF_LOSS_ALPHA 0x0008 /**< loss of alpha bits */
-#define FF_LOSS_COLORQUANT 0x0010 /**< loss due to color quantization */
-#define FF_LOSS_CHROMA 0x0020 /**< loss of chroma (e.g. RGB to gray conversion) */
-
-/**
- * Compute what kind of losses will occur when converting from one specific
- * pixel format to another.
- * When converting from one pixel format to another, information loss may occur.
- * For example, when converting from RGB24 to GRAY, the color information will
- * be lost. Similarly, other losses occur when converting from some formats to
- * other formats. These losses can involve loss of chroma, but also loss of
- * resolution, loss of color depth, loss due to the color space conversion, loss
- * of the alpha bits or loss due to color quantization.
- * av_get_fix_fmt_loss() informs you about the various types of losses
- * which will occur when converting from one pixel format to another.
- *
- * @param[in] dst_pix_fmt destination pixel format
- * @param[in] src_pix_fmt source pixel format
- * @param[in] has_alpha Whether the source pixel format alpha channel is used.
- * @return Combination of flags informing you what kind of losses will occur
- * (maximum loss for an invalid dst_pix_fmt).
- */
-int av_get_pix_fmt_loss(enum AVPixelFormat dst_pix_fmt,
- enum AVPixelFormat src_pix_fmt,
- int has_alpha);
-
-/**
- * Compute what kind of losses will occur when converting from one specific
- * pixel format to another.
- * When converting from one pixel format to another, information loss may occur.
- * For example, when converting from RGB24 to GRAY, the color information will
- * be lost. Similarly, other losses occur when converting from some formats to
- * other formats. These losses can involve loss of chroma, but also loss of
- * resolution, loss of color depth, loss due to the color space conversion, loss
- * of the alpha bits or loss due to color quantization.
- * av_get_fix_fmt_loss() informs you about the various types of losses
- * which will occur when converting from one pixel format to another.
- *
- * @param[in] dst_pix_fmt destination pixel format
- * @param[in] src_pix_fmt source pixel format
- * @param[in] has_alpha Whether the source pixel format alpha channel is used.
- * @return Combination of flags informing you what kind of losses will occur
- * (maximum loss for an invalid dst_pix_fmt).
- */
-enum AVPixelFormat av_find_best_pix_fmt_of_2(enum AVPixelFormat dst_pix_fmt1, enum AVPixelFormat dst_pix_fmt2,
- enum AVPixelFormat src_pix_fmt, int has_alpha, int *loss_ptr);
-
-/**
- * @return the name for provided color range or NULL if unknown.
- */
-const char *av_color_range_name(enum AVColorRange range);
-
-/**
- * @return the name for provided color primaries or NULL if unknown.
- */
-const char *av_color_primaries_name(enum AVColorPrimaries primaries);
-
-/**
- * @return the name for provided color transfer or NULL if unknown.
- */
-const char *av_color_transfer_name(enum AVColorTransferCharacteristic transfer);
-
-/**
- * @return the name for provided color space or NULL if unknown.
- */
-const char *av_color_space_name(enum AVColorSpace space);
-
-/**
- * @return the name for provided chroma location or NULL if unknown.
- */
-const char *av_chroma_location_name(enum AVChromaLocation location);
-
-#endif /* AVUTIL_PIXDESC_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/pixelutils.h b/src/main/jni/ffmpeg/include/libavutil/pixelutils.h
deleted file mode 100644
index a8dbc157e..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/pixelutils.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * 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 AVUTIL_PIXELUTILS_H
-#define AVUTIL_PIXELUTILS_H
-
-#include <stddef.h>
-#include <stdint.h>
-#include "common.h"
-
-/**
- * Sum of abs(src1[x] - src2[x])
- */
-typedef int (*av_pixelutils_sad_fn)(const uint8_t *src1, ptrdiff_t stride1,
- const uint8_t *src2, ptrdiff_t stride2);
-
-/**
- * Get a potentially optimized pointer to a Sum-of-absolute-differences
- * function (see the av_pixelutils_sad_fn prototype).
- *
- * @param w_bits 1<<w_bits is the requested width of the block size
- * @param h_bits 1<<h_bits is the requested height of the block size
- * @param aligned If set to 2, the returned sad function will assume src1 and
- * src2 addresses are aligned on the block size.
- * If set to 1, the returned sad function will assume src1 is
- * aligned on the block size.
- * If set to 0, the returned sad function assume no particular
- * alignment.
- * @param log_ctx context used for logging, can be NULL
- *
- * @return a pointer to the SAD function or NULL in case of error (because of
- * invalid parameters)
- */
-av_pixelutils_sad_fn av_pixelutils_get_sad_fn(int w_bits, int h_bits,
- int aligned, void *log_ctx);
-
-#endif /* AVUTIL_PIXELUTILS_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/pixfmt.h b/src/main/jni/ffmpeg/include/libavutil/pixfmt.h
deleted file mode 100644
index 32044f077..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/pixfmt.h
+++ /dev/null
@@ -1,469 +0,0 @@
-/*
- * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- *
- * 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 AVUTIL_PIXFMT_H
-#define AVUTIL_PIXFMT_H
-
-/**
- * @file
- * pixel format definitions
- *
- */
-
-#include "libavutil/avconfig.h"
-#include "version.h"
-
-#define AVPALETTE_SIZE 1024
-#define AVPALETTE_COUNT 256
-
-/**
- * Pixel format.
- *
- * @note
- * AV_PIX_FMT_RGB32 is handled in an endian-specific manner. An RGBA
- * color is put together as:
- * (A << 24) | (R << 16) | (G << 8) | B
- * This is stored as BGRA on little-endian CPU architectures and ARGB on
- * big-endian CPUs.
- *
- * @par
- * When the pixel format is palettized RGB32 (AV_PIX_FMT_PAL8), the palettized
- * image data is stored in AVFrame.data[0]. The palette is transported in
- * AVFrame.data[1], is 1024 bytes long (256 4-byte entries) and is
- * formatted the same as in AV_PIX_FMT_RGB32 described above (i.e., it is
- * also endian-specific). Note also that the individual RGB32 palette
- * components stored in AVFrame.data[1] should be in the range 0..255.
- * This is important as many custom PAL8 video codecs that were designed
- * to run on the IBM VGA graphics adapter use 6-bit palette components.
- *
- * @par
- * For all the 8bit per pixel formats, an RGB32 palette is in data[1] like
- * for pal8. This palette is filled in automatically by the function
- * allocating the picture.
- */
-enum AVPixelFormat {
- AV_PIX_FMT_NONE = -1,
- AV_PIX_FMT_YUV420P, ///< planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
- AV_PIX_FMT_YUYV422, ///< packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr
- AV_PIX_FMT_RGB24, ///< packed RGB 8:8:8, 24bpp, RGBRGB...
- AV_PIX_FMT_BGR24, ///< packed RGB 8:8:8, 24bpp, BGRBGR...
- AV_PIX_FMT_YUV422P, ///< planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)
- AV_PIX_FMT_YUV444P, ///< planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples)
- AV_PIX_FMT_YUV410P, ///< planar YUV 4:1:0, 9bpp, (1 Cr & Cb sample per 4x4 Y samples)
- AV_PIX_FMT_YUV411P, ///< planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples)
- AV_PIX_FMT_GRAY8, ///< Y , 8bpp
- AV_PIX_FMT_MONOWHITE, ///< Y , 1bpp, 0 is white, 1 is black, in each byte pixels are ordered from the msb to the lsb
- AV_PIX_FMT_MONOBLACK, ///< Y , 1bpp, 0 is black, 1 is white, in each byte pixels are ordered from the msb to the lsb
- AV_PIX_FMT_PAL8, ///< 8 bit with AV_PIX_FMT_RGB32 palette
- AV_PIX_FMT_YUVJ420P, ///< planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV420P and setting color_range
- AV_PIX_FMT_YUVJ422P, ///< planar YUV 4:2:2, 16bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV422P and setting color_range
- AV_PIX_FMT_YUVJ444P, ///< planar YUV 4:4:4, 24bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV444P and setting color_range
-#if FF_API_XVMC
- AV_PIX_FMT_XVMC_MPEG2_MC,///< XVideo Motion Acceleration via common packet passing
- AV_PIX_FMT_XVMC_MPEG2_IDCT,
-#define AV_PIX_FMT_XVMC AV_PIX_FMT_XVMC_MPEG2_IDCT
-#endif /* FF_API_XVMC */
- AV_PIX_FMT_UYVY422, ///< packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1
- AV_PIX_FMT_UYYVYY411, ///< packed YUV 4:1:1, 12bpp, Cb Y0 Y1 Cr Y2 Y3
- AV_PIX_FMT_BGR8, ///< packed RGB 3:3:2, 8bpp, (msb)2B 3G 3R(lsb)
- AV_PIX_FMT_BGR4, ///< packed RGB 1:2:1 bitstream, 4bpp, (msb)1B 2G 1R(lsb), a byte contains two pixels, the first pixel in the byte is the one composed by the 4 msb bits
- AV_PIX_FMT_BGR4_BYTE, ///< packed RGB 1:2:1, 8bpp, (msb)1B 2G 1R(lsb)
- AV_PIX_FMT_RGB8, ///< packed RGB 3:3:2, 8bpp, (msb)2R 3G 3B(lsb)
- AV_PIX_FMT_RGB4, ///< packed RGB 1:2:1 bitstream, 4bpp, (msb)1R 2G 1B(lsb), a byte contains two pixels, the first pixel in the byte is the one composed by the 4 msb bits
- AV_PIX_FMT_RGB4_BYTE, ///< packed RGB 1:2:1, 8bpp, (msb)1R 2G 1B(lsb)
- AV_PIX_FMT_NV12, ///< planar YUV 4:2:0, 12bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (first byte U and the following byte V)
- AV_PIX_FMT_NV21, ///< as above, but U and V bytes are swapped
-
- AV_PIX_FMT_ARGB, ///< packed ARGB 8:8:8:8, 32bpp, ARGBARGB...
- AV_PIX_FMT_RGBA, ///< packed RGBA 8:8:8:8, 32bpp, RGBARGBA...
- AV_PIX_FMT_ABGR, ///< packed ABGR 8:8:8:8, 32bpp, ABGRABGR...
- AV_PIX_FMT_BGRA, ///< packed BGRA 8:8:8:8, 32bpp, BGRABGRA...
-
- AV_PIX_FMT_GRAY16BE, ///< Y , 16bpp, big-endian
- AV_PIX_FMT_GRAY16LE, ///< Y , 16bpp, little-endian
- AV_PIX_FMT_YUV440P, ///< planar YUV 4:4:0 (1 Cr & Cb sample per 1x2 Y samples)
- AV_PIX_FMT_YUVJ440P, ///< planar YUV 4:4:0 full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV440P and setting color_range
- AV_PIX_FMT_YUVA420P, ///< planar YUV 4:2:0, 20bpp, (1 Cr & Cb sample per 2x2 Y & A samples)
-#if FF_API_VDPAU
- AV_PIX_FMT_VDPAU_H264,///< H.264 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
- AV_PIX_FMT_VDPAU_MPEG1,///< MPEG-1 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
- AV_PIX_FMT_VDPAU_MPEG2,///< MPEG-2 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
- AV_PIX_FMT_VDPAU_WMV3,///< WMV3 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
- AV_PIX_FMT_VDPAU_VC1, ///< VC-1 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
-#endif
- AV_PIX_FMT_RGB48BE, ///< packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as big-endian
- AV_PIX_FMT_RGB48LE, ///< packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as little-endian
-
- AV_PIX_FMT_RGB565BE, ///< packed RGB 5:6:5, 16bpp, (msb) 5R 6G 5B(lsb), big-endian
- AV_PIX_FMT_RGB565LE, ///< packed RGB 5:6:5, 16bpp, (msb) 5R 6G 5B(lsb), little-endian
- AV_PIX_FMT_RGB555BE, ///< packed RGB 5:5:5, 16bpp, (msb)1X 5R 5G 5B(lsb), big-endian , X=unused/undefined
- AV_PIX_FMT_RGB555LE, ///< packed RGB 5:5:5, 16bpp, (msb)1X 5R 5G 5B(lsb), little-endian, X=unused/undefined
-
- AV_PIX_FMT_BGR565BE, ///< packed BGR 5:6:5, 16bpp, (msb) 5B 6G 5R(lsb), big-endian
- AV_PIX_FMT_BGR565LE, ///< packed BGR 5:6:5, 16bpp, (msb) 5B 6G 5R(lsb), little-endian
- AV_PIX_FMT_BGR555BE, ///< packed BGR 5:5:5, 16bpp, (msb)1X 5B 5G 5R(lsb), big-endian , X=unused/undefined
- AV_PIX_FMT_BGR555LE, ///< packed BGR 5:5:5, 16bpp, (msb)1X 5B 5G 5R(lsb), little-endian, X=unused/undefined
-
-#if FF_API_VAAPI
- /** @name Deprecated pixel formats */
- /**@{*/
- AV_PIX_FMT_VAAPI_MOCO, ///< HW acceleration through VA API at motion compensation entry-point, Picture.data[3] contains a vaapi_render_state struct which contains macroblocks as well as various fields extracted from headers
- AV_PIX_FMT_VAAPI_IDCT, ///< HW acceleration through VA API at IDCT entry-point, Picture.data[3] contains a vaapi_render_state struct which contains fields extracted from headers
- AV_PIX_FMT_VAAPI_VLD, ///< HW decoding through VA API, Picture.data[3] contains a vaapi_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
- /**@}*/
- AV_PIX_FMT_VAAPI = AV_PIX_FMT_VAAPI_VLD,
-#else
- /**
- * Hardware acceleration through VA-API, data[3] contains a
- * VASurfaceID.
- */
- AV_PIX_FMT_VAAPI,
-#endif
-
- AV_PIX_FMT_YUV420P16LE, ///< planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
- AV_PIX_FMT_YUV420P16BE, ///< planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
- AV_PIX_FMT_YUV422P16LE, ///< planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
- AV_PIX_FMT_YUV422P16BE, ///< planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
- AV_PIX_FMT_YUV444P16LE, ///< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
- AV_PIX_FMT_YUV444P16BE, ///< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian
-#if FF_API_VDPAU
- AV_PIX_FMT_VDPAU_MPEG4, ///< MPEG4 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
-#endif
- AV_PIX_FMT_DXVA2_VLD, ///< HW decoding through DXVA2, Picture.data[3] contains a LPDIRECT3DSURFACE9 pointer
-
- AV_PIX_FMT_RGB444LE, ///< packed RGB 4:4:4, 16bpp, (msb)4X 4R 4G 4B(lsb), little-endian, X=unused/undefined
- AV_PIX_FMT_RGB444BE, ///< packed RGB 4:4:4, 16bpp, (msb)4X 4R 4G 4B(lsb), big-endian, X=unused/undefined
- AV_PIX_FMT_BGR444LE, ///< packed BGR 4:4:4, 16bpp, (msb)4X 4B 4G 4R(lsb), little-endian, X=unused/undefined
- AV_PIX_FMT_BGR444BE, ///< packed BGR 4:4:4, 16bpp, (msb)4X 4B 4G 4R(lsb), big-endian, X=unused/undefined
- AV_PIX_FMT_YA8, ///< 8bit gray, 8bit alpha
-
- AV_PIX_FMT_Y400A = AV_PIX_FMT_YA8, ///< alias for AV_PIX_FMT_YA8
- AV_PIX_FMT_GRAY8A= AV_PIX_FMT_YA8, ///< alias for AV_PIX_FMT_YA8
-
- AV_PIX_FMT_BGR48BE, ///< packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as big-endian
- AV_PIX_FMT_BGR48LE, ///< packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as little-endian
-
- /**
- * The following 12 formats have the disadvantage of needing 1 format for each bit depth.
- * Notice that each 9/10 bits sample is stored in 16 bits with extra padding.
- * If you want to support multiple bit depths, then using AV_PIX_FMT_YUV420P16* with the bpp stored separately is better.
- */
- AV_PIX_FMT_YUV420P9BE, ///< planar YUV 4:2:0, 13.5bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
- AV_PIX_FMT_YUV420P9LE, ///< planar YUV 4:2:0, 13.5bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
- AV_PIX_FMT_YUV420P10BE,///< planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
- AV_PIX_FMT_YUV420P10LE,///< planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
- AV_PIX_FMT_YUV422P10BE,///< planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
- AV_PIX_FMT_YUV422P10LE,///< planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
- AV_PIX_FMT_YUV444P9BE, ///< planar YUV 4:4:4, 27bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian
- AV_PIX_FMT_YUV444P9LE, ///< planar YUV 4:4:4, 27bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
- AV_PIX_FMT_YUV444P10BE,///< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian
- AV_PIX_FMT_YUV444P10LE,///< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
- AV_PIX_FMT_YUV422P9BE, ///< planar YUV 4:2:2, 18bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
- AV_PIX_FMT_YUV422P9LE, ///< planar YUV 4:2:2, 18bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
- AV_PIX_FMT_VDA_VLD, ///< hardware decoding through VDA
- AV_PIX_FMT_GBRP, ///< planar GBR 4:4:4 24bpp
- AV_PIX_FMT_GBRP9BE, ///< planar GBR 4:4:4 27bpp, big-endian
- AV_PIX_FMT_GBRP9LE, ///< planar GBR 4:4:4 27bpp, little-endian
- AV_PIX_FMT_GBRP10BE, ///< planar GBR 4:4:4 30bpp, big-endian
- AV_PIX_FMT_GBRP10LE, ///< planar GBR 4:4:4 30bpp, little-endian
- AV_PIX_FMT_GBRP16BE, ///< planar GBR 4:4:4 48bpp, big-endian
- AV_PIX_FMT_GBRP16LE, ///< planar GBR 4:4:4 48bpp, little-endian
- AV_PIX_FMT_YUVA422P, ///< planar YUV 4:2:2 24bpp, (1 Cr & Cb sample per 2x1 Y & A samples)
- AV_PIX_FMT_YUVA444P, ///< planar YUV 4:4:4 32bpp, (1 Cr & Cb sample per 1x1 Y & A samples)
- AV_PIX_FMT_YUVA420P9BE, ///< planar YUV 4:2:0 22.5bpp, (1 Cr & Cb sample per 2x2 Y & A samples), big-endian
- AV_PIX_FMT_YUVA420P9LE, ///< planar YUV 4:2:0 22.5bpp, (1 Cr & Cb sample per 2x2 Y & A samples), little-endian
- AV_PIX_FMT_YUVA422P9BE, ///< planar YUV 4:2:2 27bpp, (1 Cr & Cb sample per 2x1 Y & A samples), big-endian
- AV_PIX_FMT_YUVA422P9LE, ///< planar YUV 4:2:2 27bpp, (1 Cr & Cb sample per 2x1 Y & A samples), little-endian
- AV_PIX_FMT_YUVA444P9BE, ///< planar YUV 4:4:4 36bpp, (1 Cr & Cb sample per 1x1 Y & A samples), big-endian
- AV_PIX_FMT_YUVA444P9LE, ///< planar YUV 4:4:4 36bpp, (1 Cr & Cb sample per 1x1 Y & A samples), little-endian
- AV_PIX_FMT_YUVA420P10BE, ///< planar YUV 4:2:0 25bpp, (1 Cr & Cb sample per 2x2 Y & A samples, big-endian)
- AV_PIX_FMT_YUVA420P10LE, ///< planar YUV 4:2:0 25bpp, (1 Cr & Cb sample per 2x2 Y & A samples, little-endian)
- AV_PIX_FMT_YUVA422P10BE, ///< planar YUV 4:2:2 30bpp, (1 Cr & Cb sample per 2x1 Y & A samples, big-endian)
- AV_PIX_FMT_YUVA422P10LE, ///< planar YUV 4:2:2 30bpp, (1 Cr & Cb sample per 2x1 Y & A samples, little-endian)
- AV_PIX_FMT_YUVA444P10BE, ///< planar YUV 4:4:4 40bpp, (1 Cr & Cb sample per 1x1 Y & A samples, big-endian)
- AV_PIX_FMT_YUVA444P10LE, ///< planar YUV 4:4:4 40bpp, (1 Cr & Cb sample per 1x1 Y & A samples, little-endian)
- AV_PIX_FMT_YUVA420P16BE, ///< planar YUV 4:2:0 40bpp, (1 Cr & Cb sample per 2x2 Y & A samples, big-endian)
- AV_PIX_FMT_YUVA420P16LE, ///< planar YUV 4:2:0 40bpp, (1 Cr & Cb sample per 2x2 Y & A samples, little-endian)
- AV_PIX_FMT_YUVA422P16BE, ///< planar YUV 4:2:2 48bpp, (1 Cr & Cb sample per 2x1 Y & A samples, big-endian)
- AV_PIX_FMT_YUVA422P16LE, ///< planar YUV 4:2:2 48bpp, (1 Cr & Cb sample per 2x1 Y & A samples, little-endian)
- AV_PIX_FMT_YUVA444P16BE, ///< planar YUV 4:4:4 64bpp, (1 Cr & Cb sample per 1x1 Y & A samples, big-endian)
- AV_PIX_FMT_YUVA444P16LE, ///< planar YUV 4:4:4 64bpp, (1 Cr & Cb sample per 1x1 Y & A samples, little-endian)
-
- AV_PIX_FMT_VDPAU, ///< HW acceleration through VDPAU, Picture.data[3] contains a VdpVideoSurface
-
- AV_PIX_FMT_XYZ12LE, ///< packed XYZ 4:4:4, 36 bpp, (msb) 12X, 12Y, 12Z (lsb), the 2-byte value for each X/Y/Z is stored as little-endian, the 4 lower bits are set to 0
- AV_PIX_FMT_XYZ12BE, ///< packed XYZ 4:4:4, 36 bpp, (msb) 12X, 12Y, 12Z (lsb), the 2-byte value for each X/Y/Z is stored as big-endian, the 4 lower bits are set to 0
- AV_PIX_FMT_NV16, ///< interleaved chroma YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)
- AV_PIX_FMT_NV20LE, ///< interleaved chroma YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
- AV_PIX_FMT_NV20BE, ///< interleaved chroma YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
-
- AV_PIX_FMT_RGBA64BE, ///< packed RGBA 16:16:16:16, 64bpp, 16R, 16G, 16B, 16A, the 2-byte value for each R/G/B/A component is stored as big-endian
- AV_PIX_FMT_RGBA64LE, ///< packed RGBA 16:16:16:16, 64bpp, 16R, 16G, 16B, 16A, the 2-byte value for each R/G/B/A component is stored as little-endian
- AV_PIX_FMT_BGRA64BE, ///< packed RGBA 16:16:16:16, 64bpp, 16B, 16G, 16R, 16A, the 2-byte value for each R/G/B/A component is stored as big-endian
- AV_PIX_FMT_BGRA64LE, ///< packed RGBA 16:16:16:16, 64bpp, 16B, 16G, 16R, 16A, the 2-byte value for each R/G/B/A component is stored as little-endian
-
- AV_PIX_FMT_YVYU422, ///< packed YUV 4:2:2, 16bpp, Y0 Cr Y1 Cb
-
- AV_PIX_FMT_VDA, ///< HW acceleration through VDA, data[3] contains a CVPixelBufferRef
-
- AV_PIX_FMT_YA16BE, ///< 16bit gray, 16bit alpha (big-endian)
- AV_PIX_FMT_YA16LE, ///< 16bit gray, 16bit alpha (little-endian)
-
- AV_PIX_FMT_GBRAP, ///< planar GBRA 4:4:4:4 32bpp
- AV_PIX_FMT_GBRAP16BE, ///< planar GBRA 4:4:4:4 64bpp, big-endian
- AV_PIX_FMT_GBRAP16LE, ///< planar GBRA 4:4:4:4 64bpp, little-endian
- /**
- * HW acceleration through QSV, data[3] contains a pointer to the
- * mfxFrameSurface1 structure.
- */
- AV_PIX_FMT_QSV,
- /**
- * HW acceleration though MMAL, data[3] contains a pointer to the
- * MMAL_BUFFER_HEADER_T structure.
- */
- AV_PIX_FMT_MMAL,
-
- AV_PIX_FMT_D3D11VA_VLD, ///< HW decoding through Direct3D11, Picture.data[3] contains a ID3D11VideoDecoderOutputView pointer
-
- AV_PIX_FMT_0RGB=0x123+4,///< packed RGB 8:8:8, 32bpp, XRGBXRGB... X=unused/undefined
- AV_PIX_FMT_RGB0, ///< packed RGB 8:8:8, 32bpp, RGBXRGBX... X=unused/undefined
- AV_PIX_FMT_0BGR, ///< packed BGR 8:8:8, 32bpp, XBGRXBGR... X=unused/undefined
- AV_PIX_FMT_BGR0, ///< packed BGR 8:8:8, 32bpp, BGRXBGRX... X=unused/undefined
-
- AV_PIX_FMT_YUV420P12BE, ///< planar YUV 4:2:0,18bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
- AV_PIX_FMT_YUV420P12LE, ///< planar YUV 4:2:0,18bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
- AV_PIX_FMT_YUV420P14BE, ///< planar YUV 4:2:0,21bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
- AV_PIX_FMT_YUV420P14LE, ///< planar YUV 4:2:0,21bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
- AV_PIX_FMT_YUV422P12BE, ///< planar YUV 4:2:2,24bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
- AV_PIX_FMT_YUV422P12LE, ///< planar YUV 4:2:2,24bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
- AV_PIX_FMT_YUV422P14BE, ///< planar YUV 4:2:2,28bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
- AV_PIX_FMT_YUV422P14LE, ///< planar YUV 4:2:2,28bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
- AV_PIX_FMT_YUV444P12BE, ///< planar YUV 4:4:4,36bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian
- AV_PIX_FMT_YUV444P12LE, ///< planar YUV 4:4:4,36bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
- AV_PIX_FMT_YUV444P14BE, ///< planar YUV 4:4:4,42bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian
- AV_PIX_FMT_YUV444P14LE, ///< planar YUV 4:4:4,42bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
- AV_PIX_FMT_GBRP12BE, ///< planar GBR 4:4:4 36bpp, big-endian
- AV_PIX_FMT_GBRP12LE, ///< planar GBR 4:4:4 36bpp, little-endian
- AV_PIX_FMT_GBRP14BE, ///< planar GBR 4:4:4 42bpp, big-endian
- AV_PIX_FMT_GBRP14LE, ///< planar GBR 4:4:4 42bpp, little-endian
- AV_PIX_FMT_YUVJ411P, ///< planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples) full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV411P and setting color_range
-
- AV_PIX_FMT_BAYER_BGGR8, ///< bayer, BGBG..(odd line), GRGR..(even line), 8-bit samples */
- AV_PIX_FMT_BAYER_RGGB8, ///< bayer, RGRG..(odd line), GBGB..(even line), 8-bit samples */
- AV_PIX_FMT_BAYER_GBRG8, ///< bayer, GBGB..(odd line), RGRG..(even line), 8-bit samples */
- AV_PIX_FMT_BAYER_GRBG8, ///< bayer, GRGR..(odd line), BGBG..(even line), 8-bit samples */
- AV_PIX_FMT_BAYER_BGGR16LE, ///< bayer, BGBG..(odd line), GRGR..(even line), 16-bit samples, little-endian */
- AV_PIX_FMT_BAYER_BGGR16BE, ///< bayer, BGBG..(odd line), GRGR..(even line), 16-bit samples, big-endian */
- AV_PIX_FMT_BAYER_RGGB16LE, ///< bayer, RGRG..(odd line), GBGB..(even line), 16-bit samples, little-endian */
- AV_PIX_FMT_BAYER_RGGB16BE, ///< bayer, RGRG..(odd line), GBGB..(even line), 16-bit samples, big-endian */
- AV_PIX_FMT_BAYER_GBRG16LE, ///< bayer, GBGB..(odd line), RGRG..(even line), 16-bit samples, little-endian */
- AV_PIX_FMT_BAYER_GBRG16BE, ///< bayer, GBGB..(odd line), RGRG..(even line), 16-bit samples, big-endian */
- AV_PIX_FMT_BAYER_GRBG16LE, ///< bayer, GRGR..(odd line), BGBG..(even line), 16-bit samples, little-endian */
- AV_PIX_FMT_BAYER_GRBG16BE, ///< bayer, GRGR..(odd line), BGBG..(even line), 16-bit samples, big-endian */
-#if !FF_API_XVMC
- AV_PIX_FMT_XVMC,///< XVideo Motion Acceleration via common packet passing
-#endif /* !FF_API_XVMC */
- AV_PIX_FMT_YUV440P10LE, ///< planar YUV 4:4:0,20bpp, (1 Cr & Cb sample per 1x2 Y samples), little-endian
- AV_PIX_FMT_YUV440P10BE, ///< planar YUV 4:4:0,20bpp, (1 Cr & Cb sample per 1x2 Y samples), big-endian
- AV_PIX_FMT_YUV440P12LE, ///< planar YUV 4:4:0,24bpp, (1 Cr & Cb sample per 1x2 Y samples), little-endian
- AV_PIX_FMT_YUV440P12BE, ///< planar YUV 4:4:0,24bpp, (1 Cr & Cb sample per 1x2 Y samples), big-endian
- AV_PIX_FMT_AYUV64LE, ///< packed AYUV 4:4:4,64bpp (1 Cr & Cb sample per 1x1 Y & A samples), little-endian
- AV_PIX_FMT_AYUV64BE, ///< packed AYUV 4:4:4,64bpp (1 Cr & Cb sample per 1x1 Y & A samples), big-endian
-
- AV_PIX_FMT_VIDEOTOOLBOX, ///< hardware decoding through Videotoolbox
-
- AV_PIX_FMT_NB, ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions
-};
-
-#define AV_PIX_FMT_Y400A AV_PIX_FMT_GRAY8A
-#define AV_PIX_FMT_GBR24P AV_PIX_FMT_GBRP
-
-#if AV_HAVE_BIGENDIAN
-# define AV_PIX_FMT_NE(be, le) AV_PIX_FMT_##be
-#else
-# define AV_PIX_FMT_NE(be, le) AV_PIX_FMT_##le
-#endif
-
-#define AV_PIX_FMT_RGB32 AV_PIX_FMT_NE(ARGB, BGRA)
-#define AV_PIX_FMT_RGB32_1 AV_PIX_FMT_NE(RGBA, ABGR)
-#define AV_PIX_FMT_BGR32 AV_PIX_FMT_NE(ABGR, RGBA)
-#define AV_PIX_FMT_BGR32_1 AV_PIX_FMT_NE(BGRA, ARGB)
-#define AV_PIX_FMT_0RGB32 AV_PIX_FMT_NE(0RGB, BGR0)
-#define AV_PIX_FMT_0BGR32 AV_PIX_FMT_NE(0BGR, RGB0)
-
-#define AV_PIX_FMT_GRAY16 AV_PIX_FMT_NE(GRAY16BE, GRAY16LE)
-#define AV_PIX_FMT_YA16 AV_PIX_FMT_NE(YA16BE, YA16LE)
-#define AV_PIX_FMT_RGB48 AV_PIX_FMT_NE(RGB48BE, RGB48LE)
-#define AV_PIX_FMT_RGB565 AV_PIX_FMT_NE(RGB565BE, RGB565LE)
-#define AV_PIX_FMT_RGB555 AV_PIX_FMT_NE(RGB555BE, RGB555LE)
-#define AV_PIX_FMT_RGB444 AV_PIX_FMT_NE(RGB444BE, RGB444LE)
-#define AV_PIX_FMT_RGBA64 AV_PIX_FMT_NE(RGBA64BE, RGBA64LE)
-#define AV_PIX_FMT_BGR48 AV_PIX_FMT_NE(BGR48BE, BGR48LE)
-#define AV_PIX_FMT_BGR565 AV_PIX_FMT_NE(BGR565BE, BGR565LE)
-#define AV_PIX_FMT_BGR555 AV_PIX_FMT_NE(BGR555BE, BGR555LE)
-#define AV_PIX_FMT_BGR444 AV_PIX_FMT_NE(BGR444BE, BGR444LE)
-#define AV_PIX_FMT_BGRA64 AV_PIX_FMT_NE(BGRA64BE, BGRA64LE)
-
-#define AV_PIX_FMT_YUV420P9 AV_PIX_FMT_NE(YUV420P9BE , YUV420P9LE)
-#define AV_PIX_FMT_YUV422P9 AV_PIX_FMT_NE(YUV422P9BE , YUV422P9LE)
-#define AV_PIX_FMT_YUV444P9 AV_PIX_FMT_NE(YUV444P9BE , YUV444P9LE)
-#define AV_PIX_FMT_YUV420P10 AV_PIX_FMT_NE(YUV420P10BE, YUV420P10LE)
-#define AV_PIX_FMT_YUV422P10 AV_PIX_FMT_NE(YUV422P10BE, YUV422P10LE)
-#define AV_PIX_FMT_YUV440P10 AV_PIX_FMT_NE(YUV440P10BE, YUV440P10LE)
-#define AV_PIX_FMT_YUV444P10 AV_PIX_FMT_NE(YUV444P10BE, YUV444P10LE)
-#define AV_PIX_FMT_YUV420P12 AV_PIX_FMT_NE(YUV420P12BE, YUV420P12LE)
-#define AV_PIX_FMT_YUV422P12 AV_PIX_FMT_NE(YUV422P12BE, YUV422P12LE)
-#define AV_PIX_FMT_YUV440P12 AV_PIX_FMT_NE(YUV440P12BE, YUV440P12LE)
-#define AV_PIX_FMT_YUV444P12 AV_PIX_FMT_NE(YUV444P12BE, YUV444P12LE)
-#define AV_PIX_FMT_YUV420P14 AV_PIX_FMT_NE(YUV420P14BE, YUV420P14LE)
-#define AV_PIX_FMT_YUV422P14 AV_PIX_FMT_NE(YUV422P14BE, YUV422P14LE)
-#define AV_PIX_FMT_YUV444P14 AV_PIX_FMT_NE(YUV444P14BE, YUV444P14LE)
-#define AV_PIX_FMT_YUV420P16 AV_PIX_FMT_NE(YUV420P16BE, YUV420P16LE)
-#define AV_PIX_FMT_YUV422P16 AV_PIX_FMT_NE(YUV422P16BE, YUV422P16LE)
-#define AV_PIX_FMT_YUV444P16 AV_PIX_FMT_NE(YUV444P16BE, YUV444P16LE)
-
-#define AV_PIX_FMT_GBRP9 AV_PIX_FMT_NE(GBRP9BE , GBRP9LE)
-#define AV_PIX_FMT_GBRP10 AV_PIX_FMT_NE(GBRP10BE, GBRP10LE)
-#define AV_PIX_FMT_GBRP12 AV_PIX_FMT_NE(GBRP12BE, GBRP12LE)
-#define AV_PIX_FMT_GBRP14 AV_PIX_FMT_NE(GBRP14BE, GBRP14LE)
-#define AV_PIX_FMT_GBRP16 AV_PIX_FMT_NE(GBRP16BE, GBRP16LE)
-#define AV_PIX_FMT_GBRAP16 AV_PIX_FMT_NE(GBRAP16BE, GBRAP16LE)
-
-#define AV_PIX_FMT_BAYER_BGGR16 AV_PIX_FMT_NE(BAYER_BGGR16BE, BAYER_BGGR16LE)
-#define AV_PIX_FMT_BAYER_RGGB16 AV_PIX_FMT_NE(BAYER_RGGB16BE, BAYER_RGGB16LE)
-#define AV_PIX_FMT_BAYER_GBRG16 AV_PIX_FMT_NE(BAYER_GBRG16BE, BAYER_GBRG16LE)
-#define AV_PIX_FMT_BAYER_GRBG16 AV_PIX_FMT_NE(BAYER_GRBG16BE, BAYER_GRBG16LE)
-
-
-#define AV_PIX_FMT_YUVA420P9 AV_PIX_FMT_NE(YUVA420P9BE , YUVA420P9LE)
-#define AV_PIX_FMT_YUVA422P9 AV_PIX_FMT_NE(YUVA422P9BE , YUVA422P9LE)
-#define AV_PIX_FMT_YUVA444P9 AV_PIX_FMT_NE(YUVA444P9BE , YUVA444P9LE)
-#define AV_PIX_FMT_YUVA420P10 AV_PIX_FMT_NE(YUVA420P10BE, YUVA420P10LE)
-#define AV_PIX_FMT_YUVA422P10 AV_PIX_FMT_NE(YUVA422P10BE, YUVA422P10LE)
-#define AV_PIX_FMT_YUVA444P10 AV_PIX_FMT_NE(YUVA444P10BE, YUVA444P10LE)
-#define AV_PIX_FMT_YUVA420P16 AV_PIX_FMT_NE(YUVA420P16BE, YUVA420P16LE)
-#define AV_PIX_FMT_YUVA422P16 AV_PIX_FMT_NE(YUVA422P16BE, YUVA422P16LE)
-#define AV_PIX_FMT_YUVA444P16 AV_PIX_FMT_NE(YUVA444P16BE, YUVA444P16LE)
-
-#define AV_PIX_FMT_XYZ12 AV_PIX_FMT_NE(XYZ12BE, XYZ12LE)
-#define AV_PIX_FMT_NV20 AV_PIX_FMT_NE(NV20BE, NV20LE)
-#define AV_PIX_FMT_AYUV64 AV_PIX_FMT_NE(AYUV64BE, AYUV64LE)
-
-/**
- * Chromaticity coordinates of the source primaries.
- */
-enum AVColorPrimaries {
- AVCOL_PRI_RESERVED0 = 0,
- AVCOL_PRI_BT709 = 1, ///< also ITU-R BT1361 / IEC 61966-2-4 / SMPTE RP177 Annex B
- AVCOL_PRI_UNSPECIFIED = 2,
- AVCOL_PRI_RESERVED = 3,
- AVCOL_PRI_BT470M = 4, ///< also FCC Title 47 Code of Federal Regulations 73.682 (a)(20)
-
- AVCOL_PRI_BT470BG = 5, ///< also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM
- AVCOL_PRI_SMPTE170M = 6, ///< also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC
- AVCOL_PRI_SMPTE240M = 7, ///< functionally identical to above
- AVCOL_PRI_FILM = 8, ///< colour filters using Illuminant C
- AVCOL_PRI_BT2020 = 9, ///< ITU-R BT2020
- AVCOL_PRI_SMPTEST428_1= 10, ///< SMPTE ST 428-1 (CIE 1931 XYZ)
- AVCOL_PRI_NB, ///< Not part of ABI
-};
-
-/**
- * Color Transfer Characteristic.
- */
-enum AVColorTransferCharacteristic {
- AVCOL_TRC_RESERVED0 = 0,
- AVCOL_TRC_BT709 = 1, ///< also ITU-R BT1361
- AVCOL_TRC_UNSPECIFIED = 2,
- AVCOL_TRC_RESERVED = 3,
- AVCOL_TRC_GAMMA22 = 4, ///< also ITU-R BT470M / ITU-R BT1700 625 PAL & SECAM
- AVCOL_TRC_GAMMA28 = 5, ///< also ITU-R BT470BG
- AVCOL_TRC_SMPTE170M = 6, ///< also ITU-R BT601-6 525 or 625 / ITU-R BT1358 525 or 625 / ITU-R BT1700 NTSC
- AVCOL_TRC_SMPTE240M = 7,
- AVCOL_TRC_LINEAR = 8, ///< "Linear transfer characteristics"
- AVCOL_TRC_LOG = 9, ///< "Logarithmic transfer characteristic (100:1 range)"
- AVCOL_TRC_LOG_SQRT = 10, ///< "Logarithmic transfer characteristic (100 * Sqrt(10) : 1 range)"
- AVCOL_TRC_IEC61966_2_4 = 11, ///< IEC 61966-2-4
- AVCOL_TRC_BT1361_ECG = 12, ///< ITU-R BT1361 Extended Colour Gamut
- AVCOL_TRC_IEC61966_2_1 = 13, ///< IEC 61966-2-1 (sRGB or sYCC)
- AVCOL_TRC_BT2020_10 = 14, ///< ITU-R BT2020 for 10 bit system
- AVCOL_TRC_BT2020_12 = 15, ///< ITU-R BT2020 for 12 bit system
- AVCOL_TRC_SMPTEST2084 = 16, ///< SMPTE ST 2084 for 10, 12, 14 and 16 bit systems
- AVCOL_TRC_SMPTEST428_1 = 17, ///< SMPTE ST 428-1
- AVCOL_TRC_NB, ///< Not part of ABI
-};
-
-/**
- * YUV colorspace type.
- */
-enum AVColorSpace {
- AVCOL_SPC_RGB = 0, ///< order of coefficients is actually GBR, also IEC 61966-2-1 (sRGB)
- AVCOL_SPC_BT709 = 1, ///< also ITU-R BT1361 / IEC 61966-2-4 xvYCC709 / SMPTE RP177 Annex B
- AVCOL_SPC_UNSPECIFIED = 2,
- AVCOL_SPC_RESERVED = 3,
- AVCOL_SPC_FCC = 4, ///< FCC Title 47 Code of Federal Regulations 73.682 (a)(20)
- AVCOL_SPC_BT470BG = 5, ///< also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM / IEC 61966-2-4 xvYCC601
- AVCOL_SPC_SMPTE170M = 6, ///< also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC / functionally identical to above
- AVCOL_SPC_SMPTE240M = 7,
- AVCOL_SPC_YCOCG = 8, ///< Used by Dirac / VC-2 and H.264 FRext, see ITU-T SG16
- AVCOL_SPC_BT2020_NCL = 9, ///< ITU-R BT2020 non-constant luminance system
- AVCOL_SPC_BT2020_CL = 10, ///< ITU-R BT2020 constant luminance system
- AVCOL_SPC_NB, ///< Not part of ABI
-};
-#define AVCOL_SPC_YCGCO AVCOL_SPC_YCOCG
-
-
-/**
- * MPEG vs JPEG YUV range.
- */
-enum AVColorRange {
- AVCOL_RANGE_UNSPECIFIED = 0,
- AVCOL_RANGE_MPEG = 1, ///< the normal 219*2^(n-8) "MPEG" YUV ranges
- AVCOL_RANGE_JPEG = 2, ///< the normal 2^n-1 "JPEG" YUV ranges
- AVCOL_RANGE_NB, ///< Not part of ABI
-};
-
-/**
- * Location of chroma samples.
- *
- * Illustration showing the location of the first (top left) chroma sample of the
- * image, the left shows only luma, the right
- * shows the location of the chroma sample, the 2 could be imagined to overlay
- * each other but are drawn separately due to limitations of ASCII
- *
- * 1st 2nd 1st 2nd horizontal luma sample positions
- * v v v v
- * ______ ______
- *1st luma line > |X X ... |3 4 X ... X are luma samples,
- * | |1 2 1-6 are possible chroma positions
- *2nd luma line > |X X ... |5 6 X ... 0 is undefined/unknown position
- */
-enum AVChromaLocation {
- AVCHROMA_LOC_UNSPECIFIED = 0,
- AVCHROMA_LOC_LEFT = 1, ///< mpeg2/4 4:2:0, h264 default for 4:2:0
- AVCHROMA_LOC_CENTER = 2, ///< mpeg1 4:2:0, jpeg 4:2:0, h263 4:2:0
- AVCHROMA_LOC_TOPLEFT = 3, ///< ITU-R 601, SMPTE 274M 296M S314M(DV 4:1:1), mpeg2 4:2:2
- AVCHROMA_LOC_TOP = 4,
- AVCHROMA_LOC_BOTTOMLEFT = 5,
- AVCHROMA_LOC_BOTTOM = 6,
- AVCHROMA_LOC_NB, ///< Not part of ABI
-};
-
-#endif /* AVUTIL_PIXFMT_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/random_seed.h b/src/main/jni/ffmpeg/include/libavutil/random_seed.h
deleted file mode 100644
index 0462a048e..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/random_seed.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (c) 2009 Baptiste Coudurier <baptiste.coudurier@gmail.com>
- *
- * 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 AVUTIL_RANDOM_SEED_H
-#define AVUTIL_RANDOM_SEED_H
-
-#include <stdint.h>
-/**
- * @addtogroup lavu_crypto
- * @{
- */
-
-/**
- * Get a seed to use in conjunction with random functions.
- * This function tries to provide a good seed at a best effort bases.
- * Its possible to call this function multiple times if more bits are needed.
- * It can be quite slow, which is why it should only be used as seed for a faster
- * PRNG. The quality of the seed depends on the platform.
- */
-uint32_t av_get_random_seed(void);
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_RANDOM_SEED_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/rational.h b/src/main/jni/ffmpeg/include/libavutil/rational.h
deleted file mode 100644
index 289746968..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/rational.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * rational numbers
- * Copyright (c) 2003 Michael Niedermayer <michaelni@gmx.at>
- *
- * 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
- * rational numbers
- * @author Michael Niedermayer <michaelni@gmx.at>
- */
-
-#ifndef AVUTIL_RATIONAL_H
-#define AVUTIL_RATIONAL_H
-
-#include <stdint.h>
-#include <limits.h>
-#include "attributes.h"
-
-/**
- * @addtogroup lavu_math
- * @{
- */
-
-/**
- * rational number numerator/denominator
- */
-typedef struct AVRational{
- int num; ///< numerator
- int den; ///< denominator
-} AVRational;
-
-/**
- * Create a rational.
- * Useful for compilers that do not support compound literals.
- * @note The return value is not reduced.
- */
-static inline AVRational av_make_q(int num, int den)
-{
- AVRational r = { num, den };
- return r;
-}
-
-/**
- * Compare two rationals.
- * @param a first rational
- * @param b second rational
- * @return 0 if a==b, 1 if a>b, -1 if a<b, and INT_MIN if one of the
- * values is of the form 0/0
- */
-static inline int av_cmp_q(AVRational a, AVRational b){
- const int64_t tmp= a.num * (int64_t)b.den - b.num * (int64_t)a.den;
-
- if(tmp) return (int)((tmp ^ a.den ^ b.den)>>63)|1;
- else if(b.den && a.den) return 0;
- else if(a.num && b.num) return (a.num>>31) - (b.num>>31);
- else return INT_MIN;
-}
-
-/**
- * Convert rational to double.
- * @param a rational to convert
- * @return (double) a
- */
-static inline double av_q2d(AVRational a){
- return a.num / (double) a.den;
-}
-
-/**
- * Reduce a fraction.
- * This is useful for framerate calculations.
- * @param dst_num destination numerator
- * @param dst_den destination denominator
- * @param num source numerator
- * @param den source denominator
- * @param max the maximum allowed for dst_num & dst_den
- * @return 1 if exact, 0 otherwise
- */
-int av_reduce(int *dst_num, int *dst_den, int64_t num, int64_t den, int64_t max);
-
-/**
- * Multiply two rationals.
- * @param b first rational
- * @param c second rational
- * @return b*c
- */
-AVRational av_mul_q(AVRational b, AVRational c) av_const;
-
-/**
- * Divide one rational by another.
- * @param b first rational
- * @param c second rational
- * @return b/c
- */
-AVRational av_div_q(AVRational b, AVRational c) av_const;
-
-/**
- * Add two rationals.
- * @param b first rational
- * @param c second rational
- * @return b+c
- */
-AVRational av_add_q(AVRational b, AVRational c) av_const;
-
-/**
- * Subtract one rational from another.
- * @param b first rational
- * @param c second rational
- * @return b-c
- */
-AVRational av_sub_q(AVRational b, AVRational c) av_const;
-
-/**
- * Invert a rational.
- * @param q value
- * @return 1 / q
- */
-static av_always_inline AVRational av_inv_q(AVRational q)
-{
- AVRational r = { q.den, q.num };
- return r;
-}
-
-/**
- * Convert a double precision floating point number to a rational.
- * inf is expressed as {1,0} or {-1,0} depending on the sign.
- *
- * @param d double to convert
- * @param max the maximum allowed numerator and denominator
- * @return (AVRational) d
- */
-AVRational av_d2q(double d, int max) av_const;
-
-/**
- * @return 1 if q1 is nearer to q than q2, -1 if q2 is nearer
- * than q1, 0 if they have the same distance.
- */
-int av_nearer_q(AVRational q, AVRational q1, AVRational q2);
-
-/**
- * Find the nearest value in q_list to q.
- * @param q_list an array of rationals terminated by {0, 0}
- * @return the index of the nearest value found in the array
- */
-int av_find_nearest_q_idx(AVRational q, const AVRational* q_list);
-
-/**
- * Converts a AVRational to a IEEE 32bit float.
- *
- * The float is returned in a uint32_t and its value is platform indepenant.
- */
-uint32_t av_q2intfloat(AVRational q);
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_RATIONAL_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/rc4.h b/src/main/jni/ffmpeg/include/libavutil/rc4.h
deleted file mode 100644
index 029cd2ad5..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/rc4.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * RC4 encryption/decryption/pseudo-random number generator
- *
- * 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 AVUTIL_RC4_H
-#define AVUTIL_RC4_H
-
-#include <stdint.h>
-
-/**
- * @defgroup lavu_rc4 RC4
- * @ingroup lavu_crypto
- * @{
- */
-
-typedef struct AVRC4 {
- uint8_t state[256];
- int x, y;
-} AVRC4;
-
-/**
- * Allocate an AVRC4 context.
- */
-AVRC4 *av_rc4_alloc(void);
-
-/**
- * @brief Initializes an AVRC4 context.
- *
- * @param key_bits must be a multiple of 8
- * @param decrypt 0 for encryption, 1 for decryption, currently has no effect
- * @return zero on success, negative value otherwise
- */
-int av_rc4_init(struct AVRC4 *d, const uint8_t *key, int key_bits, int decrypt);
-
-/**
- * @brief Encrypts / decrypts using the RC4 algorithm.
- *
- * @param count number of bytes
- * @param dst destination array, can be equal to src
- * @param src source array, can be equal to dst, may be NULL
- * @param iv not (yet) used for RC4, should be NULL
- * @param decrypt 0 for encryption, 1 for decryption, not (yet) used
- */
-void av_rc4_crypt(struct AVRC4 *d, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt);
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_RC4_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/replaygain.h b/src/main/jni/ffmpeg/include/libavutil/replaygain.h
deleted file mode 100644
index 5c03e1993..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/replaygain.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- *
- * 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 AVUTIL_REPLAYGAIN_H
-#define AVUTIL_REPLAYGAIN_H
-
-#include <stdint.h>
-
-/**
- * ReplayGain information (see
- * http://wiki.hydrogenaudio.org/index.php?title=ReplayGain_1.0_specification).
- * The size of this struct is a part of the public ABI.
- */
-typedef struct AVReplayGain {
- /**
- * Track replay gain in microbels (divide by 100000 to get the value in dB).
- * Should be set to INT32_MIN when unknown.
- */
- int32_t track_gain;
- /**
- * Peak track amplitude, with 100000 representing full scale (but values
- * may overflow). 0 when unknown.
- */
- uint32_t track_peak;
- /**
- * Same as track_gain, but for the whole album.
- */
- int32_t album_gain;
- /**
- * Same as track_peak, but for the whole album,
- */
- uint32_t album_peak;
-} AVReplayGain;
-
-#endif /* AVUTIL_REPLAYGAIN_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/ripemd.h b/src/main/jni/ffmpeg/include/libavutil/ripemd.h
deleted file mode 100644
index 7b0c8bc89..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/ripemd.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2007 Michael Niedermayer <michaelni@gmx.at>
- * Copyright (C) 2013 James Almer <jamrial@gmail.com>
- *
- * 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 AVUTIL_RIPEMD_H
-#define AVUTIL_RIPEMD_H
-
-#include <stdint.h>
-
-#include "attributes.h"
-#include "version.h"
-
-/**
- * @defgroup lavu_ripemd RIPEMD
- * @ingroup lavu_crypto
- * @{
- */
-
-extern const int av_ripemd_size;
-
-struct AVRIPEMD;
-
-/**
- * Allocate an AVRIPEMD context.
- */
-struct AVRIPEMD *av_ripemd_alloc(void);
-
-/**
- * Initialize RIPEMD hashing.
- *
- * @param context pointer to the function context (of size av_ripemd_size)
- * @param bits number of bits in digest (128, 160, 256 or 320 bits)
- * @return zero if initialization succeeded, -1 otherwise
- */
-int av_ripemd_init(struct AVRIPEMD* context, int bits);
-
-/**
- * Update hash value.
- *
- * @param context hash function context
- * @param data input data to update hash with
- * @param len input data length
- */
-void av_ripemd_update(struct AVRIPEMD* context, const uint8_t* data, unsigned int len);
-
-/**
- * Finish hashing and output digest value.
- *
- * @param context hash function context
- * @param digest buffer where output digest value is stored
- */
-void av_ripemd_final(struct AVRIPEMD* context, uint8_t *digest);
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_RIPEMD_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/samplefmt.h b/src/main/jni/ffmpeg/include/libavutil/samplefmt.h
deleted file mode 100644
index 6a8a031c0..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/samplefmt.h
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
- * 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 AVUTIL_SAMPLEFMT_H
-#define AVUTIL_SAMPLEFMT_H
-
-#include <stdint.h>
-
-#include "avutil.h"
-#include "attributes.h"
-
-/**
- * @addtogroup lavu_audio
- * @{
- *
- * @defgroup lavu_sampfmts Audio sample formats
- *
- * Audio sample format enumeration and related convenience functions.
- * @{
- *
- */
-
-/**
- * Audio sample formats
- *
- * - The data described by the sample format is always in native-endian order.
- * Sample values can be expressed by native C types, hence the lack of a signed
- * 24-bit sample format even though it is a common raw audio data format.
- *
- * - The floating-point formats are based on full volume being in the range
- * [-1.0, 1.0]. Any values outside this range are beyond full volume level.
- *
- * - The data layout as used in av_samples_fill_arrays() and elsewhere in FFmpeg
- * (such as AVFrame in libavcodec) is as follows:
- *
- * @par
- * For planar sample formats, each audio channel is in a separate data plane,
- * and linesize is the buffer size, in bytes, for a single plane. All data
- * planes must be the same size. For packed sample formats, only the first data
- * plane is used, and samples for each channel are interleaved. In this case,
- * linesize is the buffer size, in bytes, for the 1 plane.
- *
- */
-enum AVSampleFormat {
- AV_SAMPLE_FMT_NONE = -1,
- AV_SAMPLE_FMT_U8, ///< unsigned 8 bits
- AV_SAMPLE_FMT_S16, ///< signed 16 bits
- AV_SAMPLE_FMT_S32, ///< signed 32 bits
- AV_SAMPLE_FMT_FLT, ///< float
- AV_SAMPLE_FMT_DBL, ///< double
-
- AV_SAMPLE_FMT_U8P, ///< unsigned 8 bits, planar
- AV_SAMPLE_FMT_S16P, ///< signed 16 bits, planar
- AV_SAMPLE_FMT_S32P, ///< signed 32 bits, planar
- AV_SAMPLE_FMT_FLTP, ///< float, planar
- AV_SAMPLE_FMT_DBLP, ///< double, planar
-
- AV_SAMPLE_FMT_NB ///< Number of sample formats. DO NOT USE if linking dynamically
-};
-
-/**
- * Return the name of sample_fmt, or NULL if sample_fmt is not
- * recognized.
- */
-const char *av_get_sample_fmt_name(enum AVSampleFormat sample_fmt);
-
-/**
- * Return a sample format corresponding to name, or AV_SAMPLE_FMT_NONE
- * on error.
- */
-enum AVSampleFormat av_get_sample_fmt(const char *name);
-
-/**
- * Return the planar<->packed alternative form of the given sample format, or
- * AV_SAMPLE_FMT_NONE on error. If the passed sample_fmt is already in the
- * requested planar/packed format, the format returned is the same as the
- * input.
- */
-enum AVSampleFormat av_get_alt_sample_fmt(enum AVSampleFormat sample_fmt, int planar);
-
-/**
- * Get the packed alternative form of the given sample format.
- *
- * If the passed sample_fmt is already in packed format, the format returned is
- * the same as the input.
- *
- * @return the packed alternative form of the given sample format or
- AV_SAMPLE_FMT_NONE on error.
- */
-enum AVSampleFormat av_get_packed_sample_fmt(enum AVSampleFormat sample_fmt);
-
-/**
- * Get the planar alternative form of the given sample format.
- *
- * If the passed sample_fmt is already in planar format, the format returned is
- * the same as the input.
- *
- * @return the planar alternative form of the given sample format or
- AV_SAMPLE_FMT_NONE on error.
- */
-enum AVSampleFormat av_get_planar_sample_fmt(enum AVSampleFormat sample_fmt);
-
-/**
- * Generate a string corresponding to the sample format with
- * sample_fmt, or a header if sample_fmt is negative.
- *
- * @param buf the buffer where to write the string
- * @param buf_size the size of buf
- * @param sample_fmt the number of the sample format to print the
- * corresponding info string, or a negative value to print the
- * corresponding header.
- * @return the pointer to the filled buffer or NULL if sample_fmt is
- * unknown or in case of other errors
- */
-char *av_get_sample_fmt_string(char *buf, int buf_size, enum AVSampleFormat sample_fmt);
-
-/**
- * Return number of bytes per sample.
- *
- * @param sample_fmt the sample format
- * @return number of bytes per sample or zero if unknown for the given
- * sample format
- */
-int av_get_bytes_per_sample(enum AVSampleFormat sample_fmt);
-
-/**
- * Check if the sample format is planar.
- *
- * @param sample_fmt the sample format to inspect
- * @return 1 if the sample format is planar, 0 if it is interleaved
- */
-int av_sample_fmt_is_planar(enum AVSampleFormat sample_fmt);
-
-/**
- * Get the required buffer size for the given audio parameters.
- *
- * @param[out] linesize calculated linesize, may be NULL
- * @param nb_channels the number of channels
- * @param nb_samples the number of samples in a single channel
- * @param sample_fmt the sample format
- * @param align buffer size alignment (0 = default, 1 = no alignment)
- * @return required buffer size, or negative error code on failure
- */
-int av_samples_get_buffer_size(int *linesize, int nb_channels, int nb_samples,
- enum AVSampleFormat sample_fmt, int align);
-
-/**
- * @}
- *
- * @defgroup lavu_sampmanip Samples manipulation
- *
- * Functions that manipulate audio samples
- * @{
- */
-
-/**
- * Fill plane data pointers and linesize for samples with sample
- * format sample_fmt.
- *
- * The audio_data array is filled with the pointers to the samples data planes:
- * for planar, set the start point of each channel's data within the buffer,
- * for packed, set the start point of the entire buffer only.
- *
- * The value pointed to by linesize is set to the aligned size of each
- * channel's data buffer for planar layout, or to the aligned size of the
- * buffer for all channels for packed layout.
- *
- * The buffer in buf must be big enough to contain all the samples
- * (use av_samples_get_buffer_size() to compute its minimum size),
- * otherwise the audio_data pointers will point to invalid data.
- *
- * @see enum AVSampleFormat
- * The documentation for AVSampleFormat describes the data layout.
- *
- * @param[out] audio_data array to be filled with the pointer for each channel
- * @param[out] linesize calculated linesize, may be NULL
- * @param buf the pointer to a buffer containing the samples
- * @param nb_channels the number of channels
- * @param nb_samples the number of samples in a single channel
- * @param sample_fmt the sample format
- * @param align buffer size alignment (0 = default, 1 = no alignment)
- * @return >=0 on success or a negative error code on failure
- * @todo return minimum size in bytes required for the buffer in case
- * of success at the next bump
- */
-int av_samples_fill_arrays(uint8_t **audio_data, int *linesize,
- const uint8_t *buf,
- int nb_channels, int nb_samples,
- enum AVSampleFormat sample_fmt, int align);
-
-/**
- * Allocate a samples buffer for nb_samples samples, and fill data pointers and
- * linesize accordingly.
- * The allocated samples buffer can be freed by using av_freep(&audio_data[0])
- * Allocated data will be initialized to silence.
- *
- * @see enum AVSampleFormat
- * The documentation for AVSampleFormat describes the data layout.
- *
- * @param[out] audio_data array to be filled with the pointer for each channel
- * @param[out] linesize aligned size for audio buffer(s), may be NULL
- * @param nb_channels number of audio channels
- * @param nb_samples number of samples per channel
- * @param align buffer size alignment (0 = default, 1 = no alignment)
- * @return >=0 on success or a negative error code on failure
- * @todo return the size of the allocated buffer in case of success at the next bump
- * @see av_samples_fill_arrays()
- * @see av_samples_alloc_array_and_samples()
- */
-int av_samples_alloc(uint8_t **audio_data, int *linesize, int nb_channels,
- int nb_samples, enum AVSampleFormat sample_fmt, int align);
-
-/**
- * Allocate a data pointers array, samples buffer for nb_samples
- * samples, and fill data pointers and linesize accordingly.
- *
- * This is the same as av_samples_alloc(), but also allocates the data
- * pointers array.
- *
- * @see av_samples_alloc()
- */
-int av_samples_alloc_array_and_samples(uint8_t ***audio_data, int *linesize, int nb_channels,
- int nb_samples, enum AVSampleFormat sample_fmt, int align);
-
-/**
- * Copy samples from src to dst.
- *
- * @param dst destination array of pointers to data planes
- * @param src source array of pointers to data planes
- * @param dst_offset offset in samples at which the data will be written to dst
- * @param src_offset offset in samples at which the data will be read from src
- * @param nb_samples number of samples to be copied
- * @param nb_channels number of audio channels
- * @param sample_fmt audio sample format
- */
-int av_samples_copy(uint8_t **dst, uint8_t * const *src, int dst_offset,
- int src_offset, int nb_samples, int nb_channels,
- enum AVSampleFormat sample_fmt);
-
-/**
- * Fill an audio buffer with silence.
- *
- * @param audio_data array of pointers to data planes
- * @param offset offset in samples at which to start filling
- * @param nb_samples number of samples to fill
- * @param nb_channels number of audio channels
- * @param sample_fmt audio sample format
- */
-int av_samples_set_silence(uint8_t **audio_data, int offset, int nb_samples,
- int nb_channels, enum AVSampleFormat sample_fmt);
-
-/**
- * @}
- * @}
- */
-#endif /* AVUTIL_SAMPLEFMT_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/sha.h b/src/main/jni/ffmpeg/include/libavutil/sha.h
deleted file mode 100644
index bf4377e51..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/sha.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2007 Michael Niedermayer <michaelni@gmx.at>
- *
- * 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 AVUTIL_SHA_H
-#define AVUTIL_SHA_H
-
-#include <stdint.h>
-
-#include "attributes.h"
-#include "version.h"
-
-/**
- * @defgroup lavu_sha SHA
- * @ingroup lavu_crypto
- * @{
- */
-
-extern const int av_sha_size;
-
-struct AVSHA;
-
-/**
- * Allocate an AVSHA context.
- */
-struct AVSHA *av_sha_alloc(void);
-
-/**
- * Initialize SHA-1 or SHA-2 hashing.
- *
- * @param context pointer to the function context (of size av_sha_size)
- * @param bits number of bits in digest (SHA-1 - 160 bits, SHA-2 224 or 256 bits)
- * @return zero if initialization succeeded, -1 otherwise
- */
-int av_sha_init(struct AVSHA* context, int bits);
-
-/**
- * Update hash value.
- *
- * @param context hash function context
- * @param data input data to update hash with
- * @param len input data length
- */
-void av_sha_update(struct AVSHA* context, const uint8_t* data, unsigned int len);
-
-/**
- * Finish hashing and output digest value.
- *
- * @param context hash function context
- * @param digest buffer where output digest value is stored
- */
-void av_sha_final(struct AVSHA* context, uint8_t *digest);
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_SHA_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/sha512.h b/src/main/jni/ffmpeg/include/libavutil/sha512.h
deleted file mode 100644
index 7b0870147..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/sha512.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2007 Michael Niedermayer <michaelni@gmx.at>
- * Copyright (C) 2013 James Almer <jamrial@gmail.com>
- *
- * 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 AVUTIL_SHA512_H
-#define AVUTIL_SHA512_H
-
-#include <stdint.h>
-
-#include "attributes.h"
-#include "version.h"
-
-/**
- * @defgroup lavu_sha512 SHA512
- * @ingroup lavu_crypto
- * @{
- */
-
-extern const int av_sha512_size;
-
-struct AVSHA512;
-
-/**
- * Allocate an AVSHA512 context.
- */
-struct AVSHA512 *av_sha512_alloc(void);
-
-/**
- * Initialize SHA-2 512 hashing.
- *
- * @param context pointer to the function context (of size av_sha512_size)
- * @param bits number of bits in digest (224, 256, 384 or 512 bits)
- * @return zero if initialization succeeded, -1 otherwise
- */
-int av_sha512_init(struct AVSHA512* context, int bits);
-
-/**
- * Update hash value.
- *
- * @param context hash function context
- * @param data input data to update hash with
- * @param len input data length
- */
-void av_sha512_update(struct AVSHA512* context, const uint8_t* data, unsigned int len);
-
-/**
- * Finish hashing and output digest value.
- *
- * @param context hash function context
- * @param digest buffer where output digest value is stored
- */
-void av_sha512_final(struct AVSHA512* context, uint8_t *digest);
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_SHA512_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/stereo3d.h b/src/main/jni/ffmpeg/include/libavutil/stereo3d.h
deleted file mode 100644
index 1135dc9dd..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/stereo3d.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (c) 2013 Vittorio Giovara <vittorio.giovara@gmail.com>
- *
- * 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 AVUTIL_STEREO3D_H
-#define AVUTIL_STEREO3D_H
-
-#include <stdint.h>
-
-#include "frame.h"
-
-/**
- * List of possible 3D Types
- */
-enum AVStereo3DType {
- /**
- * Video is not stereoscopic (and metadata has to be there).
- */
- AV_STEREO3D_2D,
-
- /**
- * Views are next to each other.
- *
- * LLLLRRRR
- * LLLLRRRR
- * LLLLRRRR
- * ...
- */
- AV_STEREO3D_SIDEBYSIDE,
-
- /**
- * Views are on top of each other.
- *
- * LLLLLLLL
- * LLLLLLLL
- * RRRRRRRR
- * RRRRRRRR
- */
- AV_STEREO3D_TOPBOTTOM,
-
- /**
- * Views are alternated temporally.
- *
- * frame0 frame1 frame2 ...
- * LLLLLLLL RRRRRRRR LLLLLLLL
- * LLLLLLLL RRRRRRRR LLLLLLLL
- * LLLLLLLL RRRRRRRR LLLLLLLL
- * ... ... ...
- */
- AV_STEREO3D_FRAMESEQUENCE,
-
- /**
- * Views are packed in a checkerboard-like structure per pixel.
- *
- * LRLRLRLR
- * RLRLRLRL
- * LRLRLRLR
- * ...
- */
- AV_STEREO3D_CHECKERBOARD,
-
- /**
- * Views are next to each other, but when upscaling
- * apply a checkerboard pattern.
- *
- * LLLLRRRR L L L L R R R R
- * LLLLRRRR => L L L L R R R R
- * LLLLRRRR L L L L R R R R
- * LLLLRRRR L L L L R R R R
- */
- AV_STEREO3D_SIDEBYSIDE_QUINCUNX,
-
- /**
- * Views are packed per line, as if interlaced.
- *
- * LLLLLLLL
- * RRRRRRRR
- * LLLLLLLL
- * ...
- */
- AV_STEREO3D_LINES,
-
- /**
- * Views are packed per column.
- *
- * LRLRLRLR
- * LRLRLRLR
- * LRLRLRLR
- * ...
- */
- AV_STEREO3D_COLUMNS,
-};
-
-
-/**
- * Inverted views, Right/Bottom represents the left view.
- */
-#define AV_STEREO3D_FLAG_INVERT (1 << 0)
-
-/**
- * Stereo 3D type: this structure describes how two videos are packed
- * within a single video surface, with additional information as needed.
- *
- * @note The struct must be allocated with av_stereo3d_alloc() and
- * its size is not a part of the public ABI.
- */
-typedef struct AVStereo3D {
- /**
- * How views are packed within the video.
- */
- enum AVStereo3DType type;
-
- /**
- * Additional information about the frame packing.
- */
- int flags;
-} AVStereo3D;
-
-/**
- * Allocate an AVStereo3D structure and set its fields to default values.
- * The resulting struct can be freed using av_freep().
- *
- * @return An AVStereo3D filled with default values or NULL on failure.
- */
-AVStereo3D *av_stereo3d_alloc(void);
-
-/**
- * Allocate a complete AVFrameSideData and add it to the frame.
- *
- * @param frame The frame which side data is added to.
- *
- * @return The AVStereo3D structure to be filled by caller.
- */
-AVStereo3D *av_stereo3d_create_side_data(AVFrame *frame);
-
-#endif /* AVUTIL_STEREO3D_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/tea.h b/src/main/jni/ffmpeg/include/libavutil/tea.h
deleted file mode 100644
index dd929bdaf..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/tea.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * A 32-bit implementation of the TEA algorithm
- * Copyright (c) 2015 Vesselin Bontchev
- *
- * 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 AVUTIL_TEA_H
-#define AVUTIL_TEA_H
-
-#include <stdint.h>
-
-/**
- * @file
- * @brief Public header for libavutil TEA algorithm
- * @defgroup lavu_tea TEA
- * @ingroup lavu_crypto
- * @{
- */
-
-extern const int av_tea_size;
-
-struct AVTEA;
-
-/**
- * Allocate an AVTEA context
- * To free the struct: av_free(ptr)
- */
-struct AVTEA *av_tea_alloc(void);
-
-/**
- * Initialize an AVTEA context.
- *
- * @param ctx an AVTEA context
- * @param key a key of 16 bytes used for encryption/decryption
- * @param rounds the number of rounds in TEA (64 is the "standard")
- */
-void av_tea_init(struct AVTEA *ctx, const uint8_t key[16], int rounds);
-
-/**
- * Encrypt or decrypt a buffer using a previously initialized context.
- *
- * @param ctx an AVTEA context
- * @param dst destination array, can be equal to src
- * @param src source array, can be equal to dst
- * @param count number of 8 byte blocks
- * @param iv initialization vector for CBC mode, if NULL then ECB will be used
- * @param decrypt 0 for encryption, 1 for decryption
- */
-void av_tea_crypt(struct AVTEA *ctx, uint8_t *dst, const uint8_t *src,
- int count, uint8_t *iv, int decrypt);
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_TEA_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/threadmessage.h b/src/main/jni/ffmpeg/include/libavutil/threadmessage.h
deleted file mode 100644
index e256cae9d..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/threadmessage.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * 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 AVUTIL_THREADMESSAGE_H
-#define AVUTIL_THREADMESSAGE_H
-
-typedef struct AVThreadMessageQueue AVThreadMessageQueue;
-
-typedef enum AVThreadMessageFlags {
-
- /**
- * Perform non-blocking operation.
- * If this flag is set, send and recv operations are non-blocking and
- * return AVERROR(EAGAIN) immediately if they can not proceed.
- */
- AV_THREAD_MESSAGE_NONBLOCK = 1,
-
-} AVThreadMessageFlags;
-
-/**
- * Allocate a new message queue.
- *
- * @param mq pointer to the message queue
- * @param nelem maximum number of elements in the queue
- * @param elsize size of each element in the queue
- * @return >=0 for success; <0 for error, in particular AVERROR(ENOSYS) if
- * lavu was built without thread support
- */
-int av_thread_message_queue_alloc(AVThreadMessageQueue **mq,
- unsigned nelem,
- unsigned elsize);
-
-/**
- * Free a message queue.
- *
- * The message queue must no longer be in use by another thread.
- */
-void av_thread_message_queue_free(AVThreadMessageQueue **mq);
-
-/**
- * Send a message on the queue.
- */
-int av_thread_message_queue_send(AVThreadMessageQueue *mq,
- void *msg,
- unsigned flags);
-
-/**
- * Receive a message from the queue.
- */
-int av_thread_message_queue_recv(AVThreadMessageQueue *mq,
- void *msg,
- unsigned flags);
-
-/**
- * Set the sending error code.
- *
- * If the error code is set to non-zero, av_thread_message_queue_recv() will
- * return it immediately when there are no longer available messages.
- * Conventional values, such as AVERROR_EOF or AVERROR(EAGAIN), can be used
- * to cause the receiving thread to stop or suspend its operation.
- */
-void av_thread_message_queue_set_err_send(AVThreadMessageQueue *mq,
- int err);
-
-/**
- * Set the receiving error code.
- *
- * If the error code is set to non-zero, av_thread_message_queue_send() will
- * return it immediately. Conventional values, such as AVERROR_EOF or
- * AVERROR(EAGAIN), can be used to cause the sending thread to stop or
- * suspend its operation.
- */
-void av_thread_message_queue_set_err_recv(AVThreadMessageQueue *mq,
- int err);
-
-/**
- * Set the optional free message callback function which will be called if an
- * operation is removing messages from the queue.
- */
-void av_thread_message_queue_set_free_func(AVThreadMessageQueue *mq,
- void (*free_func)(void *msg));
-
-/**
- * Flush the message queue
- *
- * This function is mostly equivalent to reading and free-ing every message
- * except that it will be done in a single operation (no lock/unlock between
- * reads).
- */
-void av_thread_message_flush(AVThreadMessageQueue *mq);
-
-#endif /* AVUTIL_THREADMESSAGE_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/time.h b/src/main/jni/ffmpeg/include/libavutil/time.h
deleted file mode 100644
index dc169b064..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/time.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (c) 2000-2003 Fabrice Bellard
- *
- * 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 AVUTIL_TIME_H
-#define AVUTIL_TIME_H
-
-#include <stdint.h>
-
-/**
- * Get the current time in microseconds.
- */
-int64_t av_gettime(void);
-
-/**
- * Get the current time in microseconds since some unspecified starting point.
- * On platforms that support it, the time comes from a monotonic clock
- * This property makes this time source ideal for measuring relative time.
- * The returned values may not be monotonic on platforms where a monotonic
- * clock is not available.
- */
-int64_t av_gettime_relative(void);
-
-/**
- * Indicates with a boolean result if the av_gettime_relative() time source
- * is monotonic.
- */
-int av_gettime_relative_is_monotonic(void);
-
-/**
- * Sleep for a period of time. Although the duration is expressed in
- * microseconds, the actual delay may be rounded to the precision of the
- * system timer.
- *
- * @param usec Number of microseconds to sleep.
- * @return zero on success or (negative) error code.
- */
-int av_usleep(unsigned usec);
-
-#endif /* AVUTIL_TIME_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/timecode.h b/src/main/jni/ffmpeg/include/libavutil/timecode.h
deleted file mode 100644
index 56e3975fd..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/timecode.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright (c) 2006 Smartjog S.A.S, Baptiste Coudurier <baptiste.coudurier@gmail.com>
- * Copyright (c) 2011-2012 Smartjog S.A.S, Clément Bœsch <clement.boesch@smartjog.com>
- *
- * 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
- * Timecode helpers header
- */
-
-#ifndef AVUTIL_TIMECODE_H
-#define AVUTIL_TIMECODE_H
-
-#include <stdint.h>
-#include "rational.h"
-
-#define AV_TIMECODE_STR_SIZE 16
-
-enum AVTimecodeFlag {
- AV_TIMECODE_FLAG_DROPFRAME = 1<<0, ///< timecode is drop frame
- AV_TIMECODE_FLAG_24HOURSMAX = 1<<1, ///< timecode wraps after 24 hours
- AV_TIMECODE_FLAG_ALLOWNEGATIVE = 1<<2, ///< negative time values are allowed
-};
-
-typedef struct {
- int start; ///< timecode frame start (first base frame number)
- uint32_t flags; ///< flags such as drop frame, +24 hours support, ...
- AVRational rate; ///< frame rate in rational form
- unsigned fps; ///< frame per second; must be consistent with the rate field
-} AVTimecode;
-
-/**
- * Adjust frame number for NTSC drop frame time code.
- *
- * @param framenum frame number to adjust
- * @param fps frame per second, 30 or 60
- * @return adjusted frame number
- * @warning adjustment is only valid in NTSC 29.97 and 59.94
- */
-int av_timecode_adjust_ntsc_framenum2(int framenum, int fps);
-
-/**
- * Convert frame number to SMPTE 12M binary representation.
- *
- * @param tc timecode data correctly initialized
- * @param framenum frame number
- * @return the SMPTE binary representation
- *
- * @note Frame number adjustment is automatically done in case of drop timecode,
- * you do NOT have to call av_timecode_adjust_ntsc_framenum2().
- * @note The frame number is relative to tc->start.
- * @note Color frame (CF), binary group flags (BGF) and biphase mark polarity
- * correction (PC) bits are set to zero.
- */
-uint32_t av_timecode_get_smpte_from_framenum(const AVTimecode *tc, int framenum);
-
-/**
- * Load timecode string in buf.
- *
- * @param buf destination buffer, must be at least AV_TIMECODE_STR_SIZE long
- * @param tc timecode data correctly initialized
- * @param framenum frame number
- * @return the buf parameter
- *
- * @note Timecode representation can be a negative timecode and have more than
- * 24 hours, but will only be honored if the flags are correctly set.
- * @note The frame number is relative to tc->start.
- */
-char *av_timecode_make_string(const AVTimecode *tc, char *buf, int framenum);
-
-/**
- * Get the timecode string from the SMPTE timecode format.
- *
- * @param buf destination buffer, must be at least AV_TIMECODE_STR_SIZE long
- * @param tcsmpte the 32-bit SMPTE timecode
- * @param prevent_df prevent the use of a drop flag when it is known the DF bit
- * is arbitrary
- * @return the buf parameter
- */
-char *av_timecode_make_smpte_tc_string(char *buf, uint32_t tcsmpte, int prevent_df);
-
-/**
- * Get the timecode string from the 25-bit timecode format (MPEG GOP format).
- *
- * @param buf destination buffer, must be at least AV_TIMECODE_STR_SIZE long
- * @param tc25bit the 25-bits timecode
- * @return the buf parameter
- */
-char *av_timecode_make_mpeg_tc_string(char *buf, uint32_t tc25bit);
-
-/**
- * Init a timecode struct with the passed parameters.
- *
- * @param log_ctx a pointer to an arbitrary struct of which the first field
- * is a pointer to an AVClass struct (used for av_log)
- * @param tc pointer to an allocated AVTimecode
- * @param rate frame rate in rational form
- * @param flags miscellaneous flags such as drop frame, +24 hours, ...
- * (see AVTimecodeFlag)
- * @param frame_start the first frame number
- * @return 0 on success, AVERROR otherwise
- */
-int av_timecode_init(AVTimecode *tc, AVRational rate, int flags, int frame_start, void *log_ctx);
-
-/**
- * Parse timecode representation (hh:mm:ss[:;.]ff).
- *
- * @param log_ctx a pointer to an arbitrary struct of which the first field is a
- * pointer to an AVClass struct (used for av_log).
- * @param tc pointer to an allocated AVTimecode
- * @param rate frame rate in rational form
- * @param str timecode string which will determine the frame start
- * @return 0 on success, AVERROR otherwise
- */
-int av_timecode_init_from_string(AVTimecode *tc, AVRational rate, const char *str, void *log_ctx);
-
-/**
- * Check if the timecode feature is available for the given frame rate
- *
- * @return 0 if supported, <0 otherwise
- */
-int av_timecode_check_frame_rate(AVRational rate);
-
-#endif /* AVUTIL_TIMECODE_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/timestamp.h b/src/main/jni/ffmpeg/include/libavutil/timestamp.h
deleted file mode 100644
index f010a7ee3..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/timestamp.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * 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
- * timestamp utils, mostly useful for debugging/logging purposes
- */
-
-#ifndef AVUTIL_TIMESTAMP_H
-#define AVUTIL_TIMESTAMP_H
-
-#include "common.h"
-
-#if defined(__cplusplus) && !defined(__STDC_FORMAT_MACROS) && !defined(PRId64)
-#error missing -D__STDC_FORMAT_MACROS / #define __STDC_FORMAT_MACROS
-#endif
-
-#define AV_TS_MAX_STRING_SIZE 32
-
-/**
- * Fill the provided buffer with a string containing a timestamp
- * representation.
- *
- * @param buf a buffer with size in bytes of at least AV_TS_MAX_STRING_SIZE
- * @param ts the timestamp to represent
- * @return the buffer in input
- */
-static inline char *av_ts_make_string(char *buf, int64_t ts)
-{
- if (ts == AV_NOPTS_VALUE) snprintf(buf, AV_TS_MAX_STRING_SIZE, "NOPTS");
- else snprintf(buf, AV_TS_MAX_STRING_SIZE, "%"PRId64, ts);
- return buf;
-}
-
-/**
- * Convenience macro, the return value should be used only directly in
- * function arguments but never stand-alone.
- */
-#define av_ts2str(ts) av_ts_make_string((char[AV_TS_MAX_STRING_SIZE]){0}, ts)
-
-/**
- * Fill the provided buffer with a string containing a timestamp time
- * representation.
- *
- * @param buf a buffer with size in bytes of at least AV_TS_MAX_STRING_SIZE
- * @param ts the timestamp to represent
- * @param tb the timebase of the timestamp
- * @return the buffer in input
- */
-static inline char *av_ts_make_time_string(char *buf, int64_t ts, AVRational *tb)
-{
- if (ts == AV_NOPTS_VALUE) snprintf(buf, AV_TS_MAX_STRING_SIZE, "NOPTS");
- else snprintf(buf, AV_TS_MAX_STRING_SIZE, "%.6g", av_q2d(*tb) * ts);
- return buf;
-}
-
-/**
- * Convenience macro, the return value should be used only directly in
- * function arguments but never stand-alone.
- */
-#define av_ts2timestr(ts, tb) av_ts_make_time_string((char[AV_TS_MAX_STRING_SIZE]){0}, ts, tb)
-
-#endif /* AVUTIL_TIMESTAMP_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/tree.h b/src/main/jni/ffmpeg/include/libavutil/tree.h
deleted file mode 100644
index e1aefaa9f..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/tree.h
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
- *
- * 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 tree container.
- * @author Michael Niedermayer <michaelni@gmx.at>
- */
-
-#ifndef AVUTIL_TREE_H
-#define AVUTIL_TREE_H
-
-#include "attributes.h"
-#include "version.h"
-
-/**
- * @addtogroup lavu_tree AVTree
- * @ingroup lavu_data
- *
- * Low-complexity tree container
- *
- * Insertion, removal, finding equal, largest which is smaller than and
- * smallest which is larger than, all have O(log n) worst-case complexity.
- * @{
- */
-
-
-struct AVTreeNode;
-extern const int av_tree_node_size;
-
-/**
- * Allocate an AVTreeNode.
- */
-struct AVTreeNode *av_tree_node_alloc(void);
-
-/**
- * Find an element.
- * @param root a pointer to the root node of the tree
- * @param next If next is not NULL, then next[0] will contain the previous
- * element and next[1] the next element. If either does not exist,
- * then the corresponding entry in next is unchanged.
- * @param cmp compare function used to compare elements in the tree,
- * API identical to that of Standard C's qsort
- * It is guranteed that the first and only the first argument to cmp()
- * will be the key parameter to av_tree_find(), thus it could if the
- * user wants, be a different type (like an opaque context).
- * @return An element with cmp(key, elem) == 0 or NULL if no such element
- * exists in the tree.
- */
-void *av_tree_find(const struct AVTreeNode *root, void *key,
- int (*cmp)(const void *key, const void *b), void *next[2]);
-
-/**
- * Insert or remove an element.
- *
- * If *next is NULL, then the supplied element will be removed if it exists.
- * If *next is non-NULL, then the supplied element will be inserted, unless
- * it already exists in the tree.
- *
- * @param rootp A pointer to a pointer to the root node of the tree; note that
- * the root node can change during insertions, this is required
- * to keep the tree balanced.
- * @param key pointer to the element key to insert in the tree
- * @param next Used to allocate and free AVTreeNodes. For insertion the user
- * must set it to an allocated and zeroed object of at least
- * av_tree_node_size bytes size. av_tree_insert() will set it to
- * NULL if it has been consumed.
- * For deleting elements *next is set to NULL by the user and
- * av_tree_insert() will set it to the AVTreeNode which was
- * used for the removed element.
- * This allows the use of flat arrays, which have
- * lower overhead compared to many malloced elements.
- * You might want to define a function like:
- * @code
- * void *tree_insert(struct AVTreeNode **rootp, void *key,
- * int (*cmp)(void *key, const void *b),
- * AVTreeNode **next)
- * {
- * if (!*next)
- * *next = av_mallocz(av_tree_node_size);
- * return av_tree_insert(rootp, key, cmp, next);
- * }
- * void *tree_remove(struct AVTreeNode **rootp, void *key,
- * int (*cmp)(void *key, const void *b, AVTreeNode **next))
- * {
- * av_freep(next);
- * return av_tree_insert(rootp, key, cmp, next);
- * }
- * @endcode
- * @param cmp compare function used to compare elements in the tree, API identical
- * to that of Standard C's qsort
- * @return If no insertion happened, the found element; if an insertion or
- * removal happened, then either key or NULL will be returned.
- * Which one it is depends on the tree state and the implementation. You
- * should make no assumptions that it's one or the other in the code.
- */
-void *av_tree_insert(struct AVTreeNode **rootp, void *key,
- int (*cmp)(const void *key, const void *b),
- struct AVTreeNode **next);
-
-void av_tree_destroy(struct AVTreeNode *t);
-
-/**
- * Apply enu(opaque, &elem) to all the elements in the tree in a given range.
- *
- * @param cmp a comparison function that returns < 0 for a element below the
- * range, > 0 for a element above the range and == 0 for a
- * element inside the range
- *
- * @note The cmp function should use the same ordering used to construct the
- * tree.
- */
-void av_tree_enumerate(struct AVTreeNode *t, void *opaque,
- int (*cmp)(void *opaque, void *elem),
- int (*enu)(void *opaque, void *elem));
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_TREE_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/twofish.h b/src/main/jni/ffmpeg/include/libavutil/twofish.h
deleted file mode 100644
index 813cfecdf..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/twofish.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * An implementation of the TwoFish algorithm
- * Copyright (c) 2015 Supraja Meedinti
- *
- * 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 AVUTIL_TWOFISH_H
-#define AVUTIL_TWOFISH_H
-
-#include <stdint.h>
-
-
-/**
- * @file
- * @brief Public header for libavutil TWOFISH algorithm
- * @defgroup lavu_twofish TWOFISH
- * @ingroup lavu_crypto
- * @{
- */
-
-extern const int av_twofish_size;
-
-struct AVTWOFISH;
-
-/**
- * Allocate an AVTWOFISH context
- * To free the struct: av_free(ptr)
- */
-struct AVTWOFISH *av_twofish_alloc(void);
-
-/**
- * Initialize an AVTWOFISH context.
- *
- * @param ctx an AVTWOFISH context
- * @param key a key of size ranging from 1 to 32 bytes used for encryption/decryption
- * @param key_bits number of keybits: 128, 192, 256 If less than the required, padded with zeroes to nearest valid value; return value is 0 if key_bits is 128/192/256, -1 if less than 0, 1 otherwise
- */
-int av_twofish_init(struct AVTWOFISH *ctx, const uint8_t *key, int key_bits);
-
-/**
- * Encrypt or decrypt a buffer using a previously initialized context
- *
- * @param ctx an AVTWOFISH context
- * @param dst destination array, can be equal to src
- * @param src source array, can be equal to dst
- * @param count number of 16 byte blocks
- * @paran iv initialization vector for CBC mode, NULL for ECB mode
- * @param decrypt 0 for encryption, 1 for decryption
- */
-void av_twofish_crypt(struct AVTWOFISH *ctx, uint8_t *dst, const uint8_t *src, int count, uint8_t* iv, int decrypt);
-
-/**
- * @}
- */
-#endif /* AVUTIL_TWOFISH_H */
diff --git a/src/main/jni/ffmpeg/include/libavutil/version.h b/src/main/jni/ffmpeg/include/libavutil/version.h
deleted file mode 100644
index 22cd66b55..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/version.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * copyright (c) 2003 Fabrice Bellard
- *
- * 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 AVUTIL_VERSION_H
-#define AVUTIL_VERSION_H
-
-#include "macros.h"
-
-/**
- * @addtogroup version_utils
- *
- * Useful to check and match library version in order to maintain
- * backward compatibility.
- *
- * @{
- */
-
-#define AV_VERSION_INT(a, b, c) ((a)<<16 | (b)<<8 | (c))
-#define AV_VERSION_DOT(a, b, c) a ##.## b ##.## c
-#define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c)
-
-/**
- * Extract version components from the full ::AV_VERSION_INT int as returned
- * by functions like ::avformat_version() and ::avcodec_version()
- */
-#define AV_VERSION_MAJOR(a) ((a) >> 16)
-#define AV_VERSION_MINOR(a) (((a) & 0x00FF00) >> 8)
-#define AV_VERSION_MICRO(a) ((a) & 0xFF)
-
-/**
- * @}
- */
-
-/**
- * @file
- * @ingroup lavu
- * Libavutil version macros
- */
-
-/**
- * @defgroup lavu_ver Version and Build diagnostics
- *
- * Macros and function useful to check at compiletime and at runtime
- * which version of libavutil is in use.
- *
- * @{
- */
-
-#define LIBAVUTIL_VERSION_MAJOR 55
-#define LIBAVUTIL_VERSION_MINOR 11
-#define LIBAVUTIL_VERSION_MICRO 100
-
-#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
- LIBAVUTIL_VERSION_MINOR, \
- LIBAVUTIL_VERSION_MICRO)
-#define LIBAVUTIL_VERSION AV_VERSION(LIBAVUTIL_VERSION_MAJOR, \
- LIBAVUTIL_VERSION_MINOR, \
- LIBAVUTIL_VERSION_MICRO)
-#define LIBAVUTIL_BUILD LIBAVUTIL_VERSION_INT
-
-#define LIBAVUTIL_IDENT "Lavu" AV_STRINGIFY(LIBAVUTIL_VERSION)
-
-/**
- * @}
- *
- * @defgroup depr_guards Deprecation guards
- * 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.
- *
- * @note, when bumping the major version it is recommended to manually
- * disable each FF_API_* in its own commit instead of disabling them all
- * at once through the bump. This improves the git bisect-ability of the change.
- *
- * @{
- */
-
-#ifndef FF_API_VDPAU
-#define FF_API_VDPAU (LIBAVUTIL_VERSION_MAJOR < 56)
-#endif
-#ifndef FF_API_XVMC
-#define FF_API_XVMC (LIBAVUTIL_VERSION_MAJOR < 56)
-#endif
-#ifndef FF_API_OPT_TYPE_METADATA
-#define FF_API_OPT_TYPE_METADATA (LIBAVUTIL_VERSION_MAJOR < 56)
-#endif
-#ifndef FF_API_DLOG
-#define FF_API_DLOG (LIBAVUTIL_VERSION_MAJOR < 56)
-#endif
-#ifndef FF_API_VAAPI
-#define FF_API_VAAPI (LIBAVUTIL_VERSION_MAJOR < 56)
-#endif
-#ifndef FF_API_FRAME_QP
-#define FF_API_FRAME_QP (LIBAVUTIL_VERSION_MAJOR < 56)
-#endif
-#ifndef FF_API_PLUS1_MINUS1
-#define FF_API_PLUS1_MINUS1 (LIBAVUTIL_VERSION_MAJOR < 56)
-#endif
-#ifndef FF_API_ERROR_FRAME
-#define FF_API_ERROR_FRAME (LIBAVUTIL_VERSION_MAJOR < 56)
-#endif
-#ifndef FF_API_CRC_BIG_TABLE
-#define FF_API_CRC_BIG_TABLE (LIBAVUTIL_VERSION_MAJOR < 56)
-#endif
-
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_VERSION_H */
-
diff --git a/src/main/jni/ffmpeg/include/libavutil/xtea.h b/src/main/jni/ffmpeg/include/libavutil/xtea.h
deleted file mode 100644
index 735427c10..000000000
--- a/src/main/jni/ffmpeg/include/libavutil/xtea.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * A 32-bit implementation of the XTEA algorithm
- * Copyright (c) 2012 Samuel Pitoiset
- *
- * 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 AVUTIL_XTEA_H
-#define AVUTIL_XTEA_H
-
-#include <stdint.h>
-
-/**
- * @file
- * @brief Public header for libavutil XTEA algorithm
- * @defgroup lavu_xtea XTEA
- * @ingroup lavu_crypto
- * @{
- */
-
-typedef struct AVXTEA {
- uint32_t key[16];
-} AVXTEA;
-
-/**
- * Allocate an AVXTEA context.
- */
-AVXTEA *av_xtea_alloc(void);
-
-/**
- * Initialize an AVXTEA context.
- *
- * @param ctx an AVXTEA context
- * @param key a key of 16 bytes used for encryption/decryption,
- * interpreted as big endian 32 bit numbers
- */
-void av_xtea_init(struct AVXTEA *ctx, const uint8_t key[16]);
-
-/**
- * Initialize an AVXTEA context.
- *
- * @param ctx an AVXTEA context
- * @param key a key of 16 bytes used for encryption/decryption,
- * interpreted as little endian 32 bit numbers
- */
-void av_xtea_le_init(struct AVXTEA *ctx, const uint8_t key[16]);
-
-/**
- * Encrypt or decrypt a buffer using a previously initialized context,
- * in big endian format.
- *
- * @param ctx an AVXTEA context
- * @param dst destination array, can be equal to src
- * @param src source array, can be equal to dst
- * @param count number of 8 byte blocks
- * @param iv initialization vector for CBC mode, if NULL then ECB will be used
- * @param decrypt 0 for encryption, 1 for decryption
- */
-void av_xtea_crypt(struct AVXTEA *ctx, uint8_t *dst, const uint8_t *src,
- int count, uint8_t *iv, int decrypt);
-
-/**
- * Encrypt or decrypt a buffer using a previously initialized context,
- * in little endian format.
- *
- * @param ctx an AVXTEA context
- * @param dst destination array, can be equal to src
- * @param src source array, can be equal to dst
- * @param count number of 8 byte blocks
- * @param iv initialization vector for CBC mode, if NULL then ECB will be used
- * @param decrypt 0 for encryption, 1 for decryption
- */
-void av_xtea_le_crypt(struct AVXTEA *ctx, uint8_t *dst, const uint8_t *src,
- int count, uint8_t *iv, int decrypt);
-
-/**
- * @}
- */
-
-#endif /* AVUTIL_XTEA_H */