Updated FFmpeg.
parent
3d0d0ee24f
commit
b8110b85de
|
@ -6,13 +6,9 @@
|
||||||
--disable-postproc --disable-swresample --disable-avfilter\
|
--disable-postproc --disable-swresample --disable-avfilter\
|
||||||
--disable-swscale --disable-network --disable-swscale-alpha --disable-vdpau\
|
--disable-swscale --disable-network --disable-swscale-alpha --disable-vdpau\
|
||||||
--disable-dxva2 --disable-everything --enable-hwaccels\
|
--disable-dxva2 --disable-everything --enable-hwaccels\
|
||||||
--enable-parser=ac3,mpegaudio,xma\
|
--enable-parser=ac3,mpegaudio,xma,vorbis\
|
||||||
--enable-demuxer=ac3,asf,xwma,mov,oma,ogg,tak,dsf,wav,aac,dts,dtshd,mp3\
|
--enable-demuxer=ac3,asf,xwma,mov,oma,ogg,tak,dsf,wav,aac,dts,dtshd,mp3,bink,flac,msf,xmv,caf\
|
||||||
--enable-demuxer=bink,flac,msf,xmv\
|
--enable-decoder=ac3,wmapro,wmav1,wmav2,wmavoice,wmalossless,xma1,xma2,dca,tak,dsd_lsbf,dsd_lsbf_planar,dsd_mbf,dsd_msbf_planar,aac,atrac3,atrac3p,mp3float,bink,binkaudio_dct,binkaudio_rdft,flac,pcm_s16be,pcm_s16be_planar,pcm_s16le,pcm_s16le_planar,vorbis\
|
||||||
--enable-decoder=ac3,wmapro,wmav1,wmav2,wmavoice,wmalossless,xma1,xma2\
|
|
||||||
--enable-decoder=dca,tak,dsd_lsbf,dsd_lsbf_planar,dsd_msbf,dsd_msbf_planar\
|
|
||||||
--enable-decoder=aac,atrac3,atrac3p,mp3float,bink,binkaudio_dct,binkaudio_rdft\
|
|
||||||
--enable-decoder=flac,pcm_s16be,pcm_s16be_planar,pcm_s16le,pcm_s16le_planar,theora\
|
|
||||||
--disable-parser=mpeg4video,h263\
|
--disable-parser=mpeg4video,h263\
|
||||||
--disable-decoder=mpeg2video,h263,h264,mpeg1video,mpeg2video,mpeg4,hevc,vp9\
|
--disable-decoder=mpeg2video,h263,h264,mpeg1video,mpeg2video,mpeg4,hevc,vp9\
|
||||||
--disable-version3
|
--disable-version3
|
||||||
|
|
|
@ -112,6 +112,12 @@
|
||||||
* are filled. This situation is handled transparently if you follow the steps
|
* are filled. This situation is handled transparently if you follow the steps
|
||||||
* outlined above.
|
* outlined above.
|
||||||
*
|
*
|
||||||
|
* In theory, sending input can result in EAGAIN - this should happen only if
|
||||||
|
* not all output was received. You can use this to structure alternative decode
|
||||||
|
* or encode loops other than the one suggested above. For example, you could
|
||||||
|
* try sending new input on each iteration, and try to receive output if that
|
||||||
|
* returns EAGAIN.
|
||||||
|
*
|
||||||
* End of stream situations. These require "flushing" (aka draining) the codec,
|
* End of stream situations. These require "flushing" (aka draining) the codec,
|
||||||
* as the codec might buffer multiple frames or packets internally for
|
* as the codec might buffer multiple frames or packets internally for
|
||||||
* performance or out of necessity (consider B-frames).
|
* performance or out of necessity (consider B-frames).
|
||||||
|
@ -146,7 +152,8 @@
|
||||||
* Unlike with the old video decoding API, multiple frames might result from
|
* Unlike with the old video decoding API, multiple frames might result from
|
||||||
* a packet. For audio, splitting the input packet into frames by partially
|
* a packet. For audio, splitting the input packet into frames by partially
|
||||||
* decoding packets becomes transparent to the API user. You never need to
|
* decoding packets becomes transparent to the API user. You never need to
|
||||||
* feed an AVPacket to the API twice.
|
* feed an AVPacket to the API twice (unless it is rejected with EAGAIN - then
|
||||||
|
* no data was read from the packet).
|
||||||
* Additionally, sending a flush/draining packet is required only once.
|
* Additionally, sending a flush/draining packet is required only once.
|
||||||
* - avcodec_encode_video2()/avcodec_encode_audio2():
|
* - avcodec_encode_video2()/avcodec_encode_audio2():
|
||||||
* Use avcodec_send_frame() to feed input to the encoder, then use
|
* Use avcodec_send_frame() to feed input to the encoder, then use
|
||||||
|
@ -159,7 +166,22 @@
|
||||||
* and will result in undefined behavior.
|
* and will result in undefined behavior.
|
||||||
*
|
*
|
||||||
* Some codecs might require using the new API; using the old API will return
|
* Some codecs might require using the new API; using the old API will return
|
||||||
* an error when calling it.
|
* an error when calling it. All codecs support the new API.
|
||||||
|
*
|
||||||
|
* A codec is not allowed to return EAGAIN for both sending and receiving. This
|
||||||
|
* would be an invalid state, which could put the codec user into an endless
|
||||||
|
* loop. The API has no concept of time either: it cannot happen that trying to
|
||||||
|
* do avcodec_send_packet() results in EAGAIN, but a repeated call 1 second
|
||||||
|
* later accepts the packet (with no other receive/flush API calls involved).
|
||||||
|
* The API is a strict state machine, and the passage of time is not supposed
|
||||||
|
* to influence it. Some timing-dependent behavior might still be deemed
|
||||||
|
* acceptable in certain cases. But it must never result in both send/receive
|
||||||
|
* returning EAGAIN at the same time at any point. It must also absolutely be
|
||||||
|
* avoided that the current state is "unstable" and can "flip-flop" between
|
||||||
|
* the send/receive APIs allowing progress. For example, it's not allowed that
|
||||||
|
* the codec randomly decides that it actually wants to consume a packet now
|
||||||
|
* instead of returning a frame, after it just returned EAGAIN on an
|
||||||
|
* avcodec_send_packet() call.
|
||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -414,6 +436,10 @@ enum AVCodecID {
|
||||||
AV_CODEC_ID_PSD,
|
AV_CODEC_ID_PSD,
|
||||||
AV_CODEC_ID_PIXLET,
|
AV_CODEC_ID_PIXLET,
|
||||||
AV_CODEC_ID_SPEEDHQ,
|
AV_CODEC_ID_SPEEDHQ,
|
||||||
|
AV_CODEC_ID_FMVC,
|
||||||
|
AV_CODEC_ID_SCPR,
|
||||||
|
AV_CODEC_ID_CLEARVIDEO,
|
||||||
|
AV_CODEC_ID_XPM,
|
||||||
|
|
||||||
/* various PCM "codecs" */
|
/* various PCM "codecs" */
|
||||||
AV_CODEC_ID_FIRST_AUDIO = 0x10000, ///< A dummy id pointing at the start of audio codecs
|
AV_CODEC_ID_FIRST_AUDIO = 0x10000, ///< A dummy id pointing at the start of audio codecs
|
||||||
|
@ -603,6 +629,8 @@ enum AVCodecID {
|
||||||
AV_CODEC_ID_XMA1,
|
AV_CODEC_ID_XMA1,
|
||||||
AV_CODEC_ID_XMA2,
|
AV_CODEC_ID_XMA2,
|
||||||
AV_CODEC_ID_DST,
|
AV_CODEC_ID_DST,
|
||||||
|
AV_CODEC_ID_ATRAC3AL,
|
||||||
|
AV_CODEC_ID_ATRAC3PAL,
|
||||||
|
|
||||||
/* subtitle codecs */
|
/* subtitle codecs */
|
||||||
AV_CODEC_ID_FIRST_SUBTITLE = 0x17000, ///< A dummy ID pointing at the start of subtitle codecs.
|
AV_CODEC_ID_FIRST_SUBTITLE = 0x17000, ///< A dummy ID pointing at the start of subtitle codecs.
|
||||||
|
@ -1676,7 +1704,7 @@ enum AVFieldOrder {
|
||||||
* New fields can be added to the end with minor version bumps.
|
* New fields can be added to the end with minor version bumps.
|
||||||
* Removal, reordering and changes to existing fields require a major
|
* Removal, reordering and changes to existing fields require a major
|
||||||
* version bump.
|
* version bump.
|
||||||
* Please use AVOptions (av_opt* / av_set/get*()) to access these fields from user
|
* You can use AVOptions (av_opt* / av_set/get*()) to access these fields from user
|
||||||
* applications.
|
* applications.
|
||||||
* The name string for AVOptions options matches the associated command line
|
* The name string for AVOptions options matches the associated command line
|
||||||
* parameter name and can be found in libavcodec/options_table.h
|
* parameter name and can be found in libavcodec/options_table.h
|
||||||
|
@ -2947,8 +2975,8 @@ typedef struct AVCodecContext {
|
||||||
#define FF_DEBUG_MMCO 0x00000800
|
#define FF_DEBUG_MMCO 0x00000800
|
||||||
#define FF_DEBUG_BUGS 0x00001000
|
#define FF_DEBUG_BUGS 0x00001000
|
||||||
#if FF_API_DEBUG_MV
|
#if FF_API_DEBUG_MV
|
||||||
#define FF_DEBUG_VIS_QP 0x00002000 ///< only access through AVOptions from outside libavcodec
|
#define FF_DEBUG_VIS_QP 0x00002000
|
||||||
#define FF_DEBUG_VIS_MB_TYPE 0x00004000 ///< only access through AVOptions from outside libavcodec
|
#define FF_DEBUG_VIS_MB_TYPE 0x00004000
|
||||||
#endif
|
#endif
|
||||||
#define FF_DEBUG_BUFFERS 0x00008000
|
#define FF_DEBUG_BUFFERS 0x00008000
|
||||||
#define FF_DEBUG_THREADS 0x00010000
|
#define FF_DEBUG_THREADS 0x00010000
|
||||||
|
@ -2958,7 +2986,6 @@ typedef struct AVCodecContext {
|
||||||
#if FF_API_DEBUG_MV
|
#if FF_API_DEBUG_MV
|
||||||
/**
|
/**
|
||||||
* debug
|
* debug
|
||||||
* Code outside libavcodec should access this field using AVOptions
|
|
||||||
* - encoding: Set by user.
|
* - encoding: Set by user.
|
||||||
* - decoding: Set by user.
|
* - decoding: Set by user.
|
||||||
*/
|
*/
|
||||||
|
@ -3093,8 +3120,6 @@ typedef struct AVCodecContext {
|
||||||
* low resolution decoding, 1-> 1/2 size, 2->1/4 size
|
* low resolution decoding, 1-> 1/2 size, 2->1/4 size
|
||||||
* - encoding: unused
|
* - encoding: unused
|
||||||
* - decoding: Set by user.
|
* - decoding: Set by user.
|
||||||
* Code outside libavcodec should access this field using:
|
|
||||||
* av_codec_{get,set}_lowres(avctx)
|
|
||||||
*/
|
*/
|
||||||
int lowres;
|
int lowres;
|
||||||
#endif
|
#endif
|
||||||
|
@ -3395,8 +3420,6 @@ typedef struct AVCodecContext {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Timebase in which pkt_dts/pts and AVPacket.dts/pts are.
|
* Timebase in which pkt_dts/pts and AVPacket.dts/pts are.
|
||||||
* Code outside libavcodec should access this field using:
|
|
||||||
* av_codec_{get,set}_pkt_timebase(avctx)
|
|
||||||
* - encoding unused.
|
* - encoding unused.
|
||||||
* - decoding set by user.
|
* - decoding set by user.
|
||||||
*/
|
*/
|
||||||
|
@ -3404,8 +3427,6 @@ typedef struct AVCodecContext {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AVCodecDescriptor
|
* AVCodecDescriptor
|
||||||
* Code outside libavcodec should access this field using:
|
|
||||||
* av_codec_{get,set}_codec_descriptor(avctx)
|
|
||||||
* - encoding: unused.
|
* - encoding: unused.
|
||||||
* - decoding: set by libavcodec.
|
* - decoding: set by libavcodec.
|
||||||
*/
|
*/
|
||||||
|
@ -3416,8 +3437,6 @@ typedef struct AVCodecContext {
|
||||||
* low resolution decoding, 1-> 1/2 size, 2->1/4 size
|
* low resolution decoding, 1-> 1/2 size, 2->1/4 size
|
||||||
* - encoding: unused
|
* - encoding: unused
|
||||||
* - decoding: Set by user.
|
* - decoding: Set by user.
|
||||||
* Code outside libavcodec should access this field using:
|
|
||||||
* av_codec_{get,set}_lowres(avctx)
|
|
||||||
*/
|
*/
|
||||||
int lowres;
|
int lowres;
|
||||||
#endif
|
#endif
|
||||||
|
@ -3458,7 +3477,6 @@ typedef struct AVCodecContext {
|
||||||
* However for formats that do not use pre-multiplied alpha
|
* However for formats that do not use pre-multiplied alpha
|
||||||
* there might be serious artefacts (though e.g. libswscale currently
|
* there might be serious artefacts (though e.g. libswscale currently
|
||||||
* assumes pre-multiplied alpha anyway).
|
* assumes pre-multiplied alpha anyway).
|
||||||
* Code outside libavcodec should access this field using AVOptions
|
|
||||||
*
|
*
|
||||||
* - decoding: set by user
|
* - decoding: set by user
|
||||||
* - encoding: unused
|
* - encoding: unused
|
||||||
|
@ -3475,7 +3493,6 @@ typedef struct AVCodecContext {
|
||||||
#if !FF_API_DEBUG_MV
|
#if !FF_API_DEBUG_MV
|
||||||
/**
|
/**
|
||||||
* debug motion vectors
|
* debug motion vectors
|
||||||
* Code outside libavcodec should access this field using AVOptions
|
|
||||||
* - encoding: Set by user.
|
* - encoding: Set by user.
|
||||||
* - decoding: Set by user.
|
* - decoding: Set by user.
|
||||||
*/
|
*/
|
||||||
|
@ -3487,7 +3504,6 @@ typedef struct AVCodecContext {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* custom intra quantization matrix
|
* custom intra quantization matrix
|
||||||
* Code outside libavcodec should access this field using av_codec_g/set_chroma_intra_matrix()
|
|
||||||
* - encoding: Set by user, can be NULL.
|
* - encoding: Set by user, can be NULL.
|
||||||
* - decoding: unused.
|
* - decoding: unused.
|
||||||
*/
|
*/
|
||||||
|
@ -3496,8 +3512,6 @@ typedef struct AVCodecContext {
|
||||||
/**
|
/**
|
||||||
* dump format separator.
|
* dump format separator.
|
||||||
* can be ", " or "\n " or anything else
|
* can be ", " or "\n " or anything else
|
||||||
* Code outside libavcodec should access this field using AVOptions
|
|
||||||
* (NO direct access).
|
|
||||||
* - encoding: Set by user.
|
* - encoding: Set by user.
|
||||||
* - decoding: Set by user.
|
* - decoding: Set by user.
|
||||||
*/
|
*/
|
||||||
|
@ -3507,13 +3521,12 @@ typedef struct AVCodecContext {
|
||||||
* ',' separated list of allowed decoders.
|
* ',' separated list of allowed decoders.
|
||||||
* If NULL then all are allowed
|
* If NULL then all are allowed
|
||||||
* - encoding: unused
|
* - encoding: unused
|
||||||
* - decoding: set by user through AVOPtions (NO direct access)
|
* - decoding: set by user
|
||||||
*/
|
*/
|
||||||
char *codec_whitelist;
|
char *codec_whitelist;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Properties of the stream that gets decoded
|
* Properties of the stream that gets decoded
|
||||||
* To be accessed through av_codec_get_properties() (NO direct access)
|
|
||||||
* - encoding: unused
|
* - encoding: unused
|
||||||
* - decoding: set by libavcodec
|
* - decoding: set by libavcodec
|
||||||
*/
|
*/
|
||||||
|
@ -3533,7 +3546,8 @@ typedef struct AVCodecContext {
|
||||||
/**
|
/**
|
||||||
* A reference to the AVHWFramesContext describing the input (for encoding)
|
* A reference to the AVHWFramesContext describing the input (for encoding)
|
||||||
* or output (decoding) frames. The reference is set by the caller and
|
* or output (decoding) frames. The reference is set by the caller and
|
||||||
* afterwards owned (and freed) by libavcodec.
|
* afterwards owned (and freed) by libavcodec - it should never be read by
|
||||||
|
* the caller after being set.
|
||||||
*
|
*
|
||||||
* - decoding: This field should be set by the caller from the get_format()
|
* - decoding: This field should be set by the caller from the get_format()
|
||||||
* callback. The previous reference (if any) will always be
|
* callback. The previous reference (if any) will always be
|
||||||
|
@ -3583,6 +3597,27 @@ typedef struct AVCodecContext {
|
||||||
*/
|
*/
|
||||||
int64_t max_pixels;
|
int64_t max_pixels;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A reference to the AVHWDeviceContext describing the device which will
|
||||||
|
* be used by a hardware encoder/decoder. The reference is set by the
|
||||||
|
* caller and afterwards owned (and freed) by libavcodec.
|
||||||
|
*
|
||||||
|
* This should be used if either the codec device does not require
|
||||||
|
* hardware frames or any that are used are to be allocated internally by
|
||||||
|
* libavcodec. If the user wishes to supply any of the frames used as
|
||||||
|
* encoder input or decoder output then hw_frames_ctx should be used
|
||||||
|
* instead. When hw_frames_ctx is set in get_format() for a decoder, this
|
||||||
|
* field will be ignored while decoding the associated stream segment, but
|
||||||
|
* may again be used on a following one after another get_format() call.
|
||||||
|
*
|
||||||
|
* For both encoders and decoders this field should be set before
|
||||||
|
* avcodec_open2() is called and must not be written to thereafter.
|
||||||
|
*
|
||||||
|
* Note that some decoders may require this field to be set initially in
|
||||||
|
* order to support hw_frames_ctx at all - in that case, all frames
|
||||||
|
* contexts used must be created on the same device.
|
||||||
|
*/
|
||||||
|
AVBufferRef *hw_device_ctx;
|
||||||
} AVCodecContext;
|
} AVCodecContext;
|
||||||
|
|
||||||
AVRational av_codec_get_pkt_timebase (const AVCodecContext *avctx);
|
AVRational av_codec_get_pkt_timebase (const AVCodecContext *avctx);
|
||||||
|
@ -3642,7 +3677,7 @@ typedef struct AVCodec {
|
||||||
const int *supported_samplerates; ///< array of supported audio samplerates, or NULL if unknown, array is terminated by 0
|
const int *supported_samplerates; ///< array of supported audio samplerates, or NULL if unknown, array is terminated by 0
|
||||||
const enum AVSampleFormat *sample_fmts; ///< array of supported sample formats, or NULL if unknown, array is terminated by -1
|
const enum AVSampleFormat *sample_fmts; ///< array of supported sample formats, or NULL if unknown, array is terminated by -1
|
||||||
const uint64_t *channel_layouts; ///< array of support channel layouts, or NULL if unknown. array is terminated by 0
|
const uint64_t *channel_layouts; ///< array of support channel layouts, or NULL if unknown. array is terminated by 0
|
||||||
uint8_t max_lowres; ///< maximum value for lowres supported by the decoder, no direct access, use av_codec_get_max_lowres()
|
uint8_t max_lowres; ///< maximum value for lowres supported by the decoder
|
||||||
const AVClass *priv_class; ///< AVClass for the private context
|
const AVClass *priv_class; ///< AVClass for the private context
|
||||||
const AVProfile *profiles; ///< array of recognized profiles, or NULL if unknown, array is terminated by {FF_PROFILE_UNKNOWN}
|
const AVProfile *profiles; ///< array of recognized profiles, or NULL if unknown, array is terminated by {FF_PROFILE_UNKNOWN}
|
||||||
|
|
||||||
|
@ -4902,8 +4937,10 @@ int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub,
|
||||||
* a flush packet.
|
* a flush packet.
|
||||||
*
|
*
|
||||||
* @return 0 on success, otherwise negative error code:
|
* @return 0 on success, otherwise negative error code:
|
||||||
* AVERROR(EAGAIN): input is not accepted right now - the packet must be
|
* AVERROR(EAGAIN): input is not accepted in the current state - user
|
||||||
* resent after trying to read output
|
* must read output with avcodec_receive_frame() (once
|
||||||
|
* all output is read, the packet should be resent, and
|
||||||
|
* the call will not fail with EAGAIN).
|
||||||
* AVERROR_EOF: the decoder has been flushed, and no new packets can
|
* AVERROR_EOF: the decoder has been flushed, and no new packets can
|
||||||
* be sent to it (also returned if more than 1 flush
|
* be sent to it (also returned if more than 1 flush
|
||||||
* packet is sent)
|
* packet is sent)
|
||||||
|
@ -4924,7 +4961,7 @@ int avcodec_send_packet(AVCodecContext *avctx, const AVPacket *avpkt);
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
* 0: success, a frame was returned
|
* 0: success, a frame was returned
|
||||||
* AVERROR(EAGAIN): output is not available right now - user must try
|
* AVERROR(EAGAIN): output is not available in this state - user must try
|
||||||
* to send new input
|
* to send new input
|
||||||
* AVERROR_EOF: the decoder has been fully flushed, and there will be
|
* AVERROR_EOF: the decoder has been fully flushed, and there will be
|
||||||
* no more output frames
|
* no more output frames
|
||||||
|
@ -4957,8 +4994,10 @@ int avcodec_receive_frame(AVCodecContext *avctx, AVFrame *frame);
|
||||||
* avctx->frame_size for all frames except the last.
|
* avctx->frame_size for all frames except the last.
|
||||||
* The final frame may be smaller than avctx->frame_size.
|
* The final frame may be smaller than avctx->frame_size.
|
||||||
* @return 0 on success, otherwise negative error code:
|
* @return 0 on success, otherwise negative error code:
|
||||||
* AVERROR(EAGAIN): input is not accepted right now - the frame must be
|
* AVERROR(EAGAIN): input is not accepted in the current state - user
|
||||||
* resent after trying to read output packets
|
* must read output with avcodec_receive_packet() (once
|
||||||
|
* all output is read, the packet should be resent, and
|
||||||
|
* the call will not fail with EAGAIN).
|
||||||
* AVERROR_EOF: the encoder has been flushed, and no new frames can
|
* AVERROR_EOF: the encoder has been flushed, and no new frames can
|
||||||
* be sent to it
|
* be sent to it
|
||||||
* AVERROR(EINVAL): codec not opened, refcounted_frames not set, it is a
|
* AVERROR(EINVAL): codec not opened, refcounted_frames not set, it is a
|
||||||
|
@ -4976,8 +5015,8 @@ int avcodec_send_frame(AVCodecContext *avctx, const AVFrame *frame);
|
||||||
* encoder. Note that the function will always call
|
* encoder. Note that the function will always call
|
||||||
* av_frame_unref(frame) before doing anything else.
|
* av_frame_unref(frame) before doing anything else.
|
||||||
* @return 0 on success, otherwise negative error code:
|
* @return 0 on success, otherwise negative error code:
|
||||||
* AVERROR(EAGAIN): output is not available right now - user must try
|
* AVERROR(EAGAIN): output is not available in the current state - user
|
||||||
* to send input
|
* must try to send input
|
||||||
* AVERROR_EOF: the encoder has been fully flushed, and there will be
|
* AVERROR_EOF: the encoder has been fully flushed, and there will be
|
||||||
* no more output packets
|
* no more output packets
|
||||||
* AVERROR(EINVAL): codec not opened, or it is an encoder
|
* AVERROR(EINVAL): codec not opened, or it is an encoder
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
#include "libavutil/version.h"
|
#include "libavutil/version.h"
|
||||||
|
|
||||||
#define LIBAVCODEC_VERSION_MAJOR 57
|
#define LIBAVCODEC_VERSION_MAJOR 57
|
||||||
#define LIBAVCODEC_VERSION_MINOR 75
|
#define LIBAVCODEC_VERSION_MINOR 83
|
||||||
#define LIBAVCODEC_VERSION_MICRO 100
|
#define LIBAVCODEC_VERSION_MICRO 100
|
||||||
|
|
||||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||||
|
|
|
@ -58,7 +58,8 @@ typedef struct AVVideotoolboxContext {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CVPixelBuffer Format Type that Videotoolbox will use for decoded frames.
|
* CVPixelBuffer Format Type that Videotoolbox will use for decoded frames.
|
||||||
* set by the caller.
|
* set by the caller. If this is set to 0, then no specific format is
|
||||||
|
* requested from the decoder, and its native format is output.
|
||||||
*/
|
*/
|
||||||
OSType cv_pix_fmt_type;
|
OSType cv_pix_fmt_type;
|
||||||
|
|
||||||
|
|
|
@ -1005,7 +1005,9 @@ typedef struct AVStream {
|
||||||
* All fields below this line are not part of the public API. They
|
* All fields below this line are not part of the public API. They
|
||||||
* may not be used outside of libavformat and can be changed and
|
* may not be used outside of libavformat and can be changed and
|
||||||
* removed at will.
|
* removed at will.
|
||||||
* New public fields should be added right above.
|
* Internal note: be aware that physically removing these fields
|
||||||
|
* will break ABI. Replace removed fields with dummy fields, and
|
||||||
|
* add new fields to AVStreamInternal.
|
||||||
*****************************************************************
|
*****************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -1201,6 +1203,12 @@ typedef struct AVStream {
|
||||||
*/
|
*/
|
||||||
int inject_global_side_data;
|
int inject_global_side_data;
|
||||||
|
|
||||||
|
/*****************************************************************
|
||||||
|
* All fields above this line are not part of the public API.
|
||||||
|
* Fields below are part of the public API and ABI again.
|
||||||
|
*****************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* String containing paris of key and values describing recommended encoder configuration.
|
* String containing paris of key and values describing recommended encoder configuration.
|
||||||
* Paris are separated by ','.
|
* Paris are separated by ','.
|
||||||
|
@ -1649,7 +1657,7 @@ typedef struct AVFormatContext {
|
||||||
/**
|
/**
|
||||||
* Audio preload in microseconds.
|
* Audio preload in microseconds.
|
||||||
* Note, not all formats support this and unpredictable things may happen if it is used when not supported.
|
* Note, not all formats support this and unpredictable things may happen if it is used when not supported.
|
||||||
* - encoding: Set by user via AVOptions (NO direct access)
|
* - encoding: Set by user
|
||||||
* - decoding: unused
|
* - decoding: unused
|
||||||
*/
|
*/
|
||||||
int audio_preload;
|
int audio_preload;
|
||||||
|
@ -1657,7 +1665,7 @@ typedef struct AVFormatContext {
|
||||||
/**
|
/**
|
||||||
* Max chunk time in microseconds.
|
* Max chunk time in microseconds.
|
||||||
* Note, not all formats support this and unpredictable things may happen if it is used when not supported.
|
* Note, not all formats support this and unpredictable things may happen if it is used when not supported.
|
||||||
* - encoding: Set by user via AVOptions (NO direct access)
|
* - encoding: Set by user
|
||||||
* - decoding: unused
|
* - decoding: unused
|
||||||
*/
|
*/
|
||||||
int max_chunk_duration;
|
int max_chunk_duration;
|
||||||
|
@ -1665,7 +1673,7 @@ typedef struct AVFormatContext {
|
||||||
/**
|
/**
|
||||||
* Max chunk size in bytes
|
* Max chunk size in bytes
|
||||||
* Note, not all formats support this and unpredictable things may happen if it is used when not supported.
|
* Note, not all formats support this and unpredictable things may happen if it is used when not supported.
|
||||||
* - encoding: Set by user via AVOptions (NO direct access)
|
* - encoding: Set by user
|
||||||
* - decoding: unused
|
* - decoding: unused
|
||||||
*/
|
*/
|
||||||
int max_chunk_size;
|
int max_chunk_size;
|
||||||
|
@ -1674,14 +1682,14 @@ typedef struct AVFormatContext {
|
||||||
* forces the use of wallclock timestamps as pts/dts of packets
|
* forces the use of wallclock timestamps as pts/dts of packets
|
||||||
* This has undefined results in the presence of B frames.
|
* This has undefined results in the presence of B frames.
|
||||||
* - encoding: unused
|
* - encoding: unused
|
||||||
* - decoding: Set by user via AVOptions (NO direct access)
|
* - decoding: Set by user
|
||||||
*/
|
*/
|
||||||
int use_wallclock_as_timestamps;
|
int use_wallclock_as_timestamps;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* avio flags, used to force AVIO_FLAG_DIRECT.
|
* avio flags, used to force AVIO_FLAG_DIRECT.
|
||||||
* - encoding: unused
|
* - encoding: unused
|
||||||
* - decoding: Set by user via AVOptions (NO direct access)
|
* - decoding: Set by user
|
||||||
*/
|
*/
|
||||||
int avio_flags;
|
int avio_flags;
|
||||||
|
|
||||||
|
@ -1689,34 +1697,34 @@ typedef struct AVFormatContext {
|
||||||
* The duration field can be estimated through various ways, and this field can be used
|
* The duration field can be estimated through various ways, and this field can be used
|
||||||
* to know how the duration was estimated.
|
* to know how the duration was estimated.
|
||||||
* - encoding: unused
|
* - encoding: unused
|
||||||
* - decoding: Read by user via AVOptions (NO direct access)
|
* - decoding: Read by user
|
||||||
*/
|
*/
|
||||||
enum AVDurationEstimationMethod duration_estimation_method;
|
enum AVDurationEstimationMethod duration_estimation_method;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Skip initial bytes when opening stream
|
* Skip initial bytes when opening stream
|
||||||
* - encoding: unused
|
* - encoding: unused
|
||||||
* - decoding: Set by user via AVOptions (NO direct access)
|
* - decoding: Set by user
|
||||||
*/
|
*/
|
||||||
int64_t skip_initial_bytes;
|
int64_t skip_initial_bytes;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Correct single timestamp overflows
|
* Correct single timestamp overflows
|
||||||
* - encoding: unused
|
* - encoding: unused
|
||||||
* - decoding: Set by user via AVOptions (NO direct access)
|
* - decoding: Set by user
|
||||||
*/
|
*/
|
||||||
unsigned int correct_ts_overflow;
|
unsigned int correct_ts_overflow;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Force seeking to any (also non key) frames.
|
* Force seeking to any (also non key) frames.
|
||||||
* - encoding: unused
|
* - encoding: unused
|
||||||
* - decoding: Set by user via AVOptions (NO direct access)
|
* - decoding: Set by user
|
||||||
*/
|
*/
|
||||||
int seek2any;
|
int seek2any;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Flush the I/O context after each packet.
|
* Flush the I/O context after each packet.
|
||||||
* - encoding: Set by user via AVOptions (NO direct access)
|
* - encoding: Set by user
|
||||||
* - decoding: unused
|
* - decoding: unused
|
||||||
*/
|
*/
|
||||||
int flush_packets;
|
int flush_packets;
|
||||||
|
@ -1726,14 +1734,14 @@ typedef struct AVFormatContext {
|
||||||
* The maximal score is AVPROBE_SCORE_MAX, its set when the demuxer probes
|
* The maximal score is AVPROBE_SCORE_MAX, its set when the demuxer probes
|
||||||
* the format.
|
* the format.
|
||||||
* - encoding: unused
|
* - encoding: unused
|
||||||
* - decoding: set by avformat, read by user via av_format_get_probe_score() (NO direct access)
|
* - decoding: set by avformat, read by user
|
||||||
*/
|
*/
|
||||||
int probe_score;
|
int probe_score;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* number of bytes to read maximally to identify format.
|
* number of bytes to read maximally to identify format.
|
||||||
* - encoding: unused
|
* - encoding: unused
|
||||||
* - decoding: set by user through AVOPtions (NO direct access)
|
* - decoding: set by user
|
||||||
*/
|
*/
|
||||||
int format_probesize;
|
int format_probesize;
|
||||||
|
|
||||||
|
@ -1741,7 +1749,7 @@ typedef struct AVFormatContext {
|
||||||
* ',' separated list of allowed decoders.
|
* ',' separated list of allowed decoders.
|
||||||
* If NULL then all are allowed
|
* If NULL then all are allowed
|
||||||
* - encoding: unused
|
* - encoding: unused
|
||||||
* - decoding: set by user through AVOptions (NO direct access)
|
* - decoding: set by user
|
||||||
*/
|
*/
|
||||||
char *codec_whitelist;
|
char *codec_whitelist;
|
||||||
|
|
||||||
|
@ -1749,7 +1757,7 @@ typedef struct AVFormatContext {
|
||||||
* ',' separated list of allowed demuxers.
|
* ',' separated list of allowed demuxers.
|
||||||
* If NULL then all are allowed
|
* If NULL then all are allowed
|
||||||
* - encoding: unused
|
* - encoding: unused
|
||||||
* - decoding: set by user through AVOptions (NO direct access)
|
* - decoding: set by user
|
||||||
*/
|
*/
|
||||||
char *format_whitelist;
|
char *format_whitelist;
|
||||||
|
|
||||||
|
@ -1771,7 +1779,7 @@ typedef struct AVFormatContext {
|
||||||
* Forced video codec.
|
* Forced video codec.
|
||||||
* This allows forcing a specific decoder, even when there are multiple with
|
* This allows forcing a specific decoder, even when there are multiple with
|
||||||
* the same codec_id.
|
* the same codec_id.
|
||||||
* Demuxing: Set by user via av_format_set_video_codec (NO direct access).
|
* Demuxing: Set by user
|
||||||
*/
|
*/
|
||||||
AVCodec *video_codec;
|
AVCodec *video_codec;
|
||||||
|
|
||||||
|
@ -1779,7 +1787,7 @@ typedef struct AVFormatContext {
|
||||||
* Forced audio codec.
|
* Forced audio codec.
|
||||||
* This allows forcing a specific decoder, even when there are multiple with
|
* This allows forcing a specific decoder, even when there are multiple with
|
||||||
* the same codec_id.
|
* the same codec_id.
|
||||||
* Demuxing: Set by user via av_format_set_audio_codec (NO direct access).
|
* Demuxing: Set by user
|
||||||
*/
|
*/
|
||||||
AVCodec *audio_codec;
|
AVCodec *audio_codec;
|
||||||
|
|
||||||
|
@ -1787,7 +1795,7 @@ typedef struct AVFormatContext {
|
||||||
* Forced subtitle codec.
|
* Forced subtitle codec.
|
||||||
* This allows forcing a specific decoder, even when there are multiple with
|
* This allows forcing a specific decoder, even when there are multiple with
|
||||||
* the same codec_id.
|
* the same codec_id.
|
||||||
* Demuxing: Set by user via av_format_set_subtitle_codec (NO direct access).
|
* Demuxing: Set by user
|
||||||
*/
|
*/
|
||||||
AVCodec *subtitle_codec;
|
AVCodec *subtitle_codec;
|
||||||
|
|
||||||
|
@ -1795,7 +1803,7 @@ typedef struct AVFormatContext {
|
||||||
* Forced data codec.
|
* Forced data codec.
|
||||||
* This allows forcing a specific decoder, even when there are multiple with
|
* This allows forcing a specific decoder, even when there are multiple with
|
||||||
* the same codec_id.
|
* the same codec_id.
|
||||||
* Demuxing: Set by user via av_format_set_data_codec (NO direct access).
|
* Demuxing: Set by user
|
||||||
*/
|
*/
|
||||||
AVCodec *data_codec;
|
AVCodec *data_codec;
|
||||||
|
|
||||||
|
@ -1819,15 +1827,13 @@ typedef struct AVFormatContext {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Output timestamp offset, in microseconds.
|
* Output timestamp offset, in microseconds.
|
||||||
* Muxing: set by user via AVOptions (NO direct access)
|
* Muxing: set by user
|
||||||
*/
|
*/
|
||||||
int64_t output_ts_offset;
|
int64_t output_ts_offset;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dump format separator.
|
* dump format separator.
|
||||||
* can be ", " or "\n " or anything else
|
* can be ", " or "\n " or anything else
|
||||||
* Code outside libavformat should access this field using AVOptions
|
|
||||||
* (NO direct access).
|
|
||||||
* - muxing: Set by user.
|
* - muxing: Set by user.
|
||||||
* - demuxing: Set by user.
|
* - demuxing: Set by user.
|
||||||
*/
|
*/
|
||||||
|
@ -1864,7 +1870,7 @@ typedef struct AVFormatContext {
|
||||||
/**
|
/**
|
||||||
* ',' separated list of allowed protocols.
|
* ',' separated list of allowed protocols.
|
||||||
* - encoding: unused
|
* - encoding: unused
|
||||||
* - decoding: set by user through AVOptions (NO direct access)
|
* - decoding: set by user
|
||||||
*/
|
*/
|
||||||
char *protocol_whitelist;
|
char *protocol_whitelist;
|
||||||
|
|
||||||
|
@ -1899,18 +1905,22 @@ typedef struct AVFormatContext {
|
||||||
/**
|
/**
|
||||||
* ',' separated list of disallowed protocols.
|
* ',' separated list of disallowed protocols.
|
||||||
* - encoding: unused
|
* - encoding: unused
|
||||||
* - decoding: set by user through AVOptions (NO direct access)
|
* - decoding: set by user
|
||||||
*/
|
*/
|
||||||
char *protocol_blacklist;
|
char *protocol_blacklist;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The maximum number of streams.
|
* The maximum number of streams.
|
||||||
* - encoding: unused
|
* - encoding: unused
|
||||||
* - decoding: set by user through AVOptions (NO direct access)
|
* - decoding: set by user
|
||||||
*/
|
*/
|
||||||
int max_streams;
|
int max_streams;
|
||||||
} AVFormatContext;
|
} AVFormatContext;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Accessors for some AVFormatContext fields. These used to be provided for ABI
|
||||||
|
* compatibility, and do not need to be used anymore.
|
||||||
|
*/
|
||||||
int av_format_get_probe_score(const AVFormatContext *s);
|
int av_format_get_probe_score(const AVFormatContext *s);
|
||||||
AVCodec * av_format_get_video_codec(const AVFormatContext *s);
|
AVCodec * av_format_get_video_codec(const AVFormatContext *s);
|
||||||
void av_format_set_video_codec(AVFormatContext *s, AVCodec *c);
|
void av_format_set_video_codec(AVFormatContext *s, AVCodec *c);
|
||||||
|
|
|
@ -313,6 +313,12 @@ typedef struct AVIOContext {
|
||||||
*/
|
*/
|
||||||
enum AVIODataMarkerType current_type;
|
enum AVIODataMarkerType current_type;
|
||||||
int64_t last_time;
|
int64_t last_time;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A callback that is used instead of short_seek_threshold.
|
||||||
|
* This is current internal only, do not use from outside.
|
||||||
|
*/
|
||||||
|
int (*short_seek_get)(void *opaque);
|
||||||
} AVIOContext;
|
} AVIOContext;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -32,8 +32,8 @@
|
||||||
// Major bumping may affect Ticket5467, 5421, 5451(compatibility with Chromium)
|
// Major bumping may affect Ticket5467, 5421, 5451(compatibility with Chromium)
|
||||||
// Also please add any ticket numbers that you believe might be affected here
|
// Also please add any ticket numbers that you believe might be affected here
|
||||||
#define LIBAVFORMAT_VERSION_MAJOR 57
|
#define LIBAVFORMAT_VERSION_MAJOR 57
|
||||||
#define LIBAVFORMAT_VERSION_MINOR 65
|
#define LIBAVFORMAT_VERSION_MINOR 66
|
||||||
#define LIBAVFORMAT_VERSION_MICRO 100
|
#define LIBAVFORMAT_VERSION_MICRO 104
|
||||||
|
|
||||||
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
|
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
|
||||||
LIBAVFORMAT_VERSION_MINOR, \
|
LIBAVFORMAT_VERSION_MINOR, \
|
||||||
|
@ -85,6 +85,10 @@
|
||||||
#ifndef FF_API_HTTP_USER_AGENT
|
#ifndef FF_API_HTTP_USER_AGENT
|
||||||
#define FF_API_HTTP_USER_AGENT (LIBAVFORMAT_VERSION_MAJOR < 58)
|
#define FF_API_HTTP_USER_AGENT (LIBAVFORMAT_VERSION_MAJOR < 58)
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef FF_API_HLS_WRAP
|
||||||
|
#define FF_API_HLS_WRAP (LIBAVFORMAT_VERSION_MAJOR < 58)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifndef FF_API_R_FRAME_RATE
|
#ifndef FF_API_R_FRAME_RATE
|
||||||
#define FF_API_R_FRAME_RATE 1
|
#define FF_API_R_FRAME_RATE 1
|
||||||
|
|
|
@ -121,8 +121,7 @@
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(__GNUC__) || defined(__clang__)
|
||||||
#if defined(__GNUC__)
|
|
||||||
# define av_unused __attribute__((unused))
|
# define av_unused __attribute__((unused))
|
||||||
#else
|
#else
|
||||||
# define av_unused
|
# define av_unused
|
||||||
|
@ -133,7 +132,7 @@
|
||||||
* away. This is useful for variables accessed only from inline
|
* away. This is useful for variables accessed only from inline
|
||||||
* assembler without the compiler being aware.
|
* assembler without the compiler being aware.
|
||||||
*/
|
*/
|
||||||
#if AV_GCC_VERSION_AT_LEAST(3,1)
|
#if AV_GCC_VERSION_AT_LEAST(3,1) || defined(__clang__)
|
||||||
# define av_used __attribute__((used))
|
# define av_used __attribute__((used))
|
||||||
#else
|
#else
|
||||||
# define av_used
|
# define av_used
|
||||||
|
|
|
@ -39,6 +39,7 @@
|
||||||
#define AV_CPU_FLAG_SSE3SLOW 0x20000000 ///< SSE3 supported, but usually not faster
|
#define AV_CPU_FLAG_SSE3SLOW 0x20000000 ///< SSE3 supported, but usually not faster
|
||||||
///< than regular MMX/SSE (e.g. Core1)
|
///< than regular MMX/SSE (e.g. Core1)
|
||||||
#define AV_CPU_FLAG_SSSE3 0x0080 ///< Conroe SSSE3 functions
|
#define AV_CPU_FLAG_SSSE3 0x0080 ///< Conroe SSSE3 functions
|
||||||
|
#define AV_CPU_FLAG_SSSE3SLOW 0x4000000 ///< SSSE3 supported, but usually not faster
|
||||||
#define AV_CPU_FLAG_ATOM 0x10000000 ///< Atom processor, some SSSE3 instructions are slower
|
#define AV_CPU_FLAG_ATOM 0x10000000 ///< Atom processor, some SSSE3 instructions are slower
|
||||||
#define AV_CPU_FLAG_SSE4 0x0100 ///< Penryn SSE4.1 functions
|
#define AV_CPU_FLAG_SSE4 0x0100 ///< Penryn SSE4.1 functions
|
||||||
#define AV_CPU_FLAG_SSE42 0x0200 ///< Nehalem SSE4.2 functions
|
#define AV_CPU_FLAG_SSE42 0x0200 ///< Nehalem SSE4.2 functions
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Automatically generated by version.sh, do not manually edit! */
|
/* Automatically generated by version.sh, do not manually edit! */
|
||||||
#ifndef AVUTIL_FFVERSION_H
|
#ifndef AVUTIL_FFVERSION_H
|
||||||
#define AVUTIL_FFVERSION_H
|
#define AVUTIL_FFVERSION_H
|
||||||
#define FFMPEG_VERSION "N-83255-g6d83f20"
|
#define FFMPEG_VERSION "N-83885-g967feea"
|
||||||
#endif /* AVUTIL_FFVERSION_H */
|
#endif /* AVUTIL_FFVERSION_H */
|
||||||
|
|
|
@ -179,9 +179,6 @@ typedef struct AVFrameSideData {
|
||||||
*
|
*
|
||||||
* sizeof(AVFrame) is not a part of the public ABI, so new fields may be added
|
* sizeof(AVFrame) is not a part of the public ABI, so new fields may be added
|
||||||
* to the end with a minor bump.
|
* to the end with a minor bump.
|
||||||
* Similarly fields that are marked as to be only accessed by
|
|
||||||
* av_opt_ptr() can be reordered. This allows 2 forks to add fields
|
|
||||||
* without breaking compatibility with each other.
|
|
||||||
*
|
*
|
||||||
* Fields can be accessed through AVOptions, the name string used, matches the
|
* Fields can be accessed through AVOptions, the name string used, matches the
|
||||||
* C structure field name for fields accessible through AVOptions. The AVClass
|
* C structure field name for fields accessible through AVOptions. The AVClass
|
||||||
|
@ -420,8 +417,6 @@ typedef struct AVFrame {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* MPEG vs JPEG YUV range.
|
* MPEG vs JPEG YUV range.
|
||||||
* It must be accessed using av_frame_get_color_range() and
|
|
||||||
* av_frame_set_color_range().
|
|
||||||
* - encoding: Set by user
|
* - encoding: Set by user
|
||||||
* - decoding: Set by libavcodec
|
* - decoding: Set by libavcodec
|
||||||
*/
|
*/
|
||||||
|
@ -433,8 +428,6 @@ typedef struct AVFrame {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* YUV colorspace type.
|
* YUV colorspace type.
|
||||||
* It must be accessed using av_frame_get_colorspace() and
|
|
||||||
* av_frame_set_colorspace().
|
|
||||||
* - encoding: Set by user
|
* - encoding: Set by user
|
||||||
* - decoding: Set by libavcodec
|
* - decoding: Set by libavcodec
|
||||||
*/
|
*/
|
||||||
|
@ -444,8 +437,6 @@ typedef struct AVFrame {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* frame timestamp estimated using various heuristics, in stream time base
|
* frame timestamp estimated using various heuristics, in stream time base
|
||||||
* Code outside libavutil should access this field using:
|
|
||||||
* av_frame_get_best_effort_timestamp(frame)
|
|
||||||
* - encoding: unused
|
* - encoding: unused
|
||||||
* - decoding: set by libavcodec, read by user.
|
* - decoding: set by libavcodec, read by user.
|
||||||
*/
|
*/
|
||||||
|
@ -453,8 +444,6 @@ typedef struct AVFrame {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* reordered pos from the last AVPacket that has been input into the decoder
|
* reordered pos from the last AVPacket that has been input into the decoder
|
||||||
* Code outside libavutil should access this field using:
|
|
||||||
* av_frame_get_pkt_pos(frame)
|
|
||||||
* - encoding: unused
|
* - encoding: unused
|
||||||
* - decoding: Read by user.
|
* - decoding: Read by user.
|
||||||
*/
|
*/
|
||||||
|
@ -463,8 +452,6 @@ typedef struct AVFrame {
|
||||||
/**
|
/**
|
||||||
* duration of the corresponding packet, expressed in
|
* duration of the corresponding packet, expressed in
|
||||||
* AVStream->time_base units, 0 if unknown.
|
* AVStream->time_base units, 0 if unknown.
|
||||||
* Code outside libavutil should access this field using:
|
|
||||||
* av_frame_get_pkt_duration(frame)
|
|
||||||
* - encoding: unused
|
* - encoding: unused
|
||||||
* - decoding: Read by user.
|
* - decoding: Read by user.
|
||||||
*/
|
*/
|
||||||
|
@ -472,8 +459,6 @@ typedef struct AVFrame {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* metadata.
|
* metadata.
|
||||||
* Code outside libavutil should access this field using:
|
|
||||||
* av_frame_get_metadata(frame)
|
|
||||||
* - encoding: Set by user.
|
* - encoding: Set by user.
|
||||||
* - decoding: Set by libavcodec.
|
* - decoding: Set by libavcodec.
|
||||||
*/
|
*/
|
||||||
|
@ -483,8 +468,6 @@ typedef struct AVFrame {
|
||||||
* decode error flags of the frame, set to a combination of
|
* decode error flags of the frame, set to a combination of
|
||||||
* FF_DECODE_ERROR_xxx flags if the decoder produced a frame, but there
|
* FF_DECODE_ERROR_xxx flags if the decoder produced a frame, but there
|
||||||
* were errors during the decoding.
|
* were errors during the decoding.
|
||||||
* Code outside libavutil should access this field using:
|
|
||||||
* av_frame_get_decode_error_flags(frame)
|
|
||||||
* - encoding: unused
|
* - encoding: unused
|
||||||
* - decoding: set by libavcodec, read by user.
|
* - decoding: set by libavcodec, read by user.
|
||||||
*/
|
*/
|
||||||
|
@ -494,8 +477,6 @@ typedef struct AVFrame {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* number of audio channels, only used for audio.
|
* number of audio channels, only used for audio.
|
||||||
* Code outside libavutil should access this field using:
|
|
||||||
* av_frame_get_channels(frame)
|
|
||||||
* - encoding: unused
|
* - encoding: unused
|
||||||
* - decoding: Read by user.
|
* - decoding: Read by user.
|
||||||
*/
|
*/
|
||||||
|
@ -503,8 +484,7 @@ typedef struct AVFrame {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* size of the corresponding packet containing the compressed
|
* size of the corresponding packet containing the compressed
|
||||||
* frame. It must be accessed using av_frame_get_pkt_size() and
|
* frame.
|
||||||
* av_frame_set_pkt_size().
|
|
||||||
* It is set to a negative value if unknown.
|
* It is set to a negative value if unknown.
|
||||||
* - encoding: unused
|
* - encoding: unused
|
||||||
* - decoding: set by libavcodec, read by user.
|
* - decoding: set by libavcodec, read by user.
|
||||||
|
@ -514,13 +494,11 @@ typedef struct AVFrame {
|
||||||
#if FF_API_FRAME_QP
|
#if FF_API_FRAME_QP
|
||||||
/**
|
/**
|
||||||
* QP table
|
* QP table
|
||||||
* Not to be accessed directly from outside libavutil
|
|
||||||
*/
|
*/
|
||||||
attribute_deprecated
|
attribute_deprecated
|
||||||
int8_t *qscale_table;
|
int8_t *qscale_table;
|
||||||
/**
|
/**
|
||||||
* QP store stride
|
* QP store stride
|
||||||
* Not to be accessed directly from outside libavutil
|
|
||||||
*/
|
*/
|
||||||
attribute_deprecated
|
attribute_deprecated
|
||||||
int qstride;
|
int qstride;
|
||||||
|
@ -528,9 +506,6 @@ typedef struct AVFrame {
|
||||||
attribute_deprecated
|
attribute_deprecated
|
||||||
int qscale_type;
|
int qscale_type;
|
||||||
|
|
||||||
/**
|
|
||||||
* Not to be accessed directly from outside libavutil
|
|
||||||
*/
|
|
||||||
AVBufferRef *qp_table_buf;
|
AVBufferRef *qp_table_buf;
|
||||||
#endif
|
#endif
|
||||||
/**
|
/**
|
||||||
|
@ -538,12 +513,22 @@ typedef struct AVFrame {
|
||||||
* AVHWFramesContext describing the frame.
|
* AVHWFramesContext describing the frame.
|
||||||
*/
|
*/
|
||||||
AVBufferRef *hw_frames_ctx;
|
AVBufferRef *hw_frames_ctx;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* AVBufferRef for free use by the API user. FFmpeg will never check the
|
||||||
|
* contents of the buffer ref. FFmpeg calls av_buffer_unref() on it when
|
||||||
|
* the frame is unreferenced. av_frame_copy_props() calls create a new
|
||||||
|
* reference with av_buffer_ref() for the target frame's opaque_ref field.
|
||||||
|
*
|
||||||
|
* This is unrelated to the opaque field, although it serves a similar
|
||||||
|
* purpose.
|
||||||
|
*/
|
||||||
|
AVBufferRef *opaque_ref;
|
||||||
} AVFrame;
|
} AVFrame;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Accessors for some AVFrame fields.
|
* Accessors for some AVFrame fields. These used to be provided for ABI
|
||||||
* The position of these field in the structure is not part of the ABI,
|
* compatibility, and do not need to be used anymore.
|
||||||
* they should not be accessed directly outside libavutil.
|
|
||||||
*/
|
*/
|
||||||
int64_t av_frame_get_best_effort_timestamp(const AVFrame *frame);
|
int64_t av_frame_get_best_effort_timestamp(const AVFrame *frame);
|
||||||
void av_frame_set_best_effort_timestamp(AVFrame *frame, int64_t val);
|
void av_frame_set_best_effort_timestamp(AVFrame *frame, int64_t val);
|
||||||
|
|
|
@ -97,7 +97,7 @@
|
||||||
#define DECLARE_ASM_CONST(n,t,v) \
|
#define DECLARE_ASM_CONST(n,t,v) \
|
||||||
AV_PRAGMA(DATA_ALIGN(v,n)) \
|
AV_PRAGMA(DATA_ALIGN(v,n)) \
|
||||||
static const t __attribute__((aligned(n))) v
|
static const t __attribute__((aligned(n))) v
|
||||||
#elif defined(__GNUC__)
|
#elif defined(__GNUC__) || defined(__clang__)
|
||||||
#define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v
|
#define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v
|
||||||
#define DECLARE_ASM_CONST(n,t,v) static const t av_used __attribute__ ((aligned (n))) v
|
#define DECLARE_ASM_CONST(n,t,v) static const t av_used __attribute__ ((aligned (n))) v
|
||||||
#elif defined(_MSC_VER)
|
#elif defined(_MSC_VER)
|
||||||
|
|
|
@ -63,6 +63,13 @@ enum AVSphericalProjection {
|
||||||
* to the back.
|
* to the back.
|
||||||
*/
|
*/
|
||||||
AV_SPHERICAL_CUBEMAP,
|
AV_SPHERICAL_CUBEMAP,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Video represents a portion of a sphere mapped on a flat surface
|
||||||
|
* using equirectangular projection. The @ref bounding fields indicate
|
||||||
|
* the position of the current video in a larger surface.
|
||||||
|
*/
|
||||||
|
AV_SPHERICAL_EQUIRECTANGULAR_TILE,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -122,6 +129,57 @@ typedef struct AVSphericalMapping {
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name Bounding rectangle
|
||||||
|
* @anchor bounding
|
||||||
|
* @{
|
||||||
|
* These fields indicate the location of the current tile, and where
|
||||||
|
* it should be mapped relative to the original surface. They are
|
||||||
|
* exported as 0.32 fixed point, and can be converted to classic
|
||||||
|
* pixel values with av_spherical_bounds().
|
||||||
|
*
|
||||||
|
* @code{.unparsed}
|
||||||
|
* +----------------+----------+
|
||||||
|
* | |bound_top |
|
||||||
|
* | +--------+ |
|
||||||
|
* | bound_left |tile | |
|
||||||
|
* +<---------->| |<--->+bound_right
|
||||||
|
* | +--------+ |
|
||||||
|
* | | |
|
||||||
|
* | bound_bottom| |
|
||||||
|
* +----------------+----------+
|
||||||
|
* @endcode
|
||||||
|
*
|
||||||
|
* If needed, the original video surface dimensions can be derived
|
||||||
|
* by adding the current stream or frame size to the related bounds,
|
||||||
|
* like in the following example:
|
||||||
|
*
|
||||||
|
* @code{c}
|
||||||
|
* original_width = tile->width + bound_left + bound_right;
|
||||||
|
* original_height = tile->height + bound_top + bound_bottom;
|
||||||
|
* @endcode
|
||||||
|
*
|
||||||
|
* @note These values are valid only for the tiled equirectangular
|
||||||
|
* projection type (@ref AV_SPHERICAL_EQUIRECTANGULAR_TILE),
|
||||||
|
* and should be ignored in all other cases.
|
||||||
|
*/
|
||||||
|
size_t bound_left; ///< Distance from the left edge
|
||||||
|
size_t bound_top; ///< Distance from the top edge
|
||||||
|
size_t bound_right; ///< Distance from the right edge
|
||||||
|
size_t bound_bottom; ///< Distance from the bottom edge
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Number of pixels to pad from the edge of each cube face.
|
||||||
|
*
|
||||||
|
* @note This value is valid for only for the cubemap projection type
|
||||||
|
* (@ref AV_SPHERICAL_CUBEMAP), and should be ignored in all other
|
||||||
|
* cases.
|
||||||
|
*/
|
||||||
|
size_t padding;
|
||||||
} AVSphericalMapping;
|
} AVSphericalMapping;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -132,6 +190,22 @@ typedef struct AVSphericalMapping {
|
||||||
*/
|
*/
|
||||||
AVSphericalMapping *av_spherical_alloc(size_t *size);
|
AVSphericalMapping *av_spherical_alloc(size_t *size);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert the @ref bounding fields from an AVSphericalVideo
|
||||||
|
* from 0.32 fixed point to pixels.
|
||||||
|
*
|
||||||
|
* @param map The AVSphericalVideo map to read bound values from.
|
||||||
|
* @param width Width of the current frame or stream.
|
||||||
|
* @param height Height of the current frame or stream.
|
||||||
|
* @param left Pixels from the left edge.
|
||||||
|
* @param top Pixels from the top edge.
|
||||||
|
* @param right Pixels from the right edge.
|
||||||
|
* @param bottom Pixels from the bottom edge.
|
||||||
|
*/
|
||||||
|
void av_spherical_tile_bounds(AVSphericalMapping *map,
|
||||||
|
size_t width, size_t height,
|
||||||
|
size_t *left, size_t *top,
|
||||||
|
size_t *right, size_t *bottom);
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
* @}
|
* @}
|
||||||
|
|
|
@ -79,7 +79,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define LIBAVUTIL_VERSION_MAJOR 55
|
#define LIBAVUTIL_VERSION_MAJOR 55
|
||||||
#define LIBAVUTIL_VERSION_MINOR 45
|
#define LIBAVUTIL_VERSION_MINOR 48
|
||||||
#define LIBAVUTIL_VERSION_MICRO 100
|
#define LIBAVUTIL_VERSION_MICRO 100
|
||||||
|
|
||||||
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
|
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,12 +1,12 @@
|
||||||
prefix=/Users/Chris/Source/Repos/cog/ThirdParty/ffmpeg
|
prefix=/Users/chris/Source/Repos/cog/ThirdParty/ffmpeg
|
||||||
exec_prefix=${prefix}
|
exec_prefix=${prefix}
|
||||||
libdir=${prefix}/lib
|
libdir=${prefix}/lib
|
||||||
includedir=${prefix}/include
|
includedir=${prefix}/include
|
||||||
|
|
||||||
Name: libavcodec
|
Name: libavcodec
|
||||||
Description: FFmpeg codec library
|
Description: FFmpeg codec library
|
||||||
Version: 57.75.100
|
Version: 57.83.100
|
||||||
Requires: libavutil >= 55.45.100
|
Requires: libavutil >= 55.48.100
|
||||||
Requires.private:
|
Requires.private:
|
||||||
Conflicts:
|
Conflicts:
|
||||||
Libs: -L${libdir} -lavcodec -framework QuartzCore -framework CoreFoundation -framework VideoToolbox -framework CoreMedia -framework CoreVideo -framework CoreFoundation -framework AudioToolbox -framework CoreMedia -framework VideoDecodeAcceleration -framework CoreFoundation -framework QuartzCore -liconv -Wl,-framework,CoreFoundation -Wl,-framework,Security -lm -lbz2 -lz -pthread -framework CoreServices
|
Libs: -L${libdir} -lavcodec -framework QuartzCore -framework CoreFoundation -framework VideoToolbox -framework CoreMedia -framework CoreVideo -framework CoreFoundation -framework AudioToolbox -framework CoreMedia -framework VideoDecodeAcceleration -framework CoreFoundation -framework QuartzCore -liconv -Wl,-framework,CoreFoundation -Wl,-framework,Security -lm -lbz2 -lz -pthread -framework CoreServices
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
prefix=/Users/Chris/Source/Repos/cog/ThirdParty/ffmpeg
|
prefix=/Users/chris/Source/Repos/cog/ThirdParty/ffmpeg
|
||||||
exec_prefix=${prefix}
|
exec_prefix=${prefix}
|
||||||
libdir=${prefix}/lib
|
libdir=${prefix}/lib
|
||||||
includedir=${prefix}/include
|
includedir=${prefix}/include
|
||||||
|
|
||||||
Name: libavformat
|
Name: libavformat
|
||||||
Description: FFmpeg container format library
|
Description: FFmpeg container format library
|
||||||
Version: 57.65.100
|
Version: 57.66.104
|
||||||
Requires: libavcodec >= 57.75.100, libavutil >= 55.45.100
|
Requires: libavcodec >= 57.83.100, libavutil >= 55.48.100
|
||||||
Requires.private:
|
Requires.private:
|
||||||
Conflicts:
|
Conflicts:
|
||||||
Libs: -L${libdir} -lavformat -framework QuartzCore -framework CoreFoundation -framework VideoToolbox -framework CoreMedia -framework CoreVideo -framework CoreFoundation -framework AudioToolbox -framework CoreMedia -framework VideoDecodeAcceleration -framework CoreFoundation -framework QuartzCore -liconv -Wl,-framework,CoreFoundation -Wl,-framework,Security -lm -lbz2 -lz -pthread -framework CoreServices
|
Libs: -L${libdir} -lavformat -framework QuartzCore -framework CoreFoundation -framework VideoToolbox -framework CoreMedia -framework CoreVideo -framework CoreFoundation -framework AudioToolbox -framework CoreMedia -framework VideoDecodeAcceleration -framework CoreFoundation -framework QuartzCore -liconv -Wl,-framework,CoreFoundation -Wl,-framework,Security -lm -lbz2 -lz -pthread -framework CoreServices
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
prefix=/Users/Chris/Source/Repos/cog/ThirdParty/ffmpeg
|
prefix=/Users/chris/Source/Repos/cog/ThirdParty/ffmpeg
|
||||||
exec_prefix=${prefix}
|
exec_prefix=${prefix}
|
||||||
libdir=${prefix}/lib
|
libdir=${prefix}/lib
|
||||||
includedir=${prefix}/include
|
includedir=${prefix}/include
|
||||||
|
|
||||||
Name: libavutil
|
Name: libavutil
|
||||||
Description: FFmpeg utility library
|
Description: FFmpeg utility library
|
||||||
Version: 55.45.100
|
Version: 55.48.100
|
||||||
Requires:
|
Requires:
|
||||||
Requires.private:
|
Requires.private:
|
||||||
Conflicts:
|
Conflicts:
|
||||||
|
|
Loading…
Reference in New Issue