Updated FFmpeg.
parent
22fa3a3df0
commit
e3a2d255f3
|
@ -442,6 +442,9 @@ enum AVCodecID {
|
|||
AV_CODEC_ID_CLEARVIDEO,
|
||||
AV_CODEC_ID_XPM,
|
||||
AV_CODEC_ID_AV1,
|
||||
AV_CODEC_ID_BITPACKED,
|
||||
AV_CODEC_ID_MSCC,
|
||||
AV_CODEC_ID_SRGC,
|
||||
|
||||
/* various PCM "codecs" */
|
||||
AV_CODEC_ID_FIRST_AUDIO = 0x10000, ///< A dummy id pointing at the start of audio codecs
|
||||
|
@ -724,7 +727,7 @@ typedef struct AVCodecDescriptor {
|
|||
|
||||
/**
|
||||
* Codec uses only intra compression.
|
||||
* Video codecs only.
|
||||
* Video and audio codecs only.
|
||||
*/
|
||||
#define AV_CODEC_PROP_INTRA_ONLY (1 << 0)
|
||||
/**
|
||||
|
@ -1573,7 +1576,7 @@ enum AVPacketSideDataType {
|
|||
|
||||
/**
|
||||
* Mastering display metadata (based on SMPTE-2086:2014). This metadata
|
||||
* should be associated with a video stream and containts data in the form
|
||||
* should be associated with a video stream and contains data in the form
|
||||
* of the AVMasteringDisplayMetadata struct.
|
||||
*/
|
||||
AV_PKT_DATA_MASTERING_DISPLAY_METADATA,
|
||||
|
@ -1583,6 +1586,13 @@ enum AVPacketSideDataType {
|
|||
* to the AVSphericalMapping structure.
|
||||
*/
|
||||
AV_PKT_DATA_SPHERICAL,
|
||||
|
||||
/**
|
||||
* Content light level (based on CTA-861.3). This metadata should be
|
||||
* associated with a video stream and contains data in the form of the
|
||||
* AVContentLightMetadata struct.
|
||||
*/
|
||||
AV_PKT_DATA_CONTENT_LIGHT_LEVEL,
|
||||
};
|
||||
|
||||
#define AV_PKT_DATA_QUALITY_FACTOR AV_PKT_DATA_QUALITY_STATS //DEPRECATED
|
||||
|
@ -3754,20 +3764,22 @@ typedef struct AVCodec {
|
|||
int (*decode)(AVCodecContext *, void *outdata, int *outdata_size, AVPacket *avpkt);
|
||||
int (*close)(AVCodecContext *);
|
||||
/**
|
||||
* Decode/encode API with decoupled packet/frame dataflow. The API is the
|
||||
* Encode API with decoupled packet/frame dataflow. The API is the
|
||||
* same as the avcodec_ prefixed APIs (avcodec_send_frame() etc.), except
|
||||
* that:
|
||||
* - never called if the codec is closed or the wrong type,
|
||||
* - AVPacket parameter change side data is applied right before calling
|
||||
* AVCodec->send_packet,
|
||||
* - if AV_CODEC_CAP_DELAY is not set, drain packets or frames are never sent,
|
||||
* - only one drain packet is ever passed down (until the next flush()),
|
||||
* - a drain AVPacket is always NULL (no need to check for avpkt->size).
|
||||
* - if AV_CODEC_CAP_DELAY is not set, drain frames are never sent,
|
||||
* - only one drain frame is ever passed down,
|
||||
*/
|
||||
int (*send_frame)(AVCodecContext *avctx, const AVFrame *frame);
|
||||
int (*send_packet)(AVCodecContext *avctx, const AVPacket *avpkt);
|
||||
int (*receive_frame)(AVCodecContext *avctx, AVFrame *frame);
|
||||
int (*receive_packet)(AVCodecContext *avctx, AVPacket *avpkt);
|
||||
|
||||
/**
|
||||
* Decode API with decoupled packet/frame dataflow. This function is called
|
||||
* to get one output frame. It should call ff_decode_get_packet() to obtain
|
||||
* input data.
|
||||
*/
|
||||
int (*receive_frame)(AVCodecContext *avctx, AVFrame *frame);
|
||||
/**
|
||||
* Flush buffers.
|
||||
* Will be called when seeking
|
||||
|
@ -3778,6 +3790,12 @@ typedef struct AVCodec {
|
|||
* See FF_CODEC_CAP_* in internal.h
|
||||
*/
|
||||
int caps_internal;
|
||||
|
||||
/**
|
||||
* Decoding only, a comma-separated list of bitstream filters to apply to
|
||||
* packets before decoding.
|
||||
*/
|
||||
const char *bsfs;
|
||||
} AVCodec;
|
||||
|
||||
int av_codec_get_max_lowres(const AVCodec *codec);
|
||||
|
@ -4452,13 +4470,13 @@ AVPacket *av_packet_alloc(void);
|
|||
* @see av_packet_alloc
|
||||
* @see av_packet_ref
|
||||
*/
|
||||
AVPacket *av_packet_clone(AVPacket *src);
|
||||
AVPacket *av_packet_clone(const AVPacket *src);
|
||||
|
||||
/**
|
||||
* Free the packet, if the packet is reference counted, it will be
|
||||
* unreferenced first.
|
||||
*
|
||||
* @param packet packet to be freed. The pointer will be set to NULL.
|
||||
* @param pkt packet to be freed. The pointer will be set to NULL.
|
||||
* @note passing NULL is a no-op.
|
||||
*/
|
||||
void av_packet_free(AVPacket **pkt);
|
||||
|
@ -4902,13 +4920,13 @@ int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture,
|
|||
* and reusing a get_buffer written for video codecs would probably perform badly
|
||||
* due to a potentially very different allocation pattern.
|
||||
*
|
||||
* Some decoders (those marked with CODEC_CAP_DELAY) have a delay between input
|
||||
* Some decoders (those marked with AV_CODEC_CAP_DELAY) have a delay between input
|
||||
* and output. This means that for some packets they will not immediately
|
||||
* produce decoded output and need to be flushed at the end of decoding to get
|
||||
* all the decoded data. Flushing is done by calling this function with packets
|
||||
* with avpkt->data set to NULL and avpkt->size set to 0 until it stops
|
||||
* returning subtitles. It is safe to flush even those decoders that are not
|
||||
* marked with CODEC_CAP_DELAY, then no subtitles will be returned.
|
||||
* marked with AV_CODEC_CAP_DELAY, then no subtitles will be returned.
|
||||
*
|
||||
* @note The AVCodecContext MUST have been opened with @ref avcodec_open2()
|
||||
* before packets may be fed to the decoder.
|
||||
|
@ -6027,8 +6045,7 @@ int av_bsf_init(AVBSFContext *ctx);
|
|||
* av_bsf_receive_packet() repeatedly until it returns AVERROR(EAGAIN) or
|
||||
* AVERROR_EOF.
|
||||
*
|
||||
* @param pkt the packet to filter. pkt must contain some payload (i.e data or
|
||||
* side data must be present in pkt). The bitstream filter will take ownership of
|
||||
* @param pkt the packet to filter. The bitstream filter will take ownership of
|
||||
* the packet and reset the contents of pkt. pkt is not touched if an error occurs.
|
||||
* This parameter may be NULL, which signals the end of the stream (i.e. no more
|
||||
* packets will be sent). That will cause the filter to output any packets it
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
*/
|
||||
|
||||
#include <vdpau/vdpau.h>
|
||||
#include <vdpau/vdpau_x11.h>
|
||||
|
||||
#include "libavutil/avconfig.h"
|
||||
#include "libavutil/attributes.h"
|
||||
|
||||
|
|
|
@ -28,8 +28,8 @@
|
|||
#include "libavutil/version.h"
|
||||
|
||||
#define LIBAVCODEC_VERSION_MAJOR 57
|
||||
#define LIBAVCODEC_VERSION_MINOR 86
|
||||
#define LIBAVCODEC_VERSION_MICRO 103
|
||||
#define LIBAVCODEC_VERSION_MINOR 93
|
||||
#define LIBAVCODEC_VERSION_MICRO 100
|
||||
|
||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||
LIBAVCODEC_VERSION_MINOR, \
|
||||
|
|
|
@ -32,9 +32,6 @@ typedef struct AVVorbisParseContext AVVorbisParseContext;
|
|||
|
||||
/**
|
||||
* Allocate and initialize the Vorbis parser using headers in the extradata.
|
||||
*
|
||||
* @param avctx codec context
|
||||
* @param s Vorbis parser context
|
||||
*/
|
||||
AVVorbisParseContext *av_vorbis_parse_init(const uint8_t *extradata,
|
||||
int extradata_size);
|
||||
|
|
|
@ -327,6 +327,8 @@ typedef struct AVIOContext {
|
|||
* This is current internal only, do not use from outside.
|
||||
*/
|
||||
int (*short_seek_get)(void *opaque);
|
||||
|
||||
int64_t written;
|
||||
} 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 68
|
||||
#define LIBAVFORMAT_VERSION_MICRO 100
|
||||
#define LIBAVFORMAT_VERSION_MINOR 72
|
||||
#define LIBAVFORMAT_VERSION_MICRO 101
|
||||
|
||||
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
|
||||
LIBAVFORMAT_VERSION_MINOR, \
|
||||
|
|
|
@ -266,6 +266,11 @@ int av_strcasecmp(const char *a, const char *b);
|
|||
*/
|
||||
int av_strncasecmp(const char *a, const char *b, size_t n);
|
||||
|
||||
/**
|
||||
* Locale-independent strings replace.
|
||||
* @note This means only ASCII-range characters are replace
|
||||
*/
|
||||
char *av_strireplace(const char *str, const char *from, const char *to);
|
||||
|
||||
/**
|
||||
* Thread safe basename.
|
||||
|
|
|
@ -18,6 +18,11 @@
|
|||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Display matrix
|
||||
*/
|
||||
|
||||
#ifndef AVUTIL_DISPLAY_H
|
||||
#define AVUTIL_DISPLAY_H
|
||||
|
||||
|
@ -25,15 +30,26 @@
|
|||
#include "common.h"
|
||||
|
||||
/**
|
||||
* @addtogroup lavu_video
|
||||
* @{
|
||||
*
|
||||
* @defgroup lavu_video_display Display transformation matrix functions
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @addtogroup lavu_video_display
|
||||
* The display transformation matrix specifies an affine transformation that
|
||||
* should be applied to video frames for correct presentation. It is compatible
|
||||
* with the matrices stored in the ISO/IEC 14496-12 container format.
|
||||
*
|
||||
* The data is a 3x3 matrix represented as a 9-element array:
|
||||
*
|
||||
* @code{.unparsed}
|
||||
* | a b u |
|
||||
* (a, b, u, c, d, v, x, y, w) -> | c d v |
|
||||
* | x y w |
|
||||
* @endcode
|
||||
*
|
||||
* All numbers are stored in native endianness, as 16.16 fixed-point values,
|
||||
* except for u, v and w, which are stored as 2.30 fixed-point values.
|
||||
|
@ -41,15 +57,21 @@
|
|||
* The transformation maps a point (p, q) in the source (pre-transformation)
|
||||
* frame to the point (p', q') in the destination (post-transformation) frame as
|
||||
* follows:
|
||||
*
|
||||
* @code{.unparsed}
|
||||
* | a b u |
|
||||
* (p, q, 1) . | c d v | = z * (p', q', 1)
|
||||
* | x y w |
|
||||
* @endcode
|
||||
*
|
||||
* The transformation can also be more explicitly written in components as
|
||||
* follows:
|
||||
*
|
||||
* @code{.unparsed}
|
||||
* p' = (a * p + c * q + x) / z;
|
||||
* q' = (b * p + d * q + y) / z;
|
||||
* z = u * p + v * q + w
|
||||
* @endcode
|
||||
*/
|
||||
|
||||
/**
|
||||
|
@ -84,4 +106,9 @@ void av_display_rotation_set(int32_t matrix[9], double angle);
|
|||
*/
|
||||
void av_display_matrix_flip(int32_t matrix[9], int hflip, int vflip);
|
||||
|
||||
/**
|
||||
* @}
|
||||
* @}
|
||||
*/
|
||||
|
||||
#endif /* AVUTIL_DISPLAY_H */
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Automatically generated by version.sh, do not manually edit! */
|
||||
#ifndef AVUTIL_FFVERSION_H
|
||||
#define AVUTIL_FFVERSION_H
|
||||
#define FFMPEG_VERSION "N-84814-gad7aff0355"
|
||||
#define FFMPEG_VERSION "N-85620-gfdeab95a82"
|
||||
#endif /* AVUTIL_FFVERSION_H */
|
||||
|
|
|
@ -127,6 +127,12 @@ enum AVFrameSideDataType {
|
|||
* libavutil/spherical.h.
|
||||
*/
|
||||
AV_FRAME_DATA_SPHERICAL,
|
||||
|
||||
/**
|
||||
* Content light level (based on CTA-861.3). This payload contains data in
|
||||
* the form of the AVContentLightMetadata struct.
|
||||
*/
|
||||
AV_FRAME_DATA_CONTENT_LIGHT_LEVEL,
|
||||
};
|
||||
|
||||
enum AVActiveFormatDescription {
|
||||
|
|
|
@ -417,7 +417,7 @@ void *av_hwdevice_hwconfig_alloc(AVBufferRef *device_ctx);
|
|||
* configuration is provided, returns the maximum possible capabilities
|
||||
* of the device.
|
||||
*
|
||||
* @param device_ctx a reference to the associated AVHWDeviceContext.
|
||||
* @param ref a reference to the associated AVHWDeviceContext.
|
||||
* @param hwconfig a filled HW-specific configuration structure, or NULL
|
||||
* to return the maximum possible capabilities of the device.
|
||||
* @return AVHWFramesConstraints structure describing the constraints
|
||||
|
@ -433,4 +433,91 @@ AVHWFramesConstraints *av_hwdevice_get_hwframe_constraints(AVBufferRef *ref,
|
|||
*/
|
||||
void av_hwframe_constraints_free(AVHWFramesConstraints **constraints);
|
||||
|
||||
|
||||
/**
|
||||
* Flags to apply to frame mappings.
|
||||
*/
|
||||
enum {
|
||||
/**
|
||||
* The mapping must be readable.
|
||||
*/
|
||||
AV_HWFRAME_MAP_READ = 1 << 0,
|
||||
/**
|
||||
* The mapping must be writeable.
|
||||
*/
|
||||
AV_HWFRAME_MAP_WRITE = 1 << 1,
|
||||
/**
|
||||
* The mapped frame will be overwritten completely in subsequent
|
||||
* operations, so the current frame data need not be loaded. Any values
|
||||
* which are not overwritten are unspecified.
|
||||
*/
|
||||
AV_HWFRAME_MAP_OVERWRITE = 1 << 2,
|
||||
/**
|
||||
* The mapping must be direct. That is, there must not be any copying in
|
||||
* the map or unmap steps. Note that performance of direct mappings may
|
||||
* be much lower than normal memory.
|
||||
*/
|
||||
AV_HWFRAME_MAP_DIRECT = 1 << 3,
|
||||
};
|
||||
|
||||
/**
|
||||
* Map a hardware frame.
|
||||
*
|
||||
* This has a number of different possible effects, depending on the format
|
||||
* and origin of the src and dst frames. On input, src should be a usable
|
||||
* frame with valid buffers and dst should be blank (typically as just created
|
||||
* by av_frame_alloc()). src should have an associated hwframe context, and
|
||||
* dst may optionally have a format and associated hwframe context.
|
||||
*
|
||||
* If src was created by mapping a frame from the hwframe context of dst,
|
||||
* then this function undoes the mapping - dst is replaced by a reference to
|
||||
* the frame that src was originally mapped from.
|
||||
*
|
||||
* If both src and dst have an associated hwframe context, then this function
|
||||
* attempts to map the src frame from its hardware context to that of dst and
|
||||
* then fill dst with appropriate data to be usable there. This will only be
|
||||
* possible if the hwframe contexts and associated devices are compatible -
|
||||
* given compatible devices, av_hwframe_ctx_create_derived() can be used to
|
||||
* create a hwframe context for dst in which mapping should be possible.
|
||||
*
|
||||
* If src has a hwframe context but dst does not, then the src frame is
|
||||
* mapped to normal memory and should thereafter be usable as a normal frame.
|
||||
* If the format is set on dst, then the mapping will attempt to create dst
|
||||
* with that format and fail if it is not possible. If format is unset (is
|
||||
* AV_PIX_FMT_NONE) then dst will be mapped with whatever the most appropriate
|
||||
* format to use is (probably the sw_format of the src hwframe context).
|
||||
*
|
||||
* A return value of AVERROR(ENOSYS) indicates that the mapping is not
|
||||
* possible with the given arguments and hwframe setup, while other return
|
||||
* values indicate that it failed somehow.
|
||||
*
|
||||
* @param dst Destination frame, to contain the mapping.
|
||||
* @param src Source frame, to be mapped.
|
||||
* @param flags Some combination of AV_HWFRAME_MAP_* flags.
|
||||
* @return Zero on success, negative AVERROR code on failure.
|
||||
*/
|
||||
int av_hwframe_map(AVFrame *dst, const AVFrame *src, int flags);
|
||||
|
||||
|
||||
/**
|
||||
* Create and initialise an AVHWFramesContext as a mapping of another existing
|
||||
* AVHWFramesContext on a different device.
|
||||
*
|
||||
* av_hwframe_ctx_init() should not be called after this.
|
||||
*
|
||||
* @param derived_frame_ctx On success, a reference to the newly created
|
||||
* AVHWFramesContext.
|
||||
* @param derived_device_ctx A reference to the device to create the new
|
||||
* 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.
|
||||
* @return Zero on success, negative AVERROR code on failure.
|
||||
*/
|
||||
int av_hwframe_ctx_create_derived(AVBufferRef **derived_frame_ctx,
|
||||
enum AVPixelFormat format,
|
||||
AVBufferRef *derived_device_ctx,
|
||||
AVBufferRef *source_frame_ctx,
|
||||
int flags);
|
||||
|
||||
#endif /* AVUTIL_HWCONTEXT_H */
|
||||
|
|
|
@ -155,7 +155,7 @@ void av_image_copy_uc_from(uint8_t *dst_data[4], const ptrdiff_t dst_lines
|
|||
* one call, use av_image_alloc().
|
||||
*
|
||||
* @param dst_data data pointers to be filled in
|
||||
* @param dst_linesizes linesizes for the image in dst_data to be filled in
|
||||
* @param dst_linesize linesizes for the image in dst_data to be filled in
|
||||
* @param src buffer which will contain or contains the actual image data, can be NULL
|
||||
* @param pix_fmt the pixel format of the image
|
||||
* @param width the width of the image in pixels
|
||||
|
@ -185,7 +185,7 @@ int av_image_get_buffer_size(enum AVPixelFormat pix_fmt, int width, int height,
|
|||
* @param dst a buffer into which picture data will be copied
|
||||
* @param dst_size the size in bytes of dst
|
||||
* @param src_data pointers containing the source image data
|
||||
* @param src_linesizes linesizes for the image in src_data
|
||||
* @param src_linesize linesizes for the image in src_data
|
||||
* @param pix_fmt the pixel format of the source image
|
||||
* @param width the width of the source image in pixels
|
||||
* @param height the height of the source image in pixels
|
||||
|
|
|
@ -86,4 +86,43 @@ AVMasteringDisplayMetadata *av_mastering_display_metadata_alloc(void);
|
|||
*/
|
||||
AVMasteringDisplayMetadata *av_mastering_display_metadata_create_side_data(AVFrame *frame);
|
||||
|
||||
/**
|
||||
* Content light level needed by to transmit HDR over HDMI (CTA-861.3).
|
||||
*
|
||||
* To be used as payload of a AVFrameSideData or AVPacketSideData with the
|
||||
* appropriate type.
|
||||
*
|
||||
* @note The struct should be allocated with av_content_light_metadata_alloc()
|
||||
* and its size is not a part of the public ABI.
|
||||
*/
|
||||
typedef struct AVContentLightMetadata {
|
||||
/**
|
||||
* Max content light level (cd/m^2).
|
||||
*/
|
||||
unsigned MaxCLL;
|
||||
|
||||
/**
|
||||
* Max average light level per frame (cd/m^2).
|
||||
*/
|
||||
unsigned MaxFALL;
|
||||
} AVContentLightMetadata;
|
||||
|
||||
/**
|
||||
* Allocate an AVContentLightMetadata structure and set its fields to
|
||||
* default values. The resulting struct can be freed using av_freep().
|
||||
*
|
||||
* @return An AVContentLightMetadata filled with default values or NULL
|
||||
* on failure.
|
||||
*/
|
||||
AVContentLightMetadata *av_content_light_metadata_alloc(size_t *size);
|
||||
|
||||
/**
|
||||
* Allocate a complete AVContentLightMetadata and add it to the frame.
|
||||
*
|
||||
* @param frame The frame which side data is added to.
|
||||
*
|
||||
* @return The AVContentLightMetadata structure to be filled by caller.
|
||||
*/
|
||||
AVContentLightMetadata *av_content_light_metadata_create_side_data(AVFrame *frame);
|
||||
|
||||
#endif /* AVUTIL_MASTERING_DISPLAY_METADATA_H */
|
||||
|
|
|
@ -396,6 +396,7 @@ enum AVPixelFormat {
|
|||
|
||||
/**
|
||||
* Chromaticity coordinates of the source primaries.
|
||||
* These values match the ones defined by ISO/IEC 23001-8_2013 § 7.1.
|
||||
*/
|
||||
enum AVColorPrimaries {
|
||||
AVCOL_PRI_RESERVED0 = 0,
|
||||
|
@ -419,6 +420,7 @@ enum AVColorPrimaries {
|
|||
|
||||
/**
|
||||
* Color Transfer Characteristic.
|
||||
* These values match the ones defined by ISO/IEC 23001-8_2013 § 7.2.
|
||||
*/
|
||||
enum AVColorTransferCharacteristic {
|
||||
AVCOL_TRC_RESERVED0 = 0,
|
||||
|
@ -447,6 +449,7 @@ enum AVColorTransferCharacteristic {
|
|||
|
||||
/**
|
||||
* YUV colorspace type.
|
||||
* These values match the ones defined by ISO/IEC 23001-8_2013 § 7.3.
|
||||
*/
|
||||
enum AVColorSpace {
|
||||
AVCOL_SPC_RGB = 0, ///< order of coefficients is actually GBR, also IEC 61966-2-1 (sRGB)
|
||||
|
@ -457,7 +460,8 @@ enum AVColorSpace {
|
|||
AVCOL_SPC_BT470BG = 5, ///< also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM / IEC 61966-2-4 xvYCC601
|
||||
AVCOL_SPC_SMPTE170M = 6, ///< also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC
|
||||
AVCOL_SPC_SMPTE240M = 7, ///< functionally identical to above
|
||||
AVCOL_SPC_YCOCG = 8, ///< Used by Dirac / VC-2 and H.264 FRext, see ITU-T SG16
|
||||
AVCOL_SPC_YCGCO = 8, ///< Used by Dirac / VC-2 and H.264 FRext, see ITU-T SG16
|
||||
AVCOL_SPC_YCOCG = AVCOL_SPC_YCGCO,
|
||||
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
|
||||
|
|
|
@ -206,6 +206,24 @@ void av_spherical_tile_bounds(const AVSphericalMapping *map,
|
|||
size_t width, size_t height,
|
||||
size_t *left, size_t *top,
|
||||
size_t *right, size_t *bottom);
|
||||
|
||||
/**
|
||||
* Provide a human-readable name of a given AVSphericalProjection.
|
||||
*
|
||||
* @param projection The input AVSphericalProjection.
|
||||
*
|
||||
* @return The name of the AVSphericalProjection, or "unknown".
|
||||
*/
|
||||
const char *av_spherical_projection_name(enum AVSphericalProjection projection);
|
||||
|
||||
/**
|
||||
* Get the AVSphericalProjection form a human-readable name.
|
||||
*
|
||||
* @param name The input string.
|
||||
*
|
||||
* @return The AVSphericalProjection value, or -1 if not found.
|
||||
*/
|
||||
int av_spherical_from_name(const char *name);
|
||||
/**
|
||||
* @}
|
||||
* @}
|
||||
|
|
|
@ -18,6 +18,11 @@
|
|||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Stereoscopic video
|
||||
*/
|
||||
|
||||
#ifndef AVUTIL_STEREO3D_H
|
||||
#define AVUTIL_STEREO3D_H
|
||||
|
||||
|
@ -25,6 +30,21 @@
|
|||
|
||||
#include "frame.h"
|
||||
|
||||
/**
|
||||
* @addtogroup lavu_video
|
||||
* @{
|
||||
*
|
||||
* @defgroup lavu_video_stereo3d Stereo3D types and functions
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @addtogroup lavu_video_stereo3d
|
||||
* A stereoscopic video file consists in multiple views embedded in a single
|
||||
* frame, usually describing two views of a scene. This file describes all
|
||||
* possible codec-independent view arrangements.
|
||||
* */
|
||||
|
||||
/**
|
||||
* List of possible 3D Types
|
||||
*/
|
||||
|
@ -37,41 +57,49 @@ enum AVStereo3DType {
|
|||
/**
|
||||
* Views are next to each other.
|
||||
*
|
||||
* @code{.unparsed}
|
||||
* LLLLRRRR
|
||||
* LLLLRRRR
|
||||
* LLLLRRRR
|
||||
* ...
|
||||
* @endcode
|
||||
*/
|
||||
AV_STEREO3D_SIDEBYSIDE,
|
||||
|
||||
/**
|
||||
* Views are on top of each other.
|
||||
*
|
||||
* @code{.unparsed}
|
||||
* LLLLLLLL
|
||||
* LLLLLLLL
|
||||
* RRRRRRRR
|
||||
* RRRRRRRR
|
||||
* @endcode
|
||||
*/
|
||||
AV_STEREO3D_TOPBOTTOM,
|
||||
|
||||
/**
|
||||
* Views are alternated temporally.
|
||||
*
|
||||
* @code{.unparsed}
|
||||
* frame0 frame1 frame2 ...
|
||||
* LLLLLLLL RRRRRRRR LLLLLLLL
|
||||
* LLLLLLLL RRRRRRRR LLLLLLLL
|
||||
* LLLLLLLL RRRRRRRR LLLLLLLL
|
||||
* ... ... ...
|
||||
* @endcode
|
||||
*/
|
||||
AV_STEREO3D_FRAMESEQUENCE,
|
||||
|
||||
/**
|
||||
* Views are packed in a checkerboard-like structure per pixel.
|
||||
*
|
||||
* @code{.unparsed}
|
||||
* LRLRLRLR
|
||||
* RLRLRLRL
|
||||
* LRLRLRLR
|
||||
* ...
|
||||
* @endcode
|
||||
*/
|
||||
AV_STEREO3D_CHECKERBOARD,
|
||||
|
||||
|
@ -79,30 +107,36 @@ enum AVStereo3DType {
|
|||
* Views are next to each other, but when upscaling
|
||||
* apply a checkerboard pattern.
|
||||
*
|
||||
* @code{.unparsed}
|
||||
* LLLLRRRR L L L L R R R R
|
||||
* LLLLRRRR => L L L L R R R R
|
||||
* LLLLRRRR L L L L R R R R
|
||||
* LLLLRRRR L L L L R R R R
|
||||
* @endcode
|
||||
*/
|
||||
AV_STEREO3D_SIDEBYSIDE_QUINCUNX,
|
||||
|
||||
/**
|
||||
* Views are packed per line, as if interlaced.
|
||||
*
|
||||
* @code{.unparsed}
|
||||
* LLLLLLLL
|
||||
* RRRRRRRR
|
||||
* LLLLLLLL
|
||||
* ...
|
||||
* @endcode
|
||||
*/
|
||||
AV_STEREO3D_LINES,
|
||||
|
||||
/**
|
||||
* Views are packed per column.
|
||||
*
|
||||
* @code{.unparsed}
|
||||
* LRLRLRLR
|
||||
* LRLRLRLR
|
||||
* LRLRLRLR
|
||||
* ...
|
||||
* @endcode
|
||||
*/
|
||||
AV_STEREO3D_COLUMNS,
|
||||
};
|
||||
|
@ -161,10 +195,15 @@ const char *av_stereo3d_type_name(unsigned int type);
|
|||
/**
|
||||
* Get the AVStereo3DType form a human-readable name.
|
||||
*
|
||||
* @param type The input string.
|
||||
* @param name The input string.
|
||||
*
|
||||
* @return The AVStereo3DType value, or -1 if not found.
|
||||
*/
|
||||
int av_stereo3d_from_name(const char *name);
|
||||
|
||||
/**
|
||||
* @}
|
||||
* @}
|
||||
*/
|
||||
|
||||
#endif /* AVUTIL_STEREO3D_H */
|
||||
|
|
|
@ -79,7 +79,7 @@
|
|||
*/
|
||||
|
||||
#define LIBAVUTIL_VERSION_MAJOR 55
|
||||
#define LIBAVUTIL_VERSION_MINOR 52
|
||||
#define LIBAVUTIL_VERSION_MINOR 61
|
||||
#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=${prefix}/include
|
|||
|
||||
Name: libavcodec
|
||||
Description: FFmpeg codec library
|
||||
Version: 57.86.103
|
||||
Requires: libavutil >= 55.52.100
|
||||
Version: 57.93.100
|
||||
Requires: libavutil >= 55.61.100
|
||||
Requires.private:
|
||||
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 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.private:
|
||||
Cflags: -I${includedir}
|
||||
|
|
|
@ -5,10 +5,10 @@ includedir=${prefix}/include
|
|||
|
||||
Name: libavformat
|
||||
Description: FFmpeg container format library
|
||||
Version: 57.68.100
|
||||
Requires: libavcodec >= 57.86.103, libavutil >= 55.52.100
|
||||
Version: 57.72.101
|
||||
Requires: libavcodec >= 57.93.100, libavutil >= 55.61.100
|
||||
Requires.private:
|
||||
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 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.private:
|
||||
Cflags: -I${includedir}
|
||||
|
|
|
@ -5,7 +5,7 @@ includedir=${prefix}/include
|
|||
|
||||
Name: libavutil
|
||||
Description: FFmpeg utility library
|
||||
Version: 55.52.100
|
||||
Version: 55.61.100
|
||||
Requires:
|
||||
Requires.private:
|
||||
Conflicts:
|
||||
|
|
Loading…
Reference in New Issue