@pproenca/ffmpeg-darwin-arm64-gpl 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/include/aom/aom.h +127 -0
- package/include/aom/aom_codec.h +594 -0
- package/include/aom/aom_decoder.h +257 -0
- package/include/aom/aom_encoder.h +1154 -0
- package/include/aom/aom_external_partition.h +452 -0
- package/include/aom/aom_frame_buffer.h +84 -0
- package/include/aom/aom_image.h +462 -0
- package/include/aom/aom_integer.h +60 -0
- package/include/aom/aomcx.h +2288 -0
- package/include/aom/aomdx.h +607 -0
- package/include/dav1d/common.h +94 -0
- package/include/dav1d/data.h +117 -0
- package/include/dav1d/dav1d.h +329 -0
- package/include/dav1d/headers.h +444 -0
- package/include/dav1d/picture.h +157 -0
- package/include/dav1d/version.h +50 -0
- package/include/index.js +1 -0
- package/include/lame/lame.h +1342 -0
- package/include/libavcodec/ac3_parser.h +36 -0
- package/include/libavcodec/adts_parser.h +37 -0
- package/include/libavcodec/avcodec.h +3128 -0
- package/include/libavcodec/avdct.h +88 -0
- package/include/libavcodec/avfft.h +149 -0
- package/include/libavcodec/bsf.h +332 -0
- package/include/libavcodec/codec.h +382 -0
- package/include/libavcodec/codec_desc.h +134 -0
- package/include/libavcodec/codec_id.h +669 -0
- package/include/libavcodec/codec_par.h +248 -0
- package/include/libavcodec/d3d11va.h +109 -0
- package/include/libavcodec/defs.h +337 -0
- package/include/libavcodec/dirac.h +135 -0
- package/include/libavcodec/dv_profile.h +82 -0
- package/include/libavcodec/dxva2.h +90 -0
- package/include/libavcodec/jni.h +67 -0
- package/include/libavcodec/mediacodec.h +103 -0
- package/include/libavcodec/packet.h +887 -0
- package/include/libavcodec/qsv.h +109 -0
- package/include/libavcodec/vdpau.h +171 -0
- package/include/libavcodec/version.h +45 -0
- package/include/libavcodec/version_major.h +52 -0
- package/include/libavcodec/videotoolbox.h +85 -0
- package/include/libavcodec/vorbis_parser.h +74 -0
- package/include/libavdevice/avdevice.h +397 -0
- package/include/libavdevice/version.h +45 -0
- package/include/libavdevice/version_major.h +43 -0
- package/include/libavfilter/avfilter.h +1379 -0
- package/include/libavfilter/buffersink.h +173 -0
- package/include/libavfilter/buffersrc.h +215 -0
- package/include/libavfilter/version.h +48 -0
- package/include/libavfilter/version_major.h +40 -0
- package/include/libavformat/avformat.h +3107 -0
- package/include/libavformat/avio.h +831 -0
- package/include/libavformat/version.h +47 -0
- package/include/libavformat/version_major.h +54 -0
- package/include/libavutil/adler32.h +63 -0
- package/include/libavutil/aes.h +69 -0
- package/include/libavutil/aes_ctr.h +99 -0
- package/include/libavutil/ambient_viewing_environment.h +72 -0
- package/include/libavutil/attributes.h +173 -0
- package/include/libavutil/audio_fifo.h +187 -0
- package/include/libavutil/avassert.h +78 -0
- package/include/libavutil/avconfig.h +6 -0
- package/include/libavutil/avstring.h +428 -0
- package/include/libavutil/avutil.h +362 -0
- package/include/libavutil/base64.h +72 -0
- package/include/libavutil/blowfish.h +82 -0
- package/include/libavutil/bprint.h +254 -0
- package/include/libavutil/bswap.h +105 -0
- package/include/libavutil/buffer.h +322 -0
- package/include/libavutil/camellia.h +70 -0
- package/include/libavutil/cast5.h +80 -0
- package/include/libavutil/channel_layout.h +751 -0
- package/include/libavutil/common.h +589 -0
- package/include/libavutil/cpu.h +145 -0
- package/include/libavutil/crc.h +102 -0
- package/include/libavutil/csp.h +150 -0
- package/include/libavutil/des.h +81 -0
- package/include/libavutil/detection_bbox.h +108 -0
- package/include/libavutil/dict.h +241 -0
- package/include/libavutil/display.h +109 -0
- package/include/libavutil/dovi_meta.h +396 -0
- package/include/libavutil/downmix_info.h +115 -0
- package/include/libavutil/encryption_info.h +205 -0
- package/include/libavutil/error.h +129 -0
- package/include/libavutil/eval.h +140 -0
- package/include/libavutil/executor.h +67 -0
- package/include/libavutil/ffversion.h +5 -0
- package/include/libavutil/fifo.h +242 -0
- package/include/libavutil/file.h +62 -0
- package/include/libavutil/film_grain_params.h +322 -0
- package/include/libavutil/frame.h +1175 -0
- package/include/libavutil/hash.h +264 -0
- package/include/libavutil/hdr_dynamic_metadata.h +376 -0
- package/include/libavutil/hdr_dynamic_vivid_metadata.h +346 -0
- package/include/libavutil/hmac.h +99 -0
- package/include/libavutil/hwcontext.h +598 -0
- package/include/libavutil/hwcontext_cuda.h +74 -0
- package/include/libavutil/hwcontext_d3d11va.h +178 -0
- package/include/libavutil/hwcontext_d3d12va.h +142 -0
- package/include/libavutil/hwcontext_drm.h +169 -0
- package/include/libavutil/hwcontext_dxva2.h +75 -0
- package/include/libavutil/hwcontext_mediacodec.h +61 -0
- package/include/libavutil/hwcontext_opencl.h +100 -0
- package/include/libavutil/hwcontext_qsv.h +87 -0
- package/include/libavutil/hwcontext_vaapi.h +117 -0
- package/include/libavutil/hwcontext_vdpau.h +44 -0
- package/include/libavutil/hwcontext_videotoolbox.h +106 -0
- package/include/libavutil/hwcontext_vulkan.h +382 -0
- package/include/libavutil/iamf.h +690 -0
- package/include/libavutil/imgutils.h +377 -0
- package/include/libavutil/intfloat.h +77 -0
- package/include/libavutil/intreadwrite.h +677 -0
- package/include/libavutil/lfg.h +81 -0
- package/include/libavutil/log.h +387 -0
- package/include/libavutil/lzo.h +66 -0
- package/include/libavutil/macros.h +80 -0
- package/include/libavutil/mastering_display_metadata.h +137 -0
- package/include/libavutil/mathematics.h +300 -0
- package/include/libavutil/md5.h +89 -0
- package/include/libavutil/mem.h +607 -0
- package/include/libavutil/motion_vector.h +57 -0
- package/include/libavutil/murmur3.h +115 -0
- package/include/libavutil/opt.h +1187 -0
- package/include/libavutil/parseutils.h +197 -0
- package/include/libavutil/pixdesc.h +440 -0
- package/include/libavutil/pixelutils.h +51 -0
- package/include/libavutil/pixfmt.h +716 -0
- package/include/libavutil/random_seed.h +57 -0
- package/include/libavutil/rational.h +225 -0
- package/include/libavutil/rc4.h +69 -0
- package/include/libavutil/replaygain.h +50 -0
- package/include/libavutil/ripemd.h +83 -0
- package/include/libavutil/samplefmt.h +269 -0
- package/include/libavutil/sha.h +90 -0
- package/include/libavutil/sha512.h +92 -0
- package/include/libavutil/spherical.h +243 -0
- package/include/libavutil/stereo3d.h +325 -0
- package/include/libavutil/tea.h +71 -0
- package/include/libavutil/threadmessage.h +115 -0
- package/include/libavutil/time.h +56 -0
- package/include/libavutil/timecode.h +199 -0
- package/include/libavutil/timestamp.h +85 -0
- package/include/libavutil/tree.h +137 -0
- package/include/libavutil/twofish.h +70 -0
- package/include/libavutil/tx.h +210 -0
- package/include/libavutil/uuid.h +146 -0
- package/include/libavutil/version.h +124 -0
- package/include/libavutil/video_enc_params.h +171 -0
- package/include/libavutil/video_hint.h +107 -0
- package/include/libavutil/xtea.h +94 -0
- package/include/libpostproc/postprocess.h +107 -0
- package/include/libpostproc/version.h +46 -0
- package/include/libpostproc/version_major.h +31 -0
- package/include/libswresample/swresample.h +587 -0
- package/include/libswresample/version.h +46 -0
- package/include/libswresample/version_major.h +31 -0
- package/include/libswscale/swscale.h +460 -0
- package/include/libswscale/version.h +44 -0
- package/include/libswscale/version_major.h +35 -0
- package/include/ogg/config_types.h +26 -0
- package/include/ogg/ogg.h +209 -0
- package/include/ogg/os_types.h +158 -0
- package/include/opus/opus.h +1099 -0
- package/include/opus/opus_defines.h +830 -0
- package/include/opus/opus_multistream.h +660 -0
- package/include/opus/opus_projection.h +568 -0
- package/include/opus/opus_types.h +166 -0
- package/include/svt-av1/EbDebugMacros.h +88 -0
- package/include/svt-av1/EbSvtAv1.h +462 -0
- package/include/svt-av1/EbSvtAv1Enc.h +1112 -0
- package/include/svt-av1/EbSvtAv1ErrorCodes.h +67 -0
- package/include/svt-av1/EbSvtAv1ExtFrameBuf.h +64 -0
- package/include/svt-av1/EbSvtAv1Formats.h +126 -0
- package/include/svt-av1/EbSvtAv1Metadata.h +156 -0
- package/include/vorbis/codec.h +242 -0
- package/include/vorbis/vorbisenc.h +435 -0
- package/include/vorbis/vorbisfile.h +205 -0
- package/include/vpx/vp8.h +136 -0
- package/include/vpx/vp8cx.h +1118 -0
- package/include/vpx/vp8dx.h +228 -0
- package/include/vpx/vpx_codec.h +475 -0
- package/include/vpx/vpx_decoder.h +367 -0
- package/include/vpx/vpx_encoder.h +1150 -0
- package/include/vpx/vpx_ext_ratectrl.h +590 -0
- package/include/vpx/vpx_frame_buffer.h +83 -0
- package/include/vpx/vpx_image.h +221 -0
- package/include/vpx/vpx_integer.h +40 -0
- package/include/vpx/vpx_tpl.h +68 -0
- package/include/x264.h +1027 -0
- package/include/x264_config.h +6 -0
- package/include/x265.h +2737 -0
- package/include/x265_config.h +34 -0
- package/lib/index.js +1 -0
- package/lib/libSvtAv1Enc.a +0 -0
- package/lib/libaom.a +0 -0
- package/lib/libavcodec.a +0 -0
- package/lib/libavdevice.a +0 -0
- package/lib/libavfilter.a +0 -0
- package/lib/libavformat.a +0 -0
- package/lib/libavutil.a +0 -0
- package/lib/libdav1d.a +0 -0
- package/lib/libmp3lame.a +0 -0
- package/lib/libogg.a +0 -0
- package/lib/libopus.a +0 -0
- package/lib/libpostproc.a +0 -0
- package/lib/libswresample.a +0 -0
- package/lib/libswscale.a +0 -0
- package/lib/libvorbis.a +0 -0
- package/lib/libvorbisenc.a +0 -0
- package/lib/libvorbisfile.a +0 -0
- package/lib/libvpx.a +0 -0
- package/lib/libx264.a +0 -0
- package/lib/libx265.a +0 -0
- package/package.json +35 -0
- package/versions.json +1 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Intel MediaSDK QSV public API
|
|
3
|
+
*
|
|
4
|
+
* This file is part of FFmpeg.
|
|
5
|
+
*
|
|
6
|
+
* FFmpeg is free software; you can redistribute it and/or
|
|
7
|
+
* modify it under the terms of the GNU Lesser General Public
|
|
8
|
+
* License as published by the Free Software Foundation; either
|
|
9
|
+
* version 2.1 of the License, or (at your option) any later version.
|
|
10
|
+
*
|
|
11
|
+
* FFmpeg is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
14
|
+
* Lesser General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU Lesser General Public
|
|
17
|
+
* License along with FFmpeg; if not, write to the Free Software
|
|
18
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
#ifndef AVCODEC_QSV_H
|
|
22
|
+
#define AVCODEC_QSV_H
|
|
23
|
+
|
|
24
|
+
#include <mfxvideo.h>
|
|
25
|
+
|
|
26
|
+
#include "libavutil/buffer.h"
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* This struct is used for communicating QSV parameters between libavcodec and
|
|
30
|
+
* the caller. It is managed by the caller and must be assigned to
|
|
31
|
+
* AVCodecContext.hwaccel_context.
|
|
32
|
+
* - decoding: hwaccel_context must be set on return from the get_format()
|
|
33
|
+
* callback
|
|
34
|
+
* - encoding: hwaccel_context must be set before avcodec_open2()
|
|
35
|
+
*/
|
|
36
|
+
typedef struct AVQSVContext {
|
|
37
|
+
/**
|
|
38
|
+
* If non-NULL, the session to use for encoding or decoding.
|
|
39
|
+
* Otherwise, libavcodec will try to create an internal session.
|
|
40
|
+
*/
|
|
41
|
+
mfxSession session;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* The IO pattern to use.
|
|
45
|
+
*/
|
|
46
|
+
int iopattern;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Extra buffers to pass to encoder or decoder initialization.
|
|
50
|
+
*/
|
|
51
|
+
mfxExtBuffer **ext_buffers;
|
|
52
|
+
int nb_ext_buffers;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Encoding only. If this field is set to non-zero by the caller, libavcodec
|
|
56
|
+
* will create an mfxExtOpaqueSurfaceAlloc extended buffer and pass it to
|
|
57
|
+
* the encoder initialization. This only makes sense if iopattern is also
|
|
58
|
+
* set to MFX_IOPATTERN_IN_OPAQUE_MEMORY.
|
|
59
|
+
*
|
|
60
|
+
* The number of allocated opaque surfaces will be the sum of the number
|
|
61
|
+
* required by the encoder and the user-provided value nb_opaque_surfaces.
|
|
62
|
+
* The array of the opaque surfaces will be exported to the caller through
|
|
63
|
+
* the opaque_surfaces field.
|
|
64
|
+
*
|
|
65
|
+
* The caller must set this field to zero for oneVPL (MFX_VERSION >= 2.0)
|
|
66
|
+
*/
|
|
67
|
+
int opaque_alloc;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Encoding only, and only if opaque_alloc is set to non-zero. Before
|
|
71
|
+
* calling avcodec_open2(), the caller should set this field to the number
|
|
72
|
+
* of extra opaque surfaces to allocate beyond what is required by the
|
|
73
|
+
* encoder.
|
|
74
|
+
*
|
|
75
|
+
* On return from avcodec_open2(), this field will be set by libavcodec to
|
|
76
|
+
* the total number of allocated opaque surfaces.
|
|
77
|
+
*/
|
|
78
|
+
int nb_opaque_surfaces;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Encoding only, and only if opaque_alloc is set to non-zero. On return
|
|
82
|
+
* from avcodec_open2(), this field will be used by libavcodec to export the
|
|
83
|
+
* array of the allocated opaque surfaces to the caller, so they can be
|
|
84
|
+
* passed to other parts of the pipeline.
|
|
85
|
+
*
|
|
86
|
+
* The buffer reference exported here is owned and managed by libavcodec,
|
|
87
|
+
* the callers should make their own reference with av_buffer_ref() and free
|
|
88
|
+
* it with av_buffer_unref() when it is no longer needed.
|
|
89
|
+
*
|
|
90
|
+
* The buffer data is an nb_opaque_surfaces-sized array of mfxFrameSurface1.
|
|
91
|
+
*/
|
|
92
|
+
AVBufferRef *opaque_surfaces;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Encoding only, and only if opaque_alloc is set to non-zero. On return
|
|
96
|
+
* from avcodec_open2(), this field will be set to the surface type used in
|
|
97
|
+
* the opaque allocation request.
|
|
98
|
+
*/
|
|
99
|
+
int opaque_alloc_type;
|
|
100
|
+
} AVQSVContext;
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Allocate a new context.
|
|
104
|
+
*
|
|
105
|
+
* It must be freed by the caller with av_free().
|
|
106
|
+
*/
|
|
107
|
+
AVQSVContext *av_qsv_alloc_context(void);
|
|
108
|
+
|
|
109
|
+
#endif /* AVCODEC_QSV_H */
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* The Video Decode and Presentation API for UNIX (VDPAU) is used for
|
|
3
|
+
* hardware-accelerated decoding of MPEG-1/2, H.264 and VC-1.
|
|
4
|
+
*
|
|
5
|
+
* Copyright (C) 2008 NVIDIA
|
|
6
|
+
*
|
|
7
|
+
* This file is part of FFmpeg.
|
|
8
|
+
*
|
|
9
|
+
* FFmpeg is free software; you can redistribute it and/or
|
|
10
|
+
* modify it under the terms of the GNU Lesser General Public
|
|
11
|
+
* License as published by the Free Software Foundation; either
|
|
12
|
+
* version 2.1 of the License, or (at your option) any later version.
|
|
13
|
+
*
|
|
14
|
+
* FFmpeg is distributed in the hope that it will be useful,
|
|
15
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
17
|
+
* Lesser General Public License for more details.
|
|
18
|
+
*
|
|
19
|
+
* You should have received a copy of the GNU Lesser General Public
|
|
20
|
+
* License along with FFmpeg; if not, write to the Free Software
|
|
21
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
#ifndef AVCODEC_VDPAU_H
|
|
25
|
+
#define AVCODEC_VDPAU_H
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @file
|
|
29
|
+
* @ingroup lavc_codec_hwaccel_vdpau
|
|
30
|
+
* Public libavcodec VDPAU header.
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @defgroup lavc_codec_hwaccel_vdpau VDPAU Decoder and Renderer
|
|
36
|
+
* @ingroup lavc_codec_hwaccel
|
|
37
|
+
*
|
|
38
|
+
* VDPAU hardware acceleration has two modules
|
|
39
|
+
* - VDPAU decoding
|
|
40
|
+
* - VDPAU presentation
|
|
41
|
+
*
|
|
42
|
+
* The VDPAU decoding module parses all headers using FFmpeg
|
|
43
|
+
* parsing mechanisms and uses VDPAU for the actual decoding.
|
|
44
|
+
*
|
|
45
|
+
* As per the current implementation, the actual decoding
|
|
46
|
+
* and rendering (API calls) are done as part of the VDPAU
|
|
47
|
+
* presentation (vo_vdpau.c) module.
|
|
48
|
+
*
|
|
49
|
+
* @{
|
|
50
|
+
*/
|
|
51
|
+
|
|
52
|
+
#include <vdpau/vdpau.h>
|
|
53
|
+
|
|
54
|
+
#include "libavutil/avconfig.h"
|
|
55
|
+
#include "libavutil/attributes.h"
|
|
56
|
+
|
|
57
|
+
#include "avcodec.h"
|
|
58
|
+
|
|
59
|
+
struct AVCodecContext;
|
|
60
|
+
struct AVFrame;
|
|
61
|
+
|
|
62
|
+
typedef int (*AVVDPAU_Render2)(struct AVCodecContext *, struct AVFrame *,
|
|
63
|
+
const VdpPictureInfo *, uint32_t,
|
|
64
|
+
const VdpBitstreamBuffer *);
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* This structure is used to share data between the libavcodec library and
|
|
68
|
+
* the client video application.
|
|
69
|
+
* This structure will be allocated and stored in AVCodecContext.hwaccel_context
|
|
70
|
+
* by av_vdpau_bind_context(). Members can be set by the user once
|
|
71
|
+
* during initialization or through each AVCodecContext.get_buffer()
|
|
72
|
+
* function call. In any case, they must be valid prior to calling
|
|
73
|
+
* decoding functions.
|
|
74
|
+
*
|
|
75
|
+
* The size of this structure is not a part of the public ABI and must not
|
|
76
|
+
* be used outside of libavcodec.
|
|
77
|
+
*/
|
|
78
|
+
typedef struct AVVDPAUContext {
|
|
79
|
+
/**
|
|
80
|
+
* VDPAU decoder handle
|
|
81
|
+
*
|
|
82
|
+
* Set by user.
|
|
83
|
+
*/
|
|
84
|
+
VdpDecoder decoder;
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* VDPAU decoder render callback
|
|
88
|
+
*
|
|
89
|
+
* Set by the user.
|
|
90
|
+
*/
|
|
91
|
+
VdpDecoderRender *render;
|
|
92
|
+
|
|
93
|
+
AVVDPAU_Render2 render2;
|
|
94
|
+
} AVVDPAUContext;
|
|
95
|
+
|
|
96
|
+
#if FF_API_VDPAU_ALLOC_GET_SET
|
|
97
|
+
/**
|
|
98
|
+
* @brief allocation function for AVVDPAUContext
|
|
99
|
+
*
|
|
100
|
+
* Allows extending the struct without breaking API/ABI
|
|
101
|
+
* @deprecated use av_vdpau_bind_context() instead
|
|
102
|
+
*/
|
|
103
|
+
attribute_deprecated
|
|
104
|
+
AVVDPAUContext *av_alloc_vdpaucontext(void);
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* @deprecated render2 is public and can be accessed directly
|
|
108
|
+
*/
|
|
109
|
+
attribute_deprecated
|
|
110
|
+
AVVDPAU_Render2 av_vdpau_hwaccel_get_render2(const AVVDPAUContext *);
|
|
111
|
+
/**
|
|
112
|
+
* @deprecated render2 is public and can be accessed directly
|
|
113
|
+
*/
|
|
114
|
+
attribute_deprecated
|
|
115
|
+
void av_vdpau_hwaccel_set_render2(AVVDPAUContext *, AVVDPAU_Render2);
|
|
116
|
+
#endif
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Associate a VDPAU device with a codec context for hardware acceleration.
|
|
120
|
+
* This function is meant to be called from the get_format() codec callback,
|
|
121
|
+
* or earlier. It can also be called after avcodec_flush_buffers() to change
|
|
122
|
+
* the underlying VDPAU device mid-stream (e.g. to recover from non-transparent
|
|
123
|
+
* display preemption).
|
|
124
|
+
*
|
|
125
|
+
* @note get_format() must return AV_PIX_FMT_VDPAU if this function completes
|
|
126
|
+
* successfully.
|
|
127
|
+
*
|
|
128
|
+
* @param avctx decoding context whose get_format() callback is invoked
|
|
129
|
+
* @param device VDPAU device handle to use for hardware acceleration
|
|
130
|
+
* @param get_proc_address VDPAU device driver
|
|
131
|
+
* @param flags zero of more OR'd AV_HWACCEL_FLAG_* flags
|
|
132
|
+
*
|
|
133
|
+
* @return 0 on success, an AVERROR code on failure.
|
|
134
|
+
*/
|
|
135
|
+
int av_vdpau_bind_context(AVCodecContext *avctx, VdpDevice device,
|
|
136
|
+
VdpGetProcAddress *get_proc_address, unsigned flags);
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Gets the parameters to create an adequate VDPAU video surface for the codec
|
|
140
|
+
* context using VDPAU hardware decoding acceleration.
|
|
141
|
+
*
|
|
142
|
+
* @note Behavior is undefined if the context was not successfully bound to a
|
|
143
|
+
* VDPAU device using av_vdpau_bind_context().
|
|
144
|
+
*
|
|
145
|
+
* @param avctx the codec context being used for decoding the stream
|
|
146
|
+
* @param type storage space for the VDPAU video surface chroma type
|
|
147
|
+
* (or NULL to ignore)
|
|
148
|
+
* @param width storage space for the VDPAU video surface pixel width
|
|
149
|
+
* (or NULL to ignore)
|
|
150
|
+
* @param height storage space for the VDPAU video surface pixel height
|
|
151
|
+
* (or NULL to ignore)
|
|
152
|
+
*
|
|
153
|
+
* @return 0 on success, a negative AVERROR code on failure.
|
|
154
|
+
*/
|
|
155
|
+
int av_vdpau_get_surface_parameters(AVCodecContext *avctx, VdpChromaType *type,
|
|
156
|
+
uint32_t *width, uint32_t *height);
|
|
157
|
+
|
|
158
|
+
#if FF_API_VDPAU_ALLOC_GET_SET
|
|
159
|
+
/**
|
|
160
|
+
* Allocate an AVVDPAUContext.
|
|
161
|
+
*
|
|
162
|
+
* @return Newly-allocated AVVDPAUContext or NULL on failure.
|
|
163
|
+
* @deprecated use av_vdpau_bind_context() instead
|
|
164
|
+
*/
|
|
165
|
+
attribute_deprecated
|
|
166
|
+
AVVDPAUContext *av_vdpau_alloc_context(void);
|
|
167
|
+
#endif
|
|
168
|
+
|
|
169
|
+
/** @} */
|
|
170
|
+
|
|
171
|
+
#endif /* AVCODEC_VDPAU_H */
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of FFmpeg.
|
|
3
|
+
*
|
|
4
|
+
* FFmpeg is free software; you can redistribute it and/or
|
|
5
|
+
* modify it under the terms of the GNU Lesser General Public
|
|
6
|
+
* License as published by the Free Software Foundation; either
|
|
7
|
+
* version 2.1 of the License, or (at your option) any later version.
|
|
8
|
+
*
|
|
9
|
+
* FFmpeg is distributed in the hope that it will be useful,
|
|
10
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
12
|
+
* Lesser General Public License for more details.
|
|
13
|
+
*
|
|
14
|
+
* You should have received a copy of the GNU Lesser General Public
|
|
15
|
+
* License along with FFmpeg; if not, write to the Free Software
|
|
16
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
#ifndef AVCODEC_VERSION_H
|
|
20
|
+
#define AVCODEC_VERSION_H
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @file
|
|
24
|
+
* @ingroup libavc
|
|
25
|
+
* Libavcodec version macros.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
#include "libavutil/version.h"
|
|
29
|
+
|
|
30
|
+
#include "version_major.h"
|
|
31
|
+
|
|
32
|
+
#define LIBAVCODEC_VERSION_MINOR 19
|
|
33
|
+
#define LIBAVCODEC_VERSION_MICRO 100
|
|
34
|
+
|
|
35
|
+
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
|
36
|
+
LIBAVCODEC_VERSION_MINOR, \
|
|
37
|
+
LIBAVCODEC_VERSION_MICRO)
|
|
38
|
+
#define LIBAVCODEC_VERSION AV_VERSION(LIBAVCODEC_VERSION_MAJOR, \
|
|
39
|
+
LIBAVCODEC_VERSION_MINOR, \
|
|
40
|
+
LIBAVCODEC_VERSION_MICRO)
|
|
41
|
+
#define LIBAVCODEC_BUILD LIBAVCODEC_VERSION_INT
|
|
42
|
+
|
|
43
|
+
#define LIBAVCODEC_IDENT "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION)
|
|
44
|
+
|
|
45
|
+
#endif /* AVCODEC_VERSION_H */
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of FFmpeg.
|
|
3
|
+
*
|
|
4
|
+
* FFmpeg is free software; you can redistribute it and/or
|
|
5
|
+
* modify it under the terms of the GNU Lesser General Public
|
|
6
|
+
* License as published by the Free Software Foundation; either
|
|
7
|
+
* version 2.1 of the License, or (at your option) any later version.
|
|
8
|
+
*
|
|
9
|
+
* FFmpeg is distributed in the hope that it will be useful,
|
|
10
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
12
|
+
* Lesser General Public License for more details.
|
|
13
|
+
*
|
|
14
|
+
* You should have received a copy of the GNU Lesser General Public
|
|
15
|
+
* License along with FFmpeg; if not, write to the Free Software
|
|
16
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
#ifndef AVCODEC_VERSION_MAJOR_H
|
|
20
|
+
#define AVCODEC_VERSION_MAJOR_H
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @file
|
|
24
|
+
* @ingroup libavc
|
|
25
|
+
* Libavcodec version macros.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
#define LIBAVCODEC_VERSION_MAJOR 61
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* FF_API_* defines may be placed below to indicate public API that will be
|
|
32
|
+
* dropped at a future version bump. The defines themselves are not part of
|
|
33
|
+
* the public API and may change, break or disappear at any time.
|
|
34
|
+
*
|
|
35
|
+
* @note, when bumping the major version it is recommended to manually
|
|
36
|
+
* disable each FF_API_* in its own commit instead of disabling them all
|
|
37
|
+
* at once through the bump. This improves the git bisect-ability of the change.
|
|
38
|
+
*/
|
|
39
|
+
|
|
40
|
+
#define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 62)
|
|
41
|
+
#define FF_API_SUBFRAMES (LIBAVCODEC_VERSION_MAJOR < 62)
|
|
42
|
+
#define FF_API_TICKS_PER_FRAME (LIBAVCODEC_VERSION_MAJOR < 62)
|
|
43
|
+
#define FF_API_DROPCHANGED (LIBAVCODEC_VERSION_MAJOR < 62)
|
|
44
|
+
|
|
45
|
+
#define FF_API_AVFFT (LIBAVCODEC_VERSION_MAJOR < 62)
|
|
46
|
+
#define FF_API_FF_PROFILE_LEVEL (LIBAVCODEC_VERSION_MAJOR < 62)
|
|
47
|
+
#define FF_API_AVCODEC_CLOSE (LIBAVCODEC_VERSION_MAJOR < 62)
|
|
48
|
+
#define FF_API_BUFFER_MIN_SIZE (LIBAVCODEC_VERSION_MAJOR < 62)
|
|
49
|
+
#define FF_API_VDPAU_ALLOC_GET_SET (LIBAVCODEC_VERSION_MAJOR < 62)
|
|
50
|
+
#define FF_API_QUALITY_FACTOR (LIBAVCODEC_VERSION_MAJOR < 62)
|
|
51
|
+
|
|
52
|
+
#endif /* AVCODEC_VERSION_MAJOR_H */
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Videotoolbox hardware acceleration
|
|
3
|
+
*
|
|
4
|
+
* copyright (c) 2012 Sebastien Zwickert
|
|
5
|
+
*
|
|
6
|
+
* This file is part of FFmpeg.
|
|
7
|
+
*
|
|
8
|
+
* FFmpeg is free software; you can redistribute it and/or
|
|
9
|
+
* modify it under the terms of the GNU Lesser General Public
|
|
10
|
+
* License as published by the Free Software Foundation; either
|
|
11
|
+
* version 2.1 of the License, or (at your option) any later version.
|
|
12
|
+
*
|
|
13
|
+
* FFmpeg is distributed in the hope that it will be useful,
|
|
14
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
16
|
+
* Lesser General Public License for more details.
|
|
17
|
+
*
|
|
18
|
+
* You should have received a copy of the GNU Lesser General Public
|
|
19
|
+
* License along with FFmpeg; if not, write to the Free Software
|
|
20
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
#ifndef AVCODEC_VIDEOTOOLBOX_H
|
|
24
|
+
#define AVCODEC_VIDEOTOOLBOX_H
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @file
|
|
28
|
+
* @ingroup lavc_codec_hwaccel_videotoolbox
|
|
29
|
+
* Public libavcodec Videotoolbox header.
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @defgroup lavc_codec_hwaccel_videotoolbox VideoToolbox Decoder
|
|
34
|
+
* @ingroup lavc_codec_hwaccel
|
|
35
|
+
*
|
|
36
|
+
* Hardware accelerated decoding using VideoToolbox on Apple Platforms
|
|
37
|
+
*
|
|
38
|
+
* @{
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
#include <stdint.h>
|
|
42
|
+
|
|
43
|
+
#define Picture QuickdrawPicture
|
|
44
|
+
#include <VideoToolbox/VideoToolbox.h>
|
|
45
|
+
#undef Picture
|
|
46
|
+
|
|
47
|
+
#include "libavcodec/avcodec.h"
|
|
48
|
+
|
|
49
|
+
#include "libavutil/attributes.h"
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* This struct holds all the information that needs to be passed
|
|
53
|
+
* between the caller and libavcodec for initializing Videotoolbox decoding.
|
|
54
|
+
* Its size is not a part of the public ABI, it must be allocated with
|
|
55
|
+
* av_videotoolbox_alloc_context() and freed with av_free().
|
|
56
|
+
*/
|
|
57
|
+
typedef struct AVVideotoolboxContext {
|
|
58
|
+
/**
|
|
59
|
+
* Videotoolbox decompression session object.
|
|
60
|
+
*/
|
|
61
|
+
VTDecompressionSessionRef session;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* CVPixelBuffer Format Type that Videotoolbox will use for decoded frames.
|
|
65
|
+
* set by the caller. If this is set to 0, then no specific format is
|
|
66
|
+
* requested from the decoder, and its native format is output.
|
|
67
|
+
*/
|
|
68
|
+
OSType cv_pix_fmt_type;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* CoreMedia Format Description that Videotoolbox will use to create the decompression session.
|
|
72
|
+
*/
|
|
73
|
+
CMVideoFormatDescriptionRef cm_fmt_desc;
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* CoreMedia codec type that Videotoolbox will use to create the decompression session.
|
|
77
|
+
*/
|
|
78
|
+
int cm_codec_type;
|
|
79
|
+
} AVVideotoolboxContext;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* @}
|
|
83
|
+
*/
|
|
84
|
+
|
|
85
|
+
#endif /* AVCODEC_VIDEOTOOLBOX_H */
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of FFmpeg.
|
|
3
|
+
*
|
|
4
|
+
* FFmpeg is free software; you can redistribute it and/or
|
|
5
|
+
* modify it under the terms of the GNU Lesser General Public
|
|
6
|
+
* License as published by the Free Software Foundation; either
|
|
7
|
+
* version 2.1 of the License, or (at your option) any later version.
|
|
8
|
+
*
|
|
9
|
+
* FFmpeg is distributed in the hope that it will be useful,
|
|
10
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
12
|
+
* Lesser General Public License for more details.
|
|
13
|
+
*
|
|
14
|
+
* You should have received a copy of the GNU Lesser General Public
|
|
15
|
+
* License along with FFmpeg; if not, write to the Free Software
|
|
16
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @file
|
|
21
|
+
* A public API for Vorbis parsing
|
|
22
|
+
*
|
|
23
|
+
* Determines the duration for each packet.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
#ifndef AVCODEC_VORBIS_PARSER_H
|
|
27
|
+
#define AVCODEC_VORBIS_PARSER_H
|
|
28
|
+
|
|
29
|
+
#include <stdint.h>
|
|
30
|
+
|
|
31
|
+
typedef struct AVVorbisParseContext AVVorbisParseContext;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Allocate and initialize the Vorbis parser using headers in the extradata.
|
|
35
|
+
*/
|
|
36
|
+
AVVorbisParseContext *av_vorbis_parse_init(const uint8_t *extradata,
|
|
37
|
+
int extradata_size);
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Free the parser and everything associated with it.
|
|
41
|
+
*/
|
|
42
|
+
void av_vorbis_parse_free(AVVorbisParseContext **s);
|
|
43
|
+
|
|
44
|
+
#define VORBIS_FLAG_HEADER 0x00000001
|
|
45
|
+
#define VORBIS_FLAG_COMMENT 0x00000002
|
|
46
|
+
#define VORBIS_FLAG_SETUP 0x00000004
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Get the duration for a Vorbis packet.
|
|
50
|
+
*
|
|
51
|
+
* If @p flags is @c NULL,
|
|
52
|
+
* special frames are considered invalid.
|
|
53
|
+
*
|
|
54
|
+
* @param s Vorbis parser context
|
|
55
|
+
* @param buf buffer containing a Vorbis frame
|
|
56
|
+
* @param buf_size size of the buffer
|
|
57
|
+
* @param flags flags for special frames
|
|
58
|
+
*/
|
|
59
|
+
int av_vorbis_parse_frame_flags(AVVorbisParseContext *s, const uint8_t *buf,
|
|
60
|
+
int buf_size, int *flags);
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Get the duration for a Vorbis packet.
|
|
64
|
+
*
|
|
65
|
+
* @param s Vorbis parser context
|
|
66
|
+
* @param buf buffer containing a Vorbis frame
|
|
67
|
+
* @param buf_size size of the buffer
|
|
68
|
+
*/
|
|
69
|
+
int av_vorbis_parse_frame(AVVorbisParseContext *s, const uint8_t *buf,
|
|
70
|
+
int buf_size);
|
|
71
|
+
|
|
72
|
+
void av_vorbis_parse_reset(AVVorbisParseContext *s);
|
|
73
|
+
|
|
74
|
+
#endif /* AVCODEC_VORBIS_PARSER_H */
|