diff --git a/ext_includes/libavcodec/avcodec.h b/ext_includes/libavcodec/avcodec.h
index a8322fb6..3922e893 100644
--- a/ext_includes/libavcodec/avcodec.h
+++ b/ext_includes/libavcodec/avcodec.h
@@ -409,6 +409,7 @@ enum AVCodecID {
AV_CODEC_ID_DXV,
AV_CODEC_ID_SCREENPRESSO,
AV_CODEC_ID_RSCC,
+ AV_CODEC_ID_AVS2,
AV_CODEC_ID_Y41P = 0x8000,
AV_CODEC_ID_AVRP,
@@ -446,6 +447,11 @@ enum AVCodecID {
AV_CODEC_ID_SVG,
AV_CODEC_ID_GDV,
AV_CODEC_ID_FITS,
+ AV_CODEC_ID_IMM4,
+ AV_CODEC_ID_PROSUMER,
+ AV_CODEC_ID_MWSC,
+ AV_CODEC_ID_WCMV,
+ AV_CODEC_ID_RASC,
/* various PCM "codecs" */
AV_CODEC_ID_FIRST_AUDIO = 0x10000, ///< A dummy id pointing at the start of audio codecs
@@ -485,6 +491,7 @@ enum AVCodecID {
AV_CODEC_ID_PCM_S64BE,
AV_CODEC_ID_PCM_F16LE,
AV_CODEC_ID_PCM_F24LE,
+ AV_CODEC_ID_PCM_VIDC,
/* various ADPCM codecs */
AV_CODEC_ID_ADPCM_IMA_QT = 0x11000,
@@ -637,6 +644,7 @@ enum AVCodecID {
AV_CODEC_ID_APTX,
AV_CODEC_ID_APTX_HD,
AV_CODEC_ID_SBC,
+ AV_CODEC_ID_ATRAC9,
/* subtitle codecs */
AV_CODEC_ID_FIRST_SUBTITLE = 0x17000, ///< A dummy ID pointing at the start of subtitle codecs.
@@ -665,6 +673,7 @@ enum AVCodecID {
AV_CODEC_ID_PJS,
AV_CODEC_ID_ASS,
AV_CODEC_ID_HDMV_TEXT_SUBTITLE,
+ AV_CODEC_ID_TTML,
/* 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.
@@ -1062,6 +1071,13 @@ typedef struct RcOverride{
*/
#define AV_CODEC_CAP_HYBRID (1 << 19)
+/**
+ * This codec takes the reordered_opaque field from input AVFrames
+ * and returns it in the corresponding field in AVCodecContext after
+ * encoding.
+ */
+#define AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE (1 << 20)
+
/**
* Pan Scan area.
* This specifies the area which should be displayed.
@@ -1344,6 +1360,25 @@ enum AVPacketSideDataType {
*/
AV_PKT_DATA_A53_CC,
+ /**
+ * This side data is encryption initialization data.
+ * The format is not part of ABI, use av_encryption_init_info_* methods to
+ * access.
+ */
+ AV_PKT_DATA_ENCRYPTION_INIT_INFO,
+
+ /**
+ * This side data contains encryption info for how to decrypt the packet.
+ * The format is not part of ABI, use av_encryption_info_* methods to access.
+ */
+ AV_PKT_DATA_ENCRYPTION_INFO,
+
+ /**
+ * Active Format Description data consisting of a single byte as specified
+ * in ETSI TS 101 154 using AVActiveFormatDescription enum.
+ */
+ AV_PKT_DATA_AFD,
+
/**
* The number of side data types.
* This is not part of the public API/ABI in the sense that it may
@@ -1599,6 +1634,7 @@ typedef struct AVCodecContext {
* 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.
+ * Must be allocated with the av_malloc() family of functions.
* - encoding: Set/allocated/freed by libavcodec.
* - decoding: Set/allocated/freed by user.
*/
@@ -2648,7 +2684,10 @@ typedef struct AVCodecContext {
/**
* opaque 64-bit number (generally a PTS) that will be reordered and
* output in AVFrame.reordered_opaque
- * - encoding: unused
+ * - encoding: Set by libavcodec to the reordered_opaque of the input
+ * frame corresponding to the last returned packet. Only
+ * supported by encoders with the
+ * AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE capability.
* - decoding: Set by user.
*/
int64_t reordered_opaque;
@@ -2920,6 +2959,10 @@ typedef struct AVCodecContext {
#define FF_PROFILE_HEVC_MAIN_STILL_PICTURE 3
#define FF_PROFILE_HEVC_REXT 4
+#define FF_PROFILE_AV1_MAIN 0
+#define FF_PROFILE_AV1_HIGH 1
+#define FF_PROFILE_AV1_PROFESSIONAL 2
+
#define FF_PROFILE_MJPEG_HUFFMAN_BASELINE_DCT 0xc0
#define FF_PROFILE_MJPEG_HUFFMAN_EXTENDED_SEQUENTIAL_DCT 0xc1
#define FF_PROFILE_MJPEG_HUFFMAN_PROGRESSIVE_DCT 0xc2
@@ -2928,6 +2971,13 @@ typedef struct AVCodecContext {
#define FF_PROFILE_SBC_MSBC 1
+#define FF_PROFILE_PRORES_PROXY 0
+#define FF_PROFILE_PRORES_LT 1
+#define FF_PROFILE_PRORES_STANDARD 2
+#define FF_PROFILE_PRORES_HQ 3
+#define FF_PROFILE_PRORES_4444 4
+#define FF_PROFILE_PRORES_XQ 5
+
/**
* level
* - encoding: Set by user.
@@ -3079,6 +3129,7 @@ typedef struct AVCodecContext {
#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
+#define FF_SUB_CHARENC_MODE_IGNORE 2 ///< neither convert the subtitles, nor check them for valid UTF-8
/**
* Skip processing alpha if supported by codec.
@@ -4347,7 +4398,7 @@ int av_packet_from_data(AVPacket *pkt, uint8_t *data, int size);
* @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
+ * @deprecated Use av_packet_ref or av_packet_make_refcounted
*/
attribute_deprecated
int av_dup_packet(AVPacket *pkt);
@@ -4518,6 +4569,33 @@ void av_packet_move_ref(AVPacket *dst, AVPacket *src);
*/
int av_packet_copy_props(AVPacket *dst, const AVPacket *src);
+/**
+ * Ensure the data described by a given packet is reference counted.
+ *
+ * @note This function does not ensure that the reference will be writable.
+ * Use av_packet_make_writable instead for that purpose.
+ *
+ * @see av_packet_ref
+ * @see av_packet_make_writable
+ *
+ * @param pkt packet whose data should be made reference counted.
+ *
+ * @return 0 on success, a negative AVERROR on error. On failure, the
+ * packet is unchanged.
+ */
+int av_packet_make_refcounted(AVPacket *pkt);
+
+/**
+ * Create a writable reference for the data described by a given packet,
+ * avoiding data copy if possible.
+ *
+ * @param pkt Packet whose data should be made writable.
+ *
+ * @return 0 on success, a negative AVERROR on failure. On failure, the
+ * packet is unchanged.
+ */
+int av_packet_make_writable(AVPacket *pkt);
+
/**
* Convert valid timing fields (timestamps / durations) in a packet from one
* timebase to another. Timestamps with unknown values (AV_NOPTS_VALUE) will be
@@ -5721,6 +5799,7 @@ typedef struct AVBitStreamFilter {
int (*init)(AVBSFContext *ctx);
int (*filter)(AVBSFContext *ctx, AVPacket *pkt);
void (*close)(AVBSFContext *ctx);
+ void (*flush)(AVBSFContext *ctx);
} AVBitStreamFilter;
#if FF_API_OLD_BSF
@@ -5847,6 +5926,11 @@ int av_bsf_send_packet(AVBSFContext *ctx, AVPacket *pkt);
*/
int av_bsf_receive_packet(AVBSFContext *ctx, AVPacket *pkt);
+/**
+ * Reset the internal bitstream filter state / flush internal buffers.
+ */
+void av_bsf_flush(AVBSFContext *ctx);
+
/**
* Free a bitstream filter context and everything associated with it; write NULL
* into the supplied pointer.
diff --git a/ext_includes/libavcodec/mediacodec.h b/ext_includes/libavcodec/mediacodec.h
index 5606d24a..4c8545df 100644
--- a/ext_includes/libavcodec/mediacodec.h
+++ b/ext_includes/libavcodec/mediacodec.h
@@ -85,4 +85,17 @@ typedef struct MediaCodecBuffer AVMediaCodecBuffer;
*/
int av_mediacodec_release_buffer(AVMediaCodecBuffer *buffer, int render);
+/**
+ * Release a MediaCodec buffer and render it at the given time to the surface
+ * that is associated with the decoder. The timestamp must be within one second
+ * of the current java/lang/System#nanoTime() (which is implemented using
+ * CLOCK_MONOTONIC on Android). See the Android MediaCodec documentation
+ * of android/media/MediaCodec#releaseOutputBuffer(int,long) for more details.
+ *
+ * @param buffer the buffer to render
+ * @param time timestamp in nanoseconds of when to render the buffer
+ * @return 0 on success, < 0 otherwise
+ */
+int av_mediacodec_render_buffer_at_time(AVMediaCodecBuffer *buffer, int64_t time);
+
#endif /* AVCODEC_MEDIACODEC_H */
diff --git a/ext_includes/libavcodec/version.h b/ext_includes/libavcodec/version.h
index ed34095c..66de337d 100644
--- a/ext_includes/libavcodec/version.h
+++ b/ext_includes/libavcodec/version.h
@@ -28,7 +28,7 @@
#include "libavutil/version.h"
#define LIBAVCODEC_VERSION_MAJOR 58
-#define LIBAVCODEC_VERSION_MINOR 14
+#define LIBAVCODEC_VERSION_MINOR 39
#define LIBAVCODEC_VERSION_MICRO 100
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
diff --git a/ext_includes/libavformat/avformat.h b/ext_includes/libavformat/avformat.h
index a2fe7c6b..fdaffa5b 100644
--- a/ext_includes/libavformat/avformat.h
+++ b/ext_includes/libavformat/avformat.h
@@ -846,6 +846,7 @@ typedef struct AVStreamInternal AVStreamInternal;
#define AV_DISPOSITION_DESCRIPTIONS 0x20000
#define AV_DISPOSITION_METADATA 0x40000
#define AV_DISPOSITION_DEPENDENT 0x80000 ///< dependent audio stream (mix_type=0 in mpegts)
+#define AV_DISPOSITION_STILL_IMAGE 0x100000 ///< still images in video stream (still_picture_flag=1 in mpegts)
/**
* Options for behavior on timestamp wrap detection.
@@ -1102,6 +1103,13 @@ typedef struct AVStream {
*/
int stream_identifier;
+ /**
+ * Details of the MPEG-TS program which created this stream.
+ */
+ int program_num;
+ int pmt_version;
+ int pmt_stream_idx;
+
int64_t interleaver_chunk_size;
int64_t interleaver_chunk_duration;
@@ -1259,6 +1267,7 @@ typedef struct AVProgram {
int program_num;
int pmt_pid;
int pcr_pid;
+ int pmt_version;
/*****************************************************************
* All fields below this line are not part of the public API. They
@@ -1474,7 +1483,9 @@ typedef struct AVFormatContext {
* This flag is mainly intended for testing.
*/
#define AVFMT_FLAG_BITEXACT 0x0400
-#define AVFMT_FLAG_MP4A_LATM 0x8000 ///< Enable RTP MP4A-LATM payload
+#if FF_API_LAVF_MP4A_LATM
+#define AVFMT_FLAG_MP4A_LATM 0x8000 ///< Deprecated, does nothing.
+#endif
#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)
#if FF_API_LAVF_KEEPSIDE_FLAG
@@ -1926,6 +1937,13 @@ typedef struct AVFormatContext {
* - decoding: set by user
*/
int max_streams;
+
+ /**
+ * Skip duration calcuation in estimate_timings_from_pts.
+ * - encoding: unused
+ * - decoding: set by user
+ */
+ int skip_estimate_duration_from_pts;
} AVFormatContext;
#if FF_API_FORMAT_GET_SET
diff --git a/ext_includes/libavformat/version.h b/ext_includes/libavformat/version.h
index e28a9e7d..843f922f 100644
--- a/ext_includes/libavformat/version.h
+++ b/ext_includes/libavformat/version.h
@@ -32,7 +32,7 @@
// Major bumping may affect Ticket5467, 5421, 5451(compatibility with Chromium)
// Also please add any ticket numbers that you believe might be affected here
#define LIBAVFORMAT_VERSION_MAJOR 58
-#define LIBAVFORMAT_VERSION_MINOR 10
+#define LIBAVFORMAT_VERSION_MINOR 22
#define LIBAVFORMAT_VERSION_MICRO 100
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
@@ -70,6 +70,9 @@
#ifndef FF_API_HLS_WRAP
#define FF_API_HLS_WRAP (LIBAVFORMAT_VERSION_MAJOR < 59)
#endif
+#ifndef FF_API_HLS_USE_LOCALTIME
+#define FF_API_HLS_USE_LOCALTIME (LIBAVFORMAT_VERSION_MAJOR < 59)
+#endif
#ifndef FF_API_LAVF_KEEPSIDE_FLAG
#define FF_API_LAVF_KEEPSIDE_FLAG (LIBAVFORMAT_VERSION_MAJOR < 59)
#endif
@@ -94,6 +97,12 @@
#ifndef FF_API_NEXT
#define FF_API_NEXT (LIBAVFORMAT_VERSION_MAJOR < 59)
#endif
+#ifndef FF_API_DASH_MIN_SEG_DURATION
+#define FF_API_DASH_MIN_SEG_DURATION (LIBAVFORMAT_VERSION_MAJOR < 59)
+#endif
+#ifndef FF_API_LAVF_MP4A_LATM
+#define FF_API_LAVF_MP4A_LATM (LIBAVFORMAT_VERSION_MAJOR < 59)
+#endif
#ifndef FF_API_R_FRAME_RATE
diff --git a/ext_includes/libavutil/avassert.h b/ext_includes/libavutil/avassert.h
index 46f3fea5..9abeadea 100644
--- a/ext_includes/libavutil/avassert.h
+++ b/ext_includes/libavutil/avassert.h
@@ -66,7 +66,7 @@
#endif
/**
- * Assert that floating point opperations can be executed.
+ * Assert that floating point operations can be executed.
*
* This will av_assert0() that the cpu is not in MMX state on X86
*/
diff --git a/ext_includes/libavutil/common.h b/ext_includes/libavutil/common.h
index eb6342ca..1eb2f9ab 100644
--- a/ext_includes/libavutil/common.h
+++ b/ext_includes/libavutil/common.h
@@ -232,7 +232,7 @@ static av_always_inline av_const int av_clip_intp2_c(int a, int p)
*/
static av_always_inline av_const unsigned av_clip_uintp2_c(int a, int p)
{
- if (a & ~((1<
> 31 & ((1<
> 31 & ((1<
+#include
+
+typedef struct AVSubsampleEncryptionInfo {
+ /** The number of bytes that are clear. */
+ unsigned int bytes_of_clear_data;
+
+ /**
+ * The number of bytes that are protected. If using pattern encryption,
+ * the pattern applies to only the protected bytes; if not using pattern
+ * encryption, all these bytes are encrypted.
+ */
+ unsigned int bytes_of_protected_data;
+} AVSubsampleEncryptionInfo;
+
+/**
+ * This describes encryption info for a packet. This contains frame-specific
+ * info for how to decrypt the packet before passing it to the decoder.
+ *
+ * The size of this struct is not part of the public ABI.
+ */
+typedef struct AVEncryptionInfo {
+ /** The fourcc encryption scheme, in big-endian byte order. */
+ uint32_t scheme;
+
+ /**
+ * Only used for pattern encryption. This is the number of 16-byte blocks
+ * that are encrypted.
+ */
+ uint32_t crypt_byte_block;
+
+ /**
+ * Only used for pattern encryption. This is the number of 16-byte blocks
+ * that are clear.
+ */
+ uint32_t skip_byte_block;
+
+ /**
+ * The ID of the key used to encrypt the packet. This should always be
+ * 16 bytes long, but may be changed in the future.
+ */
+ uint8_t *key_id;
+ uint32_t key_id_size;
+
+ /**
+ * The initialization vector. This may have been zero-filled to be the
+ * correct block size. This should always be 16 bytes long, but may be
+ * changed in the future.
+ */
+ uint8_t *iv;
+ uint32_t iv_size;
+
+ /**
+ * An array of subsample encryption info specifying how parts of the sample
+ * are encrypted. If there are no subsamples, then the whole sample is
+ * encrypted.
+ */
+ AVSubsampleEncryptionInfo *subsamples;
+ uint32_t subsample_count;
+} AVEncryptionInfo;
+
+/**
+ * This describes info used to initialize an encryption key system.
+ *
+ * The size of this struct is not part of the public ABI.
+ */
+typedef struct AVEncryptionInitInfo {
+ /**
+ * A unique identifier for the key system this is for, can be NULL if it
+ * is not known. This should always be 16 bytes, but may change in the
+ * future.
+ */
+ uint8_t* system_id;
+ uint32_t system_id_size;
+
+ /**
+ * An array of key IDs this initialization data is for. All IDs are the
+ * same length. Can be NULL if there are no known key IDs.
+ */
+ uint8_t** key_ids;
+ /** The number of key IDs. */
+ uint32_t num_key_ids;
+ /**
+ * The number of bytes in each key ID. This should always be 16, but may
+ * change in the future.
+ */
+ uint32_t key_id_size;
+
+ /**
+ * Key-system specific initialization data. This data is copied directly
+ * from the file and the format depends on the specific key system. This
+ * can be NULL if there is no initialization data; in that case, there
+ * will be at least one key ID.
+ */
+ uint8_t* data;
+ uint32_t data_size;
+
+ /**
+ * An optional pointer to the next initialization info in the list.
+ */
+ struct AVEncryptionInitInfo *next;
+} AVEncryptionInitInfo;
+
+/**
+ * Allocates an AVEncryptionInfo structure and sub-pointers to hold the given
+ * number of subsamples. This will allocate pointers for the key ID, IV,
+ * and subsample entries, set the size members, and zero-initialize the rest.
+ *
+ * @param subsample_count The number of subsamples.
+ * @param key_id_size The number of bytes in the key ID, should be 16.
+ * @param iv_size The number of bytes in the IV, should be 16.
+ *
+ * @return The new AVEncryptionInfo structure, or NULL on error.
+ */
+AVEncryptionInfo *av_encryption_info_alloc(uint32_t subsample_count, uint32_t key_id_size, uint32_t iv_size);
+
+/**
+ * Allocates an AVEncryptionInfo structure with a copy of the given data.
+ * @return The new AVEncryptionInfo structure, or NULL on error.
+ */
+AVEncryptionInfo *av_encryption_info_clone(const AVEncryptionInfo *info);
+
+/**
+ * Frees the given encryption info object. This MUST NOT be used to free the
+ * side-data data pointer, that should use normal side-data methods.
+ */
+void av_encryption_info_free(AVEncryptionInfo *info);
+
+/**
+ * Creates a copy of the AVEncryptionInfo that is contained in the given side
+ * data. The resulting object should be passed to av_encryption_info_free()
+ * when done.
+ *
+ * @return The new AVEncryptionInfo structure, or NULL on error.
+ */
+AVEncryptionInfo *av_encryption_info_get_side_data(const uint8_t *side_data, size_t side_data_size);
+
+/**
+ * Allocates and initializes side data that holds a copy of the given encryption
+ * info. The resulting pointer should be either freed using av_free or given
+ * to av_packet_add_side_data().
+ *
+ * @return The new side-data pointer, or NULL.
+ */
+uint8_t *av_encryption_info_add_side_data(
+ const AVEncryptionInfo *info, size_t *side_data_size);
+
+
+/**
+ * Allocates an AVEncryptionInitInfo structure and sub-pointers to hold the
+ * given sizes. This will allocate pointers and set all the fields.
+ *
+ * @return The new AVEncryptionInitInfo structure, or NULL on error.
+ */
+AVEncryptionInitInfo *av_encryption_init_info_alloc(
+ uint32_t system_id_size, uint32_t num_key_ids, uint32_t key_id_size, uint32_t data_size);
+
+/**
+ * Frees the given encryption init info object. This MUST NOT be used to free
+ * the side-data data pointer, that should use normal side-data methods.
+ */
+void av_encryption_init_info_free(AVEncryptionInitInfo* info);
+
+/**
+ * Creates a copy of the AVEncryptionInitInfo that is contained in the given
+ * side data. The resulting object should be passed to
+ * av_encryption_init_info_free() when done.
+ *
+ * @return The new AVEncryptionInitInfo structure, or NULL on error.
+ */
+AVEncryptionInitInfo *av_encryption_init_info_get_side_data(
+ const uint8_t* side_data, size_t side_data_size);
+
+/**
+ * Allocates and initializes side data that holds a copy of the given encryption
+ * init info. The resulting pointer should be either freed using av_free or
+ * given to av_packet_add_side_data().
+ *
+ * @return The new side-data pointer, or NULL.
+ */
+uint8_t *av_encryption_init_info_add_side_data(
+ const AVEncryptionInitInfo *info, size_t *side_data_size);
+
+#endif /* AVUTIL_ENCRYPTION_INFO_H */
diff --git a/ext_includes/libavutil/ffversion.h b/ext_includes/libavutil/ffversion.h
index 9ecd2e46..7ef3f103 100644
--- a/ext_includes/libavutil/ffversion.h
+++ b/ext_includes/libavutil/ffversion.h
@@ -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-90388-g2ddc6b4392"
+#define FFMPEG_VERSION "N-92435-g759589b55e"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/ext_includes/libavutil/file.h b/ext_includes/libavutil/file.h
index 8666c7b1..3ef4a602 100644
--- a/ext_includes/libavutil/file.h
+++ b/ext_includes/libavutil/file.h
@@ -33,6 +33,8 @@
* 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.
+ * Unlike mmap this function succeeds with zero sized files, in this
+ * case *bufptr will be set to NULL and *size will be set to 0.
* The returned buffer must be released with av_file_unmap().
*
* @param log_offset loglevel offset used for logging
diff --git a/ext_includes/libavutil/frame.h b/ext_includes/libavutil/frame.h
index 9d57d6ce..66f27f44 100644
--- a/ext_includes/libavutil/frame.h
+++ b/ext_includes/libavutil/frame.h
@@ -158,6 +158,14 @@ enum AVFrameSideDataType {
*/
AV_FRAME_DATA_QP_TABLE_DATA,
#endif
+
+ /**
+ * Timecode which conforms to SMPTE ST 12-1. The data is an array of 4 uint32_t
+ * where the first uint32_t describes how many (1-3) of the other timecodes are used.
+ * The timecode format is described in the av_timecode_get_smpte_from_framenum()
+ * function in libavutil/timecode.c.
+ */
+ AV_FRAME_DATA_S12M_TIMECODE,
};
enum AVActiveFormatDescription {
@@ -381,7 +389,6 @@ typedef struct AVFrame {
* 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;
diff --git a/ext_includes/libavutil/hwcontext_cuda.h b/ext_includes/libavutil/hwcontext_cuda.h
index 12dae844..81a0552c 100644
--- a/ext_includes/libavutil/hwcontext_cuda.h
+++ b/ext_includes/libavutil/hwcontext_cuda.h
@@ -41,6 +41,7 @@ typedef struct AVCUDADeviceContextInternal AVCUDADeviceContextInternal;
*/
typedef struct AVCUDADeviceContext {
CUcontext cuda_ctx;
+ CUstream stream;
AVCUDADeviceContextInternal *internal;
} AVCUDADeviceContext;
diff --git a/ext_includes/libavutil/hwcontext_drm.h b/ext_includes/libavutil/hwcontext_drm.h
index 2e225451..42709f21 100644
--- a/ext_includes/libavutil/hwcontext_drm.h
+++ b/ext_includes/libavutil/hwcontext_drm.h
@@ -58,6 +58,9 @@ typedef struct AVDRMObjectDescriptor {
size_t size;
/**
* Format modifier applied to the object (DRM_FORMAT_MOD_*).
+ *
+ * If the format modifier is unknown then this should be set to
+ * DRM_FORMAT_MOD_INVALID.
*/
uint64_t format_modifier;
} AVDRMObjectDescriptor;
diff --git a/ext_includes/libavutil/opt.h b/ext_includes/libavutil/opt.h
index 07da68ea..39f4a8dd 100644
--- a/ext_includes/libavutil/opt.h
+++ b/ext_includes/libavutil/opt.h
@@ -289,6 +289,7 @@ typedef struct AVOption {
#define AV_OPT_FLAG_READONLY 128
#define AV_OPT_FLAG_BSF_PARAM (1<<8) ///< a generic parameter which can be set by the user for bit stream filtering
#define AV_OPT_FLAG_FILTERING_PARAM (1<<16) ///< a generic parameter which can be set by the user for filtering
+#define AV_OPT_FLAG_DEPRECATED (1<<17) ///< set if option is deprecated, users should refer to AVOption.help text for more information
//FIXME think about enc-audio, ... style flags
/**
diff --git a/ext_includes/libavutil/pixdesc.h b/ext_includes/libavutil/pixdesc.h
index a8411449..1d243e07 100644
--- a/ext_includes/libavutil/pixdesc.h
+++ b/ext_includes/libavutil/pixdesc.h
@@ -158,17 +158,21 @@ typedef struct AVPixFmtDescriptor {
* 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
+ *
+ * @deprecated This flag is deprecated, and will be removed. When it is removed,
+ * the extra palette allocation in AVFrame.data[1] is removed as well. Only
+ * actual paletted formats (as indicated by AV_PIX_FMT_FLAG_PAL) will have a
+ * palette. Starting with FFmpeg versions which have this flag deprecated, the
+ * extra "pseudo" palette is already ignored, and API users are not required to
+ * allocate a palette for AV_PIX_FMT_FLAG_PSEUDOPAL formats (it was required
+ * before the deprecation, though).
*/
#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.
+ * support alpha in some way, including AV_PIX_FMT_PAL8. 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.
@@ -343,7 +347,13 @@ char *av_get_pix_fmt_string(char *buf, int buf_size,
* 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.
+ * @param dst_element_size size of elements in dst array (2 or 4 byte)
*/
+void av_read_image_line2(void *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,
+ int dst_element_size);
+
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);
@@ -361,7 +371,12 @@ void av_read_image_line(uint16_t *dst, const uint8_t *data[4],
* @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
+ * @param src_element_size size of elements in src array (2 or 4 byte)
*/
+void av_write_image_line2(const void *src, uint8_t *data[4],
+ const int linesize[4], const AVPixFmtDescriptor *desc,
+ int x, int y, int c, int w, int src_element_size);
+
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);
diff --git a/ext_includes/libavutil/pixfmt.h b/ext_includes/libavutil/pixfmt.h
index e184a566..6815f8dc 100644
--- a/ext_includes/libavutil/pixfmt.h
+++ b/ext_includes/libavutil/pixfmt.h
@@ -42,6 +42,10 @@
* This is stored as BGRA on little-endian CPU architectures and ARGB on
* big-endian CPUs.
*
+ * @note
+ * If the resolution is not a multiple of the chroma subsampling factor
+ * then the chroma plane resolution must be rounded up.
+ *
* @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
@@ -330,6 +334,12 @@ enum AVPixelFormat {
*/
AV_PIX_FMT_OPENCL,
+ AV_PIX_FMT_GRAY14BE, ///< Y , 14bpp, big-endian
+ AV_PIX_FMT_GRAY14LE, ///< Y , 14bpp, little-endian
+
+ AV_PIX_FMT_GRAYF32BE, ///< IEEE-754 single precision Y, 32bpp, big-endian
+ AV_PIX_FMT_GRAYF32LE, ///< IEEE-754 single precision Y, 32bpp, little-endian
+
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
};
@@ -349,6 +359,7 @@ enum AVPixelFormat {
#define AV_PIX_FMT_GRAY9 AV_PIX_FMT_NE(GRAY9BE, GRAY9LE)
#define AV_PIX_FMT_GRAY10 AV_PIX_FMT_NE(GRAY10BE, GRAY10LE)
#define AV_PIX_FMT_GRAY12 AV_PIX_FMT_NE(GRAY12BE, GRAY12LE)
+#define AV_PIX_FMT_GRAY14 AV_PIX_FMT_NE(GRAY14BE, GRAY14LE)
#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)
@@ -397,6 +408,8 @@ enum AVPixelFormat {
#define AV_PIX_FMT_GBRPF32 AV_PIX_FMT_NE(GBRPF32BE, GBRPF32LE)
#define AV_PIX_FMT_GBRAPF32 AV_PIX_FMT_NE(GBRAPF32BE, GBRAPF32LE)
+#define AV_PIX_FMT_GRAYF32 AV_PIX_FMT_NE(GRAYF32BE, GRAYF32LE)
+
#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)
diff --git a/ext_includes/libavutil/threadmessage.h b/ext_includes/libavutil/threadmessage.h
index 8480a0a3..42ce655f 100644
--- a/ext_includes/libavutil/threadmessage.h
+++ b/ext_includes/libavutil/threadmessage.h
@@ -95,6 +95,14 @@ void av_thread_message_queue_set_err_recv(AVThreadMessageQueue *mq,
void av_thread_message_queue_set_free_func(AVThreadMessageQueue *mq,
void (*free_func)(void *msg));
+/**
+ * Return the current number of messages in the queue.
+ *
+ * @return the current number of messages or AVERROR(ENOSYS) if lavu was built
+ * without thread support
+ */
+int av_thread_message_queue_nb_elems(AVThreadMessageQueue *mq);
+
/**
* Flush the message queue
*
diff --git a/ext_includes/libavutil/version.h b/ext_includes/libavutil/version.h
index d166bb30..adbf5963 100644
--- a/ext_includes/libavutil/version.h
+++ b/ext_includes/libavutil/version.h
@@ -79,8 +79,8 @@
*/
#define LIBAVUTIL_VERSION_MAJOR 56
-#define LIBAVUTIL_VERSION_MINOR 11
-#define LIBAVUTIL_VERSION_MICRO 100
+#define LIBAVUTIL_VERSION_MINOR 23
+#define LIBAVUTIL_VERSION_MICRO 101
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
LIBAVUTIL_VERSION_MINOR, \
@@ -126,6 +126,9 @@
#ifndef FF_API_FRAME_GET_SET
#define FF_API_FRAME_GET_SET (LIBAVUTIL_VERSION_MAJOR < 57)
#endif
+#ifndef FF_API_PSEUDOPAL
+#define FF_API_PSEUDOPAL (LIBAVUTIL_VERSION_MAJOR < 57)
+#endif
/**
diff --git a/ext_includes/libswresample/version.h b/ext_includes/libswresample/version.h
index 2640b106..c70cf812 100644
--- a/ext_includes/libswresample/version.h
+++ b/ext_includes/libswresample/version.h
@@ -29,8 +29,8 @@
#include "libavutil/avutil.h"
#define LIBSWRESAMPLE_VERSION_MAJOR 3
-#define LIBSWRESAMPLE_VERSION_MINOR 0
-#define LIBSWRESAMPLE_VERSION_MICRO 101
+#define LIBSWRESAMPLE_VERSION_MINOR 4
+#define LIBSWRESAMPLE_VERSION_MICRO 100
#define LIBSWRESAMPLE_VERSION_INT AV_VERSION_INT(LIBSWRESAMPLE_VERSION_MAJOR, \
LIBSWRESAMPLE_VERSION_MINOR, \
diff --git a/ext_libs/avcodec-vgmstream-58.def b/ext_libs/avcodec-vgmstream-58.def
index 5e09eddc..c084ff49 100644
--- a/ext_libs/avcodec-vgmstream-58.def
+++ b/ext_libs/avcodec-vgmstream-58.def
@@ -6,6 +6,7 @@ EXPORTS
av_bitstream_filter_init
av_bitstream_filter_next
av_bsf_alloc
+ av_bsf_flush
av_bsf_free
av_bsf_get_by_name
av_bsf_get_class
@@ -79,6 +80,7 @@ EXPORTS
av_mediacodec_default_free
av_mediacodec_default_init
av_mediacodec_release_buffer
+ av_mediacodec_render_buffer_at_time
av_new_packet
av_packet_add_side_data
av_packet_alloc
@@ -88,6 +90,8 @@ EXPORTS
av_packet_free_side_data
av_packet_from_data
av_packet_get_side_data
+ av_packet_make_refcounted
+ av_packet_make_writable
av_packet_merge_side_data
av_packet_move_ref
av_packet_new_side_data
@@ -198,17 +202,9 @@ EXPORTS
avpriv_dca_convert_bitstream
avpriv_dca_parse_core_frame_header
avpriv_dca_sample_rates
- avpriv_exif_decode_ifd
avpriv_find_pix_fmt
avpriv_find_start_code
avpriv_get_raw_pix_fmt_tags
- avpriv_mjpeg_bits_ac_chrominance
- avpriv_mjpeg_bits_ac_luminance
- avpriv_mjpeg_bits_dc_chrominance
- avpriv_mjpeg_bits_dc_luminance
- avpriv_mjpeg_val_ac_chrominance
- avpriv_mjpeg_val_ac_luminance
- avpriv_mjpeg_val_dc
avpriv_mpa_bitrate_tab
avpriv_mpa_freq_tab
avpriv_mpeg4audio_get_config
diff --git a/ext_libs/avcodec-vgmstream-58.dll b/ext_libs/avcodec-vgmstream-58.dll
index efb590d2..97b36352 100644
Binary files a/ext_libs/avcodec-vgmstream-58.dll and b/ext_libs/avcodec-vgmstream-58.dll differ
diff --git a/ext_libs/avcodec-vgmstream-58.dll.asc b/ext_libs/avcodec-vgmstream-58.dll.asc
index b0129865..ee9d1024 100644
--- a/ext_libs/avcodec-vgmstream-58.dll.asc
+++ b/ext_libs/avcodec-vgmstream-58.dll.asc
@@ -1,16 +1,16 @@
-----BEGIN PGP SIGNATURE-----
-iQIzBAABCAAdFiEEdiLr51NrDwQ29PFjjWyYR59K3nEFAlqx1TAACgkQjWyYR59K
-3nGMPw/8CKcaUz0CW0q0gaTSlPRij4nSLkdoyV4HOolo5CV8/Ee2JWJzQSp8gNYu
-6/EAG/jgjoiwyTf7ajXhbNGFQfEq6tLTGRGQny3vdrWKI4OFlj3GIiMrNm2LVFFP
-MWtd8luU6VBHT2DV2/wwpvpXEFu44IWb14N1UBMyxlo8Cs9o3/6hZ1I5hwGbQ/HL
-Tl9bz/U9E7JXNR1mXlPZDiQx5QnD/Lhmw8xynEw03YNG2YB8G+kujlf1egxbvrzy
-htr3BZtxY6OmiLzv4Vf4/KhtYaRV249zN3ydINLHOwXT/gN/hGk/u9RQpigABKCU
-lrTVx5HjLvuYd7FmMsmLuCKpUI900RhqqvmlQB/7Scppo3I/fAfZoIojH7P3rH8V
-ipdjBqxoeZN+fhvRK3IH0VBq7d/o1MTDUR1+8NXjmjdSqWXxDYD9izfFMi3BKm8o
-jx8b0l2CPPJl7q/xZpcTpNzOWLFmTA9IEwmh0LjR1TSvRK0gWoaSsYBCel6zkuRp
-8QyLCeky7uQo2XRfSNF+ZtfX0Zg3IMARzir250oY+T/ssb1DrBBYmmeNbNxYFFdi
-qp2fznTzhdNGkgq1TmhoowvQ5i5HEG6JfgFRNLL4l3tUek2QNjpW032HPt08kqhG
-34QbcvRE80Mr/jH5x3G2klE2CLQSnynPEzO4F942x8et1LmwyVI=
-=qCwb
+wsFcBAABCAAQBQJb6/iiCRCNbJhHn0recQAAdooQALZQZyPr3x/lR5ZhmPy1zzJJ
+jyTnuykOUlm0a/cBTRVKkThcMNrhggvuD3J18yRLJ6c/elbyrjzD3uYYMYY2o9he
++cnu3J3WrlZqZyLo3qddROE7DaGAfHsqo7GBKGGQsaYWyHnjtFzP1b5qr4qIkN4U
+A2uLo7NUOEth7EAgsd4XTcCQAoMaki1DuOK50k4wNIJ6/p07CANVjNKiRnoOlMIH
+K8XtqNW9vIbJXYlgjIJ/nc7/pJYnqVyFUF5sUymmLRbrfBCSX9i1zXwtZ2d7PhUt
+VDSh77m5vcw538J2zTJAySMCauh6TzmwlB+18ysX5aApHNHAjWfpZeoTEXEAoJmY
+PCAGgJdje3YIX57CuAk1a46w0li5Yc4h2lBXb7j2eavnjU128rAeR2t2ULceE50R
+65Jvt8PPguL9skryc8DKdexGe5zf/wgeUNPpe7VvmWHkFo/kH2ichgKZmutW1jIe
+yqLFvJGiFGP9kJy4dpqNsx9jD2jkKKtTylmIk8Z5hLuudCxcLPEGGtoslBhCbcWq
+so28lA+ABcUhZwZsbxYzz0d63Hg9ilpjtAazAnXpOuk6JC37Qfq8S/fm0WudSjJV
+X6Cj6Uq/cSXWuoFbC5D23em7cBmsGdKP7J+GIWF534MNKDHFZ0cfhMeswmLmvLUd
+iNcSQDSWEQWGKA4RG03N
+=hykQ
-----END PGP SIGNATURE-----
diff --git a/ext_libs/avformat-vgmstream-58.dll b/ext_libs/avformat-vgmstream-58.dll
index 11314f1a..501d46d3 100644
Binary files a/ext_libs/avformat-vgmstream-58.dll and b/ext_libs/avformat-vgmstream-58.dll differ
diff --git a/ext_libs/avformat-vgmstream-58.dll.asc b/ext_libs/avformat-vgmstream-58.dll.asc
index fb2b66be..f7d286b3 100644
--- a/ext_libs/avformat-vgmstream-58.dll.asc
+++ b/ext_libs/avformat-vgmstream-58.dll.asc
@@ -1,16 +1,16 @@
-----BEGIN PGP SIGNATURE-----
-iQIzBAABCAAdFiEEdiLr51NrDwQ29PFjjWyYR59K3nEFAlqx1TAACgkQjWyYR59K
-3nHIng//R1X9FrxcMubJrEwRckmXYkdBANdjbLkGjaSA+pgUGqtB/t5r6JiMHW9C
-POULXwaFBxVd/OKnx54NwFSiZiSQiq9MKCS8tdO61F/A6E623QoIx5lqYiuTIZ+S
-8qboxiFksMrLzQ/I5P5603QOJ5/mbzam1vBIhf9NwdsUmUp5aD8bOZGj1K9OBE+E
-uEqbQh1kmaPOiQo0pwxCPvu12Aiq2dVQcGqmkacZUr0B2LENh60SUAnYiiashlgH
-hGiiZeBoET/eKXwHV3Q8rTx3RpuroF2lonAb6PXlJWVfU37D5GqHpKWA5pU3W26c
-vWHYS9B1KMHefZonBJzVZiDp9zwVFDtL730NJcsQE61zGU7CxJBc8O1pVblSnQy6
-022EP8euKZoKGmtj5m2HS8W85tf+CbdhsqK6oP7NVYW2ka0xReck8mStbHk6Q/yR
-+1ccGtq5VIVoMztAW1nlYsUovqcKe2LUwddKLMMOihmQDz2kSXrd9XbGbHsccpKE
-m40jkoMvuIR6fiz0YZGGTD133xtYNt1IF01wWPW3BLPIMq0BfYq0PJv7aqQZkgUy
-RYdHfsw4vgQrrr0+w1l/CftC92RdtnbdXFmZZB0huQvfTJ9JUCrS++ce/GZzIPMS
-6Fvui9MV+wexsZjFnHKGXbnRxBiXfFRx6E9xMz0NTVZGQ0l2qE0=
-=Py3f
+wsFcBAABCAAQBQJb6/iyCRCNbJhHn0recQAACiQQAJKvYqk7nZjf9wEcwzMRr4EB
+i6+LvdxOfIk9owzLfXwlBBKnB8dwQpL0KgvhA7UKFTE/7tOUvKdmq1IaRaD3bbQm
+vvrqLEXEJkqz/7+T5YuAyW2/GSDlV/nwLu0IQdaCdzytMSOnh+HHbWdGjGJr+okP
+hO2K5SLVwrcf/OhOvwqOQcdL+BTwfA9uUkeHHQylVQZhp/xcTOKwfLcYi43TuaKs
+DddqhyE92rpXamvIfM+PstfPEvZNuiKyRLtioOweKzzAX+1v59M3E+oUY8QoFUsu
+F6CKHwhISOhpFoOKXbPKbkQbsiWW2Wisuq5SUKPhEyaG9Olpive+7LIMgNJAtvQ6
+sQAf5FHxFB2nQgr5WLDJ6Fy8RiII17T0m4hhP1CAcZSgaNoztphz1jMs2Hm8YbDA
+sLYjoiVhXXMSI/wslgGEfdMo3zIVt6xGAetWo0EzXLiy/YFagC09dmu/+El438Jv
+zxpVXm5J5uX0tAkEMxHU731nlR6kPoSfl4VoAFK29TZatoE93Ou+PPvcHRdiq7q2
+48QWZCAHDdVVdJtgInYWbJw2GAiUDfbdKloGp6o8jVW4SXnF0hbdbYQAtoPXM6oR
+X3eNIMqsFlUTDnaiWspi4OlUjAbpknoS4nhND1rQyVAIdk3eMO1FsO8xEKdbjvzV
+jtk+A+yzaf9soPRj9oVv
+=969w
-----END PGP SIGNATURE-----
diff --git a/ext_libs/avutil-vgmstream-56.def b/ext_libs/avutil-vgmstream-56.def
index bf1d909c..ac5b86e6 100644
--- a/ext_libs/avutil-vgmstream-56.def
+++ b/ext_libs/avutil-vgmstream-56.def
@@ -121,6 +121,15 @@ EXPORTS
av_dynarray_add
av_dynarray_add_nofree
av_dynarray2_add
+ av_encryption_info_add_side_data
+ av_encryption_info_alloc
+ av_encryption_info_clone
+ av_encryption_info_free
+ av_encryption_info_get_side_data
+ av_encryption_init_info_add_side_data
+ av_encryption_init_info_alloc
+ av_encryption_init_info_free
+ av_encryption_init_info_get_side_data
av_escape
av_expr_eval
av_expr_free
@@ -389,6 +398,7 @@ EXPORTS
av_rc4_crypt
av_rc4_init
av_read_image_line
+ av_read_image_line2
av_realloc
av_realloc_array
av_realloc_f
@@ -459,6 +469,7 @@ EXPORTS
av_thread_message_flush
av_thread_message_queue_alloc
av_thread_message_queue_free
+ av_thread_message_queue_nb_elems
av_thread_message_queue_recv
av_thread_message_queue_send
av_thread_message_queue_set_err_recv
@@ -490,6 +501,7 @@ EXPORTS
av_version_info
av_vlog
av_write_image_line
+ av_write_image_line2
av_xtea_alloc
av_xtea_crypt
av_xtea_init
diff --git a/ext_libs/avutil-vgmstream-56.dll b/ext_libs/avutil-vgmstream-56.dll
index 3025bcff..c0ebc945 100644
Binary files a/ext_libs/avutil-vgmstream-56.dll and b/ext_libs/avutil-vgmstream-56.dll differ
diff --git a/ext_libs/avutil-vgmstream-56.dll.asc b/ext_libs/avutil-vgmstream-56.dll.asc
index fd5e1700..9a6f13e7 100644
--- a/ext_libs/avutil-vgmstream-56.dll.asc
+++ b/ext_libs/avutil-vgmstream-56.dll.asc
@@ -1,16 +1,16 @@
-----BEGIN PGP SIGNATURE-----
-iQIzBAABCAAdFiEEdiLr51NrDwQ29PFjjWyYR59K3nEFAlqx1TEACgkQjWyYR59K
-3nFvCA/8DfkMhBKR/Yc8razgdOWI9tZVMvGJKkN1y1c0Zj+Ti9Vzf/E7APiCx0e/
-NvnDeSZwO8P7TlOJUNaWg2tgHxrroBWrNGw3BBPmEpiMQ4muL1TnzRy8la1NeMiD
-27UMSYu3bcMRQKJ1imYOK6MqZYBFTM9bFBIAPI3muBCBqltqIUtAel2/LaUx9gmu
-rz66oetqOVCTA7to3e/ceE52tW7BaEdblEdJ4yscqiOIlcNLXsCb6/yuPEc/lgda
-lucILs/EfXBpFrlHVIslZyh8SPmmzb/buKmGwu/d8H58Hn0NkzJZG1kRIdC+F5h2
-XflslMqOHlmWMfGSk12T7jBYFejTtD6XneMMmRF/cqVjf1Y02HZGCyR/1IUltPkT
-luDrp1nBYFs7SauDygDU6pawUGhGmfndVWBAvl0YAc6VpqToUkySIfvsowTto+pQ
-XzkiE1yj1kfvXVg5EaX2298Nl3IMHlm8JkXlCADOlmcucIxdIu2q3M8jfMya06Hy
-qWXE5Br3+GJaamAKoapEefCemyVhM06oTJmHTJ4os3SRilUquV08tI347lFYfutn
-8c2JZVWwsmYa/BMbXBpqJqD027flGOW3HMcBuZA8vP9zGP3cxgJe5l9R9QsJ1t9y
-1KB8fXavyQVFsDwAHCscMaJE5wMeheR4QbgblchR+AZVh7S/+qk=
-=fOm7
+wsFcBAABCAAQBQJb6/jCCRCNbJhHn0recQAA+GoQAHKO/lFqhBF+YZNfuDvxstg2
+YMsWqFgSXGFqbkRy48yRViDTJXqAZLQw5ZeQIscUnwfIKxSLDGnv+FbVPC0CKm8H
+YB8+8f/IQxWnqapdXTCEPd3AUv4ZBWEcLR7Ne/MPzFq4x9nU2ZvC/7a9kkjvZJcx
+w8DHScMx/SR1rjwuZWIL95rDS+Qa/KI+bBf9zlErJoEiosJv/RocJ7zcTFBWw++7
+6wrvJY3wHwKWCVKj6tOXwg6NEZt15OBZi8MFAbiT9xH+4hlUKPy/2W7l1S4Dkut7
+QZJ6PlFNOe59K9PeNP+ZJrp/mNHl4fU+VLbekdQDPki3ZToBYHUJw6Hr+A2R5eJH
+1Iz6Zw8V6YaEqIHC5S/9wFyvdpnC84vc9jr0IG2CF509dquq0RTqvkHxF1h9i956
+8aQXih26RGcSYIEHcr9Xp+2IFNdDBXy7Gpez21xnFM8MN8CCGuTgiQXXFCJtXRkJ
+DV45TLLIHDtAVXKvFiQDtFJ9ZYSknJkW+3HxTBBMqie1XVlRQm/saozGxCjP9Hzc
+YSpfkw01twbk+l7VspWY3sFJChHtBbgqW4Q+XL9Eb8xe83yvO1B+3E58v2q1BoY+
+gSQAiAE5X3x/ndJR6ENeBjHkVjnk1O3QW8CEegMLNETogxHfMMWaWIjpmxbf7zr3
+jWPqt+xhV4+HvB5JlDZq
+=93xE
-----END PGP SIGNATURE-----
diff --git a/ext_libs/swresample-vgmstream-3.dll b/ext_libs/swresample-vgmstream-3.dll
index 9afb0730..005e793d 100644
Binary files a/ext_libs/swresample-vgmstream-3.dll and b/ext_libs/swresample-vgmstream-3.dll differ
diff --git a/ext_libs/swresample-vgmstream-3.dll.asc b/ext_libs/swresample-vgmstream-3.dll.asc
index 9a33eda2..87f24580 100644
--- a/ext_libs/swresample-vgmstream-3.dll.asc
+++ b/ext_libs/swresample-vgmstream-3.dll.asc
@@ -1,16 +1,16 @@
-----BEGIN PGP SIGNATURE-----
-iQIzBAABCAAdFiEEdiLr51NrDwQ29PFjjWyYR59K3nEFAlqx1SQACgkQjWyYR59K
-3nGr3g/9E86vs68h7nZvSlMWtsaNNmdkY5GX4LlD1L8XfZ8RfxwV8xmEOvqezdmI
-EonU2jUGzocAf2nuiahFHJ0bXT7TxY7btoLzT5P/M+Frvog1l+9fmxCo6/b143J1
-pwersbMW2F8fUcxx75JHx4hdV3FL4LCNU/tztxdf0TN45cNMYs/XugAsBzBfJZQ3
-Yd1D1dCnrZ9R560M3sZgLF24wdhxa+cZxwLJpnZeQxN/IWi4/npkZVhjLsoMhPPg
-K8cnjOpX6rZ9ux/XhG1LyQK6FCigJ/ta5gBMi+neLisNB2ryPfx3mimE+o7k15wX
-tAwry8UgeXAVWMp+idppqDRjbzDODEfZRpfoPFbOosNNFy963NO2bVDGRIna/wnt
-05szWlzm1PtnVxYMjeg+GdGnU+GA/J+F8alRNu+RgMW4WSGQ2OKBV8AoGn9Htmpa
-ELpIGEqHXbBmcSMgDIuU38AGiiBLnfNst5CgkwZe/QqKFRa/hpPT28ljDKqdKxXg
-3p/KwD60oNGxMQ2bbRKGrrh+UCWp6L+gyBRwwupGfM5oxUSjoIsZLcM2+55u9kUT
-BfjOROZFoK3BA5leCO893cs63AiHRjXjSIxTmbF70EdxsqrrNc1LFGThu8CPlE1U
-Dn8aaU2JxeQTkrmT1KrmTcO7wIE05oHfs50hdhrt/b303Q2t+v4=
-=8sKv
+wsFcBAABCAAQBQJb6/jMCRCNbJhHn0recQAAwoEQAGnJaP9jaDkfj3srEUMP6ItK
+j2S8GSJOW8sxkeAmwTdiSi9NXdHFFdiTc6q+WmvGw+FfNSCQYgaWovIVvAsJux+P
+fBZaeTnCQ6RYW7uzBIQXAXBMKXoWjPB4ri3jp0rfEJ5qk4A/hrIexlDm06Pt/wcQ
+2Ou20tRd22u8rKP0fac3VvG3oquKun465EGKLBGthu44x7tFhF9xgwmVjK8FXOA6
+J1CRfobJuk8MQcoF53yjkRubUDgipPIfGo9A87uxHGvAtcZwfjR2D+1ZBCo3jkgH
+8JRRrvQASjb+LGq7A4W5I2btdZthAQS+7i33KkAE4wvznPgYEg03VZnst0BIbNp5
+LbWq3Wu3lrWUPgIjHKVPaXUuelVSzFZrejrLBAyOy8UTe0DURXbpFhD9ga/UF4Io
+ah3Cv9yLk1XUDwkpMRTWzRN51GcmuDG6omszwilV0423rJm1GjGqAPRaK5scIrjj
+sjUnBmirID7464tJgjI/g5XT5dnw7Dw2kIPJGE+ZWo+/C/U4xBc5TAOtoBeVxVjQ
+tQDTHJLiv5qm0JdOdAddO2SITgzz80/Xhb2eMOfEIjAykZqId6WL6Z8T7dMTH9gF
+xIacmKXuBOL1VWlkVRo01UwPcM6bwkKGBAuCf692Fbv9IbwtAwSyCyBmloMtKpv6
+admrdWEK0SAcLwfLel8n
+=qeTK
-----END PGP SIGNATURE-----