1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-10-09 16:13:41 +02:00
Files
.builds
.github
cmake-proxies
dox2-src
help
images
include
lib-src
ffmpeg
libavcodec
libavformat
libavutil
adler32.h
aes.h
attributes.h
audio_fifo.h
audioconvert.h
avassert.h
avconfig.h
avstring.h
avutil.h
base64.h
blowfish.h
bprint.h
bswap.h
buffer.h
channel_layout.h
common.h
cpu.h
crc.h
dict.h
downmix_info.h
error.h
eval.h
ffversion.h
fifo.h
file.h
frame.h
hmac.h
imgutils.h
intfloat.h
intfloat_readwrite.h
intreadwrite.h
lfg.h
log.h
lzo.h
macros.h
mathematics.h
md5.h
mem.h
murmur3.h
old_pix_fmts.h
opencl.h
opt.h
parseutils.h
pixdesc.h
pixfmt.h
random_seed.h
rational.h
ripemd.h
samplefmt.h
sha.h
sha512.h
stereo3d.h
time.h
timecode.h
timestamp.h
version.h
xtea.h
header-substitutes
libflac
libnyquist
libogg
libsbsms
libscorealign
libsndfile
libsoxr
libvamp
libvorbis
lv2
portaudio-v19
portburn
portmidi
portmixer
portsmf
soundtouch
sqlite
twolame
audacity-patches.txt
libraries
linux
locale
mac
modules
nyq-po
nyquist
plug-ins
presets
qa
scripts
src
tests
win
.editorconfig
.gitattributes
.gitignore
.weblate
3RDPARTY.txt
ABOUT-NLS
BUILDING.md
CMAKE_OPTIONS.md
CMakeLists.txt
CODE_OF_CONDUCT.md
CONTRIBUTING.md
LICENSE.txt
README.md
audacity.dox
audacity.dox.in
nographs.dox
audacity/lib-src/ffmpeg/libavutil/attributes.h
Leland Lucius 95bcb08b4b Revert "Cleanup and update FFmpeg support to v4.3.1 ()"
Removing until a decision is made on how to handle the required
library upgrade.
2021-05-10 10:33:01 -05:00

161 lines
4.1 KiB
C

/*
* copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
/**
* @file
* Macro definitions for various function/variable attributes
*/
#ifndef AVUTIL_ATTRIBUTES_H
#define AVUTIL_ATTRIBUTES_H
#ifdef __GNUC__
# define AV_GCC_VERSION_AT_LEAST(x,y) (__GNUC__ > x || __GNUC__ == x && __GNUC_MINOR__ >= y)
#else
# define AV_GCC_VERSION_AT_LEAST(x,y) 0
#endif
#ifndef av_always_inline
#if AV_GCC_VERSION_AT_LEAST(3,1)
# define av_always_inline __attribute__((always_inline)) inline
#elif defined(_MSC_VER)
# define av_always_inline __forceinline
#else
# define av_always_inline inline
#endif
#endif
#ifndef av_extern_inline
#if defined(__ICL) && __ICL >= 1210 || defined(__GNUC_STDC_INLINE__)
# define av_extern_inline extern inline
#else
# define av_extern_inline inline
#endif
#endif
#if AV_GCC_VERSION_AT_LEAST(3,1)
# define av_noinline __attribute__((noinline))
#elif defined(_MSC_VER)
# define av_noinline __declspec(noinline)
#else
# define av_noinline
#endif
#if AV_GCC_VERSION_AT_LEAST(3,1)
# define av_pure __attribute__((pure))
#else
# define av_pure
#endif
#if AV_GCC_VERSION_AT_LEAST(2,6)
# define av_const __attribute__((const))
#else
# define av_const
#endif
#if AV_GCC_VERSION_AT_LEAST(4,3)
# define av_cold __attribute__((cold))
#else
# define av_cold
#endif
#if AV_GCC_VERSION_AT_LEAST(4,1) && !defined(__llvm__)
# define av_flatten __attribute__((flatten))
#else
# define av_flatten
#endif
#if AV_GCC_VERSION_AT_LEAST(3,1)
# define attribute_deprecated __attribute__((deprecated))
#elif defined(_MSC_VER)
# define attribute_deprecated __declspec(deprecated)
#else
# define attribute_deprecated
#endif
/**
* Disable warnings about deprecated features
* This is useful for sections of code kept for backward compatibility and
* scheduled for removal.
*/
#ifndef AV_NOWARN_DEPRECATED
#if AV_GCC_VERSION_AT_LEAST(4,6)
# define AV_NOWARN_DEPRECATED(code) \
_Pragma("GCC diagnostic push") \
_Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \
code \
_Pragma("GCC diagnostic pop")
#elif defined(_MSC_VER)
# define AV_NOWARN_DEPRECATED(code) \
__pragma(warning(push)) \
__pragma(warning(disable : 4996)) \
code; \
__pragma(warning(pop))
#else
# define AV_NOWARN_DEPRECATED(code) code
#endif
#endif
#if defined(__GNUC__)
# define av_unused __attribute__((unused))
#else
# define av_unused
#endif
/**
* Mark a variable as used and prevent the compiler from optimizing it
* away. This is useful for variables accessed only from inline
* assembler without the compiler being aware.
*/
#if AV_GCC_VERSION_AT_LEAST(3,1)
# define av_used __attribute__((used))
#else
# define av_used
#endif
#if AV_GCC_VERSION_AT_LEAST(3,3)
# define av_alias __attribute__((may_alias))
#else
# define av_alias
#endif
#if defined(__GNUC__) && !defined(__INTEL_COMPILER) && !defined(__clang__)
# define av_uninit(x) x=x
#else
# define av_uninit(x) x
#endif
#ifdef __GNUC__
# define av_builtin_constant_p __builtin_constant_p
# define av_printf_format(fmtpos, attrpos) __attribute__((__format__(__printf__, fmtpos, attrpos)))
#else
# define av_builtin_constant_p(x) 0
# define av_printf_format(fmtpos, attrpos)
#endif
#if AV_GCC_VERSION_AT_LEAST(2,5)
# define av_noreturn __attribute__((noreturn))
#else
# define av_noreturn
#endif
#endif /* AVUTIL_ATTRIBUTES_H */