Updated FFmpeg.

This commit is contained in:
Christopher Snowhill 2017-05-21 21:58:43 -07:00
parent 8b936cc74c
commit 0e43173ae7
18 changed files with 208 additions and 59 deletions

View File

@ -445,6 +445,7 @@ enum AVCodecID {
AV_CODEC_ID_BITPACKED,
AV_CODEC_ID_MSCC,
AV_CODEC_ID_SRGC,
AV_CODEC_ID_SVG,
/* various PCM "codecs" */
AV_CODEC_ID_FIRST_AUDIO = 0x10000, ///< A dummy id pointing at the start of audio codecs
@ -1593,6 +1594,16 @@ enum AVPacketSideDataType {
* AVContentLightMetadata struct.
*/
AV_PKT_DATA_CONTENT_LIGHT_LEVEL,
/**
* The number of side data elements (in fact a bit more than it).
* This is not part of the public API/ABI in the sense that it may
* change when new side data types are added.
* This must stay the last enum value.
* If its value becomes huge, some code using it
* needs to be updated as it assumes it to be smaller than other limits.
*/
AV_PKT_DATA_NB
};
#define AV_PKT_DATA_QUALITY_FACTOR AV_PKT_DATA_QUALITY_STATS //DEPRECATED
@ -3644,6 +3655,33 @@ typedef struct AVCodecContext {
* AVCodecContext.get_format callback)
*/
int hwaccel_flags;
/**
* Video decoding only. Certain video codecs support cropping, meaning that
* only a sub-rectangle of the decoded frame is intended for display. This
* option controls how cropping is handled by libavcodec.
*
* When set to 1 (the default), libavcodec will apply cropping internally.
* I.e. it will modify the output frame width/height fields and offset the
* data pointers (only by as much as possible while preserving alignment, or
* by the full amount if the AV_CODEC_FLAG_UNALIGNED flag is set) so that
* the frames output by the decoder refer only to the cropped area. The
* crop_* fields of the output frames will be zero.
*
* When set to 0, the width/height fields of the output frames will be set
* to the coded dimensions and the crop_* fields will describe the cropping
* rectangle. Applying the cropping is left to the caller.
*
* @warning When hardware acceleration with opaque output frames is used,
* libavcodec is unable to apply cropping from the top/left border.
*
* @note when this option is set to zero, the width/height fields of the
* AVCodecContext and output AVFrames have different meanings. The codec
* context fields store display dimensions (with the coded dimensions in
* coded_width/height), while the frame fields store the coded dimensions
* (with the display dimensions being determined by the crop_* fields).
*/
int apply_cropping;
} AVCodecContext;
AVRational av_codec_get_pkt_timebase (const AVCodecContext *avctx);
@ -3764,20 +3802,22 @@ typedef struct AVCodec {
int (*decode)(AVCodecContext *, void *outdata, int *outdata_size, AVPacket *avpkt);
int (*close)(AVCodecContext *);
/**
* Decode/encode API with decoupled packet/frame dataflow. The API is the
* Encode API with decoupled packet/frame dataflow. The API is the
* same as the avcodec_ prefixed APIs (avcodec_send_frame() etc.), except
* that:
* - never called if the codec is closed or the wrong type,
* - AVPacket parameter change side data is applied right before calling
* AVCodec->send_packet,
* - if AV_CODEC_CAP_DELAY is not set, drain packets or frames are never sent,
* - only one drain packet is ever passed down (until the next flush()),
* - a drain AVPacket is always NULL (no need to check for avpkt->size).
* - if AV_CODEC_CAP_DELAY is not set, drain frames are never sent,
* - only one drain frame is ever passed down,
*/
int (*send_frame)(AVCodecContext *avctx, const AVFrame *frame);
int (*send_packet)(AVCodecContext *avctx, const AVPacket *avpkt);
int (*receive_frame)(AVCodecContext *avctx, AVFrame *frame);
int (*receive_packet)(AVCodecContext *avctx, AVPacket *avpkt);
/**
* Decode API with decoupled packet/frame dataflow. This function is called
* to get one output frame. It should call ff_decode_get_packet() to obtain
* input data.
*/
int (*receive_frame)(AVCodecContext *avctx, AVFrame *frame);
/**
* Flush buffers.
* Will be called when seeking
@ -3788,6 +3828,12 @@ typedef struct AVCodec {
* See FF_CODEC_CAP_* in internal.h
*/
int caps_internal;
/**
* Decoding only, a comma-separated list of bitstream filters to apply to
* packets before decoding.
*/
const char *bsfs;
} AVCodec;
int av_codec_get_max_lowres(const AVCodec *codec);
@ -6037,8 +6083,7 @@ int av_bsf_init(AVBSFContext *ctx);
* av_bsf_receive_packet() repeatedly until it returns AVERROR(EAGAIN) or
* AVERROR_EOF.
*
* @param pkt the packet to filter. pkt must contain some payload (i.e data or
* side data must be present in pkt). The bitstream filter will take ownership of
* @param pkt the packet to filter. The bitstream filter will take ownership of
* the packet and reset the contents of pkt. pkt is not touched if an error occurs.
* This parameter may be NULL, which signals the end of the stream (i.e. no more
* packets will be sent). That will cause the filter to output any packets it

View File

@ -28,8 +28,8 @@
#include "libavutil/version.h"
#define LIBAVCODEC_VERSION_MAJOR 57
#define LIBAVCODEC_VERSION_MINOR 93
#define LIBAVCODEC_VERSION_MICRO 100
#define LIBAVCODEC_VERSION_MINOR 96
#define LIBAVCODEC_VERSION_MICRO 101
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \

View File

@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
#define FFMPEG_VERSION "N-85607-g4d15724952"
#define FFMPEG_VERSION "N-86221-g3dd242ef49"
#endif /* AVUTIL_FFVERSION_H */

View File

@ -25,6 +25,7 @@
#ifndef AVUTIL_FRAME_H
#define AVUTIL_FRAME_H
#include <stddef.h>
#include <stdint.h>
#include "avutil.h"
@ -240,9 +241,18 @@ typedef struct AVFrame {
uint8_t **extended_data;
/**
* width and height of the video frame
* @name Video dimensions
* Video frames only. The coded dimensions (in pixels) of the video frame,
* i.e. the size of the rectangle that contains some well-defined values.
*
* @note The part of the frame intended for display/presentation is further
* restricted by the @ref cropping "Cropping rectangle".
* @{
*/
int width, height;
/**
* @}
*/
/**
* number of audio samples (per channel) described by this frame
@ -530,6 +540,22 @@ typedef struct AVFrame {
* purpose.
*/
AVBufferRef *opaque_ref;
/**
* @anchor cropping
* @name Cropping
* Video frames only. The number of pixels to discard from the the
* top/bottom/left/right border of the frame to obtain the sub-rectangle of
* the frame intended for presentation.
* @{
*/
size_t crop_top;
size_t crop_bottom;
size_t crop_left;
size_t crop_right;
/**
* @}
*/
} AVFrame;
/**

View File

@ -30,6 +30,7 @@ enum AVHWDeviceType {
AV_HWDEVICE_TYPE_VAAPI,
AV_HWDEVICE_TYPE_DXVA2,
AV_HWDEVICE_TYPE_QSV,
AV_HWDEVICE_TYPE_VIDEOTOOLBOX,
};
typedef struct AVHWDeviceInternal AVHWDeviceInternal;

View File

@ -0,0 +1,54 @@
/*
* 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_HWCONTEXT_VIDEOTOOLBOX_H
#define AVUTIL_HWCONTEXT_VIDEOTOOLBOX_H
#include <stdint.h>
#include <VideoToolbox/VideoToolbox.h>
#include "pixfmt.h"
/**
* @file
* An API-specific header for AV_HWDEVICE_TYPE_VIDEOTOOLBOX.
*
* This API currently does not support frame allocation, as the raw VideoToolbox
* API does allocation, and FFmpeg itself never has the need to allocate frames.
*
* If the API user sets a custom pool, AVHWFramesContext.pool must return
* AVBufferRefs whose data pointer is a CVImageBufferRef or CVPixelBufferRef.
*
* Currently AVHWDeviceContext.hwctx and AVHWFramesContext.hwctx are always
* NULL.
*/
/**
* Convert a VideoToolbox (actually CoreVideo) format to AVPixelFormat.
* Returns AV_PIX_FMT_NONE if no known equivalent was found.
*/
enum AVPixelFormat av_map_videotoolbox_format_to_pixfmt(uint32_t cv_fmt);
/**
* Convert an AVPixelFormat to a VideoToolbox (actually CoreVideo) format.
* Returns 0 if no known equivalent was found.
*/
uint32_t av_map_videotoolbox_format_from_pixfmt(enum AVPixelFormat pix_fmt);
#endif /* AVUTIL_HWCONTEXT_VIDEOTOOLBOX_H */

View File

@ -27,6 +27,7 @@
#ifndef AVUTIL_MD5_H
#define AVUTIL_MD5_H
#include <stddef.h>
#include <stdint.h>
#include "attributes.h"
@ -63,7 +64,11 @@ void av_md5_init(struct AVMD5 *ctx);
* @param src input data to update hash with
* @param len input data length
*/
#if FF_API_CRYPTO_SIZE_T
void av_md5_update(struct AVMD5 *ctx, const uint8_t *src, int len);
#else
void av_md5_update(struct AVMD5 *ctx, const uint8_t *src, size_t len);
#endif
/**
* Finish hashing and output digest value.
@ -80,7 +85,11 @@ void av_md5_final(struct AVMD5 *ctx, uint8_t *dst);
* @param src The data to hash
* @param len The length of the data, in bytes
*/
#if FF_API_CRYPTO_SIZE_T
void av_md5_sum(uint8_t *dst, const uint8_t *src, const int len);
#else
void av_md5_sum(uint8_t *dst, const uint8_t *src, size_t len);
#endif
/**
* @}

View File

@ -27,6 +27,7 @@
#ifndef AVUTIL_SHA_H
#define AVUTIL_SHA_H
#include <stddef.h>
#include <stdint.h>
#include "attributes.h"
@ -69,11 +70,15 @@ int av_sha_init(struct AVSHA* context, int bits);
/**
* Update hash value.
*
* @param context hash function context
* @param ctx 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);
#if FF_API_CRYPTO_SIZE_T
void av_sha_update(struct AVSHA *ctx, const uint8_t *data, unsigned int len);
#else
void av_sha_update(struct AVSHA *ctx, const uint8_t *data, size_t len);
#endif
/**
* Finish hashing and output digest value.

View File

@ -28,6 +28,7 @@
#ifndef AVUTIL_SHA512_H
#define AVUTIL_SHA512_H
#include <stddef.h>
#include <stdint.h>
#include "attributes.h"
@ -75,7 +76,11 @@ int av_sha512_init(struct AVSHA512* context, int bits);
* @param data input data to update hash with
* @param len input data length
*/
#if FF_API_CRYPTO_SIZE_T
void av_sha512_update(struct AVSHA512* context, const uint8_t* data, unsigned int len);
#else
void av_sha512_update(struct AVSHA512* context, const uint8_t* data, size_t len);
#endif
/**
* Finish hashing and output digest value.

View File

@ -30,7 +30,7 @@
#include <stdint.h>
#include "rational.h"
#define AV_TIMECODE_STR_SIZE 16
#define AV_TIMECODE_STR_SIZE 23
enum AVTimecodeFlag {
AV_TIMECODE_FLAG_DROPFRAME = 1<<0, ///< timecode is drop frame

View File

@ -78,8 +78,9 @@
* @{
*/
#define LIBAVUTIL_VERSION_MAJOR 55
#define LIBAVUTIL_VERSION_MINOR 61
#define LIBAVUTIL_VERSION_MINOR 63
#define LIBAVUTIL_VERSION_MICRO 100
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
@ -135,6 +136,9 @@
#ifndef FF_API_PKT_PTS
#define FF_API_PKT_PTS (LIBAVUTIL_VERSION_MAJOR < 56)
#endif
#ifndef FF_API_CRYPTO_SIZE_T
#define FF_API_CRYPTO_SIZE_T (LIBAVUTIL_VERSION_MAJOR < 56)
#endif
/**

Binary file not shown.

View File

@ -1,17 +1,17 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABCAAGBQJY+9BjAAoJEI1smEefSt5xFmgP/iR+RQYIkkrgR/idxJrbd07y
bRLYyYFErK7K6dl5fSqQs0IuQd71EQX/fiJnVLR1CtLWNco5x7DfKSsclXY+pGto
AYskzYikh1MHJDPXd4nOOlSYNcIP6KAVPm5TzWOehOaUzT8Ce/QViNeC956ikggC
qa4DsK7JkdOPX9vILVOMuWEerYDqewnlFx07JY5EjOXzitmYddZBtdv9kW8dxyVT
6xyNXHFuHVtpVT5DHqrfjn79HkDr0tUpeWErJ5rVItB7X5YZqi+8aQOXHhUCvcI9
4gTo+KE9NhKsuIPpC6L5rffge2HUR2BflcxL5/FI/lXwGmr6vAhztKcQMGeZVtEJ
mZMrJUAShRSgNxxUgstYXQKU/f8CsS1JTodpKhXIy4OtBuKS4eZcP6T0sORYdhlt
+0+ZnFbptIqV/EKSjkDUQTgmKn7dTXfq5/TzwT34I4igBKZk8bxv9HUL6z+mjF53
utBpMtudBb8Flp/N+HQKm4yUOm6x/p4iaNZdKWJ1nx6y/j7ryvo4ZeIS8jXvBC6k
V+AHJuUO6FgksJyJHDd61T0bLbsuqmzvE58sDX+VL7O21vjfQby4ojEtg3S72BSS
BZcefaasjXKZwOe07PX28y+d2iSLq5bC6OV/+ZpGfX8T6kj8mD0Z3rwHrPv0nbg0
WovFGfrHjCBtUKEjV/Xj
=3IXm
iQIcBAABCAAGBQJZIm+NAAoJEI1smEefSt5xBp4P/2CGBl86MzvwdeTrkfuHd7c4
14KohstmMjQOanTYBxEqvOGaBfg2uuvUjZxA5O1S5lqvBT5oOZB+t+pPO+rNydjd
QHA6VmoQbmXYD+y39jcBq8zYrSINslwwzS3bxmNKV93/AS36qcJ6ntz5LIkJoJcH
qF1AaJemTDvIZm65zUx/McWCKy6BLoF9WesZPS+6P1SKIg6hbgh9zpVEBLjKlQAZ
NYhg4WmV5YfJOedkw+51J1qbjB+d19cv2djqruWKQQfOxEJ83utw3MRIwwpPXgE+
Xab7g7voKSbUS/wfMS0I28fvY146Tv5NcM6kNHypzBOb3vKLDEigCWVFyDvXUjiY
jbDL7vv58fR3QL547UFh3/UBKSgqRLEjihgKJ+i8IIhaJ2DNRC7yqU7NZj8BC/Jk
QrJSJu8vH3dHYRHX8JQbTY7uyEls2qi/OLCxEsxeqmQr6zbA/tgvaI5RyWUHahwi
fFO7jjBxKxqSXHonRpIpdmN1IlszZ7yEYSgd/5MZmjmJArJ7TJ7xXrhAsKAYxtEX
uhTKPzB6Y0IDNcqJ9NfpKaNS5/TZklU9E7W3crXioZd984O7mMQfRFcwaJr8l4B5
H0Me4U/VFB49bl/jCQYe9OZwlR3CPg+IMwlA3QyzwNLbpFtOkSRk1mR20S9DETb4
k5anj6uZJvNPYj4SsnY6
=iyI1
-----END PGP SIGNATURE-----

Binary file not shown.

View File

@ -1,17 +1,17 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABCAAGBQJY+9BkAAoJEI1smEefSt5xKukQALI1r4pS+FcdktXyGiShXAI0
k9KdKEc1B0jGbaryEf/5A2uxK3wsG2K7tKFrS+03/Kyaf3u5zQNIBfLmj3aa3mMz
toMK9a8h54AycqWPOFLlZufDUY6o8cAkH1MJ/2WnfbyBG8m/EKSd7sdYcWGWgtwL
WQcIxKLuSJsn6bykXLKgAUtjrGmvhn91vqgfKUhAeKvJdGnI8FSinxtJhxCxhkta
uHcj2w2oOK82tyzQiuIoWqc51Rf9w1Ce6MzKXN7CuD63abFEBtHFyn/cR/UAIQlJ
lRQJ6J4mgYS2oyXC+cH6mVXz13Zq+qiNWLO96xUYBoWhCF1NmYBBJvKP7BCmjGXr
KVeAtfhOCc3/BeGcKbci0ccMC2Q31u79jEwoPeQJBNUCobrpjqCuT/Qi7zaxd1k7
E0eArVUusjRqjlgFiqp1wTM2zWuSrOvRLmY5F3j+4gECExMJ4kCO5zWY1SLptBJY
U0LKn3Be7dup2ORhPqEh0xQiOeixkeuhCkvHLJP9bxoqUxVs31Si3bqSghzLZGAd
jSbhrnGC0h76RP4u7ES8MmSMFA5RoyE0YR23SgftROanzIhWI6RCzYQQAPaZXAWO
jgcue2YjfN1s1I9vvY0N7DX1ja6SthNRbS75EVoJbcIfq+hlwUto1aGdwqzyvqOK
UsOrYQKLBFLOSdLeq66t
=egCI
iQIcBAABCAAGBQJZIm+NAAoJEI1smEefSt5xXuMP/R/oZQ8qjH2yPtLOUdZxAhOl
E73H0nfKvTquFxFQBlNed4YQz904TMPhfXcd6ovGA/3qD6oBwzYI5wGSB7wjiZRw
X35wMQYOJf6YhNYaT2YxvDMwGbkc5K5tHAIaE6XVV4JSlJNk0sjoUEd2tYU2WV/F
pJShSseVeC177nGucYLuBTquzN3JtfeD1MkHEqbHjCHs8/aVIH8I9It4vH1FP7xL
1FgsdTgA4NN155N5glADh7taDauVVgxq0xaiB0GFV7T0/V5n04lgPwd8ayrGS3Bq
MwVOds2aYApadCcsVCGwcCxv0Ow4AT54LIy6cZNflWHKU3tHJmaR/A1Y+J3OKKUH
oFukcSh10Ibm1FYG1HBcp81fB731TtqmBhR0XdPAOZG9tNyR75ucLCbzGOnyy0Yc
Zi+b5jgtlrrpmwulDemT5L9WL1wwvmNVtKnhTy/ky2XsJ434gQZY79FkAWHg5fv4
NiTyH+gdvKFqUdahq2aowdVQFzWEnkBEIycS/kJ4JE7wo4Fsy6+eVUwrbQ7Ks3wH
GBoCzL3LDVw01GpuLyoGsJ3Qai3DttSJONPPCOEtjFxwnjuGvnuMKQ1i29oc5zHM
OLqigaWfPq0Mb+4ZKlC+RqeUSysCTqmH1S4HClFwEvxOdXZ3NCMIy4IPaUSlwcQ3
OyK0ENQ4O/VQxyctYC5v
=ACam
-----END PGP SIGNATURE-----

Binary file not shown.

View File

@ -1,17 +1,17 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABCAAGBQJY+9BhAAoJEI1smEefSt5xZrwP/RAA0lmV/PIiP7QcxFPUJuqz
M35vBimlqBocyFJuNunjqAq37I6OR/uT0lPHZjUvGoLT/5FjHiVuZfZdevBNokEp
dRTXvphpG+q5aHFyKu+pYbvMiKzvCpIOPtQSYiV4gOxBsjFdBzscxOhyFdMlnpIr
TVDcKA7jB3TmcEFCpjfjTmDq84vzlpgTPbQs5uLBq+/+/NP+VzlAAdEFTXaAdQU4
J1Eb52x3oSjzZVDQsrn+D2JmUhzFwgFFIU3ovw3TjAvMbqVtMJQaClq1f/gPXWA2
SM4O9tQCZrA2lc0Ae01kJOUFaQzv816aW9lVb5R1tpB9BZkqypqXxdv4TzSS6d3U
ygd4ZUDMknL6ypQzcXC0WfKJzK75KUmUdXt+UaLrjTjg7XuDwZ3FlLJpAltmHiDk
jiO2M6Gyd4N0Ue7OkqeuUhDxJzVvARFyIZ2bGhM9d+bvbzumilNcuLm8DYjLWyfZ
suTdn+IP11IOkEu23sA0hmlAtJAqmWW7WuRYCXsqU78mlAu74GgdggAec5KtElR1
1e7ZEV+j1Sp+9wq5GbYSrheEkYWV7QL0DcWSJ5q0pTTyf8O74R9jHpZZ4uAoiol6
1FRbK9L1fcMP0/m8rR9fA4le7/mF0W5fyPrrsxKCrs677U2fzaSUU809Zb07QiQ2
9z+txjajPnixgiQIr+6/
=qeAu
iQIcBAABCAAGBQJZIm+LAAoJEI1smEefSt5xRA4QAKmEJugnYFlAWOf+LYA7rZZ3
cWKSc37OLLkRZFSpjYKN8N2EinGF95L4YBVz2t04GZz0kMIZl9AGfrr9p70J/1Ni
eHF4iGT/YhQ/Rnk9zlntA1QeAh03iL6bgSLGw0Hn4TR2fsu8yhZ/gJNpQPcHtSo+
uE1CzK6liOzIJG/wfg7SMyjk3IZunA+1Ohc70HGjdQm9FBxKDQB4Oev7wYIQI41I
K3+smTc7AwtWrISFmAIf886Ee5smqKGhxtJHr5zSEHid8/glEYjbQTWX+PEXcM/I
FGNyuPH4re7+iEOO3rEE7upt0Aeb+nwmcsgYVpOwCO8FN04qE0o9Xxf75GGLdjna
QMk6m2oZ7vjFvr2YfBFRBp8Xhnc53ZRwHw+Ja3RGK+hxpITaL2XetX7MO4OrP0BN
0fYesCKOieCkEtxPEtbvxdWUOpUEu69geLBplt/UoZf5uyQedZlENFeHlRr39jjT
UP6AnjA1EodUvojsFAyYP6sldoHk8BAvgjhLATKzJWLijBtEk/qhGev9lhyfToxD
sM1D7pVWFZev2m7eZ9CLFrpULJzxGgzN5u1fz+1cTJkT/kw6Eil0sfFtS0ohdyTA
wKCdz42ZiwR4I15mY/8LL3i+krymDQhSbAo90jGG4dBh1KkkRCugPsjN+4GFwpJm
eC6XVDzJKNnNaJ7tJs+T
=P6x/
-----END PGP SIGNATURE-----

View File

@ -21,8 +21,8 @@
--disable-everything
--enable-hwaccels
--enable-parser=ac3,mpegaudio,xma,vorbis
--enable-demuxer=ac3,asf,xwma,mov,oma,ogg,tak,dsf,wav,aac,dts,dtshd,mp3,bink,flac,msf,xmv,caf
--enable-decoder=ac3,wmapro,wmav1,wmav2,wmavoice,wmalossless,xma1,xma2,dca,tak,dsd_lsbf,dsd_lsbf_planar,dsd_mbf,dsd_msbf_planar,aac,atrac3,atrac3p,mp3float,bink,binkaudio_dct,binkaudio_rdft,flac,pcm_s16be,pcm_s16be_planar,pcm_s16le,pcm_s16le_planar,vorbis
--enable-demuxer=ac3,asf,xwma,mov,oma,ogg,tak,dsf,wav,aac,dts,dtshd,mp3,bink,flac,msf,xmv,caf,ape
--enable-decoder=ac3,wmapro,wmav1,wmav2,wmavoice,wmalossless,xma1,xma2,dca,tak,dsd_lsbf,dsd_lsbf_planar,dsd_mbf,dsd_msbf_planar,aac,atrac3,atrac3p,mp3float,bink,binkaudio_dct,binkaudio_rdft,flac,pcm_s16be,pcm_s16be_planar,pcm_s16le,pcm_s16le_planar,vorbis,ape
--disable-parser=mpeg4video,h263
--disable-decoder=mpeg2video,h263,h264,mpeg1video,mpeg2video,mpeg4,hevc,vp9
--disable-cuvid