Updated FFmpeg.
parent
e3b65daa6e
commit
2e205f1cfa
|
@ -7,8 +7,8 @@
|
|||
--disable-swscale --disable-network --disable-swscale-alpha --disable-vdpau\
|
||||
--disable-dxva2 --disable-everything --enable-hwaccels\
|
||||
--enable-parser=ac3,mpegaudio,xma,vorbis\
|
||||
--enable-demuxer=ac3,asf,xwma,mov,oma,ogg,tak,dsf,wav,aac,dts,dtshd,mp3,bink,flac,msf,xmv,caf,ape\
|
||||
--enable-decoder=ac3,wmapro,wmav1,wmav2,wmavoice,wmalossless,xma1,xma2,dca,tak,dsd_lsbf,dsd_lsbf_planar,dsd_mbf,dsd_msbf_planar,aac,atrac3,atrac3p,mp3float,bink,binkaudio_dct,binkaudio_rdft,flac,pcm_s16be,pcm_s16be_planar,pcm_s16le,pcm_s16le_planar,vorbis,ape\
|
||||
--enable-demuxer=ac3,asf,xwma,mov,oma,ogg,tak,dsf,wav,aac,dts,dtshd,mp3,bink,flac,msf,xmv,caf,ape,smacker\
|
||||
--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\
|
||||
--disable-parser=mpeg4video,h263\
|
||||
--disable-decoder=mpeg2video,h263,h264,mpeg1video,mpeg2video,mpeg4,hevc,vp9\
|
||||
--disable-version3
|
||||
|
|
|
@ -446,6 +446,8 @@ enum AVCodecID {
|
|||
AV_CODEC_ID_MSCC,
|
||||
AV_CODEC_ID_SRGC,
|
||||
AV_CODEC_ID_SVG,
|
||||
AV_CODEC_ID_GDV,
|
||||
AV_CODEC_ID_FITS,
|
||||
|
||||
/* various PCM "codecs" */
|
||||
AV_CODEC_ID_FIRST_AUDIO = 0x10000, ///< A dummy id pointing at the start of audio codecs
|
||||
|
@ -548,6 +550,7 @@ enum AVCodecID {
|
|||
AV_CODEC_ID_SOL_DPCM,
|
||||
|
||||
AV_CODEC_ID_SDX2_DPCM = 0x14800,
|
||||
AV_CODEC_ID_GREMLIN_DPCM,
|
||||
|
||||
/* audio codecs */
|
||||
AV_CODEC_ID_MP2 = 0x15000,
|
||||
|
@ -637,6 +640,7 @@ enum AVCodecID {
|
|||
AV_CODEC_ID_DST,
|
||||
AV_CODEC_ID_ATRAC3AL,
|
||||
AV_CODEC_ID_ATRAC3PAL,
|
||||
AV_CODEC_ID_DOLBY_E,
|
||||
|
||||
/* subtitle codecs */
|
||||
AV_CODEC_ID_FIRST_SUBTITLE = 0x17000, ///< A dummy ID pointing at the start of subtitle codecs.
|
||||
|
@ -1705,6 +1709,13 @@ typedef struct AVPacket {
|
|||
* after decoding.
|
||||
**/
|
||||
#define AV_PKT_FLAG_DISCARD 0x0004
|
||||
/**
|
||||
* The packet comes from a trusted source.
|
||||
*
|
||||
* Otherwise-unsafe constructs such as arbitrary pointers to data
|
||||
* outside the packet may be followed.
|
||||
*/
|
||||
#define AV_PKT_FLAG_TRUSTED 0x0008
|
||||
|
||||
enum AVSideDataParamChangeFlags {
|
||||
AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT = 0x0001,
|
||||
|
@ -3553,7 +3564,7 @@ typedef struct AVCodecContext {
|
|||
*/
|
||||
char *codec_whitelist;
|
||||
|
||||
/*
|
||||
/**
|
||||
* Properties of the stream that gets decoded
|
||||
* - encoding: unused
|
||||
* - decoding: set by libavcodec
|
||||
|
@ -3875,7 +3886,7 @@ typedef struct AVHWAccel {
|
|||
|
||||
/**
|
||||
* Hardware accelerated codec capabilities.
|
||||
* see HWACCEL_CODEC_CAP_*
|
||||
* see AV_HWACCEL_CODEC_CAP_*
|
||||
*/
|
||||
int capabilities;
|
||||
|
||||
|
@ -3946,7 +3957,7 @@ typedef struct AVHWAccel {
|
|||
/**
|
||||
* Called for every Macroblock in a slice.
|
||||
*
|
||||
* XvMC uses it to replace the ff_mpv_decode_mb().
|
||||
* XvMC uses it to replace the ff_mpv_reconstruct_mb().
|
||||
* Instead of decoding to raw picture, MB parameters are
|
||||
* stored in an array provided by the video driver.
|
||||
*
|
||||
|
@ -3983,6 +3994,12 @@ typedef struct AVHWAccel {
|
|||
int caps_internal;
|
||||
} AVHWAccel;
|
||||
|
||||
/**
|
||||
* HWAccel is experimental and is thus avoided in favor of non experimental
|
||||
* codecs
|
||||
*/
|
||||
#define AV_HWACCEL_CODEC_CAP_EXPERIMENTAL 0x0200
|
||||
|
||||
/**
|
||||
* Hardware acceleration should be used for decoding even if the codec level
|
||||
* used is unknown or higher than the maximum supported level reported by the
|
||||
|
@ -3999,6 +4016,20 @@ typedef struct AVHWAccel {
|
|||
*/
|
||||
#define AV_HWACCEL_FLAG_ALLOW_HIGH_DEPTH (1 << 1)
|
||||
|
||||
/**
|
||||
* Hardware acceleration should still be attempted for decoding when the
|
||||
* codec profile does not match the reported capabilities of the hardware.
|
||||
*
|
||||
* For example, this can be used to try to decode baseline profile H.264
|
||||
* streams in hardware - it will often succeed, because many streams marked
|
||||
* as baseline profile actually conform to constrained baseline profile.
|
||||
*
|
||||
* @warning If the stream is actually not supported then the behaviour is
|
||||
* undefined, and may include returning entirely incorrect output
|
||||
* while indicating success.
|
||||
*/
|
||||
#define AV_HWACCEL_FLAG_ALLOW_PROFILE_MISMATCH (1 << 2)
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
@ -5648,22 +5679,14 @@ int av_picture_pad(AVPicture *dst, const AVPicture *src, int height, int width,
|
|||
* @{
|
||||
*/
|
||||
|
||||
#if FF_API_GETCHROMA
|
||||
/**
|
||||
* Utility function to access log2_chroma_w log2_chroma_h from
|
||||
* the pixel format AVPixFmtDescriptor.
|
||||
*
|
||||
* This function asserts that pix_fmt is valid. See av_pix_fmt_get_chroma_sub_sample
|
||||
* for one that returns a failure code and continues in case of invalid
|
||||
* pix_fmts.
|
||||
*
|
||||
* @param[in] pix_fmt the pixel format
|
||||
* @param[out] h_shift store log2_chroma_w
|
||||
* @param[out] v_shift store log2_chroma_h
|
||||
*
|
||||
* @see av_pix_fmt_get_chroma_sub_sample
|
||||
* @deprecated Use av_pix_fmt_get_chroma_sub_sample
|
||||
*/
|
||||
|
||||
attribute_deprecated
|
||||
void avcodec_get_chroma_sub_sample(enum AVPixelFormat pix_fmt, int *h_shift, int *v_shift);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Return a value representing the fourCC code associated to the
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
#include "libavutil/version.h"
|
||||
|
||||
#define LIBAVCODEC_VERSION_MAJOR 57
|
||||
#define LIBAVCODEC_VERSION_MINOR 96
|
||||
#define LIBAVCODEC_VERSION_MINOR 106
|
||||
#define LIBAVCODEC_VERSION_MICRO 101
|
||||
|
||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||
|
@ -60,9 +60,6 @@
|
|||
#ifndef FF_API_AVCODEC_RESAMPLE
|
||||
#define FF_API_AVCODEC_RESAMPLE FF_API_AUDIO_CONVERT
|
||||
#endif
|
||||
#ifndef FF_API_GETCHROMA
|
||||
#define FF_API_GETCHROMA (LIBAVCODEC_VERSION_MAJOR < 58)
|
||||
#endif
|
||||
#ifndef FF_API_MISSING_SAMPLE
|
||||
#define FF_API_MISSING_SAMPLE (LIBAVCODEC_VERSION_MAJOR < 58)
|
||||
#endif
|
||||
|
@ -238,6 +235,9 @@
|
|||
#ifndef FF_API_TAG_STRING
|
||||
#define FF_API_TAG_STRING (LIBAVCODEC_VERSION_MAJOR < 59)
|
||||
#endif
|
||||
#ifndef FF_API_GETCHROMA
|
||||
#define FF_API_GETCHROMA (LIBAVCODEC_VERSION_MAJOR < 59)
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* AVCODEC_VERSION_H */
|
||||
|
|
|
@ -2954,6 +2954,7 @@ int avformat_match_stream_specifier(AVFormatContext *s, AVStream *st,
|
|||
|
||||
int avformat_queue_attached_pictures(AVFormatContext *s);
|
||||
|
||||
#if FF_API_OLD_BSF
|
||||
/**
|
||||
* Apply a list of bitstream filters to a packet.
|
||||
*
|
||||
|
@ -2965,7 +2966,6 @@ int avformat_queue_attached_pictures(AVFormatContext *s);
|
|||
* @return >=0 on success;
|
||||
* AVERROR code on failure
|
||||
*/
|
||||
#if FF_API_OLD_BSF
|
||||
attribute_deprecated
|
||||
int av_apply_bitstream_filters(AVCodecContext *codec, AVPacket *pkt,
|
||||
AVBitStreamFilterContext *bsfc);
|
||||
|
|
|
@ -137,7 +137,13 @@ enum AVIODataMarkerType {
|
|||
* Trailer data, which doesn't contain actual content, but only for
|
||||
* finalizing the output file.
|
||||
*/
|
||||
AVIO_DATA_MARKER_TRAILER
|
||||
AVIO_DATA_MARKER_TRAILER,
|
||||
/**
|
||||
* A point in the output bytestream where the underlying AVIOContext might
|
||||
* flush the buffer depending on latency or buffering requirements. Typically
|
||||
* means the end of a packet.
|
||||
*/
|
||||
AVIO_DATA_MARKER_FLUSH_POINT,
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -168,8 +174,9 @@ typedef struct AVIOContext {
|
|||
const AVClass *av_class;
|
||||
|
||||
/*
|
||||
* The following shows the relationship between buffer, buf_ptr, buf_end, buf_size,
|
||||
* and pos, when reading and when writing (since AVIOContext is used for both):
|
||||
* The following shows the relationship between buffer, buf_ptr,
|
||||
* buf_ptr_max, buf_end, buf_size, and pos, when reading and when writing
|
||||
* (since AVIOContext is used for both):
|
||||
*
|
||||
**********************************************************************************
|
||||
* READING
|
||||
|
@ -196,21 +203,24 @@ typedef struct AVIOContext {
|
|||
* WRITING
|
||||
**********************************************************************************
|
||||
*
|
||||
* | buffer_size |
|
||||
* |-------------------------------|
|
||||
* | |
|
||||
* | buffer_size |
|
||||
* |--------------------------------------|
|
||||
* | |
|
||||
*
|
||||
* buffer buf_ptr buf_end
|
||||
* +-------------------+-----------+
|
||||
* |/ / / / / / / / / /| |
|
||||
* write buffer: | / to be flushed / | |
|
||||
* |/ / / / / / / / / /| |
|
||||
* +-------------------+-----------+
|
||||
* buf_ptr_max
|
||||
* buffer (buf_ptr) buf_end
|
||||
* +-----------------------+--------------+
|
||||
* |/ / / / / / / / / / / /| |
|
||||
* write buffer: | / / to be flushed / / | |
|
||||
* |/ / / / / / / / / / / /| |
|
||||
* +-----------------------+--------------+
|
||||
* buf_ptr can be in this
|
||||
* due to a backward seek
|
||||
*
|
||||
* pos
|
||||
* +--------------------------+-----------------------------------+
|
||||
* output file: | | |
|
||||
* +--------------------------+-----------------------------------+
|
||||
* pos
|
||||
* +-------------+----------------------------------------------+
|
||||
* output file: | | |
|
||||
* +-------------+----------------------------------------------+
|
||||
*
|
||||
*/
|
||||
unsigned char *buffer; /**< Start of the buffer. */
|
||||
|
@ -226,7 +236,7 @@ typedef struct AVIOContext {
|
|||
int (*write_packet)(void *opaque, uint8_t *buf, int buf_size);
|
||||
int64_t (*seek)(void *opaque, int64_t offset, int whence);
|
||||
int64_t pos; /**< position in the file of the current buffer */
|
||||
int must_flush; /**< true if the next seek should flush */
|
||||
int must_flush; /**< unused */
|
||||
int eof_reached; /**< true if eof reached */
|
||||
int write_flag; /**< true if open for writing */
|
||||
int max_packet_size;
|
||||
|
@ -329,6 +339,17 @@ typedef struct AVIOContext {
|
|||
int (*short_seek_get)(void *opaque);
|
||||
|
||||
int64_t written;
|
||||
|
||||
/**
|
||||
* Maximum reached position before a backward seek in the write buffer,
|
||||
* used keeping track of already written data for a later flush.
|
||||
*/
|
||||
unsigned char *buf_ptr_max;
|
||||
|
||||
/**
|
||||
* Try to buffer at least this amount of data before flushing it
|
||||
*/
|
||||
int min_packet_size;
|
||||
} AVIOContext;
|
||||
|
||||
/**
|
||||
|
@ -418,7 +439,7 @@ void avio_free_directory_entry(AVIODirEntry **entry);
|
|||
|
||||
/**
|
||||
* Allocate and initialize an AVIOContext for buffered I/O. It must be later
|
||||
* freed with av_free().
|
||||
* freed with avio_context_free().
|
||||
*
|
||||
* @param buffer Memory block for input/output operations via AVIOContext.
|
||||
* The buffer must be allocated with av_malloc() and friends.
|
||||
|
@ -446,6 +467,14 @@ AVIOContext *avio_alloc_context(
|
|||
int (*write_packet)(void *opaque, uint8_t *buf, int buf_size),
|
||||
int64_t (*seek)(void *opaque, int64_t offset, int whence));
|
||||
|
||||
/**
|
||||
* Free the supplied IO context and everything associated with it.
|
||||
*
|
||||
* @param s Double pointer to the IO context. This function will write NULL
|
||||
* into s.
|
||||
*/
|
||||
void avio_context_free(AVIOContext **s);
|
||||
|
||||
void avio_w8(AVIOContext *s, int b);
|
||||
void avio_write(AVIOContext *s, const unsigned char *buf, int size);
|
||||
void avio_wl64(AVIOContext *s, uint64_t val);
|
||||
|
@ -569,6 +598,15 @@ void avio_flush(AVIOContext *s);
|
|||
*/
|
||||
int avio_read(AVIOContext *s, unsigned char *buf, int size);
|
||||
|
||||
/**
|
||||
* Read size bytes from AVIOContext into buf. Unlike avio_read(), this is allowed
|
||||
* to read fewer bytes than requested. The missing bytes can be read in the next
|
||||
* call. This always tries to read at least 1 byte.
|
||||
* Useful to reduce latency in certain cases.
|
||||
* @return number of bytes read or AVERROR
|
||||
*/
|
||||
int avio_read_partial(AVIOContext *s, unsigned char *buf, int size);
|
||||
|
||||
/**
|
||||
* @name Functions for reading from AVIOContext
|
||||
* @{
|
||||
|
|
|
@ -32,8 +32,8 @@
|
|||
// 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 57
|
||||
#define LIBAVFORMAT_VERSION_MINOR 72
|
||||
#define LIBAVFORMAT_VERSION_MICRO 101
|
||||
#define LIBAVFORMAT_VERSION_MINOR 82
|
||||
#define LIBAVFORMAT_VERSION_MICRO 100
|
||||
|
||||
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
|
||||
LIBAVFORMAT_VERSION_MINOR, \
|
||||
|
|
|
@ -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-86203-gfc3a03fcf9"
|
||||
#define FFMPEG_VERSION "N-87323-gc3a00d516f"
|
||||
#endif /* AVUTIL_FFVERSION_H */
|
||||
|
|
|
@ -134,6 +134,13 @@ enum AVFrameSideDataType {
|
|||
* the form of the AVContentLightMetadata struct.
|
||||
*/
|
||||
AV_FRAME_DATA_CONTENT_LIGHT_LEVEL,
|
||||
|
||||
/**
|
||||
* The data contains an ICC profile as an opaque octet buffer following the
|
||||
* format described by ISO 15076-1 with an optional name defined in the
|
||||
* metadata key entry "name".
|
||||
*/
|
||||
AV_FRAME_DATA_ICC_PROFILE,
|
||||
};
|
||||
|
||||
enum AVActiveFormatDescription {
|
||||
|
@ -766,6 +773,40 @@ AVFrameSideData *av_frame_get_side_data(const AVFrame *frame,
|
|||
*/
|
||||
void av_frame_remove_side_data(AVFrame *frame, enum AVFrameSideDataType type);
|
||||
|
||||
|
||||
/**
|
||||
* Flags for frame cropping.
|
||||
*/
|
||||
enum {
|
||||
/**
|
||||
* Apply the maximum possible cropping, even if it requires setting the
|
||||
* AVFrame.data[] entries to unaligned pointers. Passing unaligned data
|
||||
* to Libav API is generally not allowed, and causes undefined behavior
|
||||
* (such as crashes). You can pass unaligned data only to Libav APIs that
|
||||
* are explicitly documented to accept it. Use this flag only if you
|
||||
* absolutely know what you are doing.
|
||||
*/
|
||||
AV_FRAME_CROP_UNALIGNED = 1 << 0,
|
||||
};
|
||||
|
||||
/**
|
||||
* Crop the given video AVFrame according to its crop_left/crop_top/crop_right/
|
||||
* crop_bottom fields. If cropping is successful, the function will adjust the
|
||||
* data pointers and the width/height fields, and set the crop fields to 0.
|
||||
*
|
||||
* In all cases, the cropping boundaries will be rounded to the inherent
|
||||
* alignment of the pixel format. In some cases, such as for opaque hwaccel
|
||||
* formats, the left/top cropping is ignored. The crop fields are set to 0 even
|
||||
* if the cropping was rounded or ignored.
|
||||
*
|
||||
* @param frame the frame which should be cropped
|
||||
* @param flags Some combination of AV_FRAME_CROP_* flags, or 0.
|
||||
*
|
||||
* @return >= 0 on success, a negative AVERROR on error. If the cropping fields
|
||||
* were invalid, AVERROR(ERANGE) is returned, and nothing is changed.
|
||||
*/
|
||||
int av_frame_apply_cropping(AVFrame *frame, int flags);
|
||||
|
||||
/**
|
||||
* @return a string identifying the side data type
|
||||
*/
|
||||
|
|
|
@ -31,6 +31,9 @@ enum AVHWDeviceType {
|
|||
AV_HWDEVICE_TYPE_DXVA2,
|
||||
AV_HWDEVICE_TYPE_QSV,
|
||||
AV_HWDEVICE_TYPE_VIDEOTOOLBOX,
|
||||
AV_HWDEVICE_TYPE_NONE,
|
||||
AV_HWDEVICE_TYPE_D3D11VA,
|
||||
AV_HWDEVICE_TYPE_DRM,
|
||||
};
|
||||
|
||||
typedef struct AVHWDeviceInternal AVHWDeviceInternal;
|
||||
|
@ -223,6 +226,33 @@ typedef struct AVHWFramesContext {
|
|||
int width, height;
|
||||
} AVHWFramesContext;
|
||||
|
||||
/**
|
||||
* Look up an AVHWDeviceType by name.
|
||||
*
|
||||
* @param name String name of the device type (case-insensitive).
|
||||
* @return The type from enum AVHWDeviceType, or AV_HWDEVICE_TYPE_NONE if
|
||||
* not found.
|
||||
*/
|
||||
enum AVHWDeviceType av_hwdevice_find_type_by_name(const char *name);
|
||||
|
||||
/** Get the string name of an AVHWDeviceType.
|
||||
*
|
||||
* @param type Type from enum AVHWDeviceType.
|
||||
* @return Pointer to a static string containing the name, or NULL if the type
|
||||
* is not valid.
|
||||
*/
|
||||
const char *av_hwdevice_get_type_name(enum AVHWDeviceType type);
|
||||
|
||||
/**
|
||||
* Iterate over supported device types.
|
||||
*
|
||||
* @param type AV_HWDEVICE_TYPE_NONE initially, then the previous type
|
||||
* returned by this function in subsequent iterations.
|
||||
* @return The next usable device type from enum AVHWDeviceType, or
|
||||
* AV_HWDEVICE_TYPE_NONE if there are no more.
|
||||
*/
|
||||
enum AVHWDeviceType av_hwdevice_iterate_types(enum AVHWDeviceType prev);
|
||||
|
||||
/**
|
||||
* Allocate an AVHWDeviceContext for a given hardware type.
|
||||
*
|
||||
|
@ -270,6 +300,32 @@ int av_hwdevice_ctx_init(AVBufferRef *ref);
|
|||
int av_hwdevice_ctx_create(AVBufferRef **device_ctx, enum AVHWDeviceType type,
|
||||
const char *device, AVDictionary *opts, int flags);
|
||||
|
||||
/**
|
||||
* Create a new device of the specified type from an existing device.
|
||||
*
|
||||
* If the source device is a device of the target type or was originally
|
||||
* derived from such a device (possibly through one or more intermediate
|
||||
* devices of other types), then this will return a reference to the
|
||||
* existing device of the same type as is requested.
|
||||
*
|
||||
* Otherwise, it will attempt to derive a new device from the given source
|
||||
* device. If direct derivation to the new type is not implemented, it will
|
||||
* attempt the same derivation from each ancestor of the source device in
|
||||
* turn looking for an implemented derivation method.
|
||||
*
|
||||
* @param dst_ctx On success, a reference to the newly-created
|
||||
* AVHWDeviceContext.
|
||||
* @param type The type of the new device to create.
|
||||
* @param src_ctx A reference to an existing AVHWDeviceContext which will be
|
||||
* used to create the new device.
|
||||
* @param flags Currently unused; should be set to zero.
|
||||
* @return Zero on success, a negative AVERROR code on failure.
|
||||
*/
|
||||
int av_hwdevice_ctx_create_derived(AVBufferRef **dst_ctx,
|
||||
enum AVHWDeviceType type,
|
||||
AVBufferRef *src_ctx, int flags);
|
||||
|
||||
|
||||
/**
|
||||
* Allocate an AVHWFramesContext tied to a given device context.
|
||||
*
|
||||
|
@ -512,7 +568,9 @@ int av_hwframe_map(AVFrame *dst, const AVFrame *src, int flags);
|
|||
* AVHWFramesContext on.
|
||||
* @param source_frame_ctx A reference to an existing AVHWFramesContext
|
||||
* which will be mapped to the derived context.
|
||||
* @param flags Currently unused; should be set to zero.
|
||||
* @param flags Some combination of AV_HWFRAME_MAP_* flags, defining the
|
||||
* mapping parameters to apply to frames which are allocated
|
||||
* in the derived device.
|
||||
* @return Zero on success, negative AVERROR code on failure.
|
||||
*/
|
||||
int av_hwframe_ctx_create_derived(AVBufferRef **derived_frame_ctx,
|
||||
|
|
|
@ -0,0 +1,168 @@
|
|||
/*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
* FFmpeg is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* FFmpeg is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with FFmpeg; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef AVUTIL_HWCONTEXT_D3D11VA_H
|
||||
#define AVUTIL_HWCONTEXT_D3D11VA_H
|
||||
|
||||
/**
|
||||
* @file
|
||||
* An API-specific header for AV_HWDEVICE_TYPE_D3D11VA.
|
||||
*
|
||||
* The default pool implementation will be fixed-size if initial_pool_size is
|
||||
* set (and allocate elements from an array texture). Otherwise it will allocate
|
||||
* individual textures. Be aware that decoding requires a single array texture.
|
||||
*
|
||||
* Using sw_format==AV_PIX_FMT_YUV420P has special semantics, and maps to
|
||||
* DXGI_FORMAT_420_OPAQUE. av_hwframe_transfer_data() is not supported for
|
||||
* this format. Refer to MSDN for details.
|
||||
*
|
||||
* av_hwdevice_ctx_create() for this device type supports a key named "debug"
|
||||
* for the AVDictionary entry. If this is set to any value, the device creation
|
||||
* code will try to load various supported D3D debugging layers.
|
||||
*/
|
||||
|
||||
#include <d3d11.h>
|
||||
|
||||
/**
|
||||
* This struct is allocated as AVHWDeviceContext.hwctx
|
||||
*/
|
||||
typedef struct AVD3D11VADeviceContext {
|
||||
/**
|
||||
* Device used for texture creation and access. This can also be used to
|
||||
* set the libavcodec decoding device.
|
||||
*
|
||||
* Must be set by the user. This is the only mandatory field - the other
|
||||
* device context fields are set from this and are available for convenience.
|
||||
*
|
||||
* Deallocating the AVHWDeviceContext will always release this interface,
|
||||
* and it does not matter whether it was user-allocated.
|
||||
*/
|
||||
ID3D11Device *device;
|
||||
|
||||
/**
|
||||
* If unset, this will be set from the device field on init.
|
||||
*
|
||||
* Deallocating the AVHWDeviceContext will always release this interface,
|
||||
* and it does not matter whether it was user-allocated.
|
||||
*/
|
||||
ID3D11DeviceContext *device_context;
|
||||
|
||||
/**
|
||||
* If unset, this will be set from the device field on init.
|
||||
*
|
||||
* Deallocating the AVHWDeviceContext will always release this interface,
|
||||
* and it does not matter whether it was user-allocated.
|
||||
*/
|
||||
ID3D11VideoDevice *video_device;
|
||||
|
||||
/**
|
||||
* If unset, this will be set from the device_context field on init.
|
||||
*
|
||||
* Deallocating the AVHWDeviceContext will always release this interface,
|
||||
* and it does not matter whether it was user-allocated.
|
||||
*/
|
||||
ID3D11VideoContext *video_context;
|
||||
|
||||
/**
|
||||
* Callbacks for locking. They protect accesses to device_context and
|
||||
* video_context calls. They also protect access to the internal staging
|
||||
* texture (for av_hwframe_transfer_data() calls). They do NOT protect
|
||||
* access to hwcontext or decoder state in general.
|
||||
*
|
||||
* If unset on init, the hwcontext implementation will set them to use an
|
||||
* internal mutex.
|
||||
*
|
||||
* The underlying lock must be recursive. lock_ctx is for free use by the
|
||||
* locking implementation.
|
||||
*/
|
||||
void (*lock)(void *lock_ctx);
|
||||
void (*unlock)(void *lock_ctx);
|
||||
void *lock_ctx;
|
||||
} AVD3D11VADeviceContext;
|
||||
|
||||
/**
|
||||
* D3D11 frame descriptor for pool allocation.
|
||||
*
|
||||
* In user-allocated pools, AVHWFramesContext.pool must return AVBufferRefs
|
||||
* with the data pointer pointing at an object of this type describing the
|
||||
* planes of the frame.
|
||||
*
|
||||
* This has no use outside of custom allocation, and AVFrame AVBufferRef do not
|
||||
* necessarily point to an instance of this struct.
|
||||
*/
|
||||
typedef struct AVD3D11FrameDescriptor {
|
||||
/**
|
||||
* The texture in which the frame is located. The reference count is
|
||||
* managed by the AVBufferRef, and destroying the reference will release
|
||||
* the interface.
|
||||
*
|
||||
* Normally stored in AVFrame.data[0].
|
||||
*/
|
||||
ID3D11Texture2D *texture;
|
||||
|
||||
/**
|
||||
* The index into the array texture element representing the frame, or 0
|
||||
* if the texture is not an array texture.
|
||||
*
|
||||
* Normally stored in AVFrame.data[1] (cast from intptr_t).
|
||||
*/
|
||||
intptr_t index;
|
||||
} AVD3D11FrameDescriptor;
|
||||
|
||||
/**
|
||||
* This struct is allocated as AVHWFramesContext.hwctx
|
||||
*/
|
||||
typedef struct AVD3D11VAFramesContext {
|
||||
/**
|
||||
* The canonical texture used for pool allocation. If this is set to NULL
|
||||
* on init, the hwframes implementation will allocate and set an array
|
||||
* texture if initial_pool_size > 0.
|
||||
*
|
||||
* The only situation when the API user should set this is:
|
||||
* - the user wants to do manual pool allocation (setting
|
||||
* AVHWFramesContext.pool), instead of letting AVHWFramesContext
|
||||
* allocate the pool
|
||||
* - of an array texture
|
||||
* - and wants it to use it for decoding
|
||||
* - this has to be done before calling av_hwframe_ctx_init()
|
||||
*
|
||||
* Deallocating the AVHWFramesContext will always release this interface,
|
||||
* and it does not matter whether it was user-allocated.
|
||||
*
|
||||
* This is in particular used by the libavcodec D3D11VA hwaccel, which
|
||||
* requires a single array texture. It will create ID3D11VideoDecoderOutputView
|
||||
* objects for each array texture element on decoder initialization.
|
||||
*/
|
||||
ID3D11Texture2D *texture;
|
||||
|
||||
/**
|
||||
* D3D11_TEXTURE2D_DESC.BindFlags used for texture creation. The user must
|
||||
* at least set D3D11_BIND_DECODER if the frames context is to be used for
|
||||
* video decoding.
|
||||
* This field is ignored/invalid if a user-allocated texture is provided.
|
||||
*/
|
||||
UINT BindFlags;
|
||||
|
||||
/**
|
||||
* D3D11_TEXTURE2D_DESC.MiscFlags used for texture creation.
|
||||
* This field is ignored/invalid if a user-allocated texture is provided.
|
||||
*/
|
||||
UINT MiscFlags;
|
||||
} AVD3D11VAFramesContext;
|
||||
|
||||
#endif /* AVUTIL_HWCONTEXT_D3D11VA_H */
|
|
@ -0,0 +1,166 @@
|
|||
/*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
* FFmpeg is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* FFmpeg is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with FFmpeg; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef AVUTIL_HWCONTEXT_DRM_H
|
||||
#define AVUTIL_HWCONTEXT_DRM_H
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/**
|
||||
* @file
|
||||
* API-specific header for AV_HWDEVICE_TYPE_DRM.
|
||||
*
|
||||
* Internal frame allocation is not currently supported - all frames
|
||||
* must be allocated by the user. Thus AVHWFramesContext is always
|
||||
* NULL, though this may change if support for frame allocation is
|
||||
* added in future.
|
||||
*/
|
||||
|
||||
enum {
|
||||
/**
|
||||
* The maximum number of layers/planes in a DRM frame.
|
||||
*/
|
||||
AV_DRM_MAX_PLANES = 4
|
||||
};
|
||||
|
||||
/**
|
||||
* DRM object descriptor.
|
||||
*
|
||||
* Describes a single DRM object, addressing it as a PRIME file
|
||||
* descriptor.
|
||||
*/
|
||||
typedef struct AVDRMObjectDescriptor {
|
||||
/**
|
||||
* DRM PRIME fd for the object.
|
||||
*/
|
||||
int fd;
|
||||
/**
|
||||
* Total size of the object.
|
||||
*
|
||||
* (This includes any parts not which do not contain image data.)
|
||||
*/
|
||||
size_t size;
|
||||
/**
|
||||
* Format modifier applied to the object (DRM_FORMAT_MOD_*).
|
||||
*/
|
||||
uint64_t format_modifier;
|
||||
} AVDRMObjectDescriptor;
|
||||
|
||||
/**
|
||||
* DRM plane descriptor.
|
||||
*
|
||||
* Describes a single plane of a layer, which is contained within
|
||||
* a single object.
|
||||
*/
|
||||
typedef struct AVDRMPlaneDescriptor {
|
||||
/**
|
||||
* Index of the object containing this plane in the objects
|
||||
* array of the enclosing frame descriptor.
|
||||
*/
|
||||
int object_index;
|
||||
/**
|
||||
* Offset within that object of this plane.
|
||||
*/
|
||||
ptrdiff_t offset;
|
||||
/**
|
||||
* Pitch (linesize) of this plane.
|
||||
*/
|
||||
ptrdiff_t pitch;
|
||||
} AVDRMPlaneDescriptor;
|
||||
|
||||
/**
|
||||
* DRM layer descriptor.
|
||||
*
|
||||
* Describes a single layer within a frame. This has the structure
|
||||
* defined by its format, and will contain one or more planes.
|
||||
*/
|
||||
typedef struct AVDRMLayerDescriptor {
|
||||
/**
|
||||
* Format of the layer (DRM_FORMAT_*).
|
||||
*/
|
||||
uint32_t format;
|
||||
/**
|
||||
* Number of planes in the layer.
|
||||
*
|
||||
* This must match the number of planes required by format.
|
||||
*/
|
||||
int nb_planes;
|
||||
/**
|
||||
* Array of planes in this layer.
|
||||
*/
|
||||
AVDRMPlaneDescriptor planes[AV_DRM_MAX_PLANES];
|
||||
} AVDRMLayerDescriptor;
|
||||
|
||||
/**
|
||||
* DRM frame descriptor.
|
||||
*
|
||||
* This is used as the data pointer for AV_PIX_FMT_DRM_PRIME frames.
|
||||
* It is also used by user-allocated frame pools - allocating in
|
||||
* AVHWFramesContext.pool must return AVBufferRefs which contain
|
||||
* an object of this type.
|
||||
*
|
||||
* The fields of this structure should be set such it can be
|
||||
* imported directly by EGL using the EGL_EXT_image_dma_buf_import
|
||||
* and EGL_EXT_image_dma_buf_import_modifiers extensions.
|
||||
* (Note that the exact layout of a particular format may vary between
|
||||
* platforms - we only specify that the same platform should be able
|
||||
* to import it.)
|
||||
*
|
||||
* The total number of planes must not exceed AV_DRM_MAX_PLANES, and
|
||||
* the order of the planes by increasing layer index followed by
|
||||
* increasing plane index must be the same as the order which would
|
||||
* be used for the data pointers in the equivalent software format.
|
||||
*/
|
||||
typedef struct AVDRMFrameDescriptor {
|
||||
/**
|
||||
* Number of DRM objects making up this frame.
|
||||
*/
|
||||
int nb_objects;
|
||||
/**
|
||||
* Array of objects making up the frame.
|
||||
*/
|
||||
AVDRMObjectDescriptor objects[AV_DRM_MAX_PLANES];
|
||||
/**
|
||||
* Number of layers in the frame.
|
||||
*/
|
||||
int nb_layers;
|
||||
/**
|
||||
* Array of layers in the frame.
|
||||
*/
|
||||
AVDRMLayerDescriptor layers[AV_DRM_MAX_PLANES];
|
||||
} AVDRMFrameDescriptor;
|
||||
|
||||
/**
|
||||
* DRM device.
|
||||
*
|
||||
* Allocated as AVHWDeviceContext.hwctx.
|
||||
*/
|
||||
typedef struct AVDRMDeviceContext {
|
||||
/**
|
||||
* File descriptor of DRM device.
|
||||
*
|
||||
* This is used as the device to create frames on, and may also be
|
||||
* used in some derivation and mapping operations.
|
||||
*
|
||||
* If no device is required, set to -1.
|
||||
*/
|
||||
int fd;
|
||||
} AVDRMDeviceContext;
|
||||
|
||||
#endif /* AVUTIL_HWCONTEXT_DRM_H */
|
|
@ -65,6 +65,9 @@ typedef struct AVDXVA2FramesContext {
|
|||
*
|
||||
* If it is non-NULL, libavutil will call IDirectXVideoDecoder_Release() on
|
||||
* it just before the internal surface pool is freed.
|
||||
*
|
||||
* This is for convenience only. Some code uses other methods to manage the
|
||||
* decoder reference.
|
||||
*/
|
||||
IDirectXVideoDecoder *decoder_to_release;
|
||||
} AVDXVA2FramesContext;
|
||||
|
|
|
@ -51,6 +51,13 @@ enum {
|
|||
* so the surface allocation code will not try to use it.
|
||||
*/
|
||||
AV_VAAPI_DRIVER_QUIRK_ATTRIB_MEMTYPE = (1 << 2),
|
||||
|
||||
/**
|
||||
* The driver does not support surface attributes at all.
|
||||
* The surface allocation code will never pass them to surface allocation,
|
||||
* and the results of the vaQuerySurfaceAttributes() call will be faked.
|
||||
*/
|
||||
AV_VAAPI_DRIVER_QUIRK_SURFACE_ATTRIBUTES = (1 << 3),
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -238,6 +238,33 @@ int av_image_check_size2(unsigned int w, unsigned int h, int64_t max_pixels, enu
|
|||
*/
|
||||
int av_image_check_sar(unsigned int w, unsigned int h, AVRational sar);
|
||||
|
||||
/**
|
||||
* Overwrite the image data with black. This is suitable for filling a
|
||||
* sub-rectangle of an image, meaning the padding between the right most pixel
|
||||
* and the left most pixel on the next line will not be overwritten. For some
|
||||
* formats, the image size might be rounded up due to inherent alignment.
|
||||
*
|
||||
* If the pixel format has alpha, the alpha is cleared to opaque.
|
||||
*
|
||||
* This can return an error if the pixel format is not supported. Normally, all
|
||||
* non-hwaccel pixel formats should be supported.
|
||||
*
|
||||
* Passing NULL for dst_data is allowed. Then the function returns whether the
|
||||
* operation would have succeeded. (It can return an error if the pix_fmt is
|
||||
* not supported.)
|
||||
*
|
||||
* @param dst_data data pointers to destination image
|
||||
* @param dst_linesize linesizes for the destination image
|
||||
* @param pix_fmt the pixel format of the image
|
||||
* @param range the color range of the image (important for colorspaces such as YUV)
|
||||
* @param width the width of the image in pixels
|
||||
* @param height the height of the image in pixels
|
||||
* @return 0 if the image data was cleared, a negative AVERROR code otherwise
|
||||
*/
|
||||
int av_image_fill_black(uint8_t *dst_data[4], const ptrdiff_t dst_linesize[4],
|
||||
enum AVPixelFormat pix_fmt, enum AVColorRange range,
|
||||
int width, int height);
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
|
|
@ -177,6 +177,12 @@ typedef struct AVPixFmtDescriptor {
|
|||
*/
|
||||
#define AV_PIX_FMT_FLAG_BAYER (1 << 8)
|
||||
|
||||
/**
|
||||
* The pixel format contains IEEE-754 floating point values. Precision (double,
|
||||
* single, or half) should be determined by the pixel size (64, 32, or 16 bits).
|
||||
*/
|
||||
#define AV_PIX_FMT_FLAG_FLOAT (1 << 9)
|
||||
|
||||
/**
|
||||
* Return the number of bits per pixel used by the pixel format
|
||||
* described by pixdesc. Note that this is not the same as the number
|
||||
|
|
|
@ -240,7 +240,7 @@ enum AVPixelFormat {
|
|||
*/
|
||||
AV_PIX_FMT_MMAL,
|
||||
|
||||
AV_PIX_FMT_D3D11VA_VLD, ///< HW decoding through Direct3D11, Picture.data[3] contains a ID3D11VideoDecoderOutputView pointer
|
||||
AV_PIX_FMT_D3D11VA_VLD, ///< HW decoding through Direct3D11 via old API, Picture.data[3] contains a ID3D11VideoDecoderOutputView pointer
|
||||
|
||||
/**
|
||||
* HW acceleration through CUDA. data[i] contain CUdeviceptr pointers
|
||||
|
@ -314,6 +314,33 @@ enum AVPixelFormat {
|
|||
AV_PIX_FMT_P016LE, ///< like NV12, with 16bpp per component, little-endian
|
||||
AV_PIX_FMT_P016BE, ///< like NV12, with 16bpp per component, big-endian
|
||||
|
||||
/**
|
||||
* Hardware surfaces for Direct3D11.
|
||||
*
|
||||
* This is preferred over the legacy AV_PIX_FMT_D3D11VA_VLD. The new D3D11
|
||||
* hwaccel API and filtering support AV_PIX_FMT_D3D11 only.
|
||||
*
|
||||
* data[0] contains a ID3D11Texture2D pointer, and data[1] contains the
|
||||
* texture array index of the frame as intptr_t if the ID3D11Texture2D is
|
||||
* an array texture (or always 0 if it's a normal texture).
|
||||
*/
|
||||
AV_PIX_FMT_D3D11,
|
||||
|
||||
AV_PIX_FMT_GRAY9BE, ///< Y , 9bpp, big-endian
|
||||
AV_PIX_FMT_GRAY9LE, ///< Y , 9bpp, little-endian
|
||||
|
||||
AV_PIX_FMT_GBRPF32BE, ///< IEEE-754 single precision planar GBR 4:4:4, 96bpp, big-endian
|
||||
AV_PIX_FMT_GBRPF32LE, ///< IEEE-754 single precision planar GBR 4:4:4, 96bpp, little-endian
|
||||
AV_PIX_FMT_GBRAPF32BE, ///< IEEE-754 single precision planar GBRA 4:4:4:4, 128bpp, big-endian
|
||||
AV_PIX_FMT_GBRAPF32LE, ///< IEEE-754 single precision planar GBRA 4:4:4:4, 128bpp, little-endian
|
||||
|
||||
/**
|
||||
* DRM-managed buffers exposed through PRIME buffer sharing.
|
||||
*
|
||||
* data[0] points to an AVDRMFrameDescriptor.
|
||||
*/
|
||||
AV_PIX_FMT_DRM_PRIME,
|
||||
|
||||
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
|
||||
};
|
||||
|
||||
|
@ -330,6 +357,7 @@ enum AVPixelFormat {
|
|||
#define AV_PIX_FMT_0RGB32 AV_PIX_FMT_NE(0RGB, BGR0)
|
||||
#define AV_PIX_FMT_0BGR32 AV_PIX_FMT_NE(0BGR, RGB0)
|
||||
|
||||
#define AV_PIX_FMT_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_GRAY16 AV_PIX_FMT_NE(GRAY16BE, GRAY16LE)
|
||||
|
@ -377,6 +405,8 @@ enum AVPixelFormat {
|
|||
#define AV_PIX_FMT_BAYER_GBRG16 AV_PIX_FMT_NE(BAYER_GBRG16BE, BAYER_GBRG16LE)
|
||||
#define AV_PIX_FMT_BAYER_GRBG16 AV_PIX_FMT_NE(BAYER_GRBG16BE, BAYER_GRBG16LE)
|
||||
|
||||
#define AV_PIX_FMT_GBRPF32 AV_PIX_FMT_NE(GBRPF32BE, GBRPF32LE)
|
||||
#define AV_PIX_FMT_GBRAPF32 AV_PIX_FMT_NE(GBRAPF32BE, GBRAPF32LE)
|
||||
|
||||
#define AV_PIX_FMT_YUVA420P9 AV_PIX_FMT_NE(YUVA420P9BE , YUVA420P9LE)
|
||||
#define AV_PIX_FMT_YUVA422P9 AV_PIX_FMT_NE(YUVA422P9BE , YUVA422P9LE)
|
||||
|
@ -465,10 +495,11 @@ enum AVColorSpace {
|
|||
AVCOL_SPC_BT2020_NCL = 9, ///< ITU-R BT2020 non-constant luminance system
|
||||
AVCOL_SPC_BT2020_CL = 10, ///< ITU-R BT2020 constant luminance system
|
||||
AVCOL_SPC_SMPTE2085 = 11, ///< SMPTE 2085, Y'D'zD'x
|
||||
AVCOL_SPC_CHROMA_DERIVED_NCL = 12, ///< Chromaticity-derived non-constant luminance system
|
||||
AVCOL_SPC_CHROMA_DERIVED_CL = 13, ///< Chromaticity-derived constant luminance system
|
||||
AVCOL_SPC_ICTCP = 14, ///< ITU-R BT.2100-0, ICtCp
|
||||
AVCOL_SPC_NB ///< Not part of ABI
|
||||
};
|
||||
#define AVCOL_SPC_YCGCO AVCOL_SPC_YCOCG
|
||||
|
||||
|
||||
/**
|
||||
* MPEG vs JPEG YUV range.
|
||||
|
|
|
@ -80,7 +80,7 @@
|
|||
|
||||
|
||||
#define LIBAVUTIL_VERSION_MAJOR 55
|
||||
#define LIBAVUTIL_VERSION_MINOR 63
|
||||
#define LIBAVUTIL_VERSION_MINOR 75
|
||||
#define LIBAVUTIL_VERSION_MICRO 100
|
||||
|
||||
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -5,10 +5,10 @@ includedir=/Users/chris/Source/Repos/cog/ThirdParty/ffmpeg/include
|
|||
|
||||
Name: libavcodec
|
||||
Description: FFmpeg codec library
|
||||
Version: 57.96.101
|
||||
Requires: libavutil >= 55.63.100
|
||||
Version: 57.106.101
|
||||
Requires: libavutil >= 55.75.100
|
||||
Requires.private:
|
||||
Conflicts:
|
||||
Libs: -L${libdir} -lavcodec -framework QuartzCore -framework VideoDecodeAcceleration -framework CoreFoundation -framework QuartzCore -framework CoreFoundation -framework AudioToolbox -framework CoreMedia -framework CoreFoundation -framework VideoToolbox -framework CoreMedia -framework CoreVideo -liconv -Wl,-framework,CoreFoundation -Wl,-framework,Security -lm -lbz2 -lz -pthread -pthread -framework CoreServices
|
||||
Libs: -L${libdir} -lavcodec -framework CoreFoundation -framework VideoToolbox -framework CoreMedia -framework CoreVideo -liconv -Wl,-framework,CoreFoundation -Wl,-framework,Security -lm -lbz2 -lz -pthread -pthread -framework CoreServices -framework CoreGraphics -framework VideoToolbox -framework CoreImage -framework AVFoundation -framework AudioToolbox -framework AppKit
|
||||
Libs.private:
|
||||
Cflags: -I${includedir}
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
prefix=/Users/chris/Source/Repos/cog/ThirdParty/ffmpeg
|
||||
prefix=/usr/local
|
||||
exec_prefix=${prefix}
|
||||
libdir=${prefix}/lib
|
||||
includedir=${prefix}/include
|
||||
libdir=/usr/local/lib
|
||||
includedir=/usr/local/include
|
||||
|
||||
Name: libavformat
|
||||
Description: FFmpeg container format library
|
||||
Version: 57.72.101
|
||||
Requires: libavcodec >= 57.93.100, libavutil >= 55.61.100
|
||||
Version: 57.82.100
|
||||
Requires: libavcodec >= 57.105.100, libswresample >= 2.8.100, libavutil >= 55.74.100
|
||||
Requires.private:
|
||||
Conflicts:
|
||||
Libs: -L${libdir} -lavformat -framework QuartzCore -framework VideoDecodeAcceleration -framework CoreFoundation -framework QuartzCore -framework CoreFoundation -framework AudioToolbox -framework CoreMedia -framework CoreFoundation -framework VideoToolbox -framework CoreMedia -framework CoreVideo -liconv -Wl,-framework,CoreFoundation -Wl,-framework,Security -lm -lbz2 -lz -pthread -framework CoreServices
|
||||
Libs: -L${libdir} -lavformat -framework OpenGL -framework AppKit -framework OpenGL -framework AppKit -framework Foundation -framework CoreVideo -framework CoreMedia -L/usr/local/lib -lSDL2 -framework CoreFoundation -framework VideoToolbox -framework CoreMedia -framework CoreVideo -L/usr/local/lib -lSDL2 -liconv -Wl,-framework,CoreFoundation -Wl,-framework,Security -L/usr/local/lib -lSDL2 -lm -llzma -lbz2 -lz -pthread -pthread -framework CoreServices -framework CoreGraphics -framework VideoToolbox -framework CoreImage -framework AVFoundation -framework AudioToolbox
|
||||
Libs.private:
|
||||
Cflags: -I${includedir}
|
||||
|
|
|
@ -5,7 +5,7 @@ includedir=/Users/chris/Source/Repos/cog/ThirdParty/ffmpeg/include
|
|||
|
||||
Name: libavutil
|
||||
Description: FFmpeg utility library
|
||||
Version: 55.63.100
|
||||
Version: 55.75.100
|
||||
Requires:
|
||||
Requires.private:
|
||||
Conflicts:
|
||||
|
|
Loading…
Reference in New Issue