Updated FFmpeg.

This commit is contained in:
Christopher Snowhill 2017-12-03 14:03:39 -08:00
parent e02e72cd08
commit d37765375c
23 changed files with 256 additions and 79 deletions

View File

@ -36,6 +36,7 @@
#include "libavutil/channel_layout.h" #include "libavutil/channel_layout.h"
#include "libavutil/dict.h" #include "libavutil/dict.h"
#include "libavutil/frame.h" #include "libavutil/frame.h"
#include "libavutil/hwcontext.h"
#include "libavutil/log.h" #include "libavutil/log.h"
#include "libavutil/pixfmt.h" #include "libavutil/pixfmt.h"
#include "libavutil/rational.h" #include "libavutil/rational.h"
@ -1049,7 +1050,7 @@ typedef struct RcOverride{
* This specifies the area which should be displayed. * This specifies the area which should be displayed.
* Note there may be multiple such areas for one frame. * Note there may be multiple such areas for one frame.
*/ */
typedef struct AVPanScan{ typedef struct AVPanScan {
/** /**
* id * id
* - encoding: Set by user. * - encoding: Set by user.
@ -1071,7 +1072,7 @@ typedef struct AVPanScan{
* - decoding: Set by libavcodec. * - decoding: Set by libavcodec.
*/ */
int16_t position[3][2]; int16_t position[3][2];
}AVPanScan; } AVPanScan;
/** /**
* This structure describes the bitrate properties of an encoded bitstream. It * This structure describes the bitrate properties of an encoded bitstream. It
@ -1238,7 +1239,7 @@ enum AVPacketSideDataType {
* u8 reason for end skip (0=padding silence, 1=convergence) * u8 reason for end skip (0=padding silence, 1=convergence)
* @endcode * @endcode
*/ */
AV_PKT_DATA_SKIP_SAMPLES=70, AV_PKT_DATA_SKIP_SAMPLES,
/** /**
* An AV_PKT_DATA_JP_DUALMONO side data packet indicates that * An AV_PKT_DATA_JP_DUALMONO side data packet indicates that
@ -1327,7 +1328,7 @@ enum AVPacketSideDataType {
AV_PKT_DATA_A53_CC, AV_PKT_DATA_A53_CC,
/** /**
* The number of side data elements (in fact a bit more than it). * The number of side data types.
* This is not part of the public API/ABI in the sense that it may * This is not part of the public API/ABI in the sense that it may
* change when new side data types are added. * change when new side data types are added.
* This must stay the last enum value. * This must stay the last enum value.
@ -1443,6 +1444,12 @@ typedef struct AVPacket {
* outside the packet may be followed. * outside the packet may be followed.
*/ */
#define AV_PKT_FLAG_TRUSTED 0x0008 #define AV_PKT_FLAG_TRUSTED 0x0008
/**
* Flag is used to indicate packets that contain frames that can
* be discarded by the decoder. I.e. Non-reference frames.
*/
#define AV_PKT_FLAG_DISPOSABLE 0x0010
enum AVSideDataParamChangeFlags { enum AVSideDataParamChangeFlags {
AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT = 0x0001, AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT = 0x0001,
@ -2634,7 +2641,7 @@ typedef struct AVCodecContext {
* - encoding: unused. * - encoding: unused.
* - decoding: Set by libavcodec * - decoding: Set by libavcodec
*/ */
struct AVHWAccel *hwaccel; const struct AVHWAccel *hwaccel;
/** /**
* Hardware accelerator context. * Hardware accelerator context.
@ -3235,22 +3242,41 @@ typedef struct AVCodecContext {
int apply_cropping; int apply_cropping;
} AVCodecContext; } AVCodecContext;
#if FF_API_CODEC_GET_SET
/**
* Accessors for some AVCodecContext fields. These used to be provided for ABI
* compatibility, and do not need to be used anymore.
*/
attribute_deprecated
AVRational av_codec_get_pkt_timebase (const AVCodecContext *avctx); AVRational av_codec_get_pkt_timebase (const AVCodecContext *avctx);
attribute_deprecated
void av_codec_set_pkt_timebase (AVCodecContext *avctx, AVRational val); void av_codec_set_pkt_timebase (AVCodecContext *avctx, AVRational val);
attribute_deprecated
const AVCodecDescriptor *av_codec_get_codec_descriptor(const AVCodecContext *avctx); const AVCodecDescriptor *av_codec_get_codec_descriptor(const AVCodecContext *avctx);
attribute_deprecated
void av_codec_set_codec_descriptor(AVCodecContext *avctx, const AVCodecDescriptor *desc); void av_codec_set_codec_descriptor(AVCodecContext *avctx, const AVCodecDescriptor *desc);
attribute_deprecated
unsigned av_codec_get_codec_properties(const AVCodecContext *avctx); unsigned av_codec_get_codec_properties(const AVCodecContext *avctx);
#if FF_API_LOWRES
attribute_deprecated
int av_codec_get_lowres(const AVCodecContext *avctx); int av_codec_get_lowres(const AVCodecContext *avctx);
attribute_deprecated
void av_codec_set_lowres(AVCodecContext *avctx, int val); void av_codec_set_lowres(AVCodecContext *avctx, int val);
#endif
attribute_deprecated
int av_codec_get_seek_preroll(const AVCodecContext *avctx); int av_codec_get_seek_preroll(const AVCodecContext *avctx);
attribute_deprecated
void av_codec_set_seek_preroll(AVCodecContext *avctx, int val); void av_codec_set_seek_preroll(AVCodecContext *avctx, int val);
attribute_deprecated
uint16_t *av_codec_get_chroma_intra_matrix(const AVCodecContext *avctx); uint16_t *av_codec_get_chroma_intra_matrix(const AVCodecContext *avctx);
attribute_deprecated
void av_codec_set_chroma_intra_matrix(AVCodecContext *avctx, uint16_t *val); void av_codec_set_chroma_intra_matrix(AVCodecContext *avctx, uint16_t *val);
#endif
/** /**
* AVProfile. * AVProfile.
@ -3260,6 +3286,61 @@ typedef struct AVProfile {
const char *name; ///< short name for the profile const char *name; ///< short name for the profile
} AVProfile; } AVProfile;
enum {
/**
* The codec supports this format via the hw_device_ctx interface.
*
* When selecting this format, AVCodecContext.hw_device_ctx should
* have been set to a device of the specified type before calling
* avcodec_open2().
*/
AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX = 0x01,
/**
* The codec supports this format via the hw_frames_ctx interface.
*
* When selecting this format for a decoder,
* AVCodecContext.hw_frames_ctx should be set to a suitable frames
* context inside the get_format() callback. The frames context
* must have been created on a device of the specified type.
*/
AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX = 0x02,
/**
* The codec supports this format by some internal method.
*
* This format can be selected without any additional configuration -
* no device or frames context is required.
*/
AV_CODEC_HW_CONFIG_METHOD_INTERNAL = 0x04,
/**
* The codec supports this format by some ad-hoc method.
*
* Additional settings and/or function calls are required. See the
* codec-specific documentation for details. (Methods requiring
* this sort of configuration are deprecated and others should be
* used in preference.)
*/
AV_CODEC_HW_CONFIG_METHOD_AD_HOC = 0x08,
};
typedef struct AVCodecHWConfig {
/**
* A hardware pixel format which the codec can use.
*/
enum AVPixelFormat pix_fmt;
/**
* Bit set of AV_CODEC_HW_CONFIG_METHOD_* flags, describing the possible
* setup methods which can be used with this configuration.
*/
int methods;
/**
* The device type associated with the configuration.
*
* Must be set for AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX and
* AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX, otherwise unused.
*/
enum AVHWDeviceType device_type;
} AVCodecHWConfig;
typedef struct AVCodecDefault AVCodecDefault; typedef struct AVCodecDefault AVCodecDefault;
struct AVSubtitle; struct AVSubtitle;
@ -3385,14 +3466,39 @@ typedef struct AVCodec {
* packets before decoding. * packets before decoding.
*/ */
const char *bsfs; const char *bsfs;
/**
* Array of pointers to hardware configurations supported by the codec,
* or NULL if no hardware supported. The array is terminated by a NULL
* pointer.
*
* The user can only access this field via avcodec_get_hw_config().
*/
const struct AVCodecHWConfigInternal **hw_configs;
} AVCodec; } AVCodec;
#if FF_API_CODEC_GET_SET
attribute_deprecated
int av_codec_get_max_lowres(const AVCodec *codec); int av_codec_get_max_lowres(const AVCodec *codec);
#endif
struct MpegEncContext; struct MpegEncContext;
/**
* Retrieve supported hardware configurations for a codec.
*
* Values of index from zero to some maximum return the indexed configuration
* descriptor; all other values return NULL. If the codec does not support
* any hardware configurations then it will always return NULL.
*/
const AVCodecHWConfig *avcodec_get_hw_config(const AVCodec *codec, int index);
/** /**
* @defgroup lavc_hwaccel AVHWAccel * @defgroup lavc_hwaccel AVHWAccel
*
* @note Nothing in this structure should be accessed by the user. At some
* point in future it will not be externally visible at all.
*
* @{ * @{
*/ */
typedef struct AVHWAccel { typedef struct AVHWAccel {
@ -3437,7 +3543,6 @@ typedef struct AVHWAccel {
* New public fields should be added right above. * New public fields should be added right above.
***************************************************************** *****************************************************************
*/ */
struct AVHWAccel *next;
/** /**
* Allocate a custom buffer * Allocate a custom buffer
@ -3460,6 +3565,20 @@ typedef struct AVHWAccel {
*/ */
int (*start_frame)(AVCodecContext *avctx, const uint8_t *buf, uint32_t buf_size); int (*start_frame)(AVCodecContext *avctx, const uint8_t *buf, uint32_t buf_size);
/**
* Callback for parameter data (SPS/PPS/VPS etc).
*
* Useful for hardware decoders which keep persistent state about the
* video parameters, and need to receive any changes to update that state.
*
* @param avctx the codec context
* @param type the nal unit type
* @param buf the nal unit data buffer
* @param buf_size the size of the nal unit in bytes
* @return zero if successful, a negative value otherwise
*/
int (*decode_params)(AVCodecContext *avctx, int type, const uint8_t *buf, uint32_t buf_size);
/** /**
* Callback for each slice. * Callback for each slice.
* *
@ -3542,13 +3661,6 @@ typedef struct AVHWAccel {
* that avctx->hwaccel_priv_data is invalid. * that avctx->hwaccel_priv_data is invalid.
*/ */
int (*frame_params)(AVCodecContext *avctx, AVBufferRef *hw_frames_ctx); int (*frame_params)(AVCodecContext *avctx, AVBufferRef *hw_frames_ctx);
/**
* Some hwaccels are ambiguous if only the id and pix_fmt fields are used.
* If non-NULL, the associated AVCodec must have
* FF_CODEC_CAP_HWACCEL_REQUIRE_CLASS set.
*/
const AVClass *decoder_class;
} AVHWAccel; } AVHWAccel;
/** /**
@ -5771,17 +5883,26 @@ void av_fast_padded_mallocz(void *ptr, unsigned int *size, size_t min_size);
*/ */
unsigned int av_xiphlacing(unsigned char *s, unsigned int v); unsigned int av_xiphlacing(unsigned char *s, unsigned int v);
#if FF_API_USER_VISIBLE_AVHWACCEL
/** /**
* Register the hardware accelerator hwaccel. * Register the hardware accelerator hwaccel.
*
* @deprecated This function doesn't do anything.
*/ */
attribute_deprecated
void av_register_hwaccel(AVHWAccel *hwaccel); void av_register_hwaccel(AVHWAccel *hwaccel);
/** /**
* If hwaccel is NULL, returns the first registered hardware accelerator, * If hwaccel is NULL, returns the first registered hardware accelerator,
* if hwaccel is non-NULL, returns the next registered hardware accelerator * if hwaccel is non-NULL, returns the next registered hardware accelerator
* after hwaccel, or NULL if hwaccel is the last one. * after hwaccel, or NULL if hwaccel is the last one.
*
* @deprecated AVHWaccel structures contain no user-serviceable parts, so
* this function should not be used.
*/ */
attribute_deprecated
AVHWAccel *av_hwaccel_next(const AVHWAccel *hwaccel); AVHWAccel *av_hwaccel_next(const AVHWAccel *hwaccel);
#endif
/** /**

View File

@ -28,8 +28,8 @@
#include "libavutil/version.h" #include "libavutil/version.h"
#define LIBAVCODEC_VERSION_MAJOR 58 #define LIBAVCODEC_VERSION_MAJOR 58
#define LIBAVCODEC_VERSION_MINOR 3 #define LIBAVCODEC_VERSION_MINOR 6
#define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_MICRO 102
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \ LIBAVCODEC_VERSION_MINOR, \
@ -120,6 +120,12 @@
#ifndef FF_API_GETCHROMA #ifndef FF_API_GETCHROMA
#define FF_API_GETCHROMA (LIBAVCODEC_VERSION_MAJOR < 59) #define FF_API_GETCHROMA (LIBAVCODEC_VERSION_MAJOR < 59)
#endif #endif
#ifndef FF_API_CODEC_GET_SET
#define FF_API_CODEC_GET_SET (LIBAVCODEC_VERSION_MAJOR < 59)
#endif
#ifndef FF_API_USER_VISIBLE_AVHWACCEL
#define FF_API_USER_VISIBLE_AVHWACCEL (LIBAVCODEC_VERSION_MAJOR < 59)
#endif
#endif /* AVCODEC_VERSION_H */ #endif /* AVCODEC_VERSION_H */

View File

@ -785,7 +785,7 @@ enum AVStreamParseType {
AVSTREAM_PARSE_HEADERS, /**< Only parse headers, do not 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_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_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 AVSTREAM_PARSE_FULL_RAW, /**< 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 this assumes that each packet in the file contains no demuxer level headers and
just codec level data, otherwise position generation would fail */ just codec level data, otherwise position generation would fail */
}; };

View File

@ -236,7 +236,6 @@ typedef struct AVIOContext {
int (*write_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 (*seek)(void *opaque, int64_t offset, int whence);
int64_t pos; /**< position in the file of the current buffer */ int64_t pos; /**< position in the file of the current buffer */
int must_flush; /**< unused */
int eof_reached; /**< true if eof reached */ int eof_reached; /**< true if eof reached */
int write_flag; /**< true if open for writing */ int write_flag; /**< true if open for writing */
int max_packet_size; int max_packet_size;

View File

@ -33,7 +33,7 @@
// Also please add any ticket numbers that you believe might be affected here // Also please add any ticket numbers that you believe might be affected here
#define LIBAVFORMAT_VERSION_MAJOR 58 #define LIBAVFORMAT_VERSION_MAJOR 58
#define LIBAVFORMAT_VERSION_MINOR 2 #define LIBAVFORMAT_VERSION_MINOR 2
#define LIBAVFORMAT_VERSION_MICRO 100 #define LIBAVFORMAT_VERSION_MICRO 103
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
LIBAVFORMAT_VERSION_MINOR, \ LIBAVFORMAT_VERSION_MINOR, \

View File

@ -1,4 +1,4 @@
/* Generated by ffconf */ /* Generated by ffmpeg configure */
#ifndef AVUTIL_AVCONFIG_H #ifndef AVUTIL_AVCONFIG_H
#define AVUTIL_AVCONFIG_H #define AVUTIL_AVCONFIG_H
#define AV_HAVE_BIGENDIAN 0 #define AV_HAVE_BIGENDIAN 0

View File

@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */ /* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H #ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H #define AVUTIL_FFVERSION_H
#define FFMPEG_VERSION "N-88940-g6430f8505e" #define FFMPEG_VERSION "N-89370-g26825d962f"
#endif /* AVUTIL_FFVERSION_H */ #endif /* AVUTIL_FFVERSION_H */

View File

@ -34,6 +34,7 @@ enum AVHWDeviceType {
AV_HWDEVICE_TYPE_VIDEOTOOLBOX, AV_HWDEVICE_TYPE_VIDEOTOOLBOX,
AV_HWDEVICE_TYPE_D3D11VA, AV_HWDEVICE_TYPE_D3D11VA,
AV_HWDEVICE_TYPE_DRM, AV_HWDEVICE_TYPE_DRM,
AV_HWDEVICE_TYPE_OPENCL,
}; };
typedef struct AVHWDeviceInternal AVHWDeviceInternal; typedef struct AVHWDeviceInternal AVHWDeviceInternal;

View File

@ -37,6 +37,7 @@
*/ */
#include <d3d11.h> #include <d3d11.h>
#include <stdint.h>
/** /**
* This struct is allocated as AVHWDeviceContext.hwctx * This struct is allocated as AVHWDeviceContext.hwctx

View File

@ -73,6 +73,19 @@
* @param v Name of the variable * @param v Name of the variable
*/ */
/**
* @def DECLARE_ASM_ALIGNED(n,t,v)
* Declare an aligned variable appropriate for use in inline assembly code.
*
* @code{.c}
* DECLARE_ASM_ALIGNED(16, uint64_t, pw_08) = UINT64_C(0x0008000800080008);
* @endcode
*
* @param n Minimum alignment in bytes
* @param t Type of the variable (or array element)
* @param v Name of the variable
*/
/** /**
* @def DECLARE_ASM_CONST(n,t,v) * @def DECLARE_ASM_CONST(n,t,v)
* Declare a static constant aligned variable appropriate for use in inline * Declare a static constant aligned variable appropriate for use in inline
@ -89,18 +102,23 @@
#if defined(__INTEL_COMPILER) && __INTEL_COMPILER < 1110 || defined(__SUNPRO_C) #if defined(__INTEL_COMPILER) && __INTEL_COMPILER < 1110 || defined(__SUNPRO_C)
#define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v #define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v
#define DECLARE_ASM_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v
#define DECLARE_ASM_CONST(n,t,v) const t __attribute__ ((aligned (n))) v #define DECLARE_ASM_CONST(n,t,v) const t __attribute__ ((aligned (n))) v
#elif defined(__DJGPP__) #elif defined(__DJGPP__)
#define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (FFMIN(n, 16)))) v #define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (FFMIN(n, 16)))) v
#define DECLARE_ASM_ALIGNED(n,t,v) t av_used __attribute__ ((aligned (FFMIN(n, 16)))) v
#define DECLARE_ASM_CONST(n,t,v) static const t av_used __attribute__ ((aligned (FFMIN(n, 16)))) v #define DECLARE_ASM_CONST(n,t,v) static const t av_used __attribute__ ((aligned (FFMIN(n, 16)))) v
#elif defined(__GNUC__) || defined(__clang__) #elif defined(__GNUC__) || defined(__clang__)
#define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v #define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v
#define DECLARE_ASM_ALIGNED(n,t,v) t av_used __attribute__ ((aligned (n))) v
#define DECLARE_ASM_CONST(n,t,v) static const t av_used __attribute__ ((aligned (n))) v #define DECLARE_ASM_CONST(n,t,v) static const t av_used __attribute__ ((aligned (n))) v
#elif defined(_MSC_VER) #elif defined(_MSC_VER)
#define DECLARE_ALIGNED(n,t,v) __declspec(align(n)) t v #define DECLARE_ALIGNED(n,t,v) __declspec(align(n)) t v
#define DECLARE_ASM_ALIGNED(n,t,v) __declspec(align(n)) t v
#define DECLARE_ASM_CONST(n,t,v) __declspec(align(n)) static const t v #define DECLARE_ASM_CONST(n,t,v) __declspec(align(n)) static const t v
#else #else
#define DECLARE_ALIGNED(n,t,v) t v #define DECLARE_ALIGNED(n,t,v) t v
#define DECLARE_ASM_ALIGNED(n,t,v) t v
#define DECLARE_ASM_CONST(n,t,v) static const t v #define DECLARE_ASM_CONST(n,t,v) static const t v
#endif #endif

View File

@ -230,7 +230,7 @@ enum AVPixelFormat {
*/ */
AV_PIX_FMT_CUDA, AV_PIX_FMT_CUDA,
AV_PIX_FMT_0RGB=0x123+4,///< packed RGB 8:8:8, 32bpp, XRGBXRGB... X=unused/undefined AV_PIX_FMT_0RGB, ///< 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_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_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_BGR0, ///< packed BGR 8:8:8, 32bpp, BGRXBGRX... X=unused/undefined
@ -322,6 +322,13 @@ enum AVPixelFormat {
* data[0] points to an AVDRMFrameDescriptor. * data[0] points to an AVDRMFrameDescriptor.
*/ */
AV_PIX_FMT_DRM_PRIME, AV_PIX_FMT_DRM_PRIME,
/**
* Hardware surfaces for OpenCL.
*
* data[i] contain 2D image objects (typed in C as cl_mem, used
* in OpenCL as image2d_t) for each plane of the surface.
*/
AV_PIX_FMT_OPENCL,
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 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
}; };

View File

@ -141,6 +141,25 @@ enum AVStereo3DType {
AV_STEREO3D_COLUMNS, AV_STEREO3D_COLUMNS,
}; };
/**
* List of possible view types.
*/
enum AVStereo3DView {
/**
* Frame contains two packed views.
*/
AV_STEREO3D_VIEW_PACKED,
/**
* Frame contains only the left view.
*/
AV_STEREO3D_VIEW_LEFT,
/**
* Frame contains only the right view.
*/
AV_STEREO3D_VIEW_RIGHT,
};
/** /**
* Inverted views, Right/Bottom represents the left view. * Inverted views, Right/Bottom represents the left view.
@ -164,6 +183,11 @@ typedef struct AVStereo3D {
* Additional information about the frame packing. * Additional information about the frame packing.
*/ */
int flags; int flags;
/**
* Determines which views are packed.
*/
enum AVStereo3DView view;
} AVStereo3D; } AVStereo3D;
/** /**

View File

@ -78,9 +78,8 @@
* @{ * @{
*/ */
#define LIBAVUTIL_VERSION_MAJOR 56 #define LIBAVUTIL_VERSION_MAJOR 56
#define LIBAVUTIL_VERSION_MINOR 0 #define LIBAVUTIL_VERSION_MINOR 4
#define LIBAVUTIL_VERSION_MICRO 100 #define LIBAVUTIL_VERSION_MICRO 100
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \

View File

@ -157,6 +157,7 @@ EXPORTS
avcodec_get_class avcodec_get_class
avcodec_get_context_defaults3 avcodec_get_context_defaults3
avcodec_get_frame_class avcodec_get_frame_class
avcodec_get_hw_config
avcodec_get_hw_frames_parameters avcodec_get_hw_frames_parameters
avcodec_get_name avcodec_get_name
avcodec_get_pix_fmt_loss avcodec_get_pix_fmt_loss

Binary file not shown.

View File

@ -1,17 +1,17 @@
-----BEGIN PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
Version: GnuPG v2 Version: GnuPG v2
iQIcBAABCAAGBQJaB8iLAAoJEI1smEefSt5xUa8P/AucdTroPK9Xftr5A2EOSBiY iQIcBAABCAAGBQJaJHR1AAoJEI1smEefSt5xalQP/jnuQwo9iUfxYkwaRV033J4u
73OZkzNe6204MZ4T3Res67miTBWc/B37XSGYFUCCdYAsEWVJ6TiO60iYzCiwa2K8 Qn14RWui7avcFQBD/tEeywX2ZxZkC8ijv1DDGdjuosW3kBroKjWwW54hLfVuaqYL
3P6hWIL405kO7qbl3qvsjPOrrU6Lxz3QjvYbBtMcCyZM28Vry6Hl7qkXHEPKPwVx fVGE3p25atJ9pKGQYXKlqWlZo9OvhM+0h8Fa8qH23e3XNTo0lJFFom28epeWAh5t
3yFGpRHkbBdXAIexHp/HnLJ7u95BUlJo5WuPGqr4xUUa5IJPY2et7HrrX2YIfq/+ ojijpvBSCxUSYhSBNPmZyrxK3MREoH7vBhzVOkdxAb3xVFvZO9bhGNKhQUaWdmzV
qZ/Oj5aBiNyZAxoeCYOlGsavtq1UiJaPr9zc0W+D0/h63lf+2ivIkfDsqjb1AFyC 4KLqMNfzoK5xP3hItlwdjrhbYPHcU1OQwwhHlpz1rNqZyN47UB+3r4OPO9zqLDUb
XtT7D0nPBIjUvAFQkNW3YIb8LmlGtMXGgfQ6cBmX5y0OuMqf1v83PbYiTuSQAaNy 4YPrqVmzA1YygsbE7kWifxKjGGr5LObtlOvPOHMWrtDa8wdfFXU6vs+qLLZoEphg
DQyJNi4SoskSPJEcjnI5r/H0krxxZyAyESFChl/kiwpyVAfclIhPPUB2Gk0CHcS9 jSDDNjD39NWK1cxg0IOpXEQA7mE33ejegQ/5CrFPGBimd0c0Xk3FQrnXcCMIL5NC
MMilSWlFP/tJR4jVyW2NgyfzWYlsLokFr85iqvZ3BEzcDBZTm+nQreScw1Uz0Azh X73+hE1bayd9HXdvtI3CPT/M7kkh1cD9loRDr5ajZ0WjkgzSBTLCcZGm+uOjC+eZ
o/tHuCsUIQSPmWm0AGdC4IWNfpAzENuuyOp953itYXqfOHM06zSQHaXg4y7pHyrR ov5nU5erpUMGCYSnhGfsOao8NTJlFrvZniDXc6XZBfNPcZ0Ryqmk6o7XAlUuF7TS
Kbu4lTqcAmP/5sJI2k2y0GBFxnqqISHkxlri9fNgHy0QufggA1YjDQRtn52IRsaB 5TqFCLYxWsdb8BRz/NxTyw9zJ37cKtc9Vdt6fbavcinKx6+CJrQ3M10dedWQripE
CkzGlThhMIgndrGhaGSRT8gapvrPyPZCHDGsiFKrNQM+BT2iw/sH2JECohiF9Q1o ZUJFIEtjHbKPtmiqHFFzjP5oNPl8VGZXrGzKXZwgXmo9HD2B+bwoOwpmlDjJyyGS
uIlwVwrMfce9xZF8MZhF cX/ze0Rq6oTmkxPxNHAh
=U4IV =wTAE
-----END PGP SIGNATURE----- -----END PGP SIGNATURE-----

Binary file not shown.

View File

@ -1,17 +1,17 @@
-----BEGIN PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
Version: GnuPG v2 Version: GnuPG v2
iQIcBAABCAAGBQJaB8iLAAoJEI1smEefSt5xjJMP/2q6EAXK383tOF9cfYPfg196 iQIcBAABCAAGBQJaJHR2AAoJEI1smEefSt5x3/wP/j50DZychoqJNHUlAvhaixS3
Nai5Ypw0uLONqkY3JPk9aBB+QAjv/G+tAhygaLEnCMWy6du0M1HM+1QAw7R4le/S 0i0e9+3Q4MMj/YtkEXu31LTXHW7OYUYpIzyxMCTUnSfAgCiuET8UXUVV2scZjzAz
mT5FCMHjTckdY4LAcpv3QqobiYNgBpTEJw3NYbXciLkl3EjoyhNncW7JBKX8nbbz 6bTLcgamdbzhE51FCPF07+pYWN5jcKTMv2gJXael6KpdH6TnLOJZRlHyFJf1689G
qQPAilAQTBH1Wf7+4O+5nt6JDau3oGX2M5gUMdG2/I1qaqfwgBy1S9vWp0dbBtxf hzfZ+zQlN4q5GLm1ZVXiTFPV2iFO4xJdTTBy4u+y68o7oa4ceDIGMOor8wNmaOE3
I5Ck23mfsEsTpP7eppEciKO8r0GokVhUiTKxj260ZYRY/embb/Y84u9gJ+z+Y9mU S8yt8WdG97rXiKFa7ErT8fS+qER8FQ/yaVWIlng8tEhLamWF+dWJD3n18SMNjQgX
2YOt3sJNSc77OLP9Ed1WagsC/1q9DbUa1JZ+UEPEX1I3kar7lAeDX2i5aYowF+4o xUV4IfZAgzVR1F+HjVpCUsAMqWB2wUHxUC/wa8kbApfVCdMQyVJVAUA03VkRieJb
JNfTot+2UcK/9TcK4AXBZwQMbppa9f3fWwTFsekcPJRdfZYIVpmFLSePA7Dz1yaP TOczG9DhTqIjOOgZVtqqxynP9JmIw4g2AtwR0jIGBiClVDkOtQPeAlcUgNCYi0CH
zL4owZLyErMPRMBPL3aAQB4ZDs8/1RHjizoQ8vGGUc0ZyF6rZQNzcBoG7Uqx2mHx vdB7qYfvZbxUNwuKa95jmsBbIPG09vqbw8N9MmBB/UQYv8MqVfPOEge81S+qM/+j
Ues0s53t+lpn+Orub8b+gGiGgiwcplioOrxRl1qMMtCMFXBUZd6VKshC0WQAVutp Qt9f03PlU4bAviFvDO7xHZ3/OjdWtxtr0XeVfSZmscJIYoQkaK6j5fKbQN5xsIlf
QCMrhboKa6/SFYJTlyhzNEaoSGEgFIx62sEOlH5UfoRGHaTtsUbq9hGXVya+8os9 wegAVF1Ah/WMz+f4xKcywlX4BhG5vFdfGeYvqVmTlIEACmtrUOnL0zFkT9+Lpi5b
DnCb68tsbJ8701jARG2SwBzWXzjpy8qgcVoGSDpO4aDj51Ke+/N8pbN43ASIDAxo TUbS3eipMEgcMtLt52cutinTGH7bj12vWjaKgbeJEOdOUlQ1wIvgdP+h6f1TsH5h
4UyHLZBlA6dPol88+RTa 0JRgX4rLuL5j7bxvHn8/
=nhmM =38ue
-----END PGP SIGNATURE----- -----END PGP SIGNATURE-----

Binary file not shown.

View File

@ -1,17 +1,17 @@
-----BEGIN PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
Version: GnuPG v2 Version: GnuPG v2
iQIcBAABCAAGBQJaB8iLAAoJEI1smEefSt5xbcsP/3H3Dg77eXvlGOCJJT6iAfbB iQIcBAABCAAGBQJaJHR3AAoJEI1smEefSt5xf6AQAKnODDHuqxmdj7bub9WHccNK
aRRe/syEL3zZMOaQM8buCTEOWXIVOefqA98AxJntMC/vaOGNS/1aU8+awoHQ4QJf t/jTr/CdfaO+0xKAuAPTqgcMwovIK0A+H/We/WjRqMW5cHGaRladKmg/z7JRrNDd
RJLmG3cljk/xfBd+LygBXNfjDB3tzuYyBEAzsgRintvKN3fKhnsb//IU+J+mOVpJ qf8doUMGDW6UszF0B8oJ/8EV14f+W4VfQcA5li6oVM3MjW+zPCc577n5hP9d+qXW
WcIdyYl36lD/ogpH+Edury6QANKQgI65Xg9Mz0goEyDXEnw+5EgiLLF0c74ZjN/w i3zuocx+4Hy5Tw73OMuZ3mIrlae4DaiN34Jd1g1YmN02iAnf3Xo4LBkb51dNq5gq
5sgAQ8tIkstq95XhPq3JqxWQaSqY04jr5s7vrz7Byv6H3581Dduo9VQU0KEAVOmO CbTn1nWTII/qN9WKQlPD4IzW2wp5YCMpD6UZO0qFMwzGlb+lB4uo2XVAQCxjSPLF
eXg14sBopB/NpcUasEyyazISTPMo/xYc63YkeFBKeiFhu/ndVl+2iQ0gP5+ivaEh RummkfAxr54KJGFh9Qf3SUSfSk0w2AQHpcXjgufN9XI974kI7OfO7bwZj1CPMQR0
q4IAjukkkN66834l5UoaK1hBmopSd2YIuWnxvA+/AHCuh7oMYsueXLHfclJEmUay QivjF92tn5rZWV4EDeohWZhdpQcOT/6MzJUOdINQyY1CzgNTOlPxf8+tJ5xfUbo9
lguoNMUwKr7T7po9GtJrW5+iWti8arL8eftB/Bondc+8nrchQOLxDvhaQY9TGZv1 4zi3zFL3cNyDX8trY6vaArynl9amSzICrQGcRMWjdwMPcslQlQ/W4wwYK2cVyJXH
m7518T6gEDOHVU5R4hzJBj+yilanlylALGLEicqQeaiq47xNEM9LBQ8RPrNkBIS0 AKu+cxNmrNXi0X5V51qFSXmG6LpYqFBDLKRbz4G/YMY+0lgceRPOen1Gqu5RQZBn
NQf12zc7l016L0Ogbr0gU4uplG12MFXP2mz2/xqfKGcpbq1BVhUDR7szJNeGhY7e 43QTM7+FW9DdexlYNXFyQ+X2eIgVn4wZiLrWT82s4T0wncaxClbDXZ1bWQWmnyr/
dN32X7rVlPF8FwVT8WzVZ8s0qk/NLje7thQSQdHCYEhcNVfhwwx54/hv+xTaUJym wiNLbj+vEzaiW3hPpYF232o4BYy11DD3WetDXQUhFeEwX3eOOZzs+o/BoP5kWTZO
bSQXOm2A73ANDv9ZG/zS eE6LGjazOkCRHXs3/BT7
=LO79 =TRdQ
-----END PGP SIGNATURE----- -----END PGP SIGNATURE-----

View File

@ -21,8 +21,8 @@
--enable-hwaccels --enable-hwaccels
--enable-swresample --enable-swresample
--enable-parser=ac3,mpegaudio,xma,vorbis,opus --enable-parser=ac3,mpegaudio,xma,vorbis,opus
--enable-demuxer=ac3,asf,xwma,mov,oma,ogg,tak,dsf,wav,aac,dts,dtshd,mp3,bink,flac,msf,xmv,caf,ape,smacker,pcm_s8,spdif --enable-demuxer=ac3,asf,xwma,mov,oma,ogg,tak,dsf,wav,aac,dts,dtshd,mp3,bink,flac,msf,xmv,caf,ape,smacker,pcm_s8,spdif,mpc,mpc8
--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,adpcm_ima_qt,smackaud,opus,pcm_s8,pcm_s8_planar --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,adpcm_ima_qt,smackaud,opus,pcm_s8,pcm_s8_planar,mpc7,mpc8
--disable-parser=mpeg4video,h263 --disable-parser=mpeg4video,h263
--disable-decoder=mpeg2video,h263,h264,mpeg1video,mpeg2video,mpeg4,hevc,vp9 --disable-decoder=mpeg2video,h263,h264,mpeg1video,mpeg2video,mpeg4,hevc,vp9
--disable-cuvid --disable-cuvid

Binary file not shown.

View File

@ -1,17 +1,17 @@
-----BEGIN PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
Version: GnuPG v2 Version: GnuPG v2
iQIcBAABCAAGBQJaB8iKAAoJEI1smEefSt5xz30QAKwGwcXJFPOUe5+yoEhRNnZf iQIcBAABCAAGBQJaJHRzAAoJEI1smEefSt5xJ3YP/3m6wquOl/ICXzveiURXvoG/
/FS7tn9VraJRJNFTWeUvVrsOm+4j2BeEwv8UARPXYk80NVp2M01hz3SfM/yAT97O 7akxaEj5QYPGwZcxYos6YL2aVUHSbM1icrYSi//pRihZfwvIU0WJv3Xixhz51edx
O+rO04bSthUN26eVW5K4g5wvjXOhjM6lE3p22RQOG+70cfoX5wfXdcsgrRwYHKUy MrI8r7K4qajfHuOR2t2UZsPlow5cdblb9LymGCarWoK99bK/VSlRTlYGspu1yRja
IOBoARF+LIba6/xnkIaCKT6BNKkUplaoq8K4DmUMQkUMPp9Ip0gOfVrS+TYU8Jug 6CKcdXmMHahiWeTo1f1MeC9Q8utFqKHY8ewYO2b74OtxRvQ2/Hv52C5shCVwEdpc
ZBGvEwevuE8KdGAFS7A7HMsxW8oa9/9eyiaJIcmusMODriMAGogjOgCkxJvG3FJw SOK7cqHf7yLfznPpcNNN+8Zd7Bd/v6tnJ8hnpESqazlf/MHofeCTYFMnHz0YHJPR
sCYhsIJb504SBJATU0gH4nqQEQK447uE3gsup+gn7Auda1In8kwnGAm2SA0voWVS tss0nusebkRNbfoKzmu9SOAVx4iZ9PpAoFsa2BAjEctj4lN2QFLd/f0sWZITQzDK
RU89MB5Ef7F0Mj3eya/4BAwGNmzzz/vXTQnMd3Oqlz0NUZrYXGcRvtl3976xObwO ribkszFQ+XnVJxxljBQwemMGueLZDGLO1DuRaOMz/Hh3SAL9/p6dUL0kZWO3U9UP
4Ps5rIRrOb9o8hLjegNXh+Vnk0Kd4zFeg4wIYbTdoO/SRdnVntY0V8xBczzKGvIi Rbca/SpQwA/LytEy7DqmboMp64/GHd+GAtWpkUjuTxcAnxxytbo0XZkunWo5qjhW
kNwu3/G1IpDgJQJBYoeqrW8iVnnYI7SLIOUS3hP9fdYyOyhnn004IDbOwOv1BhsN 2aGcu05e41POzsnN/i0rjSQ+S7kDsxwmeVXnOs87bJ5xbXWhHPJQIGc53ZQEKJpc
wmH1imm/jbolCOKX/aWMOiwUNy+Zf6HM5oqS37w+wMDXO2CgKI4aJ7tt89Jo8aK6 72I5Ey0x0AgMymqwbq5rBytcw/Z36ipz3Tdyd7ROxvUy3XzxYIVpT3gyBv7hQa/O
+dJdRqHGY3LBRThWyiN1b/Qa6VFXJ94mhoEY3j1S9LN6PwzctS6/uWgf71XPtJzA Ummi49spH7vYDRdLLappqN6Kjy31yd24mGraQJx3Z1YRhE1tMNO8D7oguJmW+ggk
wwhc2YKbhwrr/qtrgZ5J szsG/m3nS4B8ZNBZfpas
=oOIq =r+sV
-----END PGP SIGNATURE----- -----END PGP SIGNATURE-----