react-native-audio-api 0.8.0-nightly-5a12f24-20250901 → 0.8.0
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/RNAudioAPI.podspec +15 -6
- package/android/build.gradle +11 -2
- package/android/src/main/cpp/audioapi/CMakeLists.txt +24 -17
- package/android/src/main/cpp/audioapi/android/core/AudioDecoder.cpp +51 -21
- package/android/src/main/jniLibs/arm64-v8a/libavcodec.so +0 -0
- package/android/src/main/jniLibs/arm64-v8a/libavformat.so +0 -0
- package/android/src/main/jniLibs/arm64-v8a/libavutil.so +0 -0
- package/android/src/main/jniLibs/arm64-v8a/libswresample.so +0 -0
- package/android/src/main/jniLibs/armeabi-v7a/libavcodec.so +0 -0
- package/android/src/main/jniLibs/armeabi-v7a/libavformat.so +0 -0
- package/android/src/main/jniLibs/armeabi-v7a/libavutil.so +0 -0
- package/android/src/main/jniLibs/armeabi-v7a/libswresample.so +0 -0
- package/android/src/main/jniLibs/x86/libavcodec.so +0 -0
- package/android/src/main/jniLibs/x86/libavformat.so +0 -0
- package/android/src/main/jniLibs/x86/libavutil.so +0 -0
- package/android/src/main/jniLibs/x86/libswresample.so +0 -0
- package/android/src/main/jniLibs/x86_64/libavcodec.so +0 -0
- package/android/src/main/jniLibs/x86_64/libavformat.so +0 -0
- package/android/src/main/jniLibs/x86_64/libavutil.so +0 -0
- package/android/src/main/jniLibs/x86_64/libswresample.so +0 -0
- package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.h +11 -0
- package/common/cpp/audioapi/HostObjects/StreamerNodeHostObject.h +30 -0
- package/common/cpp/audioapi/core/BaseAudioContext.cpp +9 -0
- package/common/cpp/audioapi/core/BaseAudioContext.h +2 -0
- package/common/cpp/audioapi/core/sources/StreamerNode.cpp +299 -0
- package/common/cpp/audioapi/core/sources/StreamerNode.h +123 -0
- package/common/cpp/audioapi/core/utils/AudioDecoder.h +61 -0
- package/common/cpp/audioapi/core/utils/AudioNodeManager.cpp +14 -2
- package/common/cpp/audioapi/core/utils/AudioNodeManager.h +3 -0
- package/common/cpp/audioapi/external/arm64-v8a/libcrypto.a +0 -0
- package/common/cpp/audioapi/external/arm64-v8a/libssl.a +0 -0
- package/common/cpp/audioapi/external/armeabi-v7a/libcrypto.a +0 -0
- package/common/cpp/audioapi/external/armeabi-v7a/libssl.a +0 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/ac3_parser.h +36 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/adts_parser.h +37 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/avcodec.h +2947 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/avdct.h +88 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/bsf.h +332 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/codec.h +367 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/codec_desc.h +134 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/codec_id.h +681 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/codec_par.h +248 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/d3d11va.h +109 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/defs.h +359 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/dirac.h +135 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/dv_profile.h +82 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/dxva2.h +90 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/jni.h +67 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/mediacodec.h +103 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/packet.h +907 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/qsv.h +109 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/vdpau.h +138 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/version.h +45 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/version_major.h +55 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/videotoolbox.h +85 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/vorbis_parser.h +74 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavformat/avformat.h +3004 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavformat/avio.h +831 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavformat/version.h +47 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavformat/version_major.h +50 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/adler32.h +63 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/aes.h +69 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/aes_ctr.h +99 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/ambient_viewing_environment.h +72 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/attributes.h +175 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/audio_fifo.h +187 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/avassert.h +120 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/avconfig.h +6 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/avstring.h +428 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/avutil.h +364 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/base64.h +72 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/blowfish.h +82 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/bprint.h +254 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/bswap.h +105 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/buffer.h +322 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/camellia.h +70 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/cast5.h +80 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/channel_layout.h +762 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/common.h +589 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/container_fifo.h +130 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/cpu.h +150 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/crc.h +102 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/csp.h +192 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/des.h +81 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/detection_bbox.h +108 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/dict.h +242 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/display.h +109 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/dovi_meta.h +396 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/downmix_info.h +115 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/encryption_info.h +205 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/error.h +129 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/eval.h +140 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/executor.h +67 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/ffversion.h +5 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/fifo.h +242 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/file.h +62 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/film_grain_params.h +282 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/frame.h +1163 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hash.h +264 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hdr_dynamic_metadata.h +376 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hdr_dynamic_vivid_metadata.h +292 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hmac.h +99 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext.h +601 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_amf.h +46 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_cuda.h +74 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_d3d11va.h +178 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_d3d12va.h +142 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_drm.h +169 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_dxva2.h +75 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_mediacodec.h +61 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_oh.h +34 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_opencl.h +100 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_qsv.h +87 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_vaapi.h +117 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_vdpau.h +44 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_videotoolbox.h +106 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_vulkan.h +377 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/iamf.h +694 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/imgutils.h +377 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/intfloat.h +77 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/intreadwrite.h +677 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/lfg.h +81 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/log.h +427 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/lzo.h +66 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/macros.h +80 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/mastering_display_metadata.h +137 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/mathematics.h +300 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/md5.h +89 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/mem.h +607 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/motion_vector.h +57 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/murmur3.h +115 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/opt.h +1194 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/parseutils.h +197 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/pixdesc.h +440 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/pixelutils.h +51 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/pixfmt.h +797 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/random_seed.h +57 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/rational.h +225 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/rc4.h +69 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/refstruct.h +297 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/replaygain.h +50 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/ripemd.h +83 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/samplefmt.h +269 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/sha.h +90 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/sha512.h +92 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/spherical.h +243 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/stereo3d.h +325 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/tdrdi.h +164 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/tea.h +71 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/threadmessage.h +115 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/timecode.h +199 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/timestamp.h +85 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/tree.h +137 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/twofish.h +70 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/tx.h +210 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/uuid.h +146 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/version.h +119 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/video_enc_params.h +171 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/video_hint.h +107 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/xtea.h +94 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libswresample/swresample.h +587 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libswresample/version.h +46 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libswresample/version_major.h +31 -0
- package/common/cpp/audioapi/external/libavcodec.xcframework/Info.plist +44 -0
- package/common/cpp/audioapi/external/libavcodec.xcframework/ios-arm64/libavcodec.framework/Info.plist +1 -0
- package/common/cpp/audioapi/external/libavcodec.xcframework/ios-arm64/libavcodec.framework/libavcodec +0 -0
- package/common/cpp/audioapi/external/libavcodec.xcframework/ios-arm64_x86_64-simulator/libavcodec.framework/Info.plist +1 -0
- package/common/cpp/audioapi/external/libavcodec.xcframework/ios-arm64_x86_64-simulator/libavcodec.framework/libavcodec +0 -0
- package/common/cpp/audioapi/external/libavformat.xcframework/Info.plist +44 -0
- package/common/cpp/audioapi/external/libavformat.xcframework/ios-arm64/libavformat.framework/Info.plist +1 -0
- package/common/cpp/audioapi/external/libavformat.xcframework/ios-arm64/libavformat.framework/libavformat +0 -0
- package/common/cpp/audioapi/external/libavformat.xcframework/ios-arm64_x86_64-simulator/libavformat.framework/Info.plist +1 -0
- package/common/cpp/audioapi/external/libavformat.xcframework/ios-arm64_x86_64-simulator/libavformat.framework/libavformat +0 -0
- package/common/cpp/audioapi/external/libavutil.xcframework/Info.plist +44 -0
- package/common/cpp/audioapi/external/libavutil.xcframework/ios-arm64/libavutil.framework/Info.plist +1 -0
- package/common/cpp/audioapi/external/libavutil.xcframework/ios-arm64/libavutil.framework/libavutil +0 -0
- package/common/cpp/audioapi/external/libavutil.xcframework/ios-arm64_x86_64-simulator/libavutil.framework/Info.plist +1 -0
- package/common/cpp/audioapi/external/libavutil.xcframework/ios-arm64_x86_64-simulator/libavutil.framework/libavutil +0 -0
- package/common/cpp/audioapi/external/libswresample.xcframework/Info.plist +44 -0
- package/common/cpp/audioapi/external/libswresample.xcframework/ios-arm64/libswresample.framework/Info.plist +1 -0
- package/common/cpp/audioapi/external/libswresample.xcframework/ios-arm64/libswresample.framework/libswresample +0 -0
- package/common/cpp/audioapi/external/libswresample.xcframework/ios-arm64_x86_64-simulator/libswresample.framework/Info.plist +1 -0
- package/common/cpp/audioapi/external/libswresample.xcframework/ios-arm64_x86_64-simulator/libswresample.framework/libswresample +0 -0
- package/common/cpp/audioapi/external/x86/libcrypto.a +0 -0
- package/common/cpp/audioapi/external/x86/libssl.a +0 -0
- package/common/cpp/audioapi/external/x86_64/libcrypto.a +0 -0
- package/common/cpp/audioapi/external/x86_64/libssl.a +0 -0
- package/common/cpp/audioapi/libs/ffmpeg/FFmpegDecoding.cpp +402 -0
- package/common/cpp/audioapi/libs/ffmpeg/FFmpegDecoding.h +27 -0
- package/common/cpp/audioapi/libs/ffmpeg/INSTRUCTIONS.md +26 -0
- package/common/cpp/audioapi/libs/ffmpeg/create_xcframework.sh +111 -0
- package/common/cpp/audioapi/libs/ffmpeg/ffmpeg_setup.sh +361 -0
- package/common/cpp/audioapi/utils/SpscChannel.hpp +47 -38
- package/common/cpp/test/CMakeLists.txt +7 -1
- package/ios/audioapi/ios/core/AudioDecoder.mm +22 -2
- package/lib/commonjs/api.js +7 -0
- package/lib/commonjs/api.js.map +1 -1
- package/lib/commonjs/core/AudioContext.js.map +1 -1
- package/lib/commonjs/core/BaseAudioContext.js +4 -0
- package/lib/commonjs/core/BaseAudioContext.js.map +1 -1
- package/lib/commonjs/core/StreamerNode.js +15 -0
- package/lib/commonjs/core/StreamerNode.js.map +1 -0
- package/lib/module/api.js +1 -0
- package/lib/module/api.js.map +1 -1
- package/lib/module/core/AudioContext.js.map +1 -1
- package/lib/module/core/BaseAudioContext.js +4 -0
- package/lib/module/core/BaseAudioContext.js.map +1 -1
- package/lib/module/core/StreamerNode.js +9 -0
- package/lib/module/core/StreamerNode.js.map +1 -0
- package/lib/typescript/api.d.ts +1 -0
- package/lib/typescript/api.d.ts.map +1 -1
- package/lib/typescript/core/AudioContext.d.ts +1 -1
- package/lib/typescript/core/AudioContext.d.ts.map +1 -1
- package/lib/typescript/core/BaseAudioContext.d.ts +2 -0
- package/lib/typescript/core/BaseAudioContext.d.ts.map +1 -1
- package/lib/typescript/core/StreamerNode.d.ts +5 -0
- package/lib/typescript/core/StreamerNode.d.ts.map +1 -0
- package/lib/typescript/interfaces.d.ts +5 -1
- package/lib/typescript/interfaces.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/api.ts +1 -0
- package/src/core/AudioContext.ts +1 -1
- package/src/core/BaseAudioContext.ts +5 -0
- package/src/core/StreamerNode.ts +8 -0
- package/src/interfaces.ts +6 -1
|
@@ -0,0 +1,164 @@
|
|
|
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
|
+
* @ingroup lavu_video_3d_reference_displays_info
|
|
22
|
+
* Spherical video
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
#ifndef AVUTIL_TDRDI_H
|
|
26
|
+
#define AVUTIL_TDRDI_H
|
|
27
|
+
|
|
28
|
+
#include <stddef.h>
|
|
29
|
+
#include <stdint.h>
|
|
30
|
+
|
|
31
|
+
#include "libavutil/avassert.h"
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* @defgroup lavu_video_3d_reference_displays_info 3D Reference Displays Information
|
|
35
|
+
* @ingroup lavu_video
|
|
36
|
+
*
|
|
37
|
+
* The 3D Reference Displays Information describes information about the reference display
|
|
38
|
+
* width(s) and reference viewing distance(s) as well as information about the corresponding
|
|
39
|
+
* reference stereo pair(s).
|
|
40
|
+
* @{
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
#define AV_TDRDI_MAX_NUM_REF_DISPLAY 32
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* This structure describes information about the reference display width(s) and reference
|
|
47
|
+
* viewing distance(s) as well as information about the corresponding reference stereo pair(s).
|
|
48
|
+
* See section G.14.3.2.3 of ITU-T H.265 for more information.
|
|
49
|
+
*
|
|
50
|
+
* @note The struct must be allocated with av_tdrdi_alloc() and
|
|
51
|
+
* its size is not a part of the public ABI.
|
|
52
|
+
*/
|
|
53
|
+
typedef struct AV3DReferenceDisplaysInfo {
|
|
54
|
+
/**
|
|
55
|
+
* The exponent of the maximum allowable truncation error for
|
|
56
|
+
* {exponent,mantissa}_ref_display_width as given by 2<sup>(-prec_ref_display_width)</sup>.
|
|
57
|
+
*/
|
|
58
|
+
uint8_t prec_ref_display_width;
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* A flag to indicate the presence of reference viewing distance.
|
|
62
|
+
* If false, the values of prec_ref_viewing_dist, exponent_ref_viewing_distance,
|
|
63
|
+
* and mantissa_ref_viewing_distance are undefined.
|
|
64
|
+
*/
|
|
65
|
+
uint8_t ref_viewing_distance_flag;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* The exponent of the maximum allowable truncation error for
|
|
69
|
+
* {exponent,mantissa}_ref_viewing_distance as given by 2<sup>^(-prec_ref_viewing_dist)</sup>.
|
|
70
|
+
* The value of prec_ref_viewing_dist shall be in the range of 0 to 31, inclusive.
|
|
71
|
+
*/
|
|
72
|
+
uint8_t prec_ref_viewing_dist;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* The number of reference displays that are signalled in this struct.
|
|
76
|
+
* Allowed range is 1 to 32, inclusive.
|
|
77
|
+
*/
|
|
78
|
+
uint8_t num_ref_displays;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Offset in bytes from the beginning of this structure at which the array
|
|
82
|
+
* of reference displays starts.
|
|
83
|
+
*/
|
|
84
|
+
size_t entries_offset;
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Size of each entry in bytes. May not match sizeof(AV3DReferenceDisplay).
|
|
88
|
+
*/
|
|
89
|
+
size_t entry_size;
|
|
90
|
+
} AV3DReferenceDisplaysInfo;
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Data structure for single deference display information.
|
|
94
|
+
* It is allocated as a part of AV3DReferenceDisplaysInfo and should be retrieved with
|
|
95
|
+
* av_tdrdi_get_display().
|
|
96
|
+
*
|
|
97
|
+
* sizeof(AV3DReferenceDisplay) is not a part of the ABI and new fields may be
|
|
98
|
+
* added to it.
|
|
99
|
+
*/
|
|
100
|
+
typedef struct AV3DReferenceDisplay {
|
|
101
|
+
/**
|
|
102
|
+
* The ViewId of the left view of a stereo pair corresponding to the n-th reference display.
|
|
103
|
+
*/
|
|
104
|
+
uint16_t left_view_id;
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* The ViewId of the left view of a stereo pair corresponding to the n-th reference display.
|
|
108
|
+
*/
|
|
109
|
+
uint16_t right_view_id;
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* The exponent part of the reference display width of the n-th reference display.
|
|
113
|
+
*/
|
|
114
|
+
uint8_t exponent_ref_display_width;
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* The mantissa part of the reference display width of the n-th reference display.
|
|
118
|
+
*/
|
|
119
|
+
uint8_t mantissa_ref_display_width;
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Tthe exponent part of the reference viewing distance of the n-th reference display.
|
|
123
|
+
*/
|
|
124
|
+
uint8_t exponent_ref_viewing_distance;
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* The mantissa part of the reference viewing distance of the n-th reference display.
|
|
128
|
+
*/
|
|
129
|
+
uint8_t mantissa_ref_viewing_distance;
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* An array of flags to indicates that the information about additional horizontal shift of
|
|
133
|
+
* the left and right views for the n-th reference display is present.
|
|
134
|
+
*/
|
|
135
|
+
uint8_t additional_shift_present_flag;
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* The recommended additional horizontal shift for a stereo pair corresponding to the n-th
|
|
139
|
+
* reference baseline and the n-th reference display.
|
|
140
|
+
*/
|
|
141
|
+
int16_t num_sample_shift;
|
|
142
|
+
} AV3DReferenceDisplay;
|
|
143
|
+
|
|
144
|
+
static av_always_inline AV3DReferenceDisplay*
|
|
145
|
+
av_tdrdi_get_display(AV3DReferenceDisplaysInfo *tdrdi, unsigned int idx)
|
|
146
|
+
{
|
|
147
|
+
av_assert0(idx < tdrdi->num_ref_displays);
|
|
148
|
+
return (AV3DReferenceDisplay *)((uint8_t *)tdrdi + tdrdi->entries_offset +
|
|
149
|
+
idx * tdrdi->entry_size);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Allocate a AV3DReferenceDisplaysInfo structure and initialize its fields to default
|
|
154
|
+
* values.
|
|
155
|
+
*
|
|
156
|
+
* @return the newly allocated struct or NULL on failure
|
|
157
|
+
*/
|
|
158
|
+
AV3DReferenceDisplaysInfo *av_tdrdi_alloc(unsigned int nb_displays, size_t *size);
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* @}
|
|
162
|
+
*/
|
|
163
|
+
|
|
164
|
+
#endif /* AVUTIL_TDRDI_H */
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* A 32-bit implementation of the TEA algorithm
|
|
3
|
+
* Copyright (c) 2015 Vesselin Bontchev
|
|
4
|
+
*
|
|
5
|
+
* This file is part of FFmpeg.
|
|
6
|
+
*
|
|
7
|
+
* FFmpeg is free software; you can redistribute it and/or
|
|
8
|
+
* modify it under the terms of the GNU Lesser General Public
|
|
9
|
+
* License as published by the Free Software Foundation; either
|
|
10
|
+
* version 2.1 of the License, or (at your option) any later version.
|
|
11
|
+
*
|
|
12
|
+
* FFmpeg is distributed in the hope that it will be useful,
|
|
13
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
15
|
+
* Lesser General Public License for more details.
|
|
16
|
+
*
|
|
17
|
+
* You should have received a copy of the GNU Lesser General Public
|
|
18
|
+
* License along with FFmpeg; if not, write to the Free Software
|
|
19
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
#ifndef AVUTIL_TEA_H
|
|
23
|
+
#define AVUTIL_TEA_H
|
|
24
|
+
|
|
25
|
+
#include <stdint.h>
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @file
|
|
29
|
+
* @brief Public header for libavutil TEA algorithm
|
|
30
|
+
* @defgroup lavu_tea TEA
|
|
31
|
+
* @ingroup lavu_crypto
|
|
32
|
+
* @{
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
extern const int av_tea_size;
|
|
36
|
+
|
|
37
|
+
struct AVTEA;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Allocate an AVTEA context
|
|
41
|
+
* To free the struct: av_free(ptr)
|
|
42
|
+
*/
|
|
43
|
+
struct AVTEA *av_tea_alloc(void);
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Initialize an AVTEA context.
|
|
47
|
+
*
|
|
48
|
+
* @param ctx an AVTEA context
|
|
49
|
+
* @param key a key of 16 bytes used for encryption/decryption
|
|
50
|
+
* @param rounds the number of rounds in TEA (64 is the "standard")
|
|
51
|
+
*/
|
|
52
|
+
void av_tea_init(struct AVTEA *ctx, const uint8_t key[16], int rounds);
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Encrypt or decrypt a buffer using a previously initialized context.
|
|
56
|
+
*
|
|
57
|
+
* @param ctx an AVTEA context
|
|
58
|
+
* @param dst destination array, can be equal to src
|
|
59
|
+
* @param src source array, can be equal to dst
|
|
60
|
+
* @param count number of 8 byte blocks
|
|
61
|
+
* @param iv initialization vector for CBC mode, if NULL then ECB will be used
|
|
62
|
+
* @param decrypt 0 for encryption, 1 for decryption
|
|
63
|
+
*/
|
|
64
|
+
void av_tea_crypt(struct AVTEA *ctx, uint8_t *dst, const uint8_t *src,
|
|
65
|
+
int count, uint8_t *iv, int decrypt);
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* @}
|
|
69
|
+
*/
|
|
70
|
+
|
|
71
|
+
#endif /* AVUTIL_TEA_H */
|
|
@@ -0,0 +1,115 @@
|
|
|
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 License
|
|
6
|
+
* 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
|
|
12
|
+
* GNU Lesser General Public License for more details.
|
|
13
|
+
*
|
|
14
|
+
* You should have received a copy of the GNU Lesser General Public License
|
|
15
|
+
* along with FFmpeg; if not, write to the Free Software Foundation, Inc.,
|
|
16
|
+
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
#ifndef AVUTIL_THREADMESSAGE_H
|
|
20
|
+
#define AVUTIL_THREADMESSAGE_H
|
|
21
|
+
|
|
22
|
+
typedef struct AVThreadMessageQueue AVThreadMessageQueue;
|
|
23
|
+
|
|
24
|
+
typedef enum AVThreadMessageFlags {
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Perform non-blocking operation.
|
|
28
|
+
* If this flag is set, send and recv operations are non-blocking and
|
|
29
|
+
* return AVERROR(EAGAIN) immediately if they can not proceed.
|
|
30
|
+
*/
|
|
31
|
+
AV_THREAD_MESSAGE_NONBLOCK = 1,
|
|
32
|
+
|
|
33
|
+
} AVThreadMessageFlags;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Allocate a new message queue.
|
|
37
|
+
*
|
|
38
|
+
* @param mq pointer to the message queue
|
|
39
|
+
* @param nelem maximum number of elements in the queue
|
|
40
|
+
* @param elsize size of each element in the queue
|
|
41
|
+
* @return >=0 for success; <0 for error, in particular AVERROR(ENOSYS) if
|
|
42
|
+
* lavu was built without thread support
|
|
43
|
+
*/
|
|
44
|
+
int av_thread_message_queue_alloc(AVThreadMessageQueue **mq,
|
|
45
|
+
unsigned nelem,
|
|
46
|
+
unsigned elsize);
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Free a message queue.
|
|
50
|
+
*
|
|
51
|
+
* The message queue must no longer be in use by another thread.
|
|
52
|
+
*/
|
|
53
|
+
void av_thread_message_queue_free(AVThreadMessageQueue **mq);
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Send a message on the queue.
|
|
57
|
+
*/
|
|
58
|
+
int av_thread_message_queue_send(AVThreadMessageQueue *mq,
|
|
59
|
+
void *msg,
|
|
60
|
+
unsigned flags);
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Receive a message from the queue.
|
|
64
|
+
*/
|
|
65
|
+
int av_thread_message_queue_recv(AVThreadMessageQueue *mq,
|
|
66
|
+
void *msg,
|
|
67
|
+
unsigned flags);
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Set the sending error code.
|
|
71
|
+
*
|
|
72
|
+
* If the error code is set to non-zero, av_thread_message_queue_send() will
|
|
73
|
+
* return it immediately. Conventional values, such as AVERROR_EOF or
|
|
74
|
+
* AVERROR(EAGAIN), can be used to cause the sending thread to stop or
|
|
75
|
+
* suspend its operation.
|
|
76
|
+
*/
|
|
77
|
+
void av_thread_message_queue_set_err_send(AVThreadMessageQueue *mq,
|
|
78
|
+
int err);
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Set the receiving error code.
|
|
82
|
+
*
|
|
83
|
+
* If the error code is set to non-zero, av_thread_message_queue_recv() will
|
|
84
|
+
* return it immediately when there are no longer available messages.
|
|
85
|
+
* Conventional values, such as AVERROR_EOF or AVERROR(EAGAIN), can be used
|
|
86
|
+
* to cause the receiving thread to stop or suspend its operation.
|
|
87
|
+
*/
|
|
88
|
+
void av_thread_message_queue_set_err_recv(AVThreadMessageQueue *mq,
|
|
89
|
+
int err);
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Set the optional free message callback function which will be called if an
|
|
93
|
+
* operation is removing messages from the queue.
|
|
94
|
+
*/
|
|
95
|
+
void av_thread_message_queue_set_free_func(AVThreadMessageQueue *mq,
|
|
96
|
+
void (*free_func)(void *msg));
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Return the current number of messages in the queue.
|
|
100
|
+
*
|
|
101
|
+
* @return the current number of messages or AVERROR(ENOSYS) if lavu was built
|
|
102
|
+
* without thread support
|
|
103
|
+
*/
|
|
104
|
+
int av_thread_message_queue_nb_elems(AVThreadMessageQueue *mq);
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Flush the message queue
|
|
108
|
+
*
|
|
109
|
+
* This function is mostly equivalent to reading and free-ing every message
|
|
110
|
+
* except that it will be done in a single operation (no lock/unlock between
|
|
111
|
+
* reads).
|
|
112
|
+
*/
|
|
113
|
+
void av_thread_message_flush(AVThreadMessageQueue *mq);
|
|
114
|
+
|
|
115
|
+
#endif /* AVUTIL_THREADMESSAGE_H */
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2006 Smartjog S.A.S, Baptiste Coudurier <baptiste.coudurier@gmail.com>
|
|
3
|
+
* Copyright (c) 2011-2012 Smartjog S.A.S, Clément Bœsch <clement.boesch@smartjog.com>
|
|
4
|
+
*
|
|
5
|
+
* This file is part of FFmpeg.
|
|
6
|
+
*
|
|
7
|
+
* FFmpeg is free software; you can redistribute it and/or
|
|
8
|
+
* modify it under the terms of the GNU Lesser General Public
|
|
9
|
+
* License as published by the Free Software Foundation; either
|
|
10
|
+
* version 2.1 of the License, or (at your option) any later version.
|
|
11
|
+
*
|
|
12
|
+
* FFmpeg is distributed in the hope that it will be useful,
|
|
13
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
15
|
+
* Lesser General Public License for more details.
|
|
16
|
+
*
|
|
17
|
+
* You should have received a copy of the GNU Lesser General Public
|
|
18
|
+
* License along with FFmpeg; if not, write to the Free Software
|
|
19
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @file
|
|
24
|
+
* Timecode helpers header
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
#ifndef AVUTIL_TIMECODE_H
|
|
28
|
+
#define AVUTIL_TIMECODE_H
|
|
29
|
+
|
|
30
|
+
#include <stdint.h>
|
|
31
|
+
#include "rational.h"
|
|
32
|
+
|
|
33
|
+
#define AV_TIMECODE_STR_SIZE 23
|
|
34
|
+
|
|
35
|
+
enum AVTimecodeFlag {
|
|
36
|
+
AV_TIMECODE_FLAG_DROPFRAME = 1<<0, ///< timecode is drop frame
|
|
37
|
+
AV_TIMECODE_FLAG_24HOURSMAX = 1<<1, ///< timecode wraps after 24 hours
|
|
38
|
+
AV_TIMECODE_FLAG_ALLOWNEGATIVE = 1<<2, ///< negative time values are allowed
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
typedef struct {
|
|
42
|
+
int start; ///< timecode frame start (first base frame number)
|
|
43
|
+
uint32_t flags; ///< flags such as drop frame, +24 hours support, ...
|
|
44
|
+
AVRational rate; ///< frame rate in rational form
|
|
45
|
+
unsigned fps; ///< frame per second; must be consistent with the rate field
|
|
46
|
+
} AVTimecode;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Adjust frame number for NTSC drop frame time code.
|
|
50
|
+
*
|
|
51
|
+
* @param framenum frame number to adjust
|
|
52
|
+
* @param fps frame per second, multiples of 30
|
|
53
|
+
* @return adjusted frame number
|
|
54
|
+
* @warning adjustment is only valid for multiples of NTSC 29.97
|
|
55
|
+
*/
|
|
56
|
+
int av_timecode_adjust_ntsc_framenum2(int framenum, int fps);
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Convert frame number to SMPTE 12M binary representation.
|
|
60
|
+
*
|
|
61
|
+
* @param tc timecode data correctly initialized
|
|
62
|
+
* @param framenum frame number
|
|
63
|
+
* @return the SMPTE binary representation
|
|
64
|
+
*
|
|
65
|
+
* See SMPTE ST 314M-2005 Sec 4.4.2.2.1 "Time code pack (TC)"
|
|
66
|
+
* the format description as follows:
|
|
67
|
+
* bits 0-5: hours, in BCD(6bits)
|
|
68
|
+
* bits 6: BGF1
|
|
69
|
+
* bits 7: BGF2 (NTSC) or FIELD (PAL)
|
|
70
|
+
* bits 8-14: minutes, in BCD(7bits)
|
|
71
|
+
* bits 15: BGF0 (NTSC) or BGF2 (PAL)
|
|
72
|
+
* bits 16-22: seconds, in BCD(7bits)
|
|
73
|
+
* bits 23: FIELD (NTSC) or BGF0 (PAL)
|
|
74
|
+
* bits 24-29: frames, in BCD(6bits)
|
|
75
|
+
* bits 30: drop frame flag (0: non drop, 1: drop)
|
|
76
|
+
* bits 31: color frame flag (0: unsync mode, 1: sync mode)
|
|
77
|
+
* @note BCD numbers (6 or 7 bits): 4 or 5 lower bits for units, 2 higher bits for tens.
|
|
78
|
+
* @note Frame number adjustment is automatically done in case of drop timecode,
|
|
79
|
+
* you do NOT have to call av_timecode_adjust_ntsc_framenum2().
|
|
80
|
+
* @note The frame number is relative to tc->start.
|
|
81
|
+
* @note Color frame (CF) and binary group flags (BGF) bits are set to zero.
|
|
82
|
+
*/
|
|
83
|
+
uint32_t av_timecode_get_smpte_from_framenum(const AVTimecode *tc, int framenum);
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Convert sei info to SMPTE 12M binary representation.
|
|
87
|
+
*
|
|
88
|
+
* @param rate frame rate in rational form
|
|
89
|
+
* @param drop drop flag
|
|
90
|
+
* @param hh hour
|
|
91
|
+
* @param mm minute
|
|
92
|
+
* @param ss second
|
|
93
|
+
* @param ff frame number
|
|
94
|
+
* @return the SMPTE binary representation
|
|
95
|
+
*/
|
|
96
|
+
uint32_t av_timecode_get_smpte(AVRational rate, int drop, int hh, int mm, int ss, int ff);
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Load timecode string in buf.
|
|
100
|
+
*
|
|
101
|
+
* @param tc timecode data correctly initialized
|
|
102
|
+
* @param buf destination buffer, must be at least AV_TIMECODE_STR_SIZE long
|
|
103
|
+
* @param framenum frame number
|
|
104
|
+
* @return the buf parameter
|
|
105
|
+
*
|
|
106
|
+
* @note Timecode representation can be a negative timecode and have more than
|
|
107
|
+
* 24 hours, but will only be honored if the flags are correctly set.
|
|
108
|
+
* @note The frame number is relative to tc->start.
|
|
109
|
+
*/
|
|
110
|
+
char *av_timecode_make_string(const AVTimecode *tc, char *buf, int framenum);
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Get the timecode string from the SMPTE timecode format.
|
|
114
|
+
*
|
|
115
|
+
* In contrast to av_timecode_make_smpte_tc_string this function supports 50/60
|
|
116
|
+
* fps timecodes by using the field bit.
|
|
117
|
+
*
|
|
118
|
+
* @param buf destination buffer, must be at least AV_TIMECODE_STR_SIZE long
|
|
119
|
+
* @param rate frame rate of the timecode
|
|
120
|
+
* @param tcsmpte the 32-bit SMPTE timecode
|
|
121
|
+
* @param prevent_df prevent the use of a drop flag when it is known the DF bit
|
|
122
|
+
* is arbitrary
|
|
123
|
+
* @param skip_field prevent the use of a field flag when it is known the field
|
|
124
|
+
* bit is arbitrary (e.g. because it is used as PC flag)
|
|
125
|
+
* @return the buf parameter
|
|
126
|
+
*/
|
|
127
|
+
char *av_timecode_make_smpte_tc_string2(char *buf, AVRational rate, uint32_t tcsmpte, int prevent_df, int skip_field);
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Get the timecode string from the SMPTE timecode format.
|
|
131
|
+
*
|
|
132
|
+
* @param buf destination buffer, must be at least AV_TIMECODE_STR_SIZE long
|
|
133
|
+
* @param tcsmpte the 32-bit SMPTE timecode
|
|
134
|
+
* @param prevent_df prevent the use of a drop flag when it is known the DF bit
|
|
135
|
+
* is arbitrary
|
|
136
|
+
* @return the buf parameter
|
|
137
|
+
*/
|
|
138
|
+
char *av_timecode_make_smpte_tc_string(char *buf, uint32_t tcsmpte, int prevent_df);
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Get the timecode string from the 25-bit timecode format (MPEG GOP format).
|
|
142
|
+
*
|
|
143
|
+
* @param buf destination buffer, must be at least AV_TIMECODE_STR_SIZE long
|
|
144
|
+
* @param tc25bit the 25-bits timecode
|
|
145
|
+
* @return the buf parameter
|
|
146
|
+
*/
|
|
147
|
+
char *av_timecode_make_mpeg_tc_string(char *buf, uint32_t tc25bit);
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Init a timecode struct with the passed parameters.
|
|
151
|
+
*
|
|
152
|
+
* @param tc pointer to an allocated AVTimecode
|
|
153
|
+
* @param rate frame rate in rational form
|
|
154
|
+
* @param flags miscellaneous flags such as drop frame, +24 hours, ...
|
|
155
|
+
* (see AVTimecodeFlag)
|
|
156
|
+
* @param frame_start the first frame number
|
|
157
|
+
* @param log_ctx a pointer to an arbitrary struct of which the first field
|
|
158
|
+
* is a pointer to an AVClass struct (used for av_log)
|
|
159
|
+
* @return 0 on success, AVERROR otherwise
|
|
160
|
+
*/
|
|
161
|
+
int av_timecode_init(AVTimecode *tc, AVRational rate, int flags, int frame_start, void *log_ctx);
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Init a timecode struct from the passed timecode components.
|
|
165
|
+
*
|
|
166
|
+
* @param tc pointer to an allocated AVTimecode
|
|
167
|
+
* @param rate frame rate in rational form
|
|
168
|
+
* @param flags miscellaneous flags such as drop frame, +24 hours, ...
|
|
169
|
+
* (see AVTimecodeFlag)
|
|
170
|
+
* @param hh hours
|
|
171
|
+
* @param mm minutes
|
|
172
|
+
* @param ss seconds
|
|
173
|
+
* @param ff frames
|
|
174
|
+
* @param log_ctx a pointer to an arbitrary struct of which the first field
|
|
175
|
+
* is a pointer to an AVClass struct (used for av_log)
|
|
176
|
+
* @return 0 on success, AVERROR otherwise
|
|
177
|
+
*/
|
|
178
|
+
int av_timecode_init_from_components(AVTimecode *tc, AVRational rate, int flags, int hh, int mm, int ss, int ff, void *log_ctx);
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Parse timecode representation (hh:mm:ss[:;.]ff).
|
|
182
|
+
*
|
|
183
|
+
* @param tc pointer to an allocated AVTimecode
|
|
184
|
+
* @param rate frame rate in rational form
|
|
185
|
+
* @param str timecode string which will determine the frame start
|
|
186
|
+
* @param log_ctx a pointer to an arbitrary struct of which the first field is a
|
|
187
|
+
* pointer to an AVClass struct (used for av_log).
|
|
188
|
+
* @return 0 on success, AVERROR otherwise
|
|
189
|
+
*/
|
|
190
|
+
int av_timecode_init_from_string(AVTimecode *tc, AVRational rate, const char *str, void *log_ctx);
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Check if the timecode feature is available for the given frame rate
|
|
194
|
+
*
|
|
195
|
+
* @return 0 if supported, <0 otherwise
|
|
196
|
+
*/
|
|
197
|
+
int av_timecode_check_frame_rate(AVRational rate);
|
|
198
|
+
|
|
199
|
+
#endif /* AVUTIL_TIMECODE_H */
|
|
@@ -0,0 +1,85 @@
|
|
|
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
|
+
* timestamp utils, mostly useful for debugging/logging purposes
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
#ifndef AVUTIL_TIMESTAMP_H
|
|
25
|
+
#define AVUTIL_TIMESTAMP_H
|
|
26
|
+
|
|
27
|
+
#include "avutil.h"
|
|
28
|
+
|
|
29
|
+
#if defined(__cplusplus) && !defined(__STDC_FORMAT_MACROS) && !defined(PRId64)
|
|
30
|
+
#error missing -D__STDC_FORMAT_MACROS / #define __STDC_FORMAT_MACROS
|
|
31
|
+
#endif
|
|
32
|
+
|
|
33
|
+
#define AV_TS_MAX_STRING_SIZE 32
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Fill the provided buffer with a string containing a timestamp
|
|
37
|
+
* representation.
|
|
38
|
+
*
|
|
39
|
+
* @param buf a buffer with size in bytes of at least AV_TS_MAX_STRING_SIZE
|
|
40
|
+
* @param ts the timestamp to represent
|
|
41
|
+
* @return the buffer in input
|
|
42
|
+
*/
|
|
43
|
+
static inline char *av_ts_make_string(char *buf, int64_t ts)
|
|
44
|
+
{
|
|
45
|
+
if (ts == AV_NOPTS_VALUE) snprintf(buf, AV_TS_MAX_STRING_SIZE, "NOPTS");
|
|
46
|
+
else snprintf(buf, AV_TS_MAX_STRING_SIZE, "%" PRId64, ts);
|
|
47
|
+
return buf;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Convenience macro, the return value should be used only directly in
|
|
52
|
+
* function arguments but never stand-alone.
|
|
53
|
+
*/
|
|
54
|
+
#define av_ts2str(ts) av_ts_make_string((char[AV_TS_MAX_STRING_SIZE]){0}, ts)
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Fill the provided buffer with a string containing a timestamp time
|
|
58
|
+
* representation.
|
|
59
|
+
*
|
|
60
|
+
* @param buf a buffer with size in bytes of at least AV_TS_MAX_STRING_SIZE
|
|
61
|
+
* @param ts the timestamp to represent
|
|
62
|
+
* @param tb the timebase of the timestamp
|
|
63
|
+
* @return the buffer in input
|
|
64
|
+
*/
|
|
65
|
+
char *av_ts_make_time_string2(char *buf, int64_t ts, AVRational tb);
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Fill the provided buffer with a string containing a timestamp
|
|
69
|
+
* representation.
|
|
70
|
+
*
|
|
71
|
+
* @see av_ts_make_time_string2
|
|
72
|
+
*/
|
|
73
|
+
static inline char *av_ts_make_time_string(char *buf, int64_t ts,
|
|
74
|
+
const AVRational *tb)
|
|
75
|
+
{
|
|
76
|
+
return av_ts_make_time_string2(buf, ts, *tb);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Convenience macro, the return value should be used only directly in
|
|
81
|
+
* function arguments but never stand-alone.
|
|
82
|
+
*/
|
|
83
|
+
#define av_ts2timestr(ts, tb) av_ts_make_time_string((char[AV_TS_MAX_STRING_SIZE]){0}, ts, tb)
|
|
84
|
+
|
|
85
|
+
#endif /* AVUTIL_TIMESTAMP_H */
|