annotate libavutil/internal.h @ 9:ea1ba68cf0ed

update to match api changes + add sscc produced source
author Nina Engelhardt <nengel@mailbox.tu-berlin.de>
date Wed, 05 Jun 2013 14:43:26 +0200
parents
children
rev   line source
nengel@2 1 /*
nengel@2 2 * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
nengel@2 3 *
nengel@2 4 * This file is part of FFmpeg.
nengel@2 5 *
nengel@2 6 * FFmpeg is free software; you can redistribute it and/or
nengel@2 7 * modify it under the terms of the GNU Lesser General Public
nengel@2 8 * License as published by the Free Software Foundation; either
nengel@2 9 * version 2.1 of the License, or (at your option) any later version.
nengel@2 10 *
nengel@2 11 * FFmpeg is distributed in the hope that it will be useful,
nengel@2 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
nengel@2 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
nengel@2 14 * Lesser General Public License for more details.
nengel@2 15 *
nengel@2 16 * You should have received a copy of the GNU Lesser General Public
nengel@2 17 * License along with FFmpeg; if not, write to the Free Software
nengel@2 18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
nengel@2 19 */
nengel@2 20
nengel@2 21 /**
nengel@2 22 * @file
nengel@2 23 * common internal API header
nengel@2 24 */
nengel@2 25
nengel@2 26 #ifndef AVUTIL_INTERNAL_H
nengel@2 27 #define AVUTIL_INTERNAL_H
nengel@2 28
nengel@2 29 #if !defined(DEBUG) && !defined(NDEBUG)
nengel@2 30 # define NDEBUG
nengel@2 31 #endif
nengel@2 32
nengel@2 33 #include <limits.h>
nengel@2 34 #include <stdint.h>
nengel@2 35 #include <stddef.h>
nengel@2 36 #include <assert.h>
nengel@2 37 #include "config.h"
nengel@2 38 #include "attributes.h"
nengel@2 39 #include "timer.h"
nengel@2 40
nengel@2 41
nengel@2 42
nengel@2 43 #ifndef INT16_MIN
nengel@2 44 #define INT16_MIN (-0x7fff - 1)
nengel@2 45 #endif
nengel@2 46
nengel@2 47 #ifndef INT16_MAX
nengel@2 48 #define INT16_MAX 0x7fff
nengel@2 49 #endif
nengel@2 50
nengel@2 51 #ifndef INT32_MIN
nengel@2 52 #define INT32_MIN (-0x7fffffff - 1)
nengel@2 53 #endif
nengel@2 54
nengel@2 55 #ifndef INT32_MAX
nengel@2 56 #define INT32_MAX 0x7fffffff
nengel@2 57 #endif
nengel@2 58
nengel@2 59 #ifndef UINT32_MAX
nengel@2 60 #define UINT32_MAX 0xffffffff
nengel@2 61 #endif
nengel@2 62
nengel@2 63 #ifndef INT64_MIN
nengel@2 64 #define INT64_MIN (-0x7fffffffffffffffLL - 1)
nengel@2 65 #endif
nengel@2 66
nengel@2 67 #ifndef INT64_MAX
nengel@2 68 #define INT64_MAX INT64_C(9223372036854775807)
nengel@2 69 #endif
nengel@2 70
nengel@2 71 #ifndef UINT64_MAX
nengel@2 72 #define UINT64_MAX UINT64_C(0xFFFFFFFFFFFFFFFF)
nengel@2 73 #endif
nengel@2 74
nengel@2 75 #ifndef INT_BIT
nengel@2 76 # define INT_BIT (CHAR_BIT * sizeof(int))
nengel@2 77 #endif
nengel@2 78
nengel@2 79 #ifndef offsetof
nengel@2 80 # define offsetof(T, F) ((unsigned int)((char *)&((T *)0)->F))
nengel@2 81 #endif
nengel@2 82
nengel@2 83 /* Use to export labels from asm. */
nengel@2 84 #define LABEL_MANGLE(a) #a
nengel@2 85 #define LOCAL_MANGLE(a) #a
nengel@2 86 #define MANGLE(a) #a
nengel@2 87
nengel@2 88 // Use rip-relative addressing if compiling PIC code on x86-64.
nengel@2 89 // #if ARCH_X86_64 && defined(PIC)
nengel@2 90 // # define LOCAL_MANGLE(a) #a "(%%rip)"
nengel@2 91 // #else
nengel@2 92 // # define LOCAL_MANGLE(a) #a
nengel@2 93 // #endif
nengel@2 94 //
nengel@2 95 // #define MANGLE(a) EXTERN_PREFIX LOCAL_MANGLE(a)
nengel@2 96
nengel@2 97 /* debug stuff */
nengel@2 98
nengel@2 99 /* dprintf macros */
nengel@2 100 #ifdef DEBUG
nengel@2 101 # define dprintf(pctx, ...) av_log(pctx, AV_LOG_DEBUG, __VA_ARGS__)
nengel@2 102 #else
nengel@2 103 # define dprintf(pctx, ...)
nengel@2 104 #endif
nengel@2 105
nengel@2 106 #define av_abort() do { av_log(NULL, AV_LOG_ERROR, "Abort at %s:%d\n", __FILE__, __LINE__); abort(); } while (0)
nengel@2 107
nengel@2 108 /* math */
nengel@2 109
nengel@2 110
nengel@2 111 /* avoid usage of dangerous/inappropriate system functions */
nengel@2 112 // #undef malloc
nengel@2 113 // #define malloc please_use_av_malloc
nengel@2 114 // #undef free
nengel@2 115 // #define free please_use_av_free
nengel@2 116 #undef realloc
nengel@2 117 #define realloc please_use_av_realloc
nengel@2 118 #undef time
nengel@2 119 #define time time_is_forbidden_due_to_security_issues
nengel@2 120 #undef rand
nengel@2 121 #define rand rand_is_forbidden_due_to_state_trashing_use_av_lfg_get
nengel@2 122 #undef srand
nengel@2 123 #define srand srand_is_forbidden_due_to_state_trashing_use_av_lfg_init
nengel@2 124 #undef random
nengel@2 125 #define random random_is_forbidden_due_to_state_trashing_use_av_lfg_get
nengel@2 126 #undef sprintf
nengel@2 127 #define sprintf sprintf_is_forbidden_due_to_security_issues_use_snprintf
nengel@2 128 //#undef exit
nengel@2 129 //#define exit exit_is_forbidden
nengel@2 130 #ifndef LIBAVFORMAT_BUILD
nengel@2 131
nengel@2 132 #undef puts
nengel@2 133 #define puts please_use_av_log_instead_of_puts
nengel@2 134 #undef perror
nengel@2 135 #define perror please_use_av_log_instead_of_perror
nengel@2 136 #endif
nengel@2 137
nengel@2 138 #define FF_ALLOC_OR_GOTO(p, size, label)\
nengel@2 139 {\
nengel@2 140 p = av_malloc(size);\
nengel@2 141 if (p == NULL && (size) != 0) {\
nengel@2 142 av_log(AV_LOG_ERROR, "Cannot allocate memory.\n");\
nengel@2 143 goto label;\
nengel@2 144 }\
nengel@2 145 }
nengel@2 146
nengel@2 147 #define FF_ALLOCZ_OR_GOTO(p, size, label)\
nengel@2 148 {\
nengel@2 149 p = av_mallocz(size);\
nengel@2 150 if (p == NULL && (size) != 0) {\
nengel@2 151 av_log(AV_LOG_ERROR, "Cannot allocate memory.\n");\
nengel@2 152 goto label;\
nengel@2 153 }\
nengel@2 154 }
nengel@2 155
nengel@2 156
nengel@2 157 /**
nengel@2 158 * Returns NULL if CONFIG_SMALL is true, otherwise the argument
nengel@2 159 * without modification. Used to disable the definition of strings
nengel@2 160 * (for example AVCodec long_names).
nengel@2 161 */
nengel@2 162 #if CONFIG_SMALL
nengel@2 163 # define NULL_IF_CONFIG_SMALL(x) NULL
nengel@2 164 #else
nengel@2 165 # define NULL_IF_CONFIG_SMALL(x) x
nengel@2 166 #endif
nengel@2 167
nengel@2 168 #endif /* AVUTIL_INTERNAL_H */