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-----