@pproenca/ffmpeg-dev 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/package.json +24 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016 Neil Birkbeck <neil.birkbeck@gmail.com>
|
|
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 AVUTIL_MASTERING_DISPLAY_METADATA_H
|
|
22
|
+
#define AVUTIL_MASTERING_DISPLAY_METADATA_H
|
|
23
|
+
|
|
24
|
+
#include "frame.h"
|
|
25
|
+
#include "rational.h"
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Mastering display metadata capable of representing the color volume of
|
|
30
|
+
* the display used to master the content (SMPTE 2086:2014).
|
|
31
|
+
*
|
|
32
|
+
* To be used as payload of a AVFrameSideData or AVPacketSideData with the
|
|
33
|
+
* appropriate type.
|
|
34
|
+
*
|
|
35
|
+
* @note The struct should be allocated with av_mastering_display_metadata_alloc()
|
|
36
|
+
* and its size is not a part of the public ABI.
|
|
37
|
+
*/
|
|
38
|
+
typedef struct AVMasteringDisplayMetadata {
|
|
39
|
+
/**
|
|
40
|
+
* CIE 1931 xy chromaticity coords of color primaries (r, g, b order).
|
|
41
|
+
*/
|
|
42
|
+
AVRational display_primaries[3][2];
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* CIE 1931 xy chromaticity coords of white point.
|
|
46
|
+
*/
|
|
47
|
+
AVRational white_point[2];
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Min luminance of mastering display (cd/m^2).
|
|
51
|
+
*/
|
|
52
|
+
AVRational min_luminance;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Max luminance of mastering display (cd/m^2).
|
|
56
|
+
*/
|
|
57
|
+
AVRational max_luminance;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Flag indicating whether the display primaries (and white point) are set.
|
|
61
|
+
*/
|
|
62
|
+
int has_primaries;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Flag indicating whether the luminance (min_ and max_) have been set.
|
|
66
|
+
*/
|
|
67
|
+
int has_luminance;
|
|
68
|
+
|
|
69
|
+
} AVMasteringDisplayMetadata;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Allocate an AVMasteringDisplayMetadata structure and set its fields to
|
|
73
|
+
* default values. The resulting struct can be freed using av_freep().
|
|
74
|
+
*
|
|
75
|
+
* @return An AVMasteringDisplayMetadata filled with default values or NULL
|
|
76
|
+
* on failure.
|
|
77
|
+
*/
|
|
78
|
+
AVMasteringDisplayMetadata *av_mastering_display_metadata_alloc(void);
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Allocate an AVMasteringDisplayMetadata structure and set its fields to
|
|
82
|
+
* default values. The resulting struct can be freed using av_freep().
|
|
83
|
+
*
|
|
84
|
+
* @return An AVMasteringDisplayMetadata filled with default values or NULL
|
|
85
|
+
* on failure.
|
|
86
|
+
*/
|
|
87
|
+
AVMasteringDisplayMetadata *av_mastering_display_metadata_alloc_size(size_t *size);
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Allocate a complete AVMasteringDisplayMetadata and add it to the frame.
|
|
91
|
+
*
|
|
92
|
+
* @param frame The frame which side data is added to.
|
|
93
|
+
*
|
|
94
|
+
* @return The AVMasteringDisplayMetadata structure to be filled by caller.
|
|
95
|
+
*/
|
|
96
|
+
AVMasteringDisplayMetadata *av_mastering_display_metadata_create_side_data(AVFrame *frame);
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Content light level needed by to transmit HDR over HDMI (CTA-861.3).
|
|
100
|
+
*
|
|
101
|
+
* To be used as payload of a AVFrameSideData or AVPacketSideData with the
|
|
102
|
+
* appropriate type.
|
|
103
|
+
*
|
|
104
|
+
* @note The struct should be allocated with av_content_light_metadata_alloc()
|
|
105
|
+
* and its size is not a part of the public ABI.
|
|
106
|
+
*/
|
|
107
|
+
typedef struct AVContentLightMetadata {
|
|
108
|
+
/**
|
|
109
|
+
* Max content light level (cd/m^2).
|
|
110
|
+
*/
|
|
111
|
+
unsigned MaxCLL;
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Max average light level per frame (cd/m^2).
|
|
115
|
+
*/
|
|
116
|
+
unsigned MaxFALL;
|
|
117
|
+
} AVContentLightMetadata;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Allocate an AVContentLightMetadata structure and set its fields to
|
|
121
|
+
* default values. The resulting struct can be freed using av_freep().
|
|
122
|
+
*
|
|
123
|
+
* @return An AVContentLightMetadata filled with default values or NULL
|
|
124
|
+
* on failure.
|
|
125
|
+
*/
|
|
126
|
+
AVContentLightMetadata *av_content_light_metadata_alloc(size_t *size);
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Allocate a complete AVContentLightMetadata and add it to the frame.
|
|
130
|
+
*
|
|
131
|
+
* @param frame The frame which side data is added to.
|
|
132
|
+
*
|
|
133
|
+
* @return The AVContentLightMetadata structure to be filled by caller.
|
|
134
|
+
*/
|
|
135
|
+
AVContentLightMetadata *av_content_light_metadata_create_side_data(AVFrame *frame);
|
|
136
|
+
|
|
137
|
+
#endif /* AVUTIL_MASTERING_DISPLAY_METADATA_H */
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* copyright (c) 2005-2012 Michael Niedermayer <michaelni@gmx.at>
|
|
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
|
+
/**
|
|
22
|
+
* @file
|
|
23
|
+
* @addtogroup lavu_math
|
|
24
|
+
* Mathematical utilities for working with timestamp and time base.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
#ifndef AVUTIL_MATHEMATICS_H
|
|
28
|
+
#define AVUTIL_MATHEMATICS_H
|
|
29
|
+
|
|
30
|
+
#include <stdint.h>
|
|
31
|
+
#include <math.h>
|
|
32
|
+
#include "attributes.h"
|
|
33
|
+
#include "rational.h"
|
|
34
|
+
#include "intfloat.h"
|
|
35
|
+
|
|
36
|
+
#ifndef M_E
|
|
37
|
+
#define M_E 2.7182818284590452354 /* e */
|
|
38
|
+
#endif
|
|
39
|
+
#ifndef M_Ef
|
|
40
|
+
#define M_Ef 2.7182818284590452354f /* e */
|
|
41
|
+
#endif
|
|
42
|
+
#ifndef M_LN2
|
|
43
|
+
#define M_LN2 0.69314718055994530942 /* log_e 2 */
|
|
44
|
+
#endif
|
|
45
|
+
#ifndef M_LN2f
|
|
46
|
+
#define M_LN2f 0.69314718055994530942f /* log_e 2 */
|
|
47
|
+
#endif
|
|
48
|
+
#ifndef M_LN10
|
|
49
|
+
#define M_LN10 2.30258509299404568402 /* log_e 10 */
|
|
50
|
+
#endif
|
|
51
|
+
#ifndef M_LN10f
|
|
52
|
+
#define M_LN10f 2.30258509299404568402f /* log_e 10 */
|
|
53
|
+
#endif
|
|
54
|
+
#ifndef M_LOG2_10
|
|
55
|
+
#define M_LOG2_10 3.32192809488736234787 /* log_2 10 */
|
|
56
|
+
#endif
|
|
57
|
+
#ifndef M_LOG2_10f
|
|
58
|
+
#define M_LOG2_10f 3.32192809488736234787f /* log_2 10 */
|
|
59
|
+
#endif
|
|
60
|
+
#ifndef M_PHI
|
|
61
|
+
#define M_PHI 1.61803398874989484820 /* phi / golden ratio */
|
|
62
|
+
#endif
|
|
63
|
+
#ifndef M_PHIf
|
|
64
|
+
#define M_PHIf 1.61803398874989484820f /* phi / golden ratio */
|
|
65
|
+
#endif
|
|
66
|
+
#ifndef M_PI
|
|
67
|
+
#define M_PI 3.14159265358979323846 /* pi */
|
|
68
|
+
#endif
|
|
69
|
+
#ifndef M_PIf
|
|
70
|
+
#define M_PIf 3.14159265358979323846f /* pi */
|
|
71
|
+
#endif
|
|
72
|
+
#ifndef M_PI_2
|
|
73
|
+
#define M_PI_2 1.57079632679489661923 /* pi/2 */
|
|
74
|
+
#endif
|
|
75
|
+
#ifndef M_PI_2f
|
|
76
|
+
#define M_PI_2f 1.57079632679489661923f /* pi/2 */
|
|
77
|
+
#endif
|
|
78
|
+
#ifndef M_PI_4
|
|
79
|
+
#define M_PI_4 0.78539816339744830962 /* pi/4 */
|
|
80
|
+
#endif
|
|
81
|
+
#ifndef M_PI_4f
|
|
82
|
+
#define M_PI_4f 0.78539816339744830962f /* pi/4 */
|
|
83
|
+
#endif
|
|
84
|
+
#ifndef M_1_PI
|
|
85
|
+
#define M_1_PI 0.31830988618379067154 /* 1/pi */
|
|
86
|
+
#endif
|
|
87
|
+
#ifndef M_1_PIf
|
|
88
|
+
#define M_1_PIf 0.31830988618379067154f /* 1/pi */
|
|
89
|
+
#endif
|
|
90
|
+
#ifndef M_2_PI
|
|
91
|
+
#define M_2_PI 0.63661977236758134308 /* 2/pi */
|
|
92
|
+
#endif
|
|
93
|
+
#ifndef M_2_PIf
|
|
94
|
+
#define M_2_PIf 0.63661977236758134308f /* 2/pi */
|
|
95
|
+
#endif
|
|
96
|
+
#ifndef M_2_SQRTPI
|
|
97
|
+
#define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */
|
|
98
|
+
#endif
|
|
99
|
+
#ifndef M_2_SQRTPIf
|
|
100
|
+
#define M_2_SQRTPIf 1.12837916709551257390f /* 2/sqrt(pi) */
|
|
101
|
+
#endif
|
|
102
|
+
#ifndef M_SQRT1_2
|
|
103
|
+
#define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */
|
|
104
|
+
#endif
|
|
105
|
+
#ifndef M_SQRT1_2f
|
|
106
|
+
#define M_SQRT1_2f 0.70710678118654752440f /* 1/sqrt(2) */
|
|
107
|
+
#endif
|
|
108
|
+
#ifndef M_SQRT2
|
|
109
|
+
#define M_SQRT2 1.41421356237309504880 /* sqrt(2) */
|
|
110
|
+
#endif
|
|
111
|
+
#ifndef M_SQRT2f
|
|
112
|
+
#define M_SQRT2f 1.41421356237309504880f /* sqrt(2) */
|
|
113
|
+
#endif
|
|
114
|
+
#ifndef NAN
|
|
115
|
+
#define NAN av_int2float(0x7fc00000)
|
|
116
|
+
#endif
|
|
117
|
+
#ifndef INFINITY
|
|
118
|
+
#define INFINITY av_int2float(0x7f800000)
|
|
119
|
+
#endif
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* @addtogroup lavu_math
|
|
123
|
+
*
|
|
124
|
+
* @{
|
|
125
|
+
*/
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Rounding methods.
|
|
129
|
+
*/
|
|
130
|
+
enum AVRounding {
|
|
131
|
+
AV_ROUND_ZERO = 0, ///< Round toward zero.
|
|
132
|
+
AV_ROUND_INF = 1, ///< Round away from zero.
|
|
133
|
+
AV_ROUND_DOWN = 2, ///< Round toward -infinity.
|
|
134
|
+
AV_ROUND_UP = 3, ///< Round toward +infinity.
|
|
135
|
+
AV_ROUND_NEAR_INF = 5, ///< Round to nearest and halfway cases away from zero.
|
|
136
|
+
/**
|
|
137
|
+
* Flag telling rescaling functions to pass `INT64_MIN`/`MAX` through
|
|
138
|
+
* unchanged, avoiding special cases for #AV_NOPTS_VALUE.
|
|
139
|
+
*
|
|
140
|
+
* Unlike other values of the enumeration AVRounding, this value is a
|
|
141
|
+
* bitmask that must be used in conjunction with another value of the
|
|
142
|
+
* enumeration through a bitwise OR, in order to set behavior for normal
|
|
143
|
+
* cases.
|
|
144
|
+
*
|
|
145
|
+
* @code{.c}
|
|
146
|
+
* av_rescale_rnd(3, 1, 2, AV_ROUND_UP | AV_ROUND_PASS_MINMAX);
|
|
147
|
+
* // Rescaling 3:
|
|
148
|
+
* // Calculating 3 * 1 / 2
|
|
149
|
+
* // 3 / 2 is rounded up to 2
|
|
150
|
+
* // => 2
|
|
151
|
+
*
|
|
152
|
+
* av_rescale_rnd(AV_NOPTS_VALUE, 1, 2, AV_ROUND_UP | AV_ROUND_PASS_MINMAX);
|
|
153
|
+
* // Rescaling AV_NOPTS_VALUE:
|
|
154
|
+
* // AV_NOPTS_VALUE == INT64_MIN
|
|
155
|
+
* // AV_NOPTS_VALUE is passed through
|
|
156
|
+
* // => AV_NOPTS_VALUE
|
|
157
|
+
* @endcode
|
|
158
|
+
*/
|
|
159
|
+
AV_ROUND_PASS_MINMAX = 8192,
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Compute the greatest common divisor of two integer operands.
|
|
164
|
+
*
|
|
165
|
+
* @param a Operand
|
|
166
|
+
* @param b Operand
|
|
167
|
+
* @return GCD of a and b up to sign; if a >= 0 and b >= 0, return value is >= 0;
|
|
168
|
+
* if a == 0 and b == 0, returns 0.
|
|
169
|
+
*/
|
|
170
|
+
int64_t av_const av_gcd(int64_t a, int64_t b);
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Rescale a 64-bit integer with rounding to nearest.
|
|
174
|
+
*
|
|
175
|
+
* The operation is mathematically equivalent to `a * b / c`, but writing that
|
|
176
|
+
* directly can overflow.
|
|
177
|
+
*
|
|
178
|
+
* This function is equivalent to av_rescale_rnd() with #AV_ROUND_NEAR_INF.
|
|
179
|
+
*
|
|
180
|
+
* @see av_rescale_rnd(), av_rescale_q(), av_rescale_q_rnd()
|
|
181
|
+
*/
|
|
182
|
+
int64_t av_rescale(int64_t a, int64_t b, int64_t c) av_const;
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Rescale a 64-bit integer with specified rounding.
|
|
186
|
+
*
|
|
187
|
+
* The operation is mathematically equivalent to `a * b / c`, but writing that
|
|
188
|
+
* directly can overflow, and does not support different rounding methods.
|
|
189
|
+
* If the result is not representable then INT64_MIN is returned.
|
|
190
|
+
*
|
|
191
|
+
* @see av_rescale(), av_rescale_q(), av_rescale_q_rnd()
|
|
192
|
+
*/
|
|
193
|
+
int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding rnd) av_const;
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Rescale a 64-bit integer by 2 rational numbers.
|
|
197
|
+
*
|
|
198
|
+
* The operation is mathematically equivalent to `a * bq / cq`.
|
|
199
|
+
*
|
|
200
|
+
* This function is equivalent to av_rescale_q_rnd() with #AV_ROUND_NEAR_INF.
|
|
201
|
+
*
|
|
202
|
+
* @see av_rescale(), av_rescale_rnd(), av_rescale_q_rnd()
|
|
203
|
+
*/
|
|
204
|
+
int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq) av_const;
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* Rescale a 64-bit integer by 2 rational numbers with specified rounding.
|
|
208
|
+
*
|
|
209
|
+
* The operation is mathematically equivalent to `a * bq / cq`.
|
|
210
|
+
*
|
|
211
|
+
* @see av_rescale(), av_rescale_rnd(), av_rescale_q()
|
|
212
|
+
*/
|
|
213
|
+
int64_t av_rescale_q_rnd(int64_t a, AVRational bq, AVRational cq,
|
|
214
|
+
enum AVRounding rnd) av_const;
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* Compare two timestamps each in its own time base.
|
|
218
|
+
*
|
|
219
|
+
* @return One of the following values:
|
|
220
|
+
* - -1 if `ts_a` is before `ts_b`
|
|
221
|
+
* - 1 if `ts_a` is after `ts_b`
|
|
222
|
+
* - 0 if they represent the same position
|
|
223
|
+
*
|
|
224
|
+
* @warning
|
|
225
|
+
* The result of the function is undefined if one of the timestamps is outside
|
|
226
|
+
* the `int64_t` range when represented in the other's timebase.
|
|
227
|
+
*/
|
|
228
|
+
int av_compare_ts(int64_t ts_a, AVRational tb_a, int64_t ts_b, AVRational tb_b);
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Compare the remainders of two integer operands divided by a common divisor.
|
|
232
|
+
*
|
|
233
|
+
* In other words, compare the least significant `log2(mod)` bits of integers
|
|
234
|
+
* `a` and `b`.
|
|
235
|
+
*
|
|
236
|
+
* @code{.c}
|
|
237
|
+
* av_compare_mod(0x11, 0x02, 0x10) < 0 // since 0x11 % 0x10 (0x1) < 0x02 % 0x10 (0x2)
|
|
238
|
+
* av_compare_mod(0x11, 0x02, 0x20) > 0 // since 0x11 % 0x20 (0x11) > 0x02 % 0x20 (0x02)
|
|
239
|
+
* @endcode
|
|
240
|
+
*
|
|
241
|
+
* @param a Operand
|
|
242
|
+
* @param b Operand
|
|
243
|
+
* @param mod Divisor; must be a power of 2
|
|
244
|
+
* @return
|
|
245
|
+
* - a negative value if `a % mod < b % mod`
|
|
246
|
+
* - a positive value if `a % mod > b % mod`
|
|
247
|
+
* - zero if `a % mod == b % mod`
|
|
248
|
+
*/
|
|
249
|
+
int64_t av_compare_mod(uint64_t a, uint64_t b, uint64_t mod);
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* Rescale a timestamp while preserving known durations.
|
|
253
|
+
*
|
|
254
|
+
* This function is designed to be called per audio packet to scale the input
|
|
255
|
+
* timestamp to a different time base. Compared to a simple av_rescale_q()
|
|
256
|
+
* call, this function is robust against possible inconsistent frame durations.
|
|
257
|
+
*
|
|
258
|
+
* The `last` parameter is a state variable that must be preserved for all
|
|
259
|
+
* subsequent calls for the same stream. For the first call, `*last` should be
|
|
260
|
+
* initialized to #AV_NOPTS_VALUE.
|
|
261
|
+
*
|
|
262
|
+
* @param[in] in_tb Input time base
|
|
263
|
+
* @param[in] in_ts Input timestamp
|
|
264
|
+
* @param[in] fs_tb Duration time base; typically this is finer-grained
|
|
265
|
+
* (greater) than `in_tb` and `out_tb`
|
|
266
|
+
* @param[in] duration Duration till the next call to this function (i.e.
|
|
267
|
+
* duration of the current packet/frame)
|
|
268
|
+
* @param[in,out] last Pointer to a timestamp expressed in terms of
|
|
269
|
+
* `fs_tb`, acting as a state variable
|
|
270
|
+
* @param[in] out_tb Output timebase
|
|
271
|
+
* @return Timestamp expressed in terms of `out_tb`
|
|
272
|
+
*
|
|
273
|
+
* @note In the context of this function, "duration" is in term of samples, not
|
|
274
|
+
* seconds.
|
|
275
|
+
*/
|
|
276
|
+
int64_t av_rescale_delta(AVRational in_tb, int64_t in_ts, AVRational fs_tb, int duration, int64_t *last, AVRational out_tb);
|
|
277
|
+
|
|
278
|
+
/**
|
|
279
|
+
* Add a value to a timestamp.
|
|
280
|
+
*
|
|
281
|
+
* This function guarantees that when the same value is repeatly added that
|
|
282
|
+
* no accumulation of rounding errors occurs.
|
|
283
|
+
*
|
|
284
|
+
* @param[in] ts Input timestamp
|
|
285
|
+
* @param[in] ts_tb Input timestamp time base
|
|
286
|
+
* @param[in] inc Value to be added
|
|
287
|
+
* @param[in] inc_tb Time base of `inc`
|
|
288
|
+
*/
|
|
289
|
+
int64_t av_add_stable(AVRational ts_tb, int64_t ts, AVRational inc_tb, int64_t inc);
|
|
290
|
+
|
|
291
|
+
/**
|
|
292
|
+
* 0th order modified bessel function of the first kind.
|
|
293
|
+
*/
|
|
294
|
+
double av_bessel_i0(double x);
|
|
295
|
+
|
|
296
|
+
/**
|
|
297
|
+
* @}
|
|
298
|
+
*/
|
|
299
|
+
|
|
300
|
+
#endif /* AVUTIL_MATHEMATICS_H */
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
|
|
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
|
+
/**
|
|
22
|
+
* @file
|
|
23
|
+
* @ingroup lavu_md5
|
|
24
|
+
* Public header for MD5 hash function implementation.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
#ifndef AVUTIL_MD5_H
|
|
28
|
+
#define AVUTIL_MD5_H
|
|
29
|
+
|
|
30
|
+
#include <stddef.h>
|
|
31
|
+
#include <stdint.h>
|
|
32
|
+
|
|
33
|
+
#include "attributes.h"
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @defgroup lavu_md5 MD5
|
|
37
|
+
* @ingroup lavu_hash
|
|
38
|
+
* MD5 hash function implementation.
|
|
39
|
+
*
|
|
40
|
+
* @{
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
extern const int av_md5_size;
|
|
44
|
+
|
|
45
|
+
struct AVMD5;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Allocate an AVMD5 context.
|
|
49
|
+
*/
|
|
50
|
+
struct AVMD5 *av_md5_alloc(void);
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Initialize MD5 hashing.
|
|
54
|
+
*
|
|
55
|
+
* @param ctx pointer to the function context (of size av_md5_size)
|
|
56
|
+
*/
|
|
57
|
+
void av_md5_init(struct AVMD5 *ctx);
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Update hash value.
|
|
61
|
+
*
|
|
62
|
+
* @param ctx hash function context
|
|
63
|
+
* @param src input data to update hash with
|
|
64
|
+
* @param len input data length
|
|
65
|
+
*/
|
|
66
|
+
void av_md5_update(struct AVMD5 *ctx, const uint8_t *src, size_t len);
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Finish hashing and output digest value.
|
|
70
|
+
*
|
|
71
|
+
* @param ctx hash function context
|
|
72
|
+
* @param dst buffer where output digest value is stored
|
|
73
|
+
*/
|
|
74
|
+
void av_md5_final(struct AVMD5 *ctx, uint8_t *dst);
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Hash an array of data.
|
|
78
|
+
*
|
|
79
|
+
* @param dst The output buffer to write the digest into
|
|
80
|
+
* @param src The data to hash
|
|
81
|
+
* @param len The length of the data, in bytes
|
|
82
|
+
*/
|
|
83
|
+
void av_md5_sum(uint8_t *dst, const uint8_t *src, size_t len);
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* @}
|
|
87
|
+
*/
|
|
88
|
+
|
|
89
|
+
#endif /* AVUTIL_MD5_H */
|