Mercurial > cgi-bin > hgwebdir.cgi > PR > Applications > VSs > VSs__H264__App
changeset 10:4d1f82230449 tip
preprocessed source from newer mercurial ver.
| author | Nina Engelhardt <nengel@mailbox.tu-berlin.de> |
|---|---|
| date | Tue, 13 Aug 2013 13:12:57 +0200 |
| parents | ea1ba68cf0ed |
| children | |
| files | libavcodec/sscc_h264_ompss.c |
| diffstat | 1 files changed, 3785 insertions(+), 8169 deletions(-) [+] |
line diff
1.1 --- a/libavcodec/sscc_h264_ompss.c Wed Jun 05 14:43:26 2013 +0200 1.2 +++ b/libavcodec/sscc_h264_ompss.c Tue Aug 13 13:12:57 2013 +0200 1.3 @@ -1,8547 +1,4163 @@ 1.4 -const char *__nanos_family __attribute__((weak)) = "master"; 1.5 -int __nanos_version __attribute__((weak)) = 5015; 1.6 -int __mcc_master __attribute__((weak)) = 5015; 1.7 -int __mcc_openmp __attribute__((weak)) = 5; 1.8 -int __mcc_trunk __attribute__((weak)) = 399; 1.9 -int __mcc_worksharing __attribute__((weak)) = 1000; 1.10 -typedef unsigned char __u_char; 1.11 -typedef unsigned short int __u_short; 1.12 -typedef unsigned int __u_int; 1.13 -typedef unsigned long int __u_long; 1.14 -typedef signed char __int8_t; 1.15 -typedef unsigned char __uint8_t; 1.16 -typedef signed short int __int16_t; 1.17 -typedef unsigned short int __uint16_t; 1.18 -typedef signed int __int32_t; 1.19 -typedef unsigned int __uint32_t; 1.20 -typedef signed long int __int64_t; 1.21 -typedef unsigned long int __uint64_t; 1.22 -typedef long int __quad_t; 1.23 -typedef unsigned long int __u_quad_t; 1.24 -typedef unsigned long int __dev_t; 1.25 -typedef unsigned int __uid_t; 1.26 -typedef unsigned int __gid_t; 1.27 -typedef unsigned long int __ino_t; 1.28 -typedef unsigned long int __ino64_t; 1.29 -typedef unsigned int __mode_t; 1.30 -typedef unsigned long int __nlink_t; 1.31 -typedef long int __off_t; 1.32 -typedef long int __off64_t; 1.33 -typedef int __pid_t; 1.34 -typedef struct 1.35 +typedef unsigned int uint32_t; 1.36 +static __inline __attribute__((always_inline)) uint32_t pack16to32(int a, int b) 1.37 { 1.38 - int __val[2]; 1.39 -} __fsid_t; 1.40 -typedef long int __clock_t; 1.41 -typedef unsigned long int __rlim_t; 1.42 -typedef unsigned long int __rlim64_t; 1.43 -typedef unsigned int __id_t; 1.44 -typedef long int __time_t; 1.45 -typedef unsigned int __useconds_t; 1.46 -typedef long int __suseconds_t; 1.47 -typedef int __daddr_t; 1.48 -typedef long int __swblk_t; 1.49 -typedef int __key_t; 1.50 -typedef int __clockid_t; 1.51 -typedef void *__timer_t; 1.52 -typedef long int __blksize_t; 1.53 -typedef long int __blkcnt_t; 1.54 -typedef long int __blkcnt64_t; 1.55 -typedef unsigned long int __fsblkcnt_t; 1.56 -typedef unsigned long int __fsblkcnt64_t; 1.57 -typedef unsigned long int __fsfilcnt_t; 1.58 -typedef unsigned long int __fsfilcnt64_t; 1.59 -typedef long int __ssize_t; 1.60 -typedef __off64_t __loff_t; 1.61 -typedef __quad_t *__qaddr_t; 1.62 -typedef char *__caddr_t; 1.63 -typedef long int __intptr_t; 1.64 -typedef unsigned int __socklen_t; 1.65 -typedef __ssize_t ssize_t; 1.66 -typedef long unsigned int size_t; 1.67 -typedef __gid_t gid_t; 1.68 -typedef __uid_t uid_t; 1.69 -typedef __off_t off_t; 1.70 -typedef __useconds_t useconds_t; 1.71 -typedef __pid_t pid_t; 1.72 -typedef __intptr_t intptr_t; 1.73 -typedef __socklen_t socklen_t; 1.74 -extern int access(__const char *__name, int __type) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.75 -extern int faccessat(int __fd, __const char *__file, int __type, int __flag) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))) __attribute__((__warn_unused_result__)); 1.76 -extern __off_t lseek(int __fd, __off_t __offset, int __whence) __attribute__((__nothrow__, __leaf__)); 1.77 -extern int close(int __fd); 1.78 -extern ssize_t read(int __fd, void *__buf, size_t __nbytes) __attribute__((__warn_unused_result__)); 1.79 -extern ssize_t write(int __fd, __const void *__buf, size_t __n) __attribute__((__warn_unused_result__)); 1.80 -extern ssize_t pread(int __fd, void *__buf, size_t __nbytes, __off_t __offset) __attribute__((__warn_unused_result__)); 1.81 -extern ssize_t pwrite(int __fd, __const void *__buf, size_t __n, __off_t __offset) __attribute__((__warn_unused_result__)); 1.82 -extern int pipe(int __pipedes[2]) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.83 -extern unsigned int alarm(unsigned int __seconds) __attribute__((__nothrow__, __leaf__)); 1.84 -extern unsigned int sleep(unsigned int __seconds); 1.85 -extern __useconds_t ualarm(__useconds_t __value, __useconds_t __interval) __attribute__((__nothrow__, __leaf__)); 1.86 -extern int usleep(__useconds_t __useconds); 1.87 -extern int pause(void); 1.88 -extern int chown(__const char *__file, __uid_t __owner, __gid_t __group) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.89 -extern int fchown(int __fd, __uid_t __owner, __gid_t __group) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.90 -extern int lchown(__const char *__file, __uid_t __owner, __gid_t __group) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.91 -extern int fchownat(int __fd, __const char *__file, __uid_t __owner, __gid_t __group, int __flag) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))) __attribute__((__warn_unused_result__)); 1.92 -extern int chdir(__const char *__path) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.93 -extern int fchdir(int __fd) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.94 -extern char *getcwd(char *__buf, size_t __size) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.95 -extern char *getwd(char *__buf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__deprecated__)) __attribute__((__warn_unused_result__)); 1.96 -extern int dup(int __fd) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.97 -extern int dup2(int __fd, int __fd2) __attribute__((__nothrow__, __leaf__)); 1.98 -extern char **__environ; 1.99 -extern int execve(__const char *__path, char *__const __argv[], char *__const __envp[]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.100 -extern int fexecve(int __fd, char *__const __argv[], char *__const __envp[]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.101 -extern int execv(__const char *__path, char *__const __argv[]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.102 -extern int execle(__const char *__path, __const char *__arg, ...) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.103 -extern int execl(__const char *__path, __const char *__arg, ...) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.104 -extern int execvp(__const char *__file, char *__const __argv[]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.105 -extern int execlp(__const char *__file, __const char *__arg, ...) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.106 -extern int nice(int __inc) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.107 -extern void _exit(int __status) __attribute__((__noreturn__)); 1.108 -enum 1.109 + return (a & 65535) + (b << 16); 1.110 +} 1.111 +typedef unsigned short int uint16_t; 1.112 +static __inline __attribute__((always_inline)) uint16_t pack8to16(int a, int b) 1.113 { 1.114 - _PC_LINK_MAX, 1.115 - _PC_MAX_CANON, 1.116 - _PC_MAX_INPUT, 1.117 - _PC_NAME_MAX, 1.118 - _PC_PATH_MAX, 1.119 - _PC_PIPE_BUF, 1.120 - _PC_CHOWN_RESTRICTED, 1.121 - _PC_NO_TRUNC, 1.122 - _PC_VDISABLE, 1.123 - _PC_SYNC_IO, 1.124 - _PC_ASYNC_IO, 1.125 - _PC_PRIO_IO, 1.126 - _PC_SOCK_MAXBUF, 1.127 - _PC_FILESIZEBITS, 1.128 - _PC_REC_INCR_XFER_SIZE, 1.129 - _PC_REC_MAX_XFER_SIZE, 1.130 - _PC_REC_MIN_XFER_SIZE, 1.131 - _PC_REC_XFER_ALIGN, 1.132 - _PC_ALLOC_SIZE_MIN, 1.133 - _PC_SYMLINK_MAX, 1.134 - _PC_2_SYMLINKS 1.135 + return (a & 255) + (b << 8); 1.136 +} 1.137 +struct CABACContext; 1.138 +typedef struct CABACContext CABACContext; 1.139 +typedef unsigned char uint8_t; 1.140 +struct CABACContext 1.141 +{ 1.142 + int low; 1.143 + int range; 1.144 + int outstanding_count; 1.145 + const uint8_t *bytestream_start; 1.146 + const uint8_t *bytestream; 1.147 + const uint8_t *bytestream_end; 1.148 + uint8_t cabac_state[460]; 1.149 }; 1.150 -enum 1.151 +static void refill(CABACContext *c) 1.152 { 1.153 - _SC_ARG_MAX, 1.154 - _SC_CHILD_MAX, 1.155 - _SC_CLK_TCK, 1.156 - _SC_NGROUPS_MAX, 1.157 - _SC_OPEN_MAX, 1.158 - _SC_STREAM_MAX, 1.159 - _SC_TZNAME_MAX, 1.160 - _SC_JOB_CONTROL, 1.161 - _SC_SAVED_IDS, 1.162 - _SC_REALTIME_SIGNALS, 1.163 - _SC_PRIORITY_SCHEDULING, 1.164 - _SC_TIMERS, 1.165 - _SC_ASYNCHRONOUS_IO, 1.166 - _SC_PRIORITIZED_IO, 1.167 - _SC_SYNCHRONIZED_IO, 1.168 - _SC_FSYNC, 1.169 - _SC_MAPPED_FILES, 1.170 - _SC_MEMLOCK, 1.171 - _SC_MEMLOCK_RANGE, 1.172 - _SC_MEMORY_PROTECTION, 1.173 - _SC_MESSAGE_PASSING, 1.174 - _SC_SEMAPHORES, 1.175 - _SC_SHARED_MEMORY_OBJECTS, 1.176 - _SC_AIO_LISTIO_MAX, 1.177 - _SC_AIO_MAX, 1.178 - _SC_AIO_PRIO_DELTA_MAX, 1.179 - _SC_DELAYTIMER_MAX, 1.180 - _SC_MQ_OPEN_MAX, 1.181 - _SC_MQ_PRIO_MAX, 1.182 - _SC_VERSION, 1.183 - _SC_PAGESIZE, 1.184 - _SC_RTSIG_MAX, 1.185 - _SC_SEM_NSEMS_MAX, 1.186 - _SC_SEM_VALUE_MAX, 1.187 - _SC_SIGQUEUE_MAX, 1.188 - _SC_TIMER_MAX, 1.189 - _SC_BC_BASE_MAX, 1.190 - _SC_BC_DIM_MAX, 1.191 - _SC_BC_SCALE_MAX, 1.192 - _SC_BC_STRING_MAX, 1.193 - _SC_COLL_WEIGHTS_MAX, 1.194 - _SC_EQUIV_CLASS_MAX, 1.195 - _SC_EXPR_NEST_MAX, 1.196 - _SC_LINE_MAX, 1.197 - _SC_RE_DUP_MAX, 1.198 - _SC_CHARCLASS_NAME_MAX, 1.199 - _SC_2_VERSION, 1.200 - _SC_2_C_BIND, 1.201 - _SC_2_C_DEV, 1.202 - _SC_2_FORT_DEV, 1.203 - _SC_2_FORT_RUN, 1.204 - _SC_2_SW_DEV, 1.205 - _SC_2_LOCALEDEF, 1.206 - _SC_PII, 1.207 - _SC_PII_XTI, 1.208 - _SC_PII_SOCKET, 1.209 - _SC_PII_INTERNET, 1.210 - _SC_PII_OSI, 1.211 - _SC_POLL, 1.212 - _SC_SELECT, 1.213 - _SC_UIO_MAXIOV, 1.214 - _SC_IOV_MAX = _SC_UIO_MAXIOV, 1.215 - _SC_PII_INTERNET_STREAM, 1.216 - _SC_PII_INTERNET_DGRAM, 1.217 - _SC_PII_OSI_COTS, 1.218 - _SC_PII_OSI_CLTS, 1.219 - _SC_PII_OSI_M, 1.220 - _SC_T_IOV_MAX, 1.221 - _SC_THREADS, 1.222 - _SC_THREAD_SAFE_FUNCTIONS, 1.223 - _SC_GETGR_R_SIZE_MAX, 1.224 - _SC_GETPW_R_SIZE_MAX, 1.225 - _SC_LOGIN_NAME_MAX, 1.226 - _SC_TTY_NAME_MAX, 1.227 - _SC_THREAD_DESTRUCTOR_ITERATIONS, 1.228 - _SC_THREAD_KEYS_MAX, 1.229 - _SC_THREAD_STACK_MIN, 1.230 - _SC_THREAD_THREADS_MAX, 1.231 - _SC_THREAD_ATTR_STACKADDR, 1.232 - _SC_THREAD_ATTR_STACKSIZE, 1.233 - _SC_THREAD_PRIORITY_SCHEDULING, 1.234 - _SC_THREAD_PRIO_INHERIT, 1.235 - _SC_THREAD_PRIO_PROTECT, 1.236 - _SC_THREAD_PROCESS_SHARED, 1.237 - _SC_NPROCESSORS_CONF, 1.238 - _SC_NPROCESSORS_ONLN, 1.239 - _SC_PHYS_PAGES, 1.240 - _SC_AVPHYS_PAGES, 1.241 - _SC_ATEXIT_MAX, 1.242 - _SC_PASS_MAX, 1.243 - _SC_XOPEN_VERSION, 1.244 - _SC_XOPEN_XCU_VERSION, 1.245 - _SC_XOPEN_UNIX, 1.246 - _SC_XOPEN_CRYPT, 1.247 - _SC_XOPEN_ENH_I18N, 1.248 - _SC_XOPEN_SHM, 1.249 - _SC_2_CHAR_TERM, 1.250 - _SC_2_C_VERSION, 1.251 - _SC_2_UPE, 1.252 - _SC_XOPEN_XPG2, 1.253 - _SC_XOPEN_XPG3, 1.254 - _SC_XOPEN_XPG4, 1.255 - _SC_CHAR_BIT, 1.256 - _SC_CHAR_MAX, 1.257 - _SC_CHAR_MIN, 1.258 - _SC_INT_MAX, 1.259 - _SC_INT_MIN, 1.260 - _SC_LONG_BIT, 1.261 - _SC_WORD_BIT, 1.262 - _SC_MB_LEN_MAX, 1.263 - _SC_NZERO, 1.264 - _SC_SSIZE_MAX, 1.265 - _SC_SCHAR_MAX, 1.266 - _SC_SCHAR_MIN, 1.267 - _SC_SHRT_MAX, 1.268 - _SC_SHRT_MIN, 1.269 - _SC_UCHAR_MAX, 1.270 - _SC_UINT_MAX, 1.271 - _SC_ULONG_MAX, 1.272 - _SC_USHRT_MAX, 1.273 - _SC_NL_ARGMAX, 1.274 - _SC_NL_LANGMAX, 1.275 - _SC_NL_MSGMAX, 1.276 - _SC_NL_NMAX, 1.277 - _SC_NL_SETMAX, 1.278 - _SC_NL_TEXTMAX, 1.279 - _SC_XBS5_ILP32_OFF32, 1.280 - _SC_XBS5_ILP32_OFFBIG, 1.281 - _SC_XBS5_LP64_OFF64, 1.282 - _SC_XBS5_LPBIG_OFFBIG, 1.283 - _SC_XOPEN_LEGACY, 1.284 - _SC_XOPEN_REALTIME, 1.285 - _SC_XOPEN_REALTIME_THREADS, 1.286 - _SC_ADVISORY_INFO, 1.287 - _SC_BARRIERS, 1.288 - _SC_BASE, 1.289 - _SC_C_LANG_SUPPORT, 1.290 - _SC_C_LANG_SUPPORT_R, 1.291 - _SC_CLOCK_SELECTION, 1.292 - _SC_CPUTIME, 1.293 - _SC_THREAD_CPUTIME, 1.294 - _SC_DEVICE_IO, 1.295 - _SC_DEVICE_SPECIFIC, 1.296 - _SC_DEVICE_SPECIFIC_R, 1.297 - _SC_FD_MGMT, 1.298 - _SC_FIFO, 1.299 - _SC_PIPE, 1.300 - _SC_FILE_ATTRIBUTES, 1.301 - _SC_FILE_LOCKING, 1.302 - _SC_FILE_SYSTEM, 1.303 - _SC_MONOTONIC_CLOCK, 1.304 - _SC_MULTI_PROCESS, 1.305 - _SC_SINGLE_PROCESS, 1.306 - _SC_NETWORKING, 1.307 - _SC_READER_WRITER_LOCKS, 1.308 - _SC_SPIN_LOCKS, 1.309 - _SC_REGEXP, 1.310 - _SC_REGEX_VERSION, 1.311 - _SC_SHELL, 1.312 - _SC_SIGNALS, 1.313 - _SC_SPAWN, 1.314 - _SC_SPORADIC_SERVER, 1.315 - _SC_THREAD_SPORADIC_SERVER, 1.316 - _SC_SYSTEM_DATABASE, 1.317 - _SC_SYSTEM_DATABASE_R, 1.318 - _SC_TIMEOUTS, 1.319 - _SC_TYPED_MEMORY_OBJECTS, 1.320 - _SC_USER_GROUPS, 1.321 - _SC_USER_GROUPS_R, 1.322 - _SC_2_PBS, 1.323 - _SC_2_PBS_ACCOUNTING, 1.324 - _SC_2_PBS_LOCATE, 1.325 - _SC_2_PBS_MESSAGE, 1.326 - _SC_2_PBS_TRACK, 1.327 - _SC_SYMLOOP_MAX, 1.328 - _SC_STREAMS, 1.329 - _SC_2_PBS_CHECKPOINT, 1.330 - _SC_V6_ILP32_OFF32, 1.331 - _SC_V6_ILP32_OFFBIG, 1.332 - _SC_V6_LP64_OFF64, 1.333 - _SC_V6_LPBIG_OFFBIG, 1.334 - _SC_HOST_NAME_MAX, 1.335 - _SC_TRACE, 1.336 - _SC_TRACE_EVENT_FILTER, 1.337 - _SC_TRACE_INHERIT, 1.338 - _SC_TRACE_LOG, 1.339 - _SC_LEVEL1_ICACHE_SIZE, 1.340 - _SC_LEVEL1_ICACHE_ASSOC, 1.341 - _SC_LEVEL1_ICACHE_LINESIZE, 1.342 - _SC_LEVEL1_DCACHE_SIZE, 1.343 - _SC_LEVEL1_DCACHE_ASSOC, 1.344 - _SC_LEVEL1_DCACHE_LINESIZE, 1.345 - _SC_LEVEL2_CACHE_SIZE, 1.346 - _SC_LEVEL2_CACHE_ASSOC, 1.347 - _SC_LEVEL2_CACHE_LINESIZE, 1.348 - _SC_LEVEL3_CACHE_SIZE, 1.349 - _SC_LEVEL3_CACHE_ASSOC, 1.350 - _SC_LEVEL3_CACHE_LINESIZE, 1.351 - _SC_LEVEL4_CACHE_SIZE, 1.352 - _SC_LEVEL4_CACHE_ASSOC, 1.353 - _SC_LEVEL4_CACHE_LINESIZE, 1.354 - _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50, 1.355 - _SC_RAW_SOCKETS, 1.356 - _SC_V7_ILP32_OFF32, 1.357 - _SC_V7_ILP32_OFFBIG, 1.358 - _SC_V7_LP64_OFF64, 1.359 - _SC_V7_LPBIG_OFFBIG, 1.360 - _SC_SS_REPL_MAX, 1.361 - _SC_TRACE_EVENT_NAME_MAX, 1.362 - _SC_TRACE_NAME_MAX, 1.363 - _SC_TRACE_SYS_MAX, 1.364 - _SC_TRACE_USER_EVENT_MAX, 1.365 - _SC_XOPEN_STREAMS, 1.366 - _SC_THREAD_ROBUST_PRIO_INHERIT, 1.367 - _SC_THREAD_ROBUST_PRIO_PROTECT 1.368 -}; 1.369 -enum 1.370 + (*c).low += ((*c).bytestream[0] << 9) + ((*c).bytestream[1] << 1); 1.371 + (*c).low -= (1 << 16) - 1; 1.372 + (*c).bytestream += 16 / 8; 1.373 +} 1.374 +extern const uint8_t ff_h264_norm_shift[512]; 1.375 +static void refill2(CABACContext *c) 1.376 { 1.377 - _CS_PATH, 1.378 - _CS_V6_WIDTH_RESTRICTED_ENVS, 1.379 - _CS_GNU_LIBC_VERSION, 1.380 - _CS_GNU_LIBPTHREAD_VERSION, 1.381 - _CS_V5_WIDTH_RESTRICTED_ENVS, 1.382 - _CS_V7_WIDTH_RESTRICTED_ENVS, 1.383 - _CS_LFS_CFLAGS = 1000, 1.384 - _CS_LFS_LDFLAGS, 1.385 - _CS_LFS_LIBS, 1.386 - _CS_LFS_LINTFLAGS, 1.387 - _CS_LFS64_CFLAGS, 1.388 - _CS_LFS64_LDFLAGS, 1.389 - _CS_LFS64_LIBS, 1.390 - _CS_LFS64_LINTFLAGS, 1.391 - _CS_XBS5_ILP32_OFF32_CFLAGS = 1100, 1.392 - _CS_XBS5_ILP32_OFF32_LDFLAGS, 1.393 - _CS_XBS5_ILP32_OFF32_LIBS, 1.394 - _CS_XBS5_ILP32_OFF32_LINTFLAGS, 1.395 - _CS_XBS5_ILP32_OFFBIG_CFLAGS, 1.396 - _CS_XBS5_ILP32_OFFBIG_LDFLAGS, 1.397 - _CS_XBS5_ILP32_OFFBIG_LIBS, 1.398 - _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, 1.399 - _CS_XBS5_LP64_OFF64_CFLAGS, 1.400 - _CS_XBS5_LP64_OFF64_LDFLAGS, 1.401 - _CS_XBS5_LP64_OFF64_LIBS, 1.402 - _CS_XBS5_LP64_OFF64_LINTFLAGS, 1.403 - _CS_XBS5_LPBIG_OFFBIG_CFLAGS, 1.404 - _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, 1.405 - _CS_XBS5_LPBIG_OFFBIG_LIBS, 1.406 - _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, 1.407 - _CS_POSIX_V6_ILP32_OFF32_CFLAGS, 1.408 - _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, 1.409 - _CS_POSIX_V6_ILP32_OFF32_LIBS, 1.410 - _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, 1.411 - _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, 1.412 - _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, 1.413 - _CS_POSIX_V6_ILP32_OFFBIG_LIBS, 1.414 - _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, 1.415 - _CS_POSIX_V6_LP64_OFF64_CFLAGS, 1.416 - _CS_POSIX_V6_LP64_OFF64_LDFLAGS, 1.417 - _CS_POSIX_V6_LP64_OFF64_LIBS, 1.418 - _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, 1.419 - _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, 1.420 - _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, 1.421 - _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, 1.422 - _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS, 1.423 - _CS_POSIX_V7_ILP32_OFF32_CFLAGS, 1.424 - _CS_POSIX_V7_ILP32_OFF32_LDFLAGS, 1.425 - _CS_POSIX_V7_ILP32_OFF32_LIBS, 1.426 - _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS, 1.427 - _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS, 1.428 - _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS, 1.429 - _CS_POSIX_V7_ILP32_OFFBIG_LIBS, 1.430 - _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS, 1.431 - _CS_POSIX_V7_LP64_OFF64_CFLAGS, 1.432 - _CS_POSIX_V7_LP64_OFF64_LDFLAGS, 1.433 - _CS_POSIX_V7_LP64_OFF64_LIBS, 1.434 - _CS_POSIX_V7_LP64_OFF64_LINTFLAGS, 1.435 - _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS, 1.436 - _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS, 1.437 - _CS_POSIX_V7_LPBIG_OFFBIG_LIBS, 1.438 - _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS, 1.439 - _CS_V6_ENV, 1.440 - _CS_V7_ENV 1.441 -}; 1.442 -extern long int pathconf(__const char *__path, int __name) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.443 -extern long int fpathconf(int __fd, int __name) __attribute__((__nothrow__, __leaf__)); 1.444 -extern long int sysconf(int __name) __attribute__((__nothrow__, __leaf__)); 1.445 -extern size_t confstr(int __name, char *__buf, size_t __len) __attribute__((__nothrow__, __leaf__)); 1.446 -extern __pid_t getpid(void) __attribute__((__nothrow__, __leaf__)); 1.447 -extern __pid_t getppid(void) __attribute__((__nothrow__, __leaf__)); 1.448 -extern __pid_t getpgrp(void) __attribute__((__nothrow__, __leaf__)); 1.449 -extern __pid_t __getpgid(__pid_t __pid) __attribute__((__nothrow__, __leaf__)); 1.450 -extern __pid_t getpgid(__pid_t __pid) __attribute__((__nothrow__, __leaf__)); 1.451 -extern int setpgid(__pid_t __pid, __pid_t __pgid) __attribute__((__nothrow__, __leaf__)); 1.452 -extern int setpgrp(void) __attribute__((__nothrow__, __leaf__)); 1.453 -extern __pid_t setsid(void) __attribute__((__nothrow__, __leaf__)); 1.454 -extern __pid_t getsid(__pid_t __pid) __attribute__((__nothrow__, __leaf__)); 1.455 -extern __uid_t getuid(void) __attribute__((__nothrow__, __leaf__)); 1.456 -extern __uid_t geteuid(void) __attribute__((__nothrow__, __leaf__)); 1.457 -extern __gid_t getgid(void) __attribute__((__nothrow__, __leaf__)); 1.458 -extern __gid_t getegid(void) __attribute__((__nothrow__, __leaf__)); 1.459 -extern int getgroups(int __size, __gid_t __list[]) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.460 -extern int setuid(__uid_t __uid) __attribute__((__nothrow__, __leaf__)); 1.461 -extern int setreuid(__uid_t __ruid, __uid_t __euid) __attribute__((__nothrow__, __leaf__)); 1.462 -extern int seteuid(__uid_t __uid) __attribute__((__nothrow__, __leaf__)); 1.463 -extern int setgid(__gid_t __gid) __attribute__((__nothrow__, __leaf__)); 1.464 -extern int setregid(__gid_t __rgid, __gid_t __egid) __attribute__((__nothrow__, __leaf__)); 1.465 -extern int setegid(__gid_t __gid) __attribute__((__nothrow__, __leaf__)); 1.466 -extern __pid_t fork(void) __attribute__((__nothrow__)); 1.467 -extern __pid_t vfork(void) __attribute__((__nothrow__, __leaf__)); 1.468 -extern char *ttyname(int __fd) __attribute__((__nothrow__, __leaf__)); 1.469 -extern int ttyname_r(int __fd, char *__buf, size_t __buflen) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))) __attribute__((__warn_unused_result__)); 1.470 -extern int isatty(int __fd) __attribute__((__nothrow__, __leaf__)); 1.471 -extern int ttyslot(void) __attribute__((__nothrow__, __leaf__)); 1.472 -extern int link(__const char *__from, __const char *__to) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))) __attribute__((__warn_unused_result__)); 1.473 -extern int linkat(int __fromfd, __const char *__from, int __tofd, __const char *__to, int __flags) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 4))) __attribute__((__warn_unused_result__)); 1.474 -extern int symlink(__const char *__from, __const char *__to) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))) __attribute__((__warn_unused_result__)); 1.475 -extern ssize_t readlink(__const char *__restrict __path, char *__restrict __buf, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))) __attribute__((__warn_unused_result__)); 1.476 -extern int symlinkat(__const char *__from, int __tofd, __const char *__to) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 3))) __attribute__((__warn_unused_result__)); 1.477 -extern ssize_t readlinkat(int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 3))) __attribute__((__warn_unused_result__)); 1.478 -extern int unlink(__const char *__name) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.479 -extern int unlinkat(int __fd, __const char *__name, int __flag) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.480 -extern int rmdir(__const char *__path) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.481 -extern __pid_t tcgetpgrp(int __fd) __attribute__((__nothrow__, __leaf__)); 1.482 -extern int tcsetpgrp(int __fd, __pid_t __pgrp_id) __attribute__((__nothrow__, __leaf__)); 1.483 -extern char *getlogin(void); 1.484 -extern int getlogin_r(char *__name, size_t __name_len) __attribute__((__nonnull__(1))); 1.485 -extern int setlogin(__const char *__name) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.486 -extern char *optarg; 1.487 -extern int optind; 1.488 -extern int opterr; 1.489 -extern int optopt; 1.490 -extern int getopt(int ___argc, char *const *___argv, const char *__shortopts) __attribute__((__nothrow__, __leaf__)); 1.491 -extern int gethostname(char *__name, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.492 -extern int sethostname(__const char *__name, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.493 -extern int sethostid(long int __id) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.494 -extern int getdomainname(char *__name, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.495 -extern int setdomainname(__const char *__name, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.496 -extern int vhangup(void) __attribute__((__nothrow__, __leaf__)); 1.497 -extern int revoke(__const char *__file) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.498 -extern int profil(unsigned short int *__sample_buffer, size_t __size, size_t __offset, unsigned int __scale) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.499 -extern int acct(__const char *__name) __attribute__((__nothrow__, __leaf__)); 1.500 -extern char *getusershell(void) __attribute__((__nothrow__, __leaf__)); 1.501 -extern void endusershell(void) __attribute__((__nothrow__, __leaf__)); 1.502 -extern void setusershell(void) __attribute__((__nothrow__, __leaf__)); 1.503 -extern int daemon(int __nochdir, int __noclose) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.504 -extern int chroot(__const char *__path) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.505 -extern char *getpass(__const char *__prompt) __attribute__((__nonnull__(1))); 1.506 -extern int fsync(int __fd); 1.507 -extern long int gethostid(void); 1.508 -extern void sync(void) __attribute__((__nothrow__, __leaf__)); 1.509 -extern int getpagesize(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.510 -extern int getdtablesize(void) __attribute__((__nothrow__, __leaf__)); 1.511 -extern int truncate(__const char *__file, __off_t __length) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.512 -extern int ftruncate(int __fd, __off_t __length) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.513 -extern int brk(void *__addr) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.514 -extern void *sbrk(intptr_t __delta) __attribute__((__nothrow__, __leaf__)); 1.515 -extern long int syscall(long int __sysno, ...) __attribute__((__nothrow__, __leaf__)); 1.516 -extern int lockf(int __fd, int __cmd, __off_t __len) __attribute__((__warn_unused_result__)); 1.517 -extern int fdatasync(int __fildes); 1.518 -extern char *ctermid(char *__s) __attribute__((__nothrow__, __leaf__)); 1.519 -extern ssize_t __read_chk(int __fd, void *__buf, size_t __nbytes, size_t __buflen) __attribute__((__warn_unused_result__)); 1.520 -extern ssize_t __read_alias(int __fd, void *__buf, size_t __nbytes) __asm__ ("""read") __attribute__((__warn_unused_result__)); 1.521 -extern ssize_t __read_chk_warn(int __fd, void *__buf, size_t __nbytes, size_t __buflen) __asm__ ("""__read_chk") __attribute__((__warn_unused_result__)) __attribute__((__warning__("read called with bigger length than size of ""the destination buffer"))); 1.522 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) ssize_t read(int __fd, void *__buf, size_t __nbytes) 1.523 + int x; 1.524 + int i; 1.525 + x = (*c).low ^ ((*c).low - 1); 1.526 + i = 7 - ff_h264_norm_shift[x >> (16 - 1)]; 1.527 + x = -((1 << 16) - 1); 1.528 + x += ((*c).bytestream[0] << 9) + ((*c).bytestream[1] << 1); 1.529 + (*c).low += x << i; 1.530 + (*c).bytestream += 16 / 8; 1.531 +} 1.532 +static __inline void renorm_cabac_decoder(CABACContext *c) 1.533 { 1.534 - if (__builtin_object_size(__buf, 0) != (size_t) - 1) 1.535 + while ((*c).range < 256) 1.536 { 1.537 - if (!__builtin_constant_p(__nbytes)) 1.538 - return __read_chk(__fd, __buf, __nbytes, __builtin_object_size(__buf, 0)); 1.539 - if (__nbytes > __builtin_object_size(__buf, 0)) 1.540 - return __read_chk_warn(__fd, __buf, __nbytes, __builtin_object_size(__buf, 0)); 1.541 + { 1.542 + (*c).range += (*c).range; 1.543 + (*c).low += (*c).low; 1.544 + if (!((*c).low & ((1 << 16) - 1))) 1.545 + { 1.546 + refill(c); 1.547 + } 1.548 + } 1.549 } 1.550 - return __read_alias(__fd, __buf, __nbytes); 1.551 } 1.552 -extern ssize_t __readlink_chk(__const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))) __attribute__((__warn_unused_result__)); 1.553 -extern ssize_t __readlink_alias(__const char *__restrict __path, char *__restrict __buf, size_t __len) __asm__ ("""readlink") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))) __attribute__((__warn_unused_result__)); 1.554 -extern ssize_t __readlink_chk_warn(__const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __asm__ ("""__readlink_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))) __attribute__((__warn_unused_result__)) __attribute__((__warning__("readlink called with bigger length ""than size of destination buffer"))); 1.555 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__nonnull__(1, 2))) __attribute__((__warn_unused_result__)) ssize_t __attribute__((__nothrow__, __leaf__)) readlink(__const char *__restrict __path, char *__restrict __buf, size_t __len) 1.556 +static __inline void renorm_cabac_decoder_once(CABACContext *c) 1.557 { 1.558 - if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1) 1.559 + int shift = (uint32_t)((*c).range - 256) >> 31; 1.560 + (*c).range <<= shift; 1.561 + (*c).low <<= shift; 1.562 + if (!((*c).low & ((1 << 16) - 1))) 1.563 { 1.564 - if (!__builtin_constant_p(__len)) 1.565 - return __readlink_chk(__path, __buf, __len, __builtin_object_size(__buf, 2 > 1)); 1.566 - if (__len > __builtin_object_size(__buf, 2 > 1)) 1.567 - return __readlink_chk_warn(__path, __buf, __len, __builtin_object_size(__buf, 2 > 1)); 1.568 + refill(c); 1.569 } 1.570 - return __readlink_alias(__path, __buf, __len); 1.571 } 1.572 -extern ssize_t __readlinkat_chk(int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 3))) __attribute__((__warn_unused_result__)); 1.573 -extern ssize_t __readlinkat_alias(int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len) __asm__ ("""readlinkat") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 3))) __attribute__((__warn_unused_result__)); 1.574 -extern ssize_t __readlinkat_chk_warn(int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __asm__ ("""__readlinkat_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 3))) __attribute__((__warn_unused_result__)) __attribute__((__warning__("readlinkat called with bigger ""length than size of destination ""buffer"))); 1.575 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__nonnull__(2, 3))) __attribute__((__warn_unused_result__)) ssize_t __attribute__((__nothrow__, __leaf__)) readlinkat(int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len) 1.576 +extern uint8_t ff_h264_lps_range[512]; 1.577 +extern uint8_t ff_h264_mlps_state[256]; 1.578 +static __inline __attribute__((always_inline)) int get_cabac_inline(CABACContext *c, uint8_t *const state) 1.579 { 1.580 - if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1) 1.581 + __attribute__((unused)) int lps_mask; 1.582 + int bit; 1.583 + int s = *state; 1.584 + int RangeLPS = ff_h264_lps_range[2 * ((*c).range & 192) + s]; 1.585 + (*c).range -= RangeLPS; 1.586 + lps_mask = (((*c).range << (16 + 1)) - (*c).low) >> 31; 1.587 + (*c).low -= (*c).range << (16 + 1) & lps_mask; 1.588 + (*c).range += (RangeLPS - (*c).range) & lps_mask; 1.589 + s ^= lps_mask; 1.590 + *state = (ff_h264_mlps_state + 128)[s]; 1.591 + bit = s & 1; 1.592 + lps_mask = ff_h264_norm_shift[(*c).range]; 1.593 + (*c).range <<= lps_mask; 1.594 + (*c).low <<= lps_mask; 1.595 + if (!((*c).low & ((1 << 16) - 1))) 1.596 { 1.597 - if (!__builtin_constant_p(__len)) 1.598 - return __readlinkat_chk(__fd, __path, __buf, __len, __builtin_object_size(__buf, 2 > 1)); 1.599 - if (__len > __builtin_object_size(__buf, 2 > 1)) 1.600 - return __readlinkat_chk_warn(__fd, __path, __buf, __len, __builtin_object_size(__buf, 2 > 1)); 1.601 + refill2(c); 1.602 } 1.603 - return __readlinkat_alias(__fd, __path, __buf, __len); 1.604 + return bit; 1.605 } 1.606 -extern char *__getcwd_chk(char *__buf, size_t __size, size_t __buflen) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.607 -extern char *__getcwd_alias(char *__buf, size_t __size) __asm__ ("""getcwd") __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.608 -extern char *__getcwd_chk_warn(char *__buf, size_t __size, size_t __buflen) __asm__ ("""__getcwd_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)) __attribute__((__warning__("getcwd caller with bigger length than size of ""destination buffer"))); 1.609 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) char *__attribute__((__nothrow__, __leaf__)) getcwd(char *__buf, size_t __size) 1.610 +static __attribute__((noinline)) __attribute__((unused)) int get_cabac_noinline(CABACContext *c, uint8_t *const state) 1.611 { 1.612 - if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1) 1.613 + return get_cabac_inline(c, state); 1.614 +} 1.615 +static __attribute__((unused)) int get_cabac(CABACContext *c, uint8_t *const state) 1.616 +{ 1.617 + return get_cabac_inline(c, state); 1.618 +} 1.619 +static __attribute__((unused)) int get_cabac_bypass(CABACContext *c) 1.620 +{ 1.621 + int range; 1.622 + (*c).low += (*c).low; 1.623 + if (!((*c).low & ((1 << 16) - 1))) 1.624 { 1.625 - if (!__builtin_constant_p(__size)) 1.626 - return __getcwd_chk(__buf, __size, __builtin_object_size(__buf, 2 > 1)); 1.627 - if (__size > __builtin_object_size(__buf, 2 > 1)) 1.628 - return __getcwd_chk_warn(__buf, __size, __builtin_object_size(__buf, 2 > 1)); 1.629 + refill(c); 1.630 } 1.631 - return __getcwd_alias(__buf, __size); 1.632 + range = (*c).range << (16 + 1); 1.633 + if ((*c).low < range) 1.634 + { 1.635 + { 1.636 + return 0; 1.637 + } 1.638 + } 1.639 + else 1.640 + { 1.641 + { 1.642 + (*c).low -= range; 1.643 + return 1; 1.644 + } 1.645 + } 1.646 } 1.647 -extern char *__getwd_chk(char *__buf, size_t buflen) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.648 -extern char *__getwd_warn(char *__buf) __asm__ ("""getwd") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)) __attribute__((__warning__("please use getcwd instead, as getwd ""doesn't specify buffer size"))); 1.649 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__nonnull__(1))) __attribute__((__deprecated__)) __attribute__((__warn_unused_result__)) char *__attribute__((__nothrow__, __leaf__)) getwd(char *__buf) 1.650 +static __inline __attribute__((always_inline)) int get_cabac_bypass_sign(CABACContext *c, int val) 1.651 { 1.652 - if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1) 1.653 - return __getwd_chk(__buf, __builtin_object_size(__buf, 2 > 1)); 1.654 - return __getwd_warn(__buf); 1.655 + int range; 1.656 + int mask; 1.657 + (*c).low += (*c).low; 1.658 + if (!((*c).low & ((1 << 16) - 1))) 1.659 + { 1.660 + refill(c); 1.661 + } 1.662 + range = (*c).range << (16 + 1); 1.663 + (*c).low -= range; 1.664 + mask = (*c).low >> 31; 1.665 + range &= mask; 1.666 + (*c).low += range; 1.667 + return (val ^ mask) - mask; 1.668 } 1.669 -extern size_t __confstr_chk(int __name, char *__buf, size_t __len, size_t __buflen) __attribute__((__nothrow__, __leaf__)); 1.670 -extern size_t __confstr_alias(int __name, char *__buf, size_t __len) __asm__ ("""confstr") __attribute__((__nothrow__, __leaf__)); 1.671 -extern size_t __confstr_chk_warn(int __name, char *__buf, size_t __len, size_t __buflen) __asm__ ("""__confstr_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__warning__("confstr called with bigger length than size of destination ""buffer"))); 1.672 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) size_t __attribute__((__nothrow__, __leaf__)) confstr(int __name, char *__buf, size_t __len) 1.673 +static __attribute__((unused)) int get_cabac_terminate(CABACContext *c) 1.674 { 1.675 - if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1) 1.676 + (*c).range -= 2; 1.677 + if ((*c).low < (*c).range << (16 + 1)) 1.678 { 1.679 - if (!__builtin_constant_p(__len)) 1.680 - return __confstr_chk(__name, __buf, __len, __builtin_object_size(__buf, 2 > 1)); 1.681 - if (__builtin_object_size(__buf, 2 > 1) < __len) 1.682 - return __confstr_chk_warn(__name, __buf, __len, __builtin_object_size(__buf, 2 > 1)); 1.683 + { 1.684 + renorm_cabac_decoder_once(c); 1.685 + return 0; 1.686 + } 1.687 } 1.688 - return __confstr_alias(__name, __buf, __len); 1.689 + else 1.690 + { 1.691 + { 1.692 + return (*c).bytestream - (*c).bytestream_start; 1.693 + } 1.694 + } 1.695 } 1.696 -extern int __getgroups_chk(int __size, __gid_t __list[], size_t __listlen) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.697 -extern int __getgroups_alias(int __size, __gid_t __list[]) __asm__ ("""getgroups") __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.698 -extern int __getgroups_chk_warn(int __size, __gid_t __list[], size_t __listlen) __asm__ ("""__getgroups_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)) __attribute__((__warning__("getgroups called with bigger group count than what ""can fit into destination buffer"))); 1.699 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) getgroups(int __size, __gid_t __list[]) 1.700 +static __inline __attribute__((always_inline)) __attribute__((const)) uint16_t bswap_16(uint16_t x) 1.701 { 1.702 - if (__builtin_object_size(__list, 2 > 1) != (size_t) - 1) 1.703 + __asm__ ("rorw $8, %0" : "+r"(x) : ); 1.704 + return x; 1.705 +} 1.706 +static __inline __attribute__((always_inline)) __attribute__((const)) uint32_t bswap_32(uint32_t x) 1.707 +{ 1.708 + __asm__ ("bswap %0" : "+r"(x) : ); 1.709 + return x; 1.710 +} 1.711 +typedef unsigned long int uint64_t; 1.712 +static __inline __attribute__((const)) uint64_t bswap_64(uint64_t x) 1.713 +{ 1.714 + __asm__ ("bswap %0" : "=r"(x) : "0"(x)); 1.715 + return x; 1.716 +} 1.717 +extern const uint8_t ff_log2_tab[256]; 1.718 +static __inline __attribute__((const)) int av_log2_c(unsigned int v) 1.719 +{ 1.720 + int n = 0; 1.721 + if (v & 4294901760U) 1.722 { 1.723 - if (!__builtin_constant_p(__size) || __size < 0) 1.724 - return __getgroups_chk(__size, __list, __builtin_object_size(__list, 2 > 1)); 1.725 - if (__size * sizeof(__gid_t) > __builtin_object_size(__list, 2 > 1)) 1.726 - return __getgroups_chk_warn(__size, __list, __builtin_object_size(__list, 2 > 1)); 1.727 + { 1.728 + v >>= 16; 1.729 + n += 16; 1.730 + } 1.731 } 1.732 - return __getgroups_alias(__size, __list); 1.733 + if (v & 65280) 1.734 + { 1.735 + { 1.736 + v >>= 8; 1.737 + n += 8; 1.738 + } 1.739 + } 1.740 + n += ff_log2_tab[v]; 1.741 + return n; 1.742 } 1.743 -extern int __ttyname_r_chk(int __fd, char *__buf, size_t __buflen, size_t __nreal) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.744 -extern int __ttyname_r_alias(int __fd, char *__buf, size_t __buflen) __asm__ ("""ttyname_r") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.745 -extern int __ttyname_r_chk_warn(int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("""__ttyname_r_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))) __attribute__((__warning__("ttyname_r called with bigger buflen than ""size of destination buffer"))); 1.746 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) ttyname_r(int __fd, char *__buf, size_t __buflen) 1.747 +static __inline __attribute__((const)) int av_log2_16bit_c(unsigned int v) 1.748 { 1.749 - if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1) 1.750 + int n = 0; 1.751 + if (v & 65280) 1.752 { 1.753 - if (!__builtin_constant_p(__buflen)) 1.754 - return __ttyname_r_chk(__fd, __buf, __buflen, __builtin_object_size(__buf, 2 > 1)); 1.755 - if (__buflen > __builtin_object_size(__buf, 2 > 1)) 1.756 - return __ttyname_r_chk_warn(__fd, __buf, __buflen, __builtin_object_size(__buf, 2 > 1)); 1.757 + { 1.758 + v >>= 8; 1.759 + n += 8; 1.760 + } 1.761 } 1.762 - return __ttyname_r_alias(__fd, __buf, __buflen); 1.763 + n += ff_log2_tab[v]; 1.764 + return n; 1.765 } 1.766 -extern int __getlogin_r_chk(char *__buf, size_t __buflen, size_t __nreal) __attribute__((__nonnull__(1))); 1.767 -extern int __getlogin_r_alias(char *__buf, size_t __buflen) __asm__ ("""getlogin_r") __attribute__((__nonnull__(1))); 1.768 -extern int __getlogin_r_chk_warn(char *__buf, size_t __buflen, size_t __nreal) __asm__ ("""__getlogin_r_chk") __attribute__((__nonnull__(1))) __attribute__((__warning__("getlogin_r called with bigger buflen than ""size of destination buffer"))); 1.769 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int getlogin_r(char *__buf, size_t __buflen) 1.770 +static __inline __attribute__((const)) int av_clip(int a, int amin, int amax) 1.771 { 1.772 - if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1) 1.773 + if (a < amin) 1.774 { 1.775 - if (!__builtin_constant_p(__buflen)) 1.776 - return __getlogin_r_chk(__buf, __buflen, __builtin_object_size(__buf, 2 > 1)); 1.777 - if (__buflen > __builtin_object_size(__buf, 2 > 1)) 1.778 - return __getlogin_r_chk_warn(__buf, __buflen, __builtin_object_size(__buf, 2 > 1)); 1.779 + return amin; 1.780 } 1.781 - return __getlogin_r_alias(__buf, __buflen); 1.782 + else 1.783 + { 1.784 + if (a > amax) 1.785 + { 1.786 + return amax; 1.787 + } 1.788 + else 1.789 + { 1.790 + return a; 1.791 + } 1.792 + } 1.793 } 1.794 -extern int __gethostname_chk(char *__buf, size_t __buflen, size_t __nreal) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.795 -extern int __gethostname_alias(char *__buf, size_t __buflen) __asm__ ("""gethostname") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.796 -extern int __gethostname_chk_warn(char *__buf, size_t __buflen, size_t __nreal) __asm__ ("""__gethostname_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warning__("gethostname called with bigger buflen than ""size of destination buffer"))); 1.797 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) gethostname(char *__buf, size_t __buflen) 1.798 +static __inline __attribute__((const)) uint8_t av_clip_uint8(int a) 1.799 { 1.800 - if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1) 1.801 + if (a & ~255) 1.802 { 1.803 - if (!__builtin_constant_p(__buflen)) 1.804 - return __gethostname_chk(__buf, __buflen, __builtin_object_size(__buf, 2 > 1)); 1.805 - if (__buflen > __builtin_object_size(__buf, 2 > 1)) 1.806 - return __gethostname_chk_warn(__buf, __buflen, __builtin_object_size(__buf, 2 > 1)); 1.807 + return -a >> 31; 1.808 } 1.809 - return __gethostname_alias(__buf, __buflen); 1.810 + else 1.811 + { 1.812 + return a; 1.813 + } 1.814 } 1.815 -extern int __getdomainname_chk(char *__buf, size_t __buflen, size_t __nreal) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.816 -extern int __getdomainname_alias(char *__buf, size_t __buflen) __asm__ ("""getdomainname") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.817 -extern int __getdomainname_chk_warn(char *__buf, size_t __buflen, size_t __nreal) __asm__ ("""__getdomainname_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)) __attribute__((__warning__("getdomainname called with bigger ""buflen than size of destination ""buffer"))); 1.818 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) getdomainname(char *__buf, size_t __buflen) 1.819 +static __inline __attribute__((const)) uint16_t av_clip_uint16(int a) 1.820 { 1.821 - if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1) 1.822 + if (a & ~65535) 1.823 { 1.824 - if (!__builtin_constant_p(__buflen)) 1.825 - return __getdomainname_chk(__buf, __buflen, __builtin_object_size(__buf, 2 > 1)); 1.826 - if (__buflen > __builtin_object_size(__buf, 2 > 1)) 1.827 - return __getdomainname_chk_warn(__buf, __buflen, __builtin_object_size(__buf, 2 > 1)); 1.828 + return -a >> 31; 1.829 } 1.830 - return __getdomainname_alias(__buf, __buflen); 1.831 + else 1.832 + { 1.833 + return a; 1.834 + } 1.835 } 1.836 -struct _IO_FILE; 1.837 -typedef struct _IO_FILE FILE; 1.838 -typedef struct _IO_FILE __FILE; 1.839 -typedef struct 1.840 +typedef short int int16_t; 1.841 +static __inline __attribute__((const)) int16_t av_clip_int16(int a) 1.842 { 1.843 - int __count; 1.844 - union 1.845 - { 1.846 - unsigned int __wch; 1.847 - char __wchb[4]; 1.848 - } __value; 1.849 -} __mbstate_t; 1.850 -typedef struct 1.851 -{ 1.852 - __off_t __pos; 1.853 - __mbstate_t __state; 1.854 -} _G_fpos_t; 1.855 -typedef struct 1.856 -{ 1.857 - __off64_t __pos; 1.858 - __mbstate_t __state; 1.859 -} _G_fpos64_t; 1.860 -typedef int _G_int16_t __attribute__((__mode__(__HI__))); 1.861 -typedef int _G_int32_t __attribute__((__mode__(__SI__))); 1.862 -typedef unsigned int _G_uint16_t __attribute__((__mode__(__HI__))); 1.863 -typedef unsigned int _G_uint32_t __attribute__((__mode__(__SI__))); 1.864 -typedef __builtin_va_list __gnuc_va_list; 1.865 -struct _IO_jump_t; 1.866 -struct _IO_FILE; 1.867 -typedef void _IO_lock_t; 1.868 -struct _IO_marker 1.869 -{ 1.870 - struct _IO_marker *_next; 1.871 - struct _IO_FILE *_sbuf; 1.872 - int _pos; 1.873 -}; 1.874 -enum __codecvt_result 1.875 -{ 1.876 - __codecvt_ok, 1.877 - __codecvt_partial, 1.878 - __codecvt_error, 1.879 - __codecvt_noconv 1.880 -}; 1.881 -struct _IO_FILE 1.882 -{ 1.883 - int _flags; 1.884 - char *_IO_read_ptr; 1.885 - char *_IO_read_end; 1.886 - char *_IO_read_base; 1.887 - char *_IO_write_base; 1.888 - char *_IO_write_ptr; 1.889 - char *_IO_write_end; 1.890 - char *_IO_buf_base; 1.891 - char *_IO_buf_end; 1.892 - char *_IO_save_base; 1.893 - char *_IO_backup_base; 1.894 - char *_IO_save_end; 1.895 - struct _IO_marker *_markers; 1.896 - struct _IO_FILE *_chain; 1.897 - int _fileno; 1.898 - int _flags2; 1.899 - __off_t _old_offset; 1.900 - unsigned short _cur_column; 1.901 - signed char _vtable_offset; 1.902 - char _shortbuf[1]; 1.903 - _IO_lock_t *_lock; 1.904 - __off64_t _offset; 1.905 - void *__pad1; 1.906 - void *__pad2; 1.907 - void *__pad3; 1.908 - void *__pad4; 1.909 - size_t __pad5; 1.910 - int _mode; 1.911 - char _unused2[15 * sizeof(int) - 4 * sizeof(void *) - sizeof(size_t)]; 1.912 -}; 1.913 -typedef struct _IO_FILE _IO_FILE; 1.914 -struct _IO_FILE_plus; 1.915 -extern struct _IO_FILE_plus _IO_2_1_stdin_; 1.916 -extern struct _IO_FILE_plus _IO_2_1_stdout_; 1.917 -extern struct _IO_FILE_plus _IO_2_1_stderr_; 1.918 -typedef __ssize_t __io_read_fn(void *__cookie, char *__buf, size_t __nbytes); 1.919 -typedef __ssize_t __io_write_fn(void *__cookie, __const char *__buf, size_t __n); 1.920 -typedef int __io_seek_fn(void *__cookie, __off64_t *__pos, int __w); 1.921 -typedef int __io_close_fn(void *__cookie); 1.922 -extern int __underflow(_IO_FILE *); 1.923 -extern int __uflow(_IO_FILE *); 1.924 -extern int __overflow(_IO_FILE *, int); 1.925 -extern int _IO_getc(_IO_FILE *__fp); 1.926 -extern int _IO_putc(int __c, _IO_FILE *__fp); 1.927 -extern int _IO_feof(_IO_FILE *__fp) __attribute__((__nothrow__, __leaf__)); 1.928 -extern int _IO_ferror(_IO_FILE *__fp) __attribute__((__nothrow__, __leaf__)); 1.929 -extern int _IO_peekc_locked(_IO_FILE *__fp); 1.930 -extern void _IO_flockfile(_IO_FILE *) __attribute__((__nothrow__, __leaf__)); 1.931 -extern void _IO_funlockfile(_IO_FILE *) __attribute__((__nothrow__, __leaf__)); 1.932 -extern int _IO_ftrylockfile(_IO_FILE *) __attribute__((__nothrow__, __leaf__)); 1.933 -extern int _IO_vfscanf(_IO_FILE *__restrict , const char *__restrict , __gnuc_va_list, int *__restrict ); 1.934 -extern int _IO_vfprintf(_IO_FILE *__restrict , const char *__restrict , __gnuc_va_list); 1.935 -extern __ssize_t _IO_padn(_IO_FILE *, int, __ssize_t); 1.936 -extern size_t _IO_sgetn(_IO_FILE *, void *, size_t); 1.937 -extern __off64_t _IO_seekoff(_IO_FILE *, __off64_t, int, int); 1.938 -extern __off64_t _IO_seekpos(_IO_FILE *, __off64_t, int); 1.939 -extern void _IO_free_backup_area(_IO_FILE *) __attribute__((__nothrow__, __leaf__)); 1.940 -typedef __gnuc_va_list va_list; 1.941 -typedef _G_fpos_t fpos_t; 1.942 -extern struct _IO_FILE *stdin; 1.943 -extern struct _IO_FILE *stdout; 1.944 -extern struct _IO_FILE *stderr; 1.945 -extern int remove(__const char *__filename) __attribute__((__nothrow__, __leaf__)); 1.946 -extern int rename(__const char *__old, __const char *__new) __attribute__((__nothrow__, __leaf__)); 1.947 -extern int renameat(int __oldfd, __const char *__old, int __newfd, __const char *__new) __attribute__((__nothrow__, __leaf__)); 1.948 -extern FILE *tmpfile(void) __attribute__((__warn_unused_result__)); 1.949 -extern char *tmpnam(char *__s) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.950 -extern char *tmpnam_r(char *__s) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.951 -extern char *tempnam(__const char *__dir, __const char *__pfx) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)) __attribute__((__warn_unused_result__)); 1.952 -extern int fclose(FILE *__stream); 1.953 -extern int fflush(FILE *__stream); 1.954 -extern int fflush_unlocked(FILE *__stream); 1.955 -extern FILE *fopen(__const char *__restrict __filename, __const char *__restrict __modes) __attribute__((__warn_unused_result__)); 1.956 -extern FILE *freopen(__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream) __attribute__((__warn_unused_result__)); 1.957 -extern FILE *fdopen(int __fd, __const char *__modes) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.958 -extern FILE *fmemopen(void *__s, size_t __len, __const char *__modes) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.959 -extern FILE *open_memstream(char **__bufloc, size_t *__sizeloc) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.960 -extern void setbuf(FILE *__restrict __stream, char *__restrict __buf) __attribute__((__nothrow__, __leaf__)); 1.961 -extern int setvbuf(FILE *__restrict __stream, char *__restrict __buf, int __modes, size_t __n) __attribute__((__nothrow__, __leaf__)); 1.962 -extern void setbuffer(FILE *__restrict __stream, char *__restrict __buf, size_t __size) __attribute__((__nothrow__, __leaf__)); 1.963 -extern void setlinebuf(FILE *__stream) __attribute__((__nothrow__, __leaf__)); 1.964 -extern int fprintf(FILE *__restrict __stream, __const char *__restrict __format, ...); 1.965 -extern int printf(__const char *__restrict __format, ...); 1.966 -extern int sprintf(char *__restrict __s, __const char *__restrict __format, ...) __attribute__((__nothrow__)); 1.967 -extern int vfprintf(FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg); 1.968 -extern int vprintf(__const char *__restrict __format, __gnuc_va_list __arg); 1.969 -extern int vsprintf(char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__((__nothrow__)); 1.970 -extern int snprintf(char *__restrict __s, size_t __maxlen, __const char *__restrict __format, ...) __attribute__((__nothrow__)) __attribute__((__format__(__printf__, 3, 4))); 1.971 -extern int vsnprintf(char *__restrict __s, size_t __maxlen, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__((__nothrow__)) __attribute__((__format__(__printf__, 3, 0))); 1.972 -extern int vdprintf(int __fd, __const char *__restrict __fmt, __gnuc_va_list __arg) __attribute__((__format__(__printf__, 2, 0))); 1.973 -extern int dprintf(int __fd, __const char *__restrict __fmt, ...) __attribute__((__format__(__printf__, 2, 3))); 1.974 -extern int fscanf(FILE *__restrict __stream, __const char *__restrict __format, ...) __attribute__((__warn_unused_result__)); 1.975 -extern int scanf(__const char *__restrict __format, ...) __attribute__((__warn_unused_result__)); 1.976 -extern int sscanf(__const char *__restrict __s, __const char *__restrict __format, ...) __attribute__((__nothrow__, __leaf__)); 1.977 -extern int fscanf(FILE *__restrict __stream, __const char *__restrict __format, ...) __asm__ ("""__isoc99_fscanf") __attribute__((__warn_unused_result__)); 1.978 -extern int scanf(__const char *__restrict __format, ...) __asm__ ("""__isoc99_scanf") __attribute__((__warn_unused_result__)); 1.979 -extern int sscanf(__const char *__restrict __s, __const char *__restrict __format, ...) __asm__ ("""__isoc99_sscanf") __attribute__((__nothrow__, __leaf__)); 1.980 -extern int vfscanf(FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__((__format__(__scanf__, 2, 0))) __attribute__((__warn_unused_result__)); 1.981 -extern int vscanf(__const char *__restrict __format, __gnuc_va_list __arg) __attribute__((__format__(__scanf__, 1, 0))) __attribute__((__warn_unused_result__)); 1.982 -extern int vsscanf(__const char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__((__nothrow__, __leaf__)) __attribute__((__format__(__scanf__, 2, 0))); 1.983 -extern int vfscanf(FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("""__isoc99_vfscanf") __attribute__((__format__(__scanf__, 2, 0))) __attribute__((__warn_unused_result__)); 1.984 -extern int vscanf(__const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("""__isoc99_vscanf") __attribute__((__format__(__scanf__, 1, 0))) __attribute__((__warn_unused_result__)); 1.985 -extern int vsscanf(__const char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("""__isoc99_vsscanf") __attribute__((__nothrow__, __leaf__)) __attribute__((__format__(__scanf__, 2, 0))); 1.986 -extern int fgetc(FILE *__stream); 1.987 -extern int getc(FILE *__stream); 1.988 -extern int getchar(void); 1.989 -extern int getc_unlocked(FILE *__stream); 1.990 -extern int getchar_unlocked(void); 1.991 -extern int fgetc_unlocked(FILE *__stream); 1.992 -extern int fputc(int __c, FILE *__stream); 1.993 -extern int putc(int __c, FILE *__stream); 1.994 -extern int putchar(int __c); 1.995 -extern int fputc_unlocked(int __c, FILE *__stream); 1.996 -extern int putc_unlocked(int __c, FILE *__stream); 1.997 -extern int putchar_unlocked(int __c); 1.998 -extern int getw(FILE *__stream); 1.999 -extern int putw(int __w, FILE *__stream); 1.1000 -extern char *fgets(char *__restrict __s, int __n, FILE *__restrict __stream) __attribute__((__warn_unused_result__)); 1.1001 -extern char *gets(char *__s) __attribute__((__warn_unused_result__)); 1.1002 -extern __ssize_t __getdelim(char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) __attribute__((__warn_unused_result__)); 1.1003 -extern __ssize_t getdelim(char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) __attribute__((__warn_unused_result__)); 1.1004 -extern __ssize_t getline(char **__restrict __lineptr, size_t *__restrict __n, FILE *__restrict __stream) __attribute__((__warn_unused_result__)); 1.1005 -extern int fputs(__const char *__restrict __s, FILE *__restrict __stream); 1.1006 -extern int puts(__const char *__s); 1.1007 -extern int ungetc(int __c, FILE *__stream); 1.1008 -extern size_t fread(void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __attribute__((__warn_unused_result__)); 1.1009 -extern size_t fwrite(__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __s); 1.1010 -extern size_t fread_unlocked(void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __attribute__((__warn_unused_result__)); 1.1011 -extern size_t fwrite_unlocked(__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream); 1.1012 -extern int fseek(FILE *__stream, long int __off, int __whence); 1.1013 -extern long int ftell(FILE *__stream) __attribute__((__warn_unused_result__)); 1.1014 -extern void rewind(FILE *__stream); 1.1015 -extern int fseeko(FILE *__stream, __off_t __off, int __whence); 1.1016 -extern __off_t ftello(FILE *__stream) __attribute__((__warn_unused_result__)); 1.1017 -extern int fgetpos(FILE *__restrict __stream, fpos_t *__restrict __pos); 1.1018 -extern int fsetpos(FILE *__stream, __const fpos_t *__pos); 1.1019 -extern void clearerr(FILE *__stream) __attribute__((__nothrow__, __leaf__)); 1.1020 -extern int feof(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.1021 -extern int ferror(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.1022 -extern void clearerr_unlocked(FILE *__stream) __attribute__((__nothrow__, __leaf__)); 1.1023 -extern int feof_unlocked(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.1024 -extern int ferror_unlocked(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.1025 -extern void perror(__const char *__s); 1.1026 -extern int sys_nerr; 1.1027 -extern __const char *__const sys_errlist[]; 1.1028 -extern int fileno(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.1029 -extern int fileno_unlocked(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.1030 -extern FILE *popen(__const char *__command, __const char *__modes) __attribute__((__warn_unused_result__)); 1.1031 -extern int pclose(FILE *__stream); 1.1032 -extern char *ctermid(char *__s) __attribute__((__nothrow__, __leaf__)); 1.1033 -extern void flockfile(FILE *__stream) __attribute__((__nothrow__, __leaf__)); 1.1034 -extern int ftrylockfile(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.1035 -extern void funlockfile(FILE *__stream) __attribute__((__nothrow__, __leaf__)); 1.1036 -extern __inline __attribute__((__gnu_inline__)) int getchar(void) 1.1037 -{ 1.1038 - return _IO_getc(stdin); 1.1039 + if ((a + 32768) & ~65535) 1.1040 + { 1.1041 + return a >> 31 ^ 32767; 1.1042 + } 1.1043 + else 1.1044 + { 1.1045 + return a; 1.1046 + } 1.1047 } 1.1048 -extern __inline __attribute__((__gnu_inline__)) int fgetc_unlocked(FILE *__fp) 1.1049 -{ 1.1050 - return (__builtin_expect(((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow(__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); 1.1051 -} 1.1052 -extern __inline __attribute__((__gnu_inline__)) int getc_unlocked(FILE *__fp) 1.1053 -{ 1.1054 - return (__builtin_expect(((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow(__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); 1.1055 -} 1.1056 -extern __inline __attribute__((__gnu_inline__)) int getchar_unlocked(void) 1.1057 -{ 1.1058 - return (__builtin_expect(((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow(stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); 1.1059 -} 1.1060 -extern __inline __attribute__((__gnu_inline__)) int putchar(int __c) 1.1061 -{ 1.1062 - return _IO_putc(__c, stdout); 1.1063 -} 1.1064 -extern __inline __attribute__((__gnu_inline__)) int fputc_unlocked(int __c, FILE *__stream) 1.1065 -{ 1.1066 - return (__builtin_expect(((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow(__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); 1.1067 -} 1.1068 -extern __inline __attribute__((__gnu_inline__)) int putc_unlocked(int __c, FILE *__stream) 1.1069 -{ 1.1070 - return (__builtin_expect(((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow(__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); 1.1071 -} 1.1072 -extern __inline __attribute__((__gnu_inline__)) int putchar_unlocked(int __c) 1.1073 -{ 1.1074 - return (__builtin_expect(((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow(stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); 1.1075 -} 1.1076 -extern __inline __attribute__((__gnu_inline__)) int __attribute__((__nothrow__, __leaf__)) feof_unlocked(FILE *__stream) 1.1077 -{ 1.1078 - return (((__stream)->_flags & 0x10) != 0); 1.1079 -} 1.1080 -extern __inline __attribute__((__gnu_inline__)) int __attribute__((__nothrow__, __leaf__)) ferror_unlocked(FILE *__stream) 1.1081 -{ 1.1082 - return (((__stream)->_flags & 0x20) != 0); 1.1083 -} 1.1084 -extern int __sprintf_chk(char *__restrict __s, int __flag, size_t __slen, __const char *__restrict __format, ...) __attribute__((__nothrow__, __leaf__)); 1.1085 -extern int __vsprintf_chk(char *__restrict __s, int __flag, size_t __slen, __const char *__restrict __format, __gnuc_va_list __ap) __attribute__((__nothrow__, __leaf__)); 1.1086 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) sprintf(char *__restrict __s, __const char *__restrict __fmt, ...) 1.1087 -{ 1.1088 - return __builtin___sprintf_chk(__s, 2 - 1, __builtin_object_size(__s, 2 > 1), __fmt, __builtin_va_arg_pack()); 1.1089 -} 1.1090 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) vsprintf(char *__restrict __s, __const char *__restrict __fmt, __gnuc_va_list __ap) 1.1091 -{ 1.1092 - return __builtin___vsprintf_chk(__s, 2 - 1, __builtin_object_size(__s, 2 > 1), __fmt, __ap); 1.1093 -} 1.1094 -extern int __snprintf_chk(char *__restrict __s, size_t __n, int __flag, size_t __slen, __const char *__restrict __format, ...) __attribute__((__nothrow__, __leaf__)); 1.1095 -extern int __vsnprintf_chk(char *__restrict __s, size_t __n, int __flag, size_t __slen, __const char *__restrict __format, __gnuc_va_list __ap) __attribute__((__nothrow__, __leaf__)); 1.1096 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) snprintf(char *__restrict __s, size_t __n, __const char *__restrict __fmt, ...) 1.1097 -{ 1.1098 - return __builtin___snprintf_chk(__s, __n, 2 - 1, __builtin_object_size(__s, 2 > 1), __fmt, __builtin_va_arg_pack()); 1.1099 -} 1.1100 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) vsnprintf(char *__restrict __s, size_t __n, __const char *__restrict __fmt, __gnuc_va_list __ap) 1.1101 -{ 1.1102 - return __builtin___vsnprintf_chk(__s, __n, 2 - 1, __builtin_object_size(__s, 2 > 1), __fmt, __ap); 1.1103 -} 1.1104 -extern int __fprintf_chk(FILE *__restrict __stream, int __flag, __const char *__restrict __format, ...); 1.1105 -extern int __printf_chk(int __flag, __const char *__restrict __format, ...); 1.1106 -extern int __vfprintf_chk(FILE *__restrict __stream, int __flag, __const char *__restrict __format, __gnuc_va_list __ap); 1.1107 -extern int __vprintf_chk(int __flag, __const char *__restrict __format, __gnuc_va_list __ap); 1.1108 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int fprintf(FILE *__restrict __stream, __const char *__restrict __fmt, ...) 1.1109 -{ 1.1110 - return __fprintf_chk(__stream, 2 - 1, __fmt, __builtin_va_arg_pack()); 1.1111 -} 1.1112 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int printf(__const char *__restrict __fmt, ...) 1.1113 -{ 1.1114 - return __printf_chk(2 - 1, __fmt, __builtin_va_arg_pack()); 1.1115 -} 1.1116 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int vprintf(__const char *__restrict __fmt, __gnuc_va_list __ap) 1.1117 -{ 1.1118 - return __vfprintf_chk(stdout, 2 - 1, __fmt, __ap); 1.1119 -} 1.1120 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int vfprintf(FILE *__restrict __stream, __const char *__restrict __fmt, __gnuc_va_list __ap) 1.1121 -{ 1.1122 - return __vfprintf_chk(__stream, 2 - 1, __fmt, __ap); 1.1123 -} 1.1124 -extern char *__gets_chk(char *__str, size_t) __attribute__((__warn_unused_result__)); 1.1125 -extern char *__gets_warn(char *__str) __asm__ ("""gets") __attribute__((__warn_unused_result__)) __attribute__((__warning__("please use fgets or getline instead, gets can't ""specify buffer size"))); 1.1126 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) char *gets(char *__str) 1.1127 -{ 1.1128 - if (__builtin_object_size(__str, 2 > 1) != (size_t) - 1) 1.1129 - return __gets_chk(__str, __builtin_object_size(__str, 2 > 1)); 1.1130 - return __gets_warn(__str); 1.1131 -} 1.1132 -extern char *__fgets_chk(char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __attribute__((__warn_unused_result__)); 1.1133 -extern char *__fgets_alias(char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("""fgets") __attribute__((__warn_unused_result__)); 1.1134 -extern char *__fgets_chk_warn(char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("""__fgets_chk") __attribute__((__warn_unused_result__)) __attribute__((__warning__("fgets called with bigger size than length ""of destination buffer"))); 1.1135 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) char *fgets(char *__restrict __s, int __n, FILE *__restrict __stream) 1.1136 -{ 1.1137 - if (__builtin_object_size(__s, 2 > 1) != (size_t) - 1) 1.1138 - { 1.1139 - if (!__builtin_constant_p(__n) || __n <= 0) 1.1140 - return __fgets_chk(__s, __builtin_object_size(__s, 2 > 1), __n, __stream); 1.1141 - if ((size_t) __n > __builtin_object_size(__s, 2 > 1)) 1.1142 - return __fgets_chk_warn(__s, __builtin_object_size(__s, 2 > 1), __n, __stream); 1.1143 - } 1.1144 - return __fgets_alias(__s, __n, __stream); 1.1145 -} 1.1146 -extern size_t __fread_chk(void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __attribute__((__warn_unused_result__)); 1.1147 -extern size_t __fread_alias(void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("""fread") __attribute__((__warn_unused_result__)); 1.1148 -extern size_t __fread_chk_warn(void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("""__fread_chk") __attribute__((__warn_unused_result__)) __attribute__((__warning__("fread called with bigger size * nmemb than length ""of destination buffer"))); 1.1149 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) size_t fread(void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) 1.1150 -{ 1.1151 - if (__builtin_object_size(__ptr, 0) != (size_t) - 1) 1.1152 - { 1.1153 - if (!__builtin_constant_p(__size) || !__builtin_constant_p(__n) || (__size | __n) >= (((size_t) 1) << (8 * sizeof(size_t) / 2))) 1.1154 - return __fread_chk(__ptr, __builtin_object_size(__ptr, 0), __size, __n, __stream); 1.1155 - if (__size * __n > __builtin_object_size(__ptr, 0)) 1.1156 - return __fread_chk_warn(__ptr, __builtin_object_size(__ptr, 0), __size, __n, __stream); 1.1157 - } 1.1158 - return __fread_alias(__ptr, __size, __n, __stream); 1.1159 -} 1.1160 -extern size_t __fread_unlocked_chk(void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __attribute__((__warn_unused_result__)); 1.1161 -extern size_t __fread_unlocked_alias(void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("""fread_unlocked") __attribute__((__warn_unused_result__)); 1.1162 -extern size_t __fread_unlocked_chk_warn(void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("""__fread_unlocked_chk") __attribute__((__warn_unused_result__)) __attribute__((__warning__("fread_unlocked called with bigger size * nmemb than ""length of destination buffer"))); 1.1163 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) size_t fread_unlocked(void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) 1.1164 -{ 1.1165 - if (__builtin_object_size(__ptr, 0) != (size_t) - 1) 1.1166 - { 1.1167 - if (!__builtin_constant_p(__size) || !__builtin_constant_p(__n) || (__size | __n) >= (((size_t) 1) << (8 * sizeof(size_t) / 2))) 1.1168 - return __fread_unlocked_chk(__ptr, __builtin_object_size(__ptr, 0), __size, __n, __stream); 1.1169 - if (__size * __n > __builtin_object_size(__ptr, 0)) 1.1170 - return __fread_unlocked_chk_warn(__ptr, __builtin_object_size(__ptr, 0), __size, __n, __stream); 1.1171 - } 1.1172 - if (__builtin_constant_p(__size) && __builtin_constant_p(__n) && (__size | __n) < (((size_t) 1) << (8 * sizeof(size_t) / 2)) && __size * __n <= 8) 1.1173 - { 1.1174 - size_t __cnt = __size * __n; 1.1175 - char *__cptr = (char *) __ptr; 1.1176 - if (__cnt == 0) 1.1177 - return 0; 1.1178 - for (; 1.1179 - __cnt > 0; 1.1180 - --__cnt) 1.1181 - { 1.1182 - int __c = (__builtin_expect(((__stream)->_IO_read_ptr >= (__stream)->_IO_read_end), 0) ? __uflow(__stream) : *(unsigned char *) (__stream)->_IO_read_ptr++); 1.1183 - if (__c == (- 1)) 1.1184 - break; 1.1185 - *__cptr++ = __c; 1.1186 - } 1.1187 - return (__cptr - (char *) __ptr) / __size; 1.1188 - } 1.1189 - return __fread_unlocked_alias(__ptr, __size, __n, __stream); 1.1190 -} 1.1191 -typedef signed char int8_t; 1.1192 -typedef short int int16_t; 1.1193 typedef int int32_t; 1.1194 typedef long int int64_t; 1.1195 -typedef unsigned char uint8_t; 1.1196 -typedef unsigned short int uint16_t; 1.1197 -typedef unsigned int uint32_t; 1.1198 -typedef unsigned long int uint64_t; 1.1199 -typedef signed char int_least8_t; 1.1200 -typedef short int int_least16_t; 1.1201 -typedef int int_least32_t; 1.1202 -typedef long int int_least64_t; 1.1203 -typedef unsigned char uint_least8_t; 1.1204 -typedef unsigned short int uint_least16_t; 1.1205 -typedef unsigned int uint_least32_t; 1.1206 -typedef unsigned long int uint_least64_t; 1.1207 -typedef signed char int_fast8_t; 1.1208 -typedef long int int_fast16_t; 1.1209 -typedef long int int_fast32_t; 1.1210 -typedef long int int_fast64_t; 1.1211 -typedef unsigned char uint_fast8_t; 1.1212 -typedef unsigned long int uint_fast16_t; 1.1213 -typedef unsigned long int uint_fast32_t; 1.1214 -typedef unsigned long int uint_fast64_t; 1.1215 -typedef unsigned long int uintptr_t; 1.1216 -typedef long int intmax_t; 1.1217 -typedef unsigned long int uintmax_t; 1.1218 -typedef long int ptrdiff_t; 1.1219 -typedef int wchar_t; 1.1220 -typedef struct 1.1221 +static __inline __attribute__((const)) int32_t av_clipl_int32(int64_t a) 1.1222 { 1.1223 - void **address; 1.1224 - ptrdiff_t offset; 1.1225 - struct 1.1226 - { 1.1227 - _Bool input : 1; 1.1228 - _Bool output : 1; 1.1229 - _Bool can_rename : 1; 1.1230 - _Bool commutative : 1; 1.1231 - } flags; 1.1232 - size_t size; 1.1233 -} nanos_dependence_internal_t; 1.1234 -typedef enum 1.1235 -{ 1.1236 - NANOS_PRIVATE, 1.1237 - NANOS_SHARED 1.1238 -} nanos_sharing_t; 1.1239 -typedef struct 1.1240 -{ 1.1241 - void *original; 1.1242 - void *privates; 1.1243 - void (*bop)(void *, void *); 1.1244 - void (*vop)(int n, void *, void *); 1.1245 - void (*cleanup)(void *); 1.1246 -} nanos_reduction_t; 1.1247 -typedef struct 1.1248 -{ 1.1249 - uint64_t address; 1.1250 - nanos_sharing_t sharing; 1.1251 - struct 1.1252 - { 1.1253 - _Bool input : 1; 1.1254 - _Bool output : 1; 1.1255 - } flags; 1.1256 - size_t size; 1.1257 -} nanos_copy_data_internal_t; 1.1258 -typedef nanos_dependence_internal_t nanos_dependence_t; 1.1259 -typedef nanos_copy_data_internal_t nanos_copy_data_t; 1.1260 -typedef void *nanos_thread_t; 1.1261 -typedef void *nanos_wd_t; 1.1262 -typedef struct 1.1263 -{ 1.1264 - int nsect; 1.1265 - nanos_wd_t lwd[]; 1.1266 -} nanos_compound_wd_data_t; 1.1267 -typedef struct 1.1268 -{ 1.1269 - int n; 1.1270 -} nanos_repeat_n_info_t; 1.1271 -typedef struct 1.1272 -{ 1.1273 - int lower; 1.1274 - int upper; 1.1275 - int step; 1.1276 - _Bool last; 1.1277 - int chunk; 1.1278 - int stride; 1.1279 - int thid; 1.1280 - void *args; 1.1281 -} nanos_loop_info_t; 1.1282 -typedef void *nanos_ws_t; 1.1283 -typedef void *nanos_ws_info_t; 1.1284 -typedef void *nanos_ws_data_t; 1.1285 -typedef void *nanos_ws_item_t; 1.1286 -typedef struct 1.1287 -{ 1.1288 - int lower_bound; 1.1289 - int upper_bound; 1.1290 - int loop_step; 1.1291 - int chunk_size; 1.1292 -} nanos_ws_info_loop_t; 1.1293 -typedef struct 1.1294 -{ 1.1295 - int lower; 1.1296 - int upper; 1.1297 - _Bool execute : 1; 1.1298 - _Bool last : 1; 1.1299 -} nanos_ws_item_loop_t; 1.1300 -typedef struct nanos_ws_desc 1.1301 -{ 1.1302 - volatile nanos_ws_t ws; 1.1303 - nanos_ws_data_t data; 1.1304 - struct nanos_ws_desc *next; 1.1305 - nanos_thread_t *threads; 1.1306 - int nths; 1.1307 -} nanos_ws_desc_t; 1.1308 -typedef struct 1.1309 -{ 1.1310 - _Bool mandatory_creation : 1; 1.1311 - _Bool tied : 1; 1.1312 - _Bool reserved0 : 1; 1.1313 - _Bool reserved1 : 1; 1.1314 - _Bool reserved2 : 1; 1.1315 - _Bool reserved3 : 1; 1.1316 - _Bool reserved4 : 1; 1.1317 - _Bool reserved5 : 1; 1.1318 -} nanos_wd_props_t; 1.1319 -typedef struct 1.1320 -{ 1.1321 - nanos_thread_t tie_to; 1.1322 - unsigned int priority; 1.1323 -} nanos_wd_dyn_props_t; 1.1324 -typedef struct 1.1325 -{ 1.1326 - void *(*factory)(void *arg); 1.1327 - void *arg; 1.1328 -} nanos_device_t; 1.1329 -typedef enum 1.1330 -{ 1.1331 - NANOS_STATE_START, 1.1332 - NANOS_STATE_END, 1.1333 - NANOS_SUBSTATE_START, 1.1334 - NANOS_SUBSTATE_END, 1.1335 - NANOS_BURST_START, 1.1336 - NANOS_BURST_END, 1.1337 - NANOS_PTP_START, 1.1338 - NANOS_PTP_END, 1.1339 - NANOS_POINT, 1.1340 - EVENT_TYPES 1.1341 -} nanos_event_type_t; 1.1342 -typedef enum 1.1343 -{ 1.1344 - NANOS_NOT_CREATED, 1.1345 - NANOS_NOT_RUNNING, 1.1346 - NANOS_STARTUP, 1.1347 - NANOS_SHUTDOWN, 1.1348 - NANOS_ERROR, 1.1349 - NANOS_IDLE, 1.1350 - NANOS_RUNTIME, 1.1351 - NANOS_RUNNING, 1.1352 - NANOS_SYNCHRONIZATION, 1.1353 - NANOS_SCHEDULING, 1.1354 - NANOS_CREATION, 1.1355 - NANOS_MEM_TRANSFER_IN, 1.1356 - NANOS_MEM_TRANSFER_OUT, 1.1357 - NANOS_MEM_TRANSFER_LOCAL, 1.1358 - NANOS_MEM_TRANSFER_DEVICE_IN, 1.1359 - NANOS_MEM_TRANSFER_DEVICE_OUT, 1.1360 - NANOS_MEM_TRANSFER_DEVICE_LOCAL, 1.1361 - NANOS_CACHE, 1.1362 - NANOS_YIELD, 1.1363 - NANOS_ACQUIRING_LOCK, 1.1364 - NANOS_CONTEXT_SWITCH, 1.1365 - NANOS_DEBUG, 1.1366 - NANOS_EVENT_STATE_TYPES 1.1367 -} nanos_event_state_value_t; 1.1368 -typedef enum 1.1369 -{ 1.1370 - NANOS_WD_DOMAIN, 1.1371 - NANOS_WD_DEPENDENCY, 1.1372 - NANOS_WAIT, 1.1373 - NANOS_WD_REMOTE, 1.1374 - NANOS_XFER_PUT, 1.1375 - NANOS_XFER_GET 1.1376 -} nanos_event_domain_t; 1.1377 -typedef long long nanos_event_id_t; 1.1378 -typedef unsigned int nanos_event_key_t; 1.1379 -typedef unsigned long long nanos_event_value_t; 1.1380 -typedef struct 1.1381 -{ 1.1382 - nanos_event_key_t key; 1.1383 - nanos_event_value_t value; 1.1384 -} nanos_event_burst_t; 1.1385 -typedef struct 1.1386 -{ 1.1387 - nanos_event_state_value_t value; 1.1388 -} nanos_event_state_t; 1.1389 -typedef struct 1.1390 -{ 1.1391 - unsigned int nkvs; 1.1392 - nanos_event_key_t *keys; 1.1393 - nanos_event_value_t *values; 1.1394 -} nanos_event_point_t; 1.1395 -typedef struct 1.1396 -{ 1.1397 - nanos_event_domain_t domain; 1.1398 - nanos_event_id_t id; 1.1399 - unsigned int nkvs; 1.1400 - nanos_event_key_t *keys; 1.1401 - nanos_event_value_t *values; 1.1402 -} nanos_event_ptp_t; 1.1403 -typedef struct 1.1404 -{ 1.1405 - nanos_event_type_t type; 1.1406 - union 1.1407 - { 1.1408 - nanos_event_burst_t burst; 1.1409 - nanos_event_state_t state; 1.1410 - nanos_event_point_t point; 1.1411 - nanos_event_ptp_t ptp; 1.1412 - } info; 1.1413 -} nanos_event_t; 1.1414 -typedef enum 1.1415 -{ 1.1416 - NANOS_LOCK_FREE = 0, 1.1417 - NANOS_LOCK_BUSY = 1 1.1418 -} nanos_lock_state_t; 1.1419 -typedef struct nanos_lock_t 1.1420 -{ 1.1421 - volatile nanos_lock_state_t _state; 1.1422 -} nanos_lock_t; 1.1423 -typedef void (*nanos_translate_args_t)(void *, nanos_wd_t); 1.1424 -typedef void (nanos_init_func_t)(void *); 1.1425 -typedef struct 1.1426 -{ 1.1427 - nanos_init_func_t *func; 1.1428 - void *data; 1.1429 -} nanos_init_desc_t; 1.1430 -typedef void *nanos_wg_t; 1.1431 -typedef void *nanos_team_t; 1.1432 -typedef void *nanos_sched_t; 1.1433 -typedef void *nanos_slicer_t; 1.1434 -typedef void *nanos_dd_t; 1.1435 -typedef void *nanos_sync_cond_t; 1.1436 -typedef unsigned int nanos_copy_id_t; 1.1437 -typedef struct nanos_const_wd_definition_tag 1.1438 -{ 1.1439 - nanos_wd_props_t props; 1.1440 - size_t data_alignment; 1.1441 - size_t num_copies; 1.1442 - size_t num_devices; 1.1443 -} nanos_const_wd_definition_t; 1.1444 -typedef struct 1.1445 -{ 1.1446 - int nthreads; 1.1447 - void *arch; 1.1448 -} nanos_constraint_t; 1.1449 -typedef enum 1.1450 -{ 1.1451 - NANOS_OK = 0, 1.1452 - NANOS_UNKNOWN_ERR, 1.1453 - NANOS_UNIMPLEMENTED 1.1454 -} nanos_err_t; 1.1455 -typedef struct 1.1456 -{ 1.1457 - void (*outline)(void *); 1.1458 -} nanos_smp_args_t; 1.1459 -extern nanos_wd_t nanos_current_wd_(void); 1.1460 -extern nanos_wd_t nanos_current_wd(void); 1.1461 -extern int nanos_get_wd_id_(nanos_wd_t wd); 1.1462 -extern int nanos_get_wd_id(nanos_wd_t wd); 1.1463 -extern nanos_slicer_t nanos_find_slicer_(const char *slicer); 1.1464 -extern nanos_slicer_t nanos_find_slicer(const char *slicer); 1.1465 -extern nanos_ws_t nanos_find_worksharing_(const char *label); 1.1466 -extern nanos_ws_t nanos_find_worksharing(const char *label); 1.1467 -extern nanos_err_t nanos_create_wd_compact_(nanos_wd_t *wd, nanos_const_wd_definition_t *const_data, nanos_wd_dyn_props_t *dyn_props, size_t data_size, void **data, nanos_wg_t wg, nanos_copy_data_t **copies); 1.1468 -extern nanos_err_t nanos_create_wd_compact(nanos_wd_t *wd, nanos_const_wd_definition_t *const_data, nanos_wd_dyn_props_t *dyn_props, size_t data_size, void **data, nanos_wg_t wg, nanos_copy_data_t **copies); 1.1469 -extern nanos_err_t nanos_set_translate_function_(nanos_wd_t wd, nanos_translate_args_t translate_args); 1.1470 -extern nanos_err_t nanos_set_translate_function(nanos_wd_t wd, nanos_translate_args_t translate_args); 1.1471 -extern nanos_err_t nanos_create_sliced_wd_(nanos_wd_t *uwd, size_t num_devices, nanos_device_t *devices, size_t outline_data_size, int outline_data_align, void **outline_data, nanos_wg_t uwg, nanos_slicer_t slicer, nanos_wd_props_t *props, nanos_wd_dyn_props_t *dyn_props, size_t num_copies, nanos_copy_data_t **copies); 1.1472 -extern nanos_err_t nanos_create_sliced_wd(nanos_wd_t *uwd, size_t num_devices, nanos_device_t *devices, size_t outline_data_size, int outline_data_align, void **outline_data, nanos_wg_t uwg, nanos_slicer_t slicer, nanos_wd_props_t *props, nanos_wd_dyn_props_t *dyn_props, size_t num_copies, nanos_copy_data_t **copies); 1.1473 -extern nanos_err_t nanos_submit_(nanos_wd_t wd, size_t num_deps, nanos_dependence_t *deps, nanos_team_t team); 1.1474 -extern nanos_err_t nanos_submit(nanos_wd_t wd, size_t num_deps, nanos_dependence_t *deps, nanos_team_t team); 1.1475 -extern nanos_err_t nanos_create_wd_and_run_compact_(nanos_const_wd_definition_t *const_data, nanos_wd_dyn_props_t *dyn_props, size_t data_size, void *data, size_t num_deps, nanos_dependence_t *deps, nanos_copy_data_t *copies, nanos_translate_args_t translate_args); 1.1476 -extern nanos_err_t nanos_create_wd_and_run_compact(nanos_const_wd_definition_t *const_data, nanos_wd_dyn_props_t *dyn_props, size_t data_size, void *data, size_t num_deps, nanos_dependence_t *deps, nanos_copy_data_t *copies, nanos_translate_args_t translate_args); 1.1477 -extern nanos_err_t nanos_create_for_(void); 1.1478 -extern nanos_err_t nanos_create_for(void); 1.1479 -extern nanos_err_t nanos_set_internal_wd_data_(nanos_wd_t wd, void *data); 1.1480 -extern nanos_err_t nanos_set_internal_wd_data(nanos_wd_t wd, void *data); 1.1481 -extern nanos_err_t nanos_get_internal_wd_data_(nanos_wd_t wd, void **data); 1.1482 -extern nanos_err_t nanos_get_internal_wd_data(nanos_wd_t wd, void **data); 1.1483 -extern nanos_err_t nanos_yield_(void); 1.1484 -extern nanos_err_t nanos_yield(void); 1.1485 -extern nanos_err_t nanos_slicer_get_specific_data_(nanos_slicer_t slicer, void **data); 1.1486 -extern nanos_err_t nanos_slicer_get_specific_data(nanos_slicer_t slicer, void **data); 1.1487 -extern nanos_err_t nanos_create_team_(nanos_team_t *team, nanos_sched_t sg, unsigned int *nthreads, nanos_constraint_t *constraints, _Bool reuse, nanos_thread_t *info); 1.1488 -extern nanos_err_t nanos_create_team(nanos_team_t *team, nanos_sched_t sg, unsigned int *nthreads, nanos_constraint_t *constraints, _Bool reuse, nanos_thread_t *info); 1.1489 -extern nanos_err_t nanos_create_team_mapped_(nanos_team_t *team, nanos_sched_t sg, unsigned int *nthreads, unsigned int *mapping); 1.1490 -extern nanos_err_t nanos_create_team_mapped(nanos_team_t *team, nanos_sched_t sg, unsigned int *nthreads, unsigned int *mapping); 1.1491 -extern nanos_err_t nanos_leave_team_(); 1.1492 -extern nanos_err_t nanos_leave_team(); 1.1493 -extern nanos_err_t nanos_end_team_(nanos_team_t team); 1.1494 -extern nanos_err_t nanos_end_team(nanos_team_t team); 1.1495 -extern nanos_err_t nanos_team_barrier_(void); 1.1496 -extern nanos_err_t nanos_team_barrier(void); 1.1497 -extern nanos_err_t nanos_single_guard_(_Bool *); 1.1498 -extern nanos_err_t nanos_single_guard(_Bool *); 1.1499 -extern nanos_err_t nanos_enter_sync_init_(_Bool *b); 1.1500 -extern nanos_err_t nanos_enter_sync_init(_Bool *b); 1.1501 -extern nanos_err_t nanos_wait_sync_init_(void); 1.1502 -extern nanos_err_t nanos_wait_sync_init(void); 1.1503 -extern nanos_err_t nanos_release_sync_init_(void); 1.1504 -extern nanos_err_t nanos_release_sync_init(void); 1.1505 -extern nanos_err_t nanos_team_get_num_starring_threads_(int *n); 1.1506 -extern nanos_err_t nanos_team_get_num_starring_threads(int *n); 1.1507 -extern nanos_err_t nanos_team_get_starring_threads_(int *n, nanos_thread_t *list_of_threads); 1.1508 -extern nanos_err_t nanos_team_get_starring_threads(int *n, nanos_thread_t *list_of_threads); 1.1509 -extern nanos_err_t nanos_team_get_num_supporting_threads_(int *n); 1.1510 -extern nanos_err_t nanos_team_get_num_supporting_threads(int *n); 1.1511 -extern nanos_err_t nanos_team_get_supporting_threads_(int *n, nanos_thread_t *list_of_threads); 1.1512 -extern nanos_err_t nanos_team_get_supporting_threads(int *n, nanos_thread_t *list_of_threads); 1.1513 -extern nanos_err_t nanos_register_reduction_(nanos_reduction_t *red); 1.1514 -extern nanos_err_t nanos_register_reduction(nanos_reduction_t *red); 1.1515 -extern nanos_err_t nanos_reduction_get_private_data_(void **copy, void *sink); 1.1516 -extern nanos_err_t nanos_reduction_get_private_data(void **copy, void *sink); 1.1517 -extern nanos_err_t nanos_worksharing_create_(nanos_ws_desc_t **wsd, nanos_ws_t ws, nanos_ws_info_t *info, _Bool *b); 1.1518 -extern nanos_err_t nanos_worksharing_create(nanos_ws_desc_t **wsd, nanos_ws_t ws, nanos_ws_info_t *info, _Bool *b); 1.1519 -extern nanos_err_t nanos_worksharing_next_item_(nanos_ws_desc_t *wsd, nanos_ws_item_t *wsi); 1.1520 -extern nanos_err_t nanos_worksharing_next_item(nanos_ws_desc_t *wsd, nanos_ws_item_t *wsi); 1.1521 -extern nanos_err_t nanos_wg_wait_completion_(nanos_wg_t wg, _Bool avoid_flush); 1.1522 -extern nanos_err_t nanos_wg_wait_completion(nanos_wg_t wg, _Bool avoid_flush); 1.1523 -extern nanos_err_t nanos_create_int_sync_cond_(nanos_sync_cond_t *sync_cond, volatile int *p, int condition); 1.1524 -extern nanos_err_t nanos_create_int_sync_cond(nanos_sync_cond_t *sync_cond, volatile int *p, int condition); 1.1525 -extern nanos_err_t nanos_create_bool_sync_cond_(nanos_sync_cond_t *sync_cond, volatile _Bool *p, _Bool condition); 1.1526 -extern nanos_err_t nanos_create_bool_sync_cond(nanos_sync_cond_t *sync_cond, volatile _Bool *p, _Bool condition); 1.1527 -extern nanos_err_t nanos_sync_cond_wait_(nanos_sync_cond_t *sync_cond); 1.1528 -extern nanos_err_t nanos_sync_cond_wait(nanos_sync_cond_t *sync_cond); 1.1529 -extern nanos_err_t nanos_sync_cond_signal_(nanos_sync_cond_t *sync_cond); 1.1530 -extern nanos_err_t nanos_sync_cond_signal(nanos_sync_cond_t *sync_cond); 1.1531 -extern nanos_err_t nanos_destroy_sync_cond_(nanos_sync_cond_t *sync_cond); 1.1532 -extern nanos_err_t nanos_destroy_sync_cond(nanos_sync_cond_t *sync_cond); 1.1533 -extern nanos_err_t nanos_wait_on_(size_t num_deps, nanos_dependence_t *deps); 1.1534 -extern nanos_err_t nanos_wait_on(size_t num_deps, nanos_dependence_t *deps); 1.1535 -extern nanos_err_t nanos_init_lock_(nanos_lock_t **lock); 1.1536 -extern nanos_err_t nanos_init_lock(nanos_lock_t **lock); 1.1537 -extern nanos_err_t nanos_set_lock_(nanos_lock_t *lock); 1.1538 -extern nanos_err_t nanos_set_lock(nanos_lock_t *lock); 1.1539 -extern nanos_err_t nanos_unset_lock_(nanos_lock_t *lock); 1.1540 -extern nanos_err_t nanos_unset_lock(nanos_lock_t *lock); 1.1541 -extern nanos_err_t nanos_try_lock_(nanos_lock_t *lock, _Bool *result); 1.1542 -extern nanos_err_t nanos_try_lock(nanos_lock_t *lock, _Bool *result); 1.1543 -extern nanos_err_t nanos_destroy_lock_(nanos_lock_t *lock); 1.1544 -extern nanos_err_t nanos_destroy_lock(nanos_lock_t *lock); 1.1545 -extern nanos_err_t nanos_get_addr_(nanos_copy_id_t copy_id, void **addr, nanos_wd_t cwd); 1.1546 -extern nanos_err_t nanos_get_addr(nanos_copy_id_t copy_id, void **addr, nanos_wd_t cwd); 1.1547 -extern nanos_err_t nanos_copy_value_(void *dst, nanos_copy_id_t copy_id, nanos_wd_t cwd); 1.1548 -extern nanos_err_t nanos_copy_value(void *dst, nanos_copy_id_t copy_id, nanos_wd_t cwd); 1.1549 -extern nanos_err_t nanos_get_num_running_tasks_(int *num); 1.1550 -extern nanos_err_t nanos_get_num_running_tasks(int *num); 1.1551 -extern nanos_err_t nanos_start_scheduler_(); 1.1552 -extern nanos_err_t nanos_start_scheduler(); 1.1553 -extern nanos_err_t nanos_stop_scheduler_(); 1.1554 -extern nanos_err_t nanos_stop_scheduler(); 1.1555 -extern nanos_err_t nanos_scheduler_enabled_(_Bool *res); 1.1556 -extern nanos_err_t nanos_scheduler_enabled(_Bool *res); 1.1557 -extern nanos_err_t nanos_wait_until_threads_paused_(); 1.1558 -extern nanos_err_t nanos_wait_until_threads_paused(); 1.1559 -extern nanos_err_t nanos_wait_until_threads_unpaused_(); 1.1560 -extern nanos_err_t nanos_wait_until_threads_unpaused(); 1.1561 -extern nanos_err_t nanos_delay_start_(); 1.1562 -extern nanos_err_t nanos_delay_start(); 1.1563 -extern nanos_err_t nanos_start_(); 1.1564 -extern nanos_err_t nanos_start(); 1.1565 -extern nanos_err_t nanos_finish_(); 1.1566 -extern nanos_err_t nanos_finish(); 1.1567 -extern nanos_err_t nanos_malloc_(void **p, size_t size, const char *file, int line); 1.1568 -extern nanos_err_t nanos_malloc(void **p, size_t size, const char *file, int line); 1.1569 -extern nanos_err_t nanos_free_(void *p); 1.1570 -extern nanos_err_t nanos_free(void *p); 1.1571 -extern void nanos_handle_error_(nanos_err_t err); 1.1572 -extern void nanos_handle_error(nanos_err_t err); 1.1573 -extern void *nanos_smp_factory_(void *args); 1.1574 -extern void *nanos_smp_factory(void *args); 1.1575 -extern nanos_err_t nanos_instrument_register_key_(nanos_event_key_t *event_key, const char *key, const char *description, _Bool abort_when_registered); 1.1576 -extern nanos_err_t nanos_instrument_register_key(nanos_event_key_t *event_key, const char *key, const char *description, _Bool abort_when_registered); 1.1577 -extern nanos_err_t nanos_instrument_register_value_(nanos_event_value_t *event_value, const char *key, const char *value, const char *description, _Bool abort_when_registered); 1.1578 -extern nanos_err_t nanos_instrument_register_value(nanos_event_value_t *event_value, const char *key, const char *value, const char *description, _Bool abort_when_registered); 1.1579 -extern nanos_err_t nanos_instrument_register_value_with_val_(nanos_event_value_t val, const char *key, const char *value, const char *description, _Bool abort_when_registered); 1.1580 -extern nanos_err_t nanos_instrument_register_value_with_val(nanos_event_value_t val, const char *key, const char *value, const char *description, _Bool abort_when_registered); 1.1581 -extern nanos_err_t nanos_instrument_get_key_(const char *key, nanos_event_key_t *event_key); 1.1582 -extern nanos_err_t nanos_instrument_get_key(const char *key, nanos_event_key_t *event_key); 1.1583 -extern nanos_err_t nanos_instrument_get_value_(const char *key, const char *value, nanos_event_value_t *event_value); 1.1584 -extern nanos_err_t nanos_instrument_get_value(const char *key, const char *value, nanos_event_value_t *event_value); 1.1585 -extern nanos_err_t nanos_instrument_events_(unsigned int num_events, nanos_event_t events[]); 1.1586 -extern nanos_err_t nanos_instrument_events(unsigned int num_events, nanos_event_t events[]); 1.1587 -extern nanos_err_t nanos_instrument_enter_state_(nanos_event_state_value_t state); 1.1588 -extern nanos_err_t nanos_instrument_enter_state(nanos_event_state_value_t state); 1.1589 -extern nanos_err_t nanos_instrument_leave_state_(void); 1.1590 -extern nanos_err_t nanos_instrument_leave_state(void); 1.1591 -extern nanos_err_t nanos_instrument_enter_burst_(nanos_event_key_t key, nanos_event_value_t value); 1.1592 -extern nanos_err_t nanos_instrument_enter_burst(nanos_event_key_t key, nanos_event_value_t value); 1.1593 -extern nanos_err_t nanos_instrument_leave_burst_(nanos_event_key_t key); 1.1594 -extern nanos_err_t nanos_instrument_leave_burst(nanos_event_key_t key); 1.1595 -extern nanos_err_t nanos_instrument_point_event_(unsigned int nkvs, nanos_event_key_t *keys, nanos_event_value_t *values); 1.1596 -extern nanos_err_t nanos_instrument_point_event(unsigned int nkvs, nanos_event_key_t *keys, nanos_event_value_t *values); 1.1597 -extern nanos_err_t nanos_instrument_ptp_start_(nanos_event_domain_t domain, nanos_event_id_t id, unsigned int nkvs, nanos_event_key_t *keys, nanos_event_value_t *values); 1.1598 -extern nanos_err_t nanos_instrument_ptp_start(nanos_event_domain_t domain, nanos_event_id_t id, unsigned int nkvs, nanos_event_key_t *keys, nanos_event_value_t *values); 1.1599 -extern nanos_err_t nanos_instrument_ptp_end_(nanos_event_domain_t domain, nanos_event_id_t id, unsigned int nkvs, nanos_event_key_t *keys, nanos_event_value_t *values); 1.1600 -extern nanos_err_t nanos_instrument_ptp_end(nanos_event_domain_t domain, nanos_event_id_t id, unsigned int nkvs, nanos_event_key_t *keys, nanos_event_value_t *values); 1.1601 -extern nanos_err_t nanos_instrument_disable_state_events_(nanos_event_state_value_t state); 1.1602 -extern nanos_err_t nanos_instrument_disable_state_events(nanos_event_state_value_t state); 1.1603 -extern nanos_err_t nanos_instrument_enable_state_events_(void); 1.1604 -extern nanos_err_t nanos_instrument_enable_state_events(void); 1.1605 -extern nanos_err_t nanos_instrument_close_user_fun_event_(); 1.1606 -extern nanos_err_t nanos_instrument_close_user_fun_event(); 1.1607 -extern nanos_err_t nanos_instrument_enable_(void); 1.1608 -extern nanos_err_t nanos_instrument_enable(void); 1.1609 -extern nanos_err_t nanos_instrument_disable_(void); 1.1610 -extern nanos_err_t nanos_instrument_disable(void); 1.1611 -void nanos_reduction_int_vop(int, void *, void *); 1.1612 -void nanos_reduction_bop_add_char(void *arg1, void *arg2); 1.1613 -void nanos_reduction_vop_add_char(int i, void *arg1, void *arg2); 1.1614 -void nanos_reduction_bop_add_uchar(void *arg1, void *arg2); 1.1615 -void nanos_reduction_vop_add_uchar(int i, void *arg1, void *arg2); 1.1616 -void nanos_reduction_bop_add_schar(void *arg1, void *arg2); 1.1617 -void nanos_reduction_vop_add_schar(int i, void *arg1, void *arg2); 1.1618 -void nanos_reduction_bop_add_short(void *arg1, void *arg2); 1.1619 -void nanos_reduction_vop_add_short(int i, void *arg1, void *arg2); 1.1620 -void nanos_reduction_bop_add_ushort(void *arg1, void *arg2); 1.1621 -void nanos_reduction_vop_add_ushort(int i, void *arg1, void *arg2); 1.1622 -void nanos_reduction_bop_add_int(void *arg1, void *arg2); 1.1623 -void nanos_reduction_vop_add_int(int i, void *arg1, void *arg2); 1.1624 -void nanos_reduction_bop_add_uint(void *arg1, void *arg2); 1.1625 -void nanos_reduction_vop_add_uint(int i, void *arg1, void *arg2); 1.1626 -void nanos_reduction_bop_add_long(void *arg1, void *arg2); 1.1627 -void nanos_reduction_vop_add_long(int i, void *arg1, void *arg2); 1.1628 -void nanos_reduction_bop_add_ulong(void *arg1, void *arg2); 1.1629 -void nanos_reduction_vop_add_ulong(int i, void *arg1, void *arg2); 1.1630 -void nanos_reduction_bop_add_longlong(void *arg1, void *arg2); 1.1631 -void nanos_reduction_vop_add_longlong(int i, void *arg1, void *arg2); 1.1632 -void nanos_reduction_bop_add_ulonglong(void *arg1, void *arg2); 1.1633 -void nanos_reduction_vop_add_ulonglong(int i, void *arg1, void *arg2); 1.1634 -void nanos_reduction_bop_add__Bool(void *arg1, void *arg2); 1.1635 -void nanos_reduction_vop_add__Bool(int i, void *arg1, void *arg2); 1.1636 -void nanos_reduction_bop_add_float(void *arg1, void *arg2); 1.1637 -void nanos_reduction_vop_add_float(int i, void *arg1, void *arg2); 1.1638 -void nanos_reduction_bop_add_double(void *arg1, void *arg2); 1.1639 -void nanos_reduction_vop_add_double(int i, void *arg1, void *arg2); 1.1640 -void nanos_reduction_bop_add_longdouble(void *arg1, void *arg2); 1.1641 -void nanos_reduction_vop_add_longdouble(int i, void *arg1, void *arg2); 1.1642 -void nanos_reduction_bop_sub_char(void *arg1, void *arg2); 1.1643 -void nanos_reduction_vop_sub_char(int i, void *arg1, void *arg2); 1.1644 -void nanos_reduction_bop_sub_uchar(void *arg1, void *arg2); 1.1645 -void nanos_reduction_vop_sub_uchar(int i, void *arg1, void *arg2); 1.1646 -void nanos_reduction_bop_sub_schar(void *arg1, void *arg2); 1.1647 -void nanos_reduction_vop_sub_schar(int i, void *arg1, void *arg2); 1.1648 -void nanos_reduction_bop_sub_short(void *arg1, void *arg2); 1.1649 -void nanos_reduction_vop_sub_short(int i, void *arg1, void *arg2); 1.1650 -void nanos_reduction_bop_sub_ushort(void *arg1, void *arg2); 1.1651 -void nanos_reduction_vop_sub_ushort(int i, void *arg1, void *arg2); 1.1652 -void nanos_reduction_bop_sub_int(void *arg1, void *arg2); 1.1653 -void nanos_reduction_vop_sub_int(int i, void *arg1, void *arg2); 1.1654 -void nanos_reduction_bop_sub_uint(void *arg1, void *arg2); 1.1655 -void nanos_reduction_vop_sub_uint(int i, void *arg1, void *arg2); 1.1656 -void nanos_reduction_bop_sub_long(void *arg1, void *arg2); 1.1657 -void nanos_reduction_vop_sub_long(int i, void *arg1, void *arg2); 1.1658 -void nanos_reduction_bop_sub_ulong(void *arg1, void *arg2); 1.1659 -void nanos_reduction_vop_sub_ulong(int i, void *arg1, void *arg2); 1.1660 -void nanos_reduction_bop_sub_longlong(void *arg1, void *arg2); 1.1661 -void nanos_reduction_vop_sub_longlong(int i, void *arg1, void *arg2); 1.1662 -void nanos_reduction_bop_sub_ulonglong(void *arg1, void *arg2); 1.1663 -void nanos_reduction_vop_sub_ulonglong(int i, void *arg1, void *arg2); 1.1664 -void nanos_reduction_bop_sub__Bool(void *arg1, void *arg2); 1.1665 -void nanos_reduction_vop_sub__Bool(int i, void *arg1, void *arg2); 1.1666 -void nanos_reduction_bop_sub_float(void *arg1, void *arg2); 1.1667 -void nanos_reduction_vop_sub_float(int i, void *arg1, void *arg2); 1.1668 -void nanos_reduction_bop_sub_double(void *arg1, void *arg2); 1.1669 -void nanos_reduction_vop_sub_double(int i, void *arg1, void *arg2); 1.1670 -void nanos_reduction_bop_sub_longdouble(void *arg1, void *arg2); 1.1671 -void nanos_reduction_vop_sub_longdouble(int i, void *arg1, void *arg2); 1.1672 -void nanos_reduction_bop_prod_char(void *arg1, void *arg2); 1.1673 -void nanos_reduction_vop_prod_char(int i, void *arg1, void *arg2); 1.1674 -void nanos_reduction_bop_prod_uchar(void *arg1, void *arg2); 1.1675 -void nanos_reduction_vop_prod_uchar(int i, void *arg1, void *arg2); 1.1676 -void nanos_reduction_bop_prod_schar(void *arg1, void *arg2); 1.1677 -void nanos_reduction_vop_prod_schar(int i, void *arg1, void *arg2); 1.1678 -void nanos_reduction_bop_prod_short(void *arg1, void *arg2); 1.1679 -void nanos_reduction_vop_prod_short(int i, void *arg1, void *arg2); 1.1680 -void nanos_reduction_bop_prod_ushort(void *arg1, void *arg2); 1.1681 -void nanos_reduction_vop_prod_ushort(int i, void *arg1, void *arg2); 1.1682 -void nanos_reduction_bop_prod_int(void *arg1, void *arg2); 1.1683 -void nanos_reduction_vop_prod_int(int i, void *arg1, void *arg2); 1.1684 -void nanos_reduction_bop_prod_uint(void *arg1, void *arg2); 1.1685 -void nanos_reduction_vop_prod_uint(int i, void *arg1, void *arg2); 1.1686 -void nanos_reduction_bop_prod_long(void *arg1, void *arg2); 1.1687 -void nanos_reduction_vop_prod_long(int i, void *arg1, void *arg2); 1.1688 -void nanos_reduction_bop_prod_ulong(void *arg1, void *arg2); 1.1689 -void nanos_reduction_vop_prod_ulong(int i, void *arg1, void *arg2); 1.1690 -void nanos_reduction_bop_prod_longlong(void *arg1, void *arg2); 1.1691 -void nanos_reduction_vop_prod_longlong(int i, void *arg1, void *arg2); 1.1692 -void nanos_reduction_bop_prod_ulonglong(void *arg1, void *arg2); 1.1693 -void nanos_reduction_vop_prod_ulonglong(int i, void *arg1, void *arg2); 1.1694 -void nanos_reduction_bop_prod__Bool(void *arg1, void *arg2); 1.1695 -void nanos_reduction_vop_prod__Bool(int i, void *arg1, void *arg2); 1.1696 -void nanos_reduction_bop_prod_float(void *arg1, void *arg2); 1.1697 -void nanos_reduction_vop_prod_float(int i, void *arg1, void *arg2); 1.1698 -void nanos_reduction_bop_prod_double(void *arg1, void *arg2); 1.1699 -void nanos_reduction_vop_prod_double(int i, void *arg1, void *arg2); 1.1700 -void nanos_reduction_bop_prod_longdouble(void *arg1, void *arg2); 1.1701 -void nanos_reduction_vop_prod_longdouble(int i, void *arg1, void *arg2); 1.1702 -void nanos_reduction_bop_and_char(void *arg1, void *arg2); 1.1703 -void nanos_reduction_vop_and_char(int i, void *arg1, void *arg2); 1.1704 -void nanos_reduction_bop_and_uchar(void *arg1, void *arg2); 1.1705 -void nanos_reduction_vop_and_uchar(int i, void *arg1, void *arg2); 1.1706 -void nanos_reduction_bop_and_schar(void *arg1, void *arg2); 1.1707 -void nanos_reduction_vop_and_schar(int i, void *arg1, void *arg2); 1.1708 -void nanos_reduction_bop_and_short(void *arg1, void *arg2); 1.1709 -void nanos_reduction_vop_and_short(int i, void *arg1, void *arg2); 1.1710 -void nanos_reduction_bop_and_ushort(void *arg1, void *arg2); 1.1711 -void nanos_reduction_vop_and_ushort(int i, void *arg1, void *arg2); 1.1712 -void nanos_reduction_bop_and_int(void *arg1, void *arg2); 1.1713 -void nanos_reduction_vop_and_int(int i, void *arg1, void *arg2); 1.1714 -void nanos_reduction_bop_and_uint(void *arg1, void *arg2); 1.1715 -void nanos_reduction_vop_and_uint(int i, void *arg1, void *arg2); 1.1716 -void nanos_reduction_bop_and_long(void *arg1, void *arg2); 1.1717 -void nanos_reduction_vop_and_long(int i, void *arg1, void *arg2); 1.1718 -void nanos_reduction_bop_and_ulong(void *arg1, void *arg2); 1.1719 -void nanos_reduction_vop_and_ulong(int i, void *arg1, void *arg2); 1.1720 -void nanos_reduction_bop_and_longlong(void *arg1, void *arg2); 1.1721 -void nanos_reduction_vop_and_longlong(int i, void *arg1, void *arg2); 1.1722 -void nanos_reduction_bop_and_ulonglong(void *arg1, void *arg2); 1.1723 -void nanos_reduction_vop_and_ulonglong(int i, void *arg1, void *arg2); 1.1724 -void nanos_reduction_bop_and__Bool(void *arg1, void *arg2); 1.1725 -void nanos_reduction_vop_and__Bool(int i, void *arg1, void *arg2); 1.1726 -void nanos_reduction_bop_or_char(void *arg1, void *arg2); 1.1727 -void nanos_reduction_vop_or_char(int i, void *arg1, void *arg2); 1.1728 -void nanos_reduction_bop_or_uchar(void *arg1, void *arg2); 1.1729 -void nanos_reduction_vop_or_uchar(int i, void *arg1, void *arg2); 1.1730 -void nanos_reduction_bop_or_schar(void *arg1, void *arg2); 1.1731 -void nanos_reduction_vop_or_schar(int i, void *arg1, void *arg2); 1.1732 -void nanos_reduction_bop_or_short(void *arg1, void *arg2); 1.1733 -void nanos_reduction_vop_or_short(int i, void *arg1, void *arg2); 1.1734 -void nanos_reduction_bop_or_ushort(void *arg1, void *arg2); 1.1735 -void nanos_reduction_vop_or_ushort(int i, void *arg1, void *arg2); 1.1736 -void nanos_reduction_bop_or_int(void *arg1, void *arg2); 1.1737 -void nanos_reduction_vop_or_int(int i, void *arg1, void *arg2); 1.1738 -void nanos_reduction_bop_or_uint(void *arg1, void *arg2); 1.1739 -void nanos_reduction_vop_or_uint(int i, void *arg1, void *arg2); 1.1740 -void nanos_reduction_bop_or_long(void *arg1, void *arg2); 1.1741 -void nanos_reduction_vop_or_long(int i, void *arg1, void *arg2); 1.1742 -void nanos_reduction_bop_or_ulong(void *arg1, void *arg2); 1.1743 -void nanos_reduction_vop_or_ulong(int i, void *arg1, void *arg2); 1.1744 -void nanos_reduction_bop_or_longlong(void *arg1, void *arg2); 1.1745 -void nanos_reduction_vop_or_longlong(int i, void *arg1, void *arg2); 1.1746 -void nanos_reduction_bop_or_ulonglong(void *arg1, void *arg2); 1.1747 -void nanos_reduction_vop_or_ulonglong(int i, void *arg1, void *arg2); 1.1748 -void nanos_reduction_bop_or__Bool(void *arg1, void *arg2); 1.1749 -void nanos_reduction_vop_or__Bool(int i, void *arg1, void *arg2); 1.1750 -void nanos_reduction_bop_xor_char(void *arg1, void *arg2); 1.1751 -void nanos_reduction_vop_xor_char(int i, void *arg1, void *arg2); 1.1752 -void nanos_reduction_bop_xor_uchar(void *arg1, void *arg2); 1.1753 -void nanos_reduction_vop_xor_uchar(int i, void *arg1, void *arg2); 1.1754 -void nanos_reduction_bop_xor_schar(void *arg1, void *arg2); 1.1755 -void nanos_reduction_vop_xor_schar(int i, void *arg1, void *arg2); 1.1756 -void nanos_reduction_bop_xor_short(void *arg1, void *arg2); 1.1757 -void nanos_reduction_vop_xor_short(int i, void *arg1, void *arg2); 1.1758 -void nanos_reduction_bop_xor_ushort(void *arg1, void *arg2); 1.1759 -void nanos_reduction_vop_xor_ushort(int i, void *arg1, void *arg2); 1.1760 -void nanos_reduction_bop_xor_int(void *arg1, void *arg2); 1.1761 -void nanos_reduction_vop_xor_int(int i, void *arg1, void *arg2); 1.1762 -void nanos_reduction_bop_xor_uint(void *arg1, void *arg2); 1.1763 -void nanos_reduction_vop_xor_uint(int i, void *arg1, void *arg2); 1.1764 -void nanos_reduction_bop_xor_long(void *arg1, void *arg2); 1.1765 -void nanos_reduction_vop_xor_long(int i, void *arg1, void *arg2); 1.1766 -void nanos_reduction_bop_xor_ulong(void *arg1, void *arg2); 1.1767 -void nanos_reduction_vop_xor_ulong(int i, void *arg1, void *arg2); 1.1768 -void nanos_reduction_bop_xor_longlong(void *arg1, void *arg2); 1.1769 -void nanos_reduction_vop_xor_longlong(int i, void *arg1, void *arg2); 1.1770 -void nanos_reduction_bop_xor_ulonglong(void *arg1, void *arg2); 1.1771 -void nanos_reduction_vop_xor_ulonglong(int i, void *arg1, void *arg2); 1.1772 -void nanos_reduction_bop_xor__Bool(void *arg1, void *arg2); 1.1773 -void nanos_reduction_vop_xor__Bool(int i, void *arg1, void *arg2); 1.1774 -void nanos_reduction_bop_land_char(void *arg1, void *arg2); 1.1775 -void nanos_reduction_vop_land_char(int i, void *arg1, void *arg2); 1.1776 -void nanos_reduction_bop_land_uchar(void *arg1, void *arg2); 1.1777 -void nanos_reduction_vop_land_uchar(int i, void *arg1, void *arg2); 1.1778 -void nanos_reduction_bop_land_schar(void *arg1, void *arg2); 1.1779 -void nanos_reduction_vop_land_schar(int i, void *arg1, void *arg2); 1.1780 -void nanos_reduction_bop_land_short(void *arg1, void *arg2); 1.1781 -void nanos_reduction_vop_land_short(int i, void *arg1, void *arg2); 1.1782 -void nanos_reduction_bop_land_ushort(void *arg1, void *arg2); 1.1783 -void nanos_reduction_vop_land_ushort(int i, void *arg1, void *arg2); 1.1784 -void nanos_reduction_bop_land_int(void *arg1, void *arg2); 1.1785 -void nanos_reduction_vop_land_int(int i, void *arg1, void *arg2); 1.1786 -void nanos_reduction_bop_land_uint(void *arg1, void *arg2); 1.1787 -void nanos_reduction_vop_land_uint(int i, void *arg1, void *arg2); 1.1788 -void nanos_reduction_bop_land_long(void *arg1, void *arg2); 1.1789 -void nanos_reduction_vop_land_long(int i, void *arg1, void *arg2); 1.1790 -void nanos_reduction_bop_land_ulong(void *arg1, void *arg2); 1.1791 -void nanos_reduction_vop_land_ulong(int i, void *arg1, void *arg2); 1.1792 -void nanos_reduction_bop_land_longlong(void *arg1, void *arg2); 1.1793 -void nanos_reduction_vop_land_longlong(int i, void *arg1, void *arg2); 1.1794 -void nanos_reduction_bop_land_ulonglong(void *arg1, void *arg2); 1.1795 -void nanos_reduction_vop_land_ulonglong(int i, void *arg1, void *arg2); 1.1796 -void nanos_reduction_bop_land__Bool(void *arg1, void *arg2); 1.1797 -void nanos_reduction_vop_land__Bool(int i, void *arg1, void *arg2); 1.1798 -void nanos_reduction_bop_land_float(void *arg1, void *arg2); 1.1799 -void nanos_reduction_vop_land_float(int i, void *arg1, void *arg2); 1.1800 -void nanos_reduction_bop_land_double(void *arg1, void *arg2); 1.1801 -void nanos_reduction_vop_land_double(int i, void *arg1, void *arg2); 1.1802 -void nanos_reduction_bop_land_longdouble(void *arg1, void *arg2); 1.1803 -void nanos_reduction_vop_land_longdouble(int i, void *arg1, void *arg2); 1.1804 -void nanos_reduction_bop_lor_char(void *arg1, void *arg2); 1.1805 -void nanos_reduction_vop_lor_char(int i, void *arg1, void *arg2); 1.1806 -void nanos_reduction_bop_lor_uchar(void *arg1, void *arg2); 1.1807 -void nanos_reduction_vop_lor_uchar(int i, void *arg1, void *arg2); 1.1808 -void nanos_reduction_bop_lor_schar(void *arg1, void *arg2); 1.1809 -void nanos_reduction_vop_lor_schar(int i, void *arg1, void *arg2); 1.1810 -void nanos_reduction_bop_lor_short(void *arg1, void *arg2); 1.1811 -void nanos_reduction_vop_lor_short(int i, void *arg1, void *arg2); 1.1812 -void nanos_reduction_bop_lor_ushort(void *arg1, void *arg2); 1.1813 -void nanos_reduction_vop_lor_ushort(int i, void *arg1, void *arg2); 1.1814 -void nanos_reduction_bop_lor_int(void *arg1, void *arg2); 1.1815 -void nanos_reduction_vop_lor_int(int i, void *arg1, void *arg2); 1.1816 -void nanos_reduction_bop_lor_uint(void *arg1, void *arg2); 1.1817 -void nanos_reduction_vop_lor_uint(int i, void *arg1, void *arg2); 1.1818 -void nanos_reduction_bop_lor_long(void *arg1, void *arg2); 1.1819 -void nanos_reduction_vop_lor_long(int i, void *arg1, void *arg2); 1.1820 -void nanos_reduction_bop_lor_ulong(void *arg1, void *arg2); 1.1821 -void nanos_reduction_vop_lor_ulong(int i, void *arg1, void *arg2); 1.1822 -void nanos_reduction_bop_lor_longlong(void *arg1, void *arg2); 1.1823 -void nanos_reduction_vop_lor_longlong(int i, void *arg1, void *arg2); 1.1824 -void nanos_reduction_bop_lor_ulonglong(void *arg1, void *arg2); 1.1825 -void nanos_reduction_vop_lor_ulonglong(int i, void *arg1, void *arg2); 1.1826 -void nanos_reduction_bop_lor__Bool(void *arg1, void *arg2); 1.1827 -void nanos_reduction_vop_lor__Bool(int i, void *arg1, void *arg2); 1.1828 -void nanos_reduction_bop_lor_float(void *arg1, void *arg2); 1.1829 -void nanos_reduction_vop_lor_float(int i, void *arg1, void *arg2); 1.1830 -void nanos_reduction_bop_lor_double(void *arg1, void *arg2); 1.1831 -void nanos_reduction_vop_lor_double(int i, void *arg1, void *arg2); 1.1832 -void nanos_reduction_bop_lor_longdouble(void *arg1, void *arg2); 1.1833 -void nanos_reduction_vop_lor_longdouble(int i, void *arg1, void *arg2); 1.1834 -void nanos_reduction_bop_max_char(void *arg1, void *arg2); 1.1835 -void nanos_reduction_vop_max_char(int i, void *arg1, void *arg2); 1.1836 -void nanos_reduction_bop_max_uchar(void *arg1, void *arg2); 1.1837 -void nanos_reduction_vop_max_uchar(int i, void *arg1, void *arg2); 1.1838 -void nanos_reduction_bop_max_schar(void *arg1, void *arg2); 1.1839 -void nanos_reduction_vop_max_schar(int i, void *arg1, void *arg2); 1.1840 -void nanos_reduction_bop_max_short(void *arg1, void *arg2); 1.1841 -void nanos_reduction_vop_max_short(int i, void *arg1, void *arg2); 1.1842 -void nanos_reduction_bop_max_ushort(void *arg1, void *arg2); 1.1843 -void nanos_reduction_vop_max_ushort(int i, void *arg1, void *arg2); 1.1844 -void nanos_reduction_bop_max_int(void *arg1, void *arg2); 1.1845 -void nanos_reduction_vop_max_int(int i, void *arg1, void *arg2); 1.1846 -void nanos_reduction_bop_max_uint(void *arg1, void *arg2); 1.1847 -void nanos_reduction_vop_max_uint(int i, void *arg1, void *arg2); 1.1848 -void nanos_reduction_bop_max_long(void *arg1, void *arg2); 1.1849 -void nanos_reduction_vop_max_long(int i, void *arg1, void *arg2); 1.1850 -void nanos_reduction_bop_max_ulong(void *arg1, void *arg2); 1.1851 -void nanos_reduction_vop_max_ulong(int i, void *arg1, void *arg2); 1.1852 -void nanos_reduction_bop_max_longlong(void *arg1, void *arg2); 1.1853 -void nanos_reduction_vop_max_longlong(int i, void *arg1, void *arg2); 1.1854 -void nanos_reduction_bop_max_ulonglong(void *arg1, void *arg2); 1.1855 -void nanos_reduction_vop_max_ulonglong(int i, void *arg1, void *arg2); 1.1856 -void nanos_reduction_bop_max__Bool(void *arg1, void *arg2); 1.1857 -void nanos_reduction_vop_max__Bool(int i, void *arg1, void *arg2); 1.1858 -void nanos_reduction_bop_max_float(void *arg1, void *arg2); 1.1859 -void nanos_reduction_vop_max_float(int i, void *arg1, void *arg2); 1.1860 -void nanos_reduction_bop_max_double(void *arg1, void *arg2); 1.1861 -void nanos_reduction_vop_max_double(int i, void *arg1, void *arg2); 1.1862 -void nanos_reduction_bop_max_longdouble(void *arg1, void *arg2); 1.1863 -void nanos_reduction_vop_max_longdouble(int i, void *arg1, void *arg2); 1.1864 -void nanos_reduction_bop_min_char(void *arg1, void *arg2); 1.1865 -void nanos_reduction_vop_min_char(int i, void *arg1, void *arg2); 1.1866 -void nanos_reduction_bop_min_uchar(void *arg1, void *arg2); 1.1867 -void nanos_reduction_vop_min_uchar(int i, void *arg1, void *arg2); 1.1868 -void nanos_reduction_bop_min_schar(void *arg1, void *arg2); 1.1869 -void nanos_reduction_vop_min_schar(int i, void *arg1, void *arg2); 1.1870 -void nanos_reduction_bop_min_short(void *arg1, void *arg2); 1.1871 -void nanos_reduction_vop_min_short(int i, void *arg1, void *arg2); 1.1872 -void nanos_reduction_bop_min_ushort(void *arg1, void *arg2); 1.1873 -void nanos_reduction_vop_min_ushort(int i, void *arg1, void *arg2); 1.1874 -void nanos_reduction_bop_min_int(void *arg1, void *arg2); 1.1875 -void nanos_reduction_vop_min_int(int i, void *arg1, void *arg2); 1.1876 -void nanos_reduction_bop_min_uint(void *arg1, void *arg2); 1.1877 -void nanos_reduction_vop_min_uint(int i, void *arg1, void *arg2); 1.1878 -void nanos_reduction_bop_min_long(void *arg1, void *arg2); 1.1879 -void nanos_reduction_vop_min_long(int i, void *arg1, void *arg2); 1.1880 -void nanos_reduction_bop_min_ulong(void *arg1, void *arg2); 1.1881 -void nanos_reduction_vop_min_ulong(int i, void *arg1, void *arg2); 1.1882 -void nanos_reduction_bop_min_longlong(void *arg1, void *arg2); 1.1883 -void nanos_reduction_vop_min_longlong(int i, void *arg1, void *arg2); 1.1884 -void nanos_reduction_bop_min_ulonglong(void *arg1, void *arg2); 1.1885 -void nanos_reduction_vop_min_ulonglong(int i, void *arg1, void *arg2); 1.1886 -void nanos_reduction_bop_min__Bool(void *arg1, void *arg2); 1.1887 -void nanos_reduction_vop_min__Bool(int i, void *arg1, void *arg2); 1.1888 -void nanos_reduction_bop_min_float(void *arg1, void *arg2); 1.1889 -void nanos_reduction_vop_min_float(int i, void *arg1, void *arg2); 1.1890 -void nanos_reduction_bop_min_double(void *arg1, void *arg2); 1.1891 -void nanos_reduction_vop_min_double(int i, void *arg1, void *arg2); 1.1892 -void nanos_reduction_bop_min_longdouble(void *arg1, void *arg2); 1.1893 -void nanos_reduction_vop_min_longdouble(int i, void *arg1, void *arg2); 1.1894 -void nanos_reduction_default_cleanup_char(void *r); 1.1895 -void nanos_reduction_default_cleanup_uchar(void *r); 1.1896 -void nanos_reduction_default_cleanup_schar(void *r); 1.1897 -void nanos_reduction_default_cleanup_short(void *r); 1.1898 -void nanos_reduction_default_cleanup_ushort(void *r); 1.1899 -void nanos_reduction_default_cleanup_int(void *r); 1.1900 -void nanos_reduction_default_cleanup_uint(void *r); 1.1901 -void nanos_reduction_default_cleanup_long(void *r); 1.1902 -void nanos_reduction_default_cleanup_ulong(void *r); 1.1903 -void nanos_reduction_default_cleanup_longlong(void *r); 1.1904 -void nanos_reduction_default_cleanup_ulonglong(void *r); 1.1905 -void nanos_reduction_default_cleanup__Bool(void *r); 1.1906 -void nanos_reduction_default_cleanup_float(void *r); 1.1907 -void nanos_reduction_default_cleanup_double(void *r); 1.1908 -void nanos_reduction_default_cleanup_longdouble(void *r); 1.1909 -typedef void *omp_lock_t; 1.1910 -typedef void *omp_nest_lock_t; 1.1911 -typedef enum omp_sched_t 1.1912 -{ 1.1913 - omp_sched_static = 1, 1.1914 - omp_sched_dynamic = 2, 1.1915 - omp_sched_guided = 3, 1.1916 - omp_sched_auto = 4 1.1917 -} omp_sched_t; 1.1918 -extern void omp_set_num_threads(int num_threads); 1.1919 -extern int omp_get_num_threads(void); 1.1920 -extern int omp_get_max_threads(void); 1.1921 -extern int omp_get_thread_num(void); 1.1922 -extern int omp_get_num_procs(void); 1.1923 -extern int omp_in_parallel(void); 1.1924 -extern void omp_set_dynamic(int dynamic_threads); 1.1925 -extern int omp_get_dynamic(void); 1.1926 -extern void omp_set_nested(int nested); 1.1927 -extern int omp_get_nested(void); 1.1928 -extern int omp_get_thread_limit(void); 1.1929 -extern void omp_set_max_active_levels(int max_active_levels); 1.1930 -extern int omp_get_max_active_levels(void); 1.1931 -extern void omp_set_schedule(omp_sched_t kind, int modifier); 1.1932 -extern void omp_get_schedule(omp_sched_t *kind, int *modifier); 1.1933 -extern int omp_get_level(void); 1.1934 -extern int omp_get_ancestor_thread_num(int level); 1.1935 -extern int omp_get_team_size(int level); 1.1936 -extern int omp_get_active_level(void); 1.1937 -extern void omp_init_lock(omp_lock_t *lock); 1.1938 -extern void omp_destroy_lock(omp_lock_t *lock); 1.1939 -extern void omp_set_lock(omp_lock_t *lock); 1.1940 -extern void omp_unset_lock(omp_lock_t *lock); 1.1941 -extern int omp_test_lock(omp_lock_t *lock); 1.1942 -extern void omp_init_nest_lock(omp_nest_lock_t *lock); 1.1943 -extern void omp_destroy_nest_lock(omp_nest_lock_t *lock); 1.1944 -extern void omp_set_nest_lock(omp_nest_lock_t *lock); 1.1945 -extern void omp_unset_nest_lock(omp_nest_lock_t *lock); 1.1946 -extern int omp_test_nest_lock(omp_nest_lock_t *lock); 1.1947 -extern double omp_get_wtime(void); 1.1948 -extern double omp_get_wtick(void); 1.1949 -extern int omp_in_final(void); 1.1950 -nanos_err_t nanos_omp_single(_Bool *); 1.1951 -nanos_err_t nanos_omp_barrier(void); 1.1952 -void nanos_omp_set_interface(void *); 1.1953 -nanos_err_t nanos_omp_set_implicit(nanos_wd_t uwd); 1.1954 -int nanos_omp_get_max_threads(void); 1.1955 -nanos_ws_t nanos_omp_find_worksharing(omp_sched_t kind); 1.1956 -nanos_err_t nanos_omp_get_schedule(omp_sched_t *kind, int *modifier); 1.1957 -typedef __time_t time_t; 1.1958 -struct timespec 1.1959 -{ 1.1960 - __time_t tv_sec; 1.1961 - long int tv_nsec; 1.1962 -}; 1.1963 -struct sched_param 1.1964 -{ 1.1965 - int __sched_priority; 1.1966 -}; 1.1967 -struct __sched_param 1.1968 -{ 1.1969 - int __sched_priority; 1.1970 -}; 1.1971 -typedef unsigned long int __cpu_mask; 1.1972 -typedef struct 1.1973 -{ 1.1974 - __cpu_mask __bits[1024 / (8 * sizeof(__cpu_mask))]; 1.1975 -} cpu_set_t; 1.1976 -extern int __sched_cpucount(size_t __setsize, const cpu_set_t *__setp) __attribute__((__nothrow__, __leaf__)); 1.1977 -extern cpu_set_t *__sched_cpualloc(size_t __count) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.1978 -extern void __sched_cpufree(cpu_set_t *__set) __attribute__((__nothrow__, __leaf__)); 1.1979 -extern int sched_setparam(__pid_t __pid, __const struct sched_param *__param) __attribute__((__nothrow__, __leaf__)); 1.1980 -extern int sched_getparam(__pid_t __pid, struct sched_param *__param) __attribute__((__nothrow__, __leaf__)); 1.1981 -extern int sched_setscheduler(__pid_t __pid, int __policy, __const struct sched_param *__param) __attribute__((__nothrow__, __leaf__)); 1.1982 -extern int sched_getscheduler(__pid_t __pid) __attribute__((__nothrow__, __leaf__)); 1.1983 -extern int sched_yield(void) __attribute__((__nothrow__, __leaf__)); 1.1984 -extern int sched_get_priority_max(int __algorithm) __attribute__((__nothrow__, __leaf__)); 1.1985 -extern int sched_get_priority_min(int __algorithm) __attribute__((__nothrow__, __leaf__)); 1.1986 -extern int sched_rr_get_interval(__pid_t __pid, struct timespec *__t) __attribute__((__nothrow__, __leaf__)); 1.1987 -typedef __clock_t clock_t; 1.1988 -typedef __clockid_t clockid_t; 1.1989 -typedef __timer_t timer_t; 1.1990 -struct tm 1.1991 -{ 1.1992 - int tm_sec; 1.1993 - int tm_min; 1.1994 - int tm_hour; 1.1995 - int tm_mday; 1.1996 - int tm_mon; 1.1997 - int tm_year; 1.1998 - int tm_wday; 1.1999 - int tm_yday; 1.2000 - int tm_isdst; 1.2001 - long int tm_gmtoff; 1.2002 - __const char *tm_zone; 1.2003 -}; 1.2004 -struct itimerspec 1.2005 -{ 1.2006 - struct timespec it_interval; 1.2007 - struct timespec it_value; 1.2008 -}; 1.2009 -struct sigevent; 1.2010 -extern clock_t clock(void) __attribute__((__nothrow__, __leaf__)); 1.2011 -extern time_t time(time_t *__timer) __attribute__((__nothrow__, __leaf__)); 1.2012 -extern double difftime(time_t __time1, time_t __time0) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2013 -extern time_t mktime(struct tm *__tp) __attribute__((__nothrow__, __leaf__)); 1.2014 -extern size_t strftime(char *__restrict __s, size_t __maxsize, __const char *__restrict __format, __const struct tm *__restrict __tp) __attribute__((__nothrow__, __leaf__)); 1.2015 -typedef struct __locale_struct 1.2016 -{ 1.2017 - struct __locale_data *__locales[13]; 1.2018 - const unsigned short int *__ctype_b; 1.2019 - const int *__ctype_tolower; 1.2020 - const int *__ctype_toupper; 1.2021 - const char *__names[13]; 1.2022 -} *__locale_t; 1.2023 -typedef __locale_t locale_t; 1.2024 -extern size_t strftime_l(char *__restrict __s, size_t __maxsize, __const char *__restrict __format, __const struct tm *__restrict __tp, __locale_t __loc) __attribute__((__nothrow__, __leaf__)); 1.2025 -extern struct tm *gmtime(__const time_t *__timer) __attribute__((__nothrow__, __leaf__)); 1.2026 -extern struct tm *localtime(__const time_t *__timer) __attribute__((__nothrow__, __leaf__)); 1.2027 -extern struct tm *gmtime_r(__const time_t *__restrict __timer, struct tm *__restrict __tp) __attribute__((__nothrow__, __leaf__)); 1.2028 -extern struct tm *localtime_r(__const time_t *__restrict __timer, struct tm *__restrict __tp) __attribute__((__nothrow__, __leaf__)); 1.2029 -extern char *asctime(__const struct tm *__tp) __attribute__((__nothrow__, __leaf__)); 1.2030 -extern char *ctime(__const time_t *__timer) __attribute__((__nothrow__, __leaf__)); 1.2031 -extern char *asctime_r(__const struct tm *__restrict __tp, char *__restrict __buf) __attribute__((__nothrow__, __leaf__)); 1.2032 -extern char *ctime_r(__const time_t *__restrict __timer, char *__restrict __buf) __attribute__((__nothrow__, __leaf__)); 1.2033 -extern char *__tzname[2]; 1.2034 -extern int __daylight; 1.2035 -extern long int __timezone; 1.2036 -extern char *tzname[2]; 1.2037 -extern void tzset(void) __attribute__((__nothrow__, __leaf__)); 1.2038 -extern int daylight; 1.2039 -extern long int timezone; 1.2040 -extern int stime(__const time_t *__when) __attribute__((__nothrow__, __leaf__)); 1.2041 -extern time_t timegm(struct tm *__tp) __attribute__((__nothrow__, __leaf__)); 1.2042 -extern time_t timelocal(struct tm *__tp) __attribute__((__nothrow__, __leaf__)); 1.2043 -extern int dysize(int __year) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2044 -extern int nanosleep(__const struct timespec *__requested_time, struct timespec *__remaining); 1.2045 -extern int clock_getres(clockid_t __clock_id, struct timespec *__res) __attribute__((__nothrow__, __leaf__)); 1.2046 -extern int clock_gettime(clockid_t __clock_id, struct timespec *__tp) __attribute__((__nothrow__, __leaf__)); 1.2047 -extern int clock_settime(clockid_t __clock_id, __const struct timespec *__tp) __attribute__((__nothrow__, __leaf__)); 1.2048 -extern int clock_nanosleep(clockid_t __clock_id, int __flags, __const struct timespec *__req, struct timespec *__rem); 1.2049 -extern int clock_getcpuclockid(pid_t __pid, clockid_t *__clock_id) __attribute__((__nothrow__, __leaf__)); 1.2050 -extern int timer_create(clockid_t __clock_id, struct sigevent *__restrict __evp, timer_t *__restrict __timerid) __attribute__((__nothrow__, __leaf__)); 1.2051 -extern int timer_delete(timer_t __timerid) __attribute__((__nothrow__, __leaf__)); 1.2052 -extern int timer_settime(timer_t __timerid, int __flags, __const struct itimerspec *__restrict __value, struct itimerspec *__restrict __ovalue) __attribute__((__nothrow__, __leaf__)); 1.2053 -extern int timer_gettime(timer_t __timerid, struct itimerspec *__value) __attribute__((__nothrow__, __leaf__)); 1.2054 -extern int timer_getoverrun(timer_t __timerid) __attribute__((__nothrow__, __leaf__)); 1.2055 -typedef unsigned long int pthread_t; 1.2056 -typedef union 1.2057 -{ 1.2058 - char __size[56]; 1.2059 - long int __align; 1.2060 -} pthread_attr_t; 1.2061 -typedef struct __pthread_internal_list 1.2062 -{ 1.2063 - struct __pthread_internal_list *__prev; 1.2064 - struct __pthread_internal_list *__next; 1.2065 -} __pthread_list_t; 1.2066 -typedef union 1.2067 -{ 1.2068 - struct __pthread_mutex_s 1.2069 - { 1.2070 - int __lock; 1.2071 - unsigned int __count; 1.2072 - int __owner; 1.2073 - unsigned int __nusers; 1.2074 - int __kind; 1.2075 - int __spins; 1.2076 - __pthread_list_t __list; 1.2077 - } __data; 1.2078 - char __size[40]; 1.2079 - long int __align; 1.2080 -} pthread_mutex_t; 1.2081 -typedef union 1.2082 -{ 1.2083 - char __size[4]; 1.2084 - int __align; 1.2085 -} pthread_mutexattr_t; 1.2086 -typedef union 1.2087 -{ 1.2088 - struct 1.2089 - { 1.2090 - int __lock; 1.2091 - unsigned int __futex; 1.2092 - __extension__ 1.2093 - unsigned long long int __total_seq; 1.2094 - __extension__ 1.2095 - unsigned long long int __wakeup_seq; 1.2096 - __extension__ 1.2097 - unsigned long long int __woken_seq; 1.2098 - void *__mutex; 1.2099 - unsigned int __nwaiters; 1.2100 - unsigned int __broadcast_seq; 1.2101 - } __data; 1.2102 - char __size[48]; 1.2103 - __extension__ 1.2104 - long long int __align; 1.2105 -} pthread_cond_t; 1.2106 -typedef union 1.2107 -{ 1.2108 - char __size[4]; 1.2109 - int __align; 1.2110 -} pthread_condattr_t; 1.2111 -typedef unsigned int pthread_key_t; 1.2112 -typedef int pthread_once_t; 1.2113 -typedef union 1.2114 -{ 1.2115 - struct 1.2116 - { 1.2117 - int __lock; 1.2118 - unsigned int __nr_readers; 1.2119 - unsigned int __readers_wakeup; 1.2120 - unsigned int __writer_wakeup; 1.2121 - unsigned int __nr_readers_queued; 1.2122 - unsigned int __nr_writers_queued; 1.2123 - int __writer; 1.2124 - int __shared; 1.2125 - unsigned long int __pad1; 1.2126 - unsigned long int __pad2; 1.2127 - unsigned int __flags; 1.2128 - } __data; 1.2129 - char __size[56]; 1.2130 - long int __align; 1.2131 -} pthread_rwlock_t; 1.2132 -typedef union 1.2133 -{ 1.2134 - char __size[8]; 1.2135 - long int __align; 1.2136 -} pthread_rwlockattr_t; 1.2137 -typedef volatile int pthread_spinlock_t; 1.2138 -typedef union 1.2139 -{ 1.2140 - char __size[32]; 1.2141 - long int __align; 1.2142 -} pthread_barrier_t; 1.2143 -typedef union 1.2144 -{ 1.2145 - char __size[4]; 1.2146 - int __align; 1.2147 -} pthread_barrierattr_t; 1.2148 -typedef long int __jmp_buf[8]; 1.2149 -enum 1.2150 -{ 1.2151 - PTHREAD_CREATE_JOINABLE, 1.2152 - PTHREAD_CREATE_DETACHED 1.2153 -}; 1.2154 -enum 1.2155 -{ 1.2156 - PTHREAD_MUTEX_TIMED_NP, 1.2157 - PTHREAD_MUTEX_RECURSIVE_NP, 1.2158 - PTHREAD_MUTEX_ERRORCHECK_NP, 1.2159 - PTHREAD_MUTEX_ADAPTIVE_NP, 1.2160 - PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, 1.2161 - PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, 1.2162 - PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, 1.2163 - PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL 1.2164 -}; 1.2165 -enum 1.2166 -{ 1.2167 - PTHREAD_MUTEX_STALLED, 1.2168 - PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED, 1.2169 - PTHREAD_MUTEX_ROBUST, 1.2170 - PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST 1.2171 -}; 1.2172 -enum 1.2173 -{ 1.2174 - PTHREAD_RWLOCK_PREFER_READER_NP, 1.2175 - PTHREAD_RWLOCK_PREFER_WRITER_NP, 1.2176 - PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, 1.2177 - PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP 1.2178 -}; 1.2179 -enum 1.2180 -{ 1.2181 - PTHREAD_INHERIT_SCHED, 1.2182 - PTHREAD_EXPLICIT_SCHED 1.2183 -}; 1.2184 -enum 1.2185 -{ 1.2186 - PTHREAD_SCOPE_SYSTEM, 1.2187 - PTHREAD_SCOPE_PROCESS 1.2188 -}; 1.2189 -enum 1.2190 -{ 1.2191 - PTHREAD_PROCESS_PRIVATE, 1.2192 - PTHREAD_PROCESS_SHARED 1.2193 -}; 1.2194 -struct _pthread_cleanup_buffer 1.2195 -{ 1.2196 - void (*__routine)(void *); 1.2197 - void *__arg; 1.2198 - int __canceltype; 1.2199 - struct _pthread_cleanup_buffer *__prev; 1.2200 -}; 1.2201 -enum 1.2202 -{ 1.2203 - PTHREAD_CANCEL_ENABLE, 1.2204 - PTHREAD_CANCEL_DISABLE 1.2205 -}; 1.2206 -enum 1.2207 -{ 1.2208 - PTHREAD_CANCEL_DEFERRED, 1.2209 - PTHREAD_CANCEL_ASYNCHRONOUS 1.2210 -}; 1.2211 -extern int pthread_create(pthread_t *__restrict __newthread, __const pthread_attr_t *__restrict __attr, void *(*__start_routine)(void *), void *__restrict __arg) __attribute__((__nothrow__)) __attribute__((__nonnull__(1, 3))); 1.2212 -extern void pthread_exit(void *__retval) __attribute__((__noreturn__)); 1.2213 -extern int pthread_join(pthread_t __th, void **__thread_return); 1.2214 -extern int pthread_detach(pthread_t __th) __attribute__((__nothrow__, __leaf__)); 1.2215 -extern pthread_t pthread_self(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2216 -extern int pthread_equal(pthread_t __thread1, pthread_t __thread2) __attribute__((__nothrow__, __leaf__)); 1.2217 -extern int pthread_attr_init(pthread_attr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2218 -extern int pthread_attr_destroy(pthread_attr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2219 -extern int pthread_attr_getdetachstate(__const pthread_attr_t *__attr, int *__detachstate) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2220 -extern int pthread_attr_setdetachstate(pthread_attr_t *__attr, int __detachstate) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2221 -extern int pthread_attr_getguardsize(__const pthread_attr_t *__attr, size_t *__guardsize) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2222 -extern int pthread_attr_setguardsize(pthread_attr_t *__attr, size_t __guardsize) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2223 -extern int pthread_attr_getschedparam(__const pthread_attr_t *__restrict __attr, struct sched_param *__restrict __param) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2224 -extern int pthread_attr_setschedparam(pthread_attr_t *__restrict __attr, __const struct sched_param *__restrict __param) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2225 -extern int pthread_attr_getschedpolicy(__const pthread_attr_t *__restrict __attr, int *__restrict __policy) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2226 -extern int pthread_attr_setschedpolicy(pthread_attr_t *__attr, int __policy) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2227 -extern int pthread_attr_getinheritsched(__const pthread_attr_t *__restrict __attr, int *__restrict __inherit) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2228 -extern int pthread_attr_setinheritsched(pthread_attr_t *__attr, int __inherit) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2229 -extern int pthread_attr_getscope(__const pthread_attr_t *__restrict __attr, int *__restrict __scope) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2230 -extern int pthread_attr_setscope(pthread_attr_t *__attr, int __scope) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2231 -extern int pthread_attr_getstackaddr(__const pthread_attr_t *__restrict __attr, void **__restrict __stackaddr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))) __attribute__((__deprecated__)); 1.2232 -extern int pthread_attr_setstackaddr(pthread_attr_t *__attr, void *__stackaddr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__deprecated__)); 1.2233 -extern int pthread_attr_getstacksize(__const pthread_attr_t *__restrict __attr, size_t *__restrict __stacksize) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2234 -extern int pthread_attr_setstacksize(pthread_attr_t *__attr, size_t __stacksize) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2235 -extern int pthread_attr_getstack(__const pthread_attr_t *__restrict __attr, void **__restrict __stackaddr, size_t *__restrict __stacksize) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2, 3))); 1.2236 -extern int pthread_attr_setstack(pthread_attr_t *__attr, void *__stackaddr, size_t __stacksize) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2237 -extern int pthread_setschedparam(pthread_t __target_thread, int __policy, __const struct sched_param *__param) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3))); 1.2238 -extern int pthread_getschedparam(pthread_t __target_thread, int *__restrict __policy, struct sched_param *__restrict __param) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 3))); 1.2239 -extern int pthread_setschedprio(pthread_t __target_thread, int __prio) __attribute__((__nothrow__, __leaf__)); 1.2240 -extern int pthread_once(pthread_once_t *__once_control, void (*__init_routine)(void)) __attribute__((__nonnull__(1, 2))); 1.2241 -extern int pthread_setcancelstate(int __state, int *__oldstate); 1.2242 -extern int pthread_setcanceltype(int __type, int *__oldtype); 1.2243 -extern int pthread_cancel(pthread_t __th); 1.2244 -extern void pthread_testcancel(void); 1.2245 -typedef struct 1.2246 -{ 1.2247 - struct 1.2248 - { 1.2249 - __jmp_buf __cancel_jmp_buf; 1.2250 - int __mask_was_saved; 1.2251 - } __cancel_jmp_buf[1]; 1.2252 - void *__pad[4]; 1.2253 -} __pthread_unwind_buf_t __attribute__((__aligned__)); 1.2254 -struct __pthread_cleanup_frame 1.2255 -{ 1.2256 - void (*__cancel_routine)(void *); 1.2257 - void *__cancel_arg; 1.2258 - int __do_it; 1.2259 - int __cancel_type; 1.2260 -}; 1.2261 -extern void __pthread_register_cancel(__pthread_unwind_buf_t *__buf); 1.2262 -extern void __pthread_unregister_cancel(__pthread_unwind_buf_t *__buf); 1.2263 -extern void __pthread_unwind_next(__pthread_unwind_buf_t *__buf) __attribute__((__noreturn__)) __attribute__((__weak__)); 1.2264 -struct __jmp_buf_tag; 1.2265 -extern int __sigsetjmp(struct __jmp_buf_tag *__env, int __savemask) __attribute__((__nothrow__, __leaf__)); 1.2266 -extern int pthread_mutex_init(pthread_mutex_t *__mutex, __const pthread_mutexattr_t *__mutexattr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2267 -extern int pthread_mutex_destroy(pthread_mutex_t *__mutex) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2268 -extern int pthread_mutex_trylock(pthread_mutex_t *__mutex) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2269 -extern int pthread_mutex_lock(pthread_mutex_t *__mutex) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2270 -extern int pthread_mutex_timedlock(pthread_mutex_t *__restrict __mutex, __const struct timespec *__restrict __abstime) __attribute__((__nothrow__)) __attribute__((__nonnull__(1, 2))); 1.2271 -extern int pthread_mutex_unlock(pthread_mutex_t *__mutex) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2272 -extern int pthread_mutex_getprioceiling(__const pthread_mutex_t *__restrict __mutex, int *__restrict __prioceiling) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2273 -extern int pthread_mutex_setprioceiling(pthread_mutex_t *__restrict __mutex, int __prioceiling, int *__restrict __old_ceiling) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 3))); 1.2274 -extern int pthread_mutex_consistent(pthread_mutex_t *__mutex) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2275 -extern int pthread_mutexattr_init(pthread_mutexattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2276 -extern int pthread_mutexattr_destroy(pthread_mutexattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2277 -extern int pthread_mutexattr_getpshared(__const pthread_mutexattr_t *__restrict __attr, int *__restrict __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2278 -extern int pthread_mutexattr_setpshared(pthread_mutexattr_t *__attr, int __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2279 -extern int pthread_mutexattr_gettype(__const pthread_mutexattr_t *__restrict __attr, int *__restrict __kind) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2280 -extern int pthread_mutexattr_settype(pthread_mutexattr_t *__attr, int __kind) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2281 -extern int pthread_mutexattr_getprotocol(__const pthread_mutexattr_t *__restrict __attr, int *__restrict __protocol) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2282 -extern int pthread_mutexattr_setprotocol(pthread_mutexattr_t *__attr, int __protocol) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2283 -extern int pthread_mutexattr_getprioceiling(__const pthread_mutexattr_t *__restrict __attr, int *__restrict __prioceiling) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2284 -extern int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *__attr, int __prioceiling) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2285 -extern int pthread_mutexattr_getrobust(__const pthread_mutexattr_t *__attr, int *__robustness) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2286 -extern int pthread_mutexattr_setrobust(pthread_mutexattr_t *__attr, int __robustness) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2287 -extern int pthread_rwlock_init(pthread_rwlock_t *__restrict __rwlock, __const pthread_rwlockattr_t *__restrict __attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2288 -extern int pthread_rwlock_destroy(pthread_rwlock_t *__rwlock) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2289 -extern int pthread_rwlock_rdlock(pthread_rwlock_t *__rwlock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2290 -extern int pthread_rwlock_tryrdlock(pthread_rwlock_t *__rwlock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2291 -extern int pthread_rwlock_timedrdlock(pthread_rwlock_t *__restrict __rwlock, __const struct timespec *__restrict __abstime) __attribute__((__nothrow__)) __attribute__((__nonnull__(1, 2))); 1.2292 -extern int pthread_rwlock_wrlock(pthread_rwlock_t *__rwlock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2293 -extern int pthread_rwlock_trywrlock(pthread_rwlock_t *__rwlock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2294 -extern int pthread_rwlock_timedwrlock(pthread_rwlock_t *__restrict __rwlock, __const struct timespec *__restrict __abstime) __attribute__((__nothrow__)) __attribute__((__nonnull__(1, 2))); 1.2295 -extern int pthread_rwlock_unlock(pthread_rwlock_t *__rwlock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2296 -extern int pthread_rwlockattr_init(pthread_rwlockattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2297 -extern int pthread_rwlockattr_destroy(pthread_rwlockattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2298 -extern int pthread_rwlockattr_getpshared(__const pthread_rwlockattr_t *__restrict __attr, int *__restrict __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2299 -extern int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *__attr, int __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2300 -extern int pthread_rwlockattr_getkind_np(__const pthread_rwlockattr_t *__restrict __attr, int *__restrict __pref) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2301 -extern int pthread_rwlockattr_setkind_np(pthread_rwlockattr_t *__attr, int __pref) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2302 -extern int pthread_cond_init(pthread_cond_t *__restrict __cond, __const pthread_condattr_t *__restrict __cond_attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2303 -extern int pthread_cond_destroy(pthread_cond_t *__cond) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2304 -extern int pthread_cond_signal(pthread_cond_t *__cond) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2305 -extern int pthread_cond_broadcast(pthread_cond_t *__cond) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2306 -extern int pthread_cond_wait(pthread_cond_t *__restrict __cond, pthread_mutex_t *__restrict __mutex) __attribute__((__nonnull__(1, 2))); 1.2307 -extern int pthread_cond_timedwait(pthread_cond_t *__restrict __cond, pthread_mutex_t *__restrict __mutex, __const struct timespec *__restrict __abstime) __attribute__((__nonnull__(1, 2, 3))); 1.2308 -extern int pthread_condattr_init(pthread_condattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2309 -extern int pthread_condattr_destroy(pthread_condattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2310 -extern int pthread_condattr_getpshared(__const pthread_condattr_t *__restrict __attr, int *__restrict __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2311 -extern int pthread_condattr_setpshared(pthread_condattr_t *__attr, int __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2312 -extern int pthread_condattr_getclock(__const pthread_condattr_t *__restrict __attr, __clockid_t *__restrict __clock_id) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2313 -extern int pthread_condattr_setclock(pthread_condattr_t *__attr, __clockid_t __clock_id) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2314 -extern int pthread_spin_init(pthread_spinlock_t *__lock, int __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2315 -extern int pthread_spin_destroy(pthread_spinlock_t *__lock) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2316 -extern int pthread_spin_lock(pthread_spinlock_t *__lock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2317 -extern int pthread_spin_trylock(pthread_spinlock_t *__lock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2318 -extern int pthread_spin_unlock(pthread_spinlock_t *__lock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2319 -extern int pthread_barrier_init(pthread_barrier_t *__restrict __barrier, __const pthread_barrierattr_t *__restrict __attr, unsigned int __count) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2320 -extern int pthread_barrier_destroy(pthread_barrier_t *__barrier) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2321 -extern int pthread_barrier_wait(pthread_barrier_t *__barrier) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2322 -extern int pthread_barrierattr_init(pthread_barrierattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2323 -extern int pthread_barrierattr_destroy(pthread_barrierattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2324 -extern int pthread_barrierattr_getpshared(__const pthread_barrierattr_t *__restrict __attr, int *__restrict __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2325 -extern int pthread_barrierattr_setpshared(pthread_barrierattr_t *__attr, int __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2326 -extern int pthread_key_create(pthread_key_t *__key, void (*__destr_function)(void *)) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2327 -extern int pthread_key_delete(pthread_key_t __key) __attribute__((__nothrow__, __leaf__)); 1.2328 -extern void *pthread_getspecific(pthread_key_t __key) __attribute__((__nothrow__, __leaf__)); 1.2329 -extern int pthread_setspecific(pthread_key_t __key, __const void *__pointer) __attribute__((__nothrow__, __leaf__)); 1.2330 -extern int pthread_getcpuclockid(pthread_t __thread_id, __clockid_t *__clock_id) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.2331 -extern int pthread_atfork(void (*__prepare)(void), void (*__parent)(void), void (*__child)(void)) __attribute__((__nothrow__, __leaf__)); 1.2332 -extern __inline __attribute__((__gnu_inline__)) int __attribute__((__nothrow__, __leaf__)) pthread_equal(pthread_t __thread1, pthread_t __thread2) 1.2333 -{ 1.2334 - return __thread1 == __thread2; 1.2335 -} 1.2336 -extern int *__errno_location(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2337 -void *av_malloc(unsigned int size) __attribute__((__malloc__)); 1.2338 -void *av_realloc(void *ptr, unsigned int size); 1.2339 -void *av_fast_realloc(void *ptr, unsigned int *size, unsigned int min_size); 1.2340 -void av_fast_malloc(void *ptr, unsigned int *size, unsigned int min_size); 1.2341 -void av_free(void *ptr); 1.2342 -void *av_mallocz(unsigned int size) __attribute__((__malloc__)); 1.2343 -char *av_strdup(const char *s) __attribute__((__malloc__)); 1.2344 -void av_freep(void *ptr); 1.2345 -static __attribute__((always_inline)) inline uint32_t pack16to32(int a, int b) 1.2346 -{ 1.2347 - return (a & 0xFFFF) + (b << 16); 1.2348 -} 1.2349 -static __attribute__((always_inline)) inline uint16_t pack8to16(int a, int b) 1.2350 -{ 1.2351 - return (a & 0xFF) + (b << 8); 1.2352 -} 1.2353 -typedef short DCTELEM; 1.2354 -enum AVColorPrimaries 1.2355 -{ 1.2356 - AVCOL_PRI_BT709 = 1, 1.2357 - AVCOL_PRI_UNSPECIFIED = 2, 1.2358 - AVCOL_PRI_BT470M = 4, 1.2359 - AVCOL_PRI_BT470BG = 5, 1.2360 - AVCOL_PRI_SMPTE170M = 6, 1.2361 - AVCOL_PRI_SMPTE240M = 7, 1.2362 - AVCOL_PRI_FILM = 8, 1.2363 - AVCOL_PRI_NB 1.2364 -}; 1.2365 -enum AVColorTransferCharacteristic 1.2366 -{ 1.2367 - AVCOL_TRC_BT709 = 1, 1.2368 - AVCOL_TRC_UNSPECIFIED = 2, 1.2369 - AVCOL_TRC_GAMMA22 = 4, 1.2370 - AVCOL_TRC_GAMMA28 = 5, 1.2371 - AVCOL_TRC_NB 1.2372 -}; 1.2373 -enum AVColorSpace 1.2374 -{ 1.2375 - AVCOL_SPC_RGB = 0, 1.2376 - AVCOL_SPC_BT709 = 1, 1.2377 - AVCOL_SPC_UNSPECIFIED = 2, 1.2378 - AVCOL_SPC_FCC = 4, 1.2379 - AVCOL_SPC_BT470BG = 5, 1.2380 - AVCOL_SPC_SMPTE170M = 6, 1.2381 - AVCOL_SPC_SMPTE240M = 7, 1.2382 - AVCOL_SPC_NB 1.2383 -}; 1.2384 -enum AVColorRange 1.2385 -{ 1.2386 - AVCOL_RANGE_UNSPECIFIED = 0, 1.2387 - AVCOL_RANGE_MPEG = 1, 1.2388 - AVCOL_RANGE_JPEG = 2, 1.2389 - AVCOL_RANGE_NB 1.2390 -}; 1.2391 -typedef enum MMCOOpcode 1.2392 -{ 1.2393 - MMCO_END = 0, 1.2394 - MMCO_SHORT2UNUSED, 1.2395 - MMCO_LONG2UNUSED, 1.2396 - MMCO_SHORT2LONG, 1.2397 - MMCO_SET_MAX_LONG, 1.2398 - MMCO_RESET, 1.2399 - MMCO_LONG 1.2400 -} MMCOOpcode; 1.2401 -enum 1.2402 -{ 1.2403 - NAL_SLICE = 1, 1.2404 - NAL_DPA, 1.2405 - NAL_DPB, 1.2406 - NAL_DPC, 1.2407 - NAL_IDR_SLICE, 1.2408 - NAL_SEI, 1.2409 - NAL_SPS, 1.2410 - NAL_PPS, 1.2411 - NAL_AUD, 1.2412 - NAL_END_SEQUENCE, 1.2413 - NAL_END_STREAM, 1.2414 - NAL_FILLER_DATA, 1.2415 - NAL_SPS_EXT, 1.2416 - NAL_AUXILIARY_SLICE = 19 1.2417 -}; 1.2418 -typedef enum 1.2419 -{ 1.2420 - SEI_BUFFERING_PERIOD = 0, 1.2421 - SEI_TYPE_PIC_TIMING = 1, 1.2422 - SEI_TYPE_USER_DATA_UNREGISTERED = 5, 1.2423 - SEI_TYPE_RECOVERY_POINT = 6 1.2424 -} SEI_Type; 1.2425 -typedef enum 1.2426 -{ 1.2427 - SEI_PIC_STRUCT_FRAME = 0, 1.2428 - SEI_PIC_STRUCT_TOP_FIELD = 1, 1.2429 - SEI_PIC_STRUCT_BOTTOM_FIELD = 2, 1.2430 - SEI_PIC_STRUCT_TOP_BOTTOM = 3, 1.2431 - SEI_PIC_STRUCT_BOTTOM_TOP = 4, 1.2432 - SEI_PIC_STRUCT_TOP_BOTTOM_TOP = 5, 1.2433 - SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM = 6, 1.2434 - SEI_PIC_STRUCT_FRAME_DOUBLING = 7, 1.2435 - SEI_PIC_STRUCT_FRAME_TRIPLING = 8 1.2436 -} SEI_PicStructType; 1.2437 -typedef struct SPS 1.2438 -{ 1.2439 - int profile_idc; 1.2440 - int level_idc; 1.2441 - int chroma_format_idc; 1.2442 - int transform_bypass; 1.2443 - int log2_max_frame_num; 1.2444 - int poc_type; 1.2445 - int log2_max_poc_lsb; 1.2446 - int delta_pic_order_always_zero_flag; 1.2447 - int offset_for_non_ref_pic; 1.2448 - int offset_for_top_to_bottom_field; 1.2449 - int poc_cycle_length; 1.2450 - int ref_frame_count; 1.2451 - int gaps_in_frame_num_allowed_flag; 1.2452 - int mb_width; 1.2453 - int mb_height; 1.2454 - int frame_mbs_only_flag; 1.2455 - int mb_aff; 1.2456 - int direct_8x8_inference_flag; 1.2457 - int crop; 1.2458 - unsigned int crop_left; 1.2459 - unsigned int crop_right; 1.2460 - unsigned int crop_top; 1.2461 - unsigned int crop_bottom; 1.2462 - int vui_parameters_present_flag; 1.2463 - int num, den; 1.2464 - int video_signal_type_present_flag; 1.2465 - int full_range; 1.2466 - int colour_description_present_flag; 1.2467 - enum AVColorPrimaries color_primaries; 1.2468 - enum AVColorTransferCharacteristic color_trc; 1.2469 - enum AVColorSpace colorspace; 1.2470 - int timing_info_present_flag; 1.2471 - uint32_t num_units_in_tick; 1.2472 - uint32_t time_scale; 1.2473 - int fixed_frame_rate_flag; 1.2474 - short offset_for_ref_frame[256]; 1.2475 - int bitstream_restriction_flag; 1.2476 - int num_reorder_frames; 1.2477 - int scaling_matrix_present; 1.2478 - uint8_t scaling_matrix4[6][16]; 1.2479 - uint8_t scaling_matrix8[2][64]; 1.2480 - int nal_hrd_parameters_present_flag; 1.2481 - int vcl_hrd_parameters_present_flag; 1.2482 - int pic_struct_present_flag; 1.2483 - int time_offset_length; 1.2484 - int cpb_cnt; 1.2485 - int initial_cpb_removal_delay_length; 1.2486 - int cpb_removal_delay_length; 1.2487 - int dpb_output_delay_length; 1.2488 - int bit_depth_luma; 1.2489 - int bit_depth_chroma; 1.2490 - int residual_color_transform_flag; 1.2491 -} SPS; 1.2492 -typedef struct PPS 1.2493 -{ 1.2494 - unsigned int sps_id; 1.2495 - int cabac; 1.2496 - int pic_order_present; 1.2497 - int slice_group_count; 1.2498 - int mb_slice_group_map_type; 1.2499 - unsigned int ref_count[2]; 1.2500 - int weighted_pred; 1.2501 - int weighted_bipred_idc; 1.2502 - int init_qp; 1.2503 - int init_qs; 1.2504 - int chroma_qp_index_offset[2]; 1.2505 - int deblocking_filter_parameters_present; 1.2506 - int constrained_intra_pred; 1.2507 - int redundant_pic_cnt_present; 1.2508 - int transform_8x8_mode; 1.2509 - uint8_t scaling_matrix4[6][16]; 1.2510 - uint8_t scaling_matrix8[2][64]; 1.2511 - uint8_t chroma_qp_table[2][64]; 1.2512 - int chroma_qp_diff; 1.2513 -} PPS; 1.2514 -typedef struct TopBorder 1.2515 -{ 1.2516 - uint8_t unfiltered_y[16]; 1.2517 - uint8_t unfiltered_cb[8]; 1.2518 - uint8_t unfiltered_cr[8]; 1.2519 - uint8_t top_borders_y[16 * 4]; 1.2520 - uint8_t top_borders_cb[8 * 2]; 1.2521 - uint8_t top_borders_cr[8 * 2]; 1.2522 -} TopBorder; 1.2523 -typedef struct LeftBorder 1.2524 -{ 1.2525 - uint8_t unfiltered_y[17]; 1.2526 - uint8_t unfiltered_cb[9]; 1.2527 - uint8_t unfiltered_cr[9]; 1.2528 -} LeftBorder; 1.2529 -typedef struct H264Mb 1.2530 -{ 1.2531 - int16_t mb_x, mb_y; 1.2532 - int32_t mb_type; 1.2533 - uint16_t cbp; 1.2534 - int8_t qscale_mb_xy; 1.2535 - int8_t qscale_left_mb_xy; 1.2536 - int8_t qscale_top_mb_xy; 1.2537 - uint16_t __attribute__((aligned(8))) sub_mb_type[4]; 1.2538 - uint8_t __attribute__((aligned(8))) non_zero_count[24]; 1.2539 - int16_t __attribute__((aligned(16))) mb[16 * 24]; 1.2540 - union 1.2541 - { 1.2542 - struct 1.2543 - { 1.2544 - int8_t __attribute__((aligned(8))) ref_index[2][4]; 1.2545 - int16_t __attribute__((aligned(16))) mvd[2][16][2]; 1.2546 - }; 1.2547 - struct 1.2548 - { 1.2549 - int8_t __attribute__((aligned(8))) intra4x4_pred_mode[16]; 1.2550 - int8_t chroma_pred_mode; 1.2551 - int8_t intra16x16_pred_mode; 1.2552 - }; 1.2553 - }; 1.2554 - uint8_t __attribute__((aligned(8))) top_border[16 + 2 * 8]; 1.2555 - uint8_t __attribute__((aligned(8))) top_border_next[8]; 1.2556 - uint8_t __attribute__((aligned(8))) left_border[17 + 2 * 9]; 1.2557 - int8_t intra4x4_pred_mode_left[4]; 1.2558 -} H264Mb; 1.2559 -typedef struct RawFrame 1.2560 -{ 1.2561 - uint8_t *data; 1.2562 - int size; 1.2563 - unsigned int data_size; 1.2564 - int64_t pos; 1.2565 - int state; 1.2566 -} RawFrame; 1.2567 -typedef struct PictureInfo 1.2568 -{ 1.2569 - int ref_poc[2][16]; 1.2570 - int ref_count[2]; 1.2571 - int poc; 1.2572 - int frame_num; 1.2573 - int pic_id; 1.2574 - int long_ref; 1.2575 - int cpn; 1.2576 - int slice_type_nos; 1.2577 - int reference; 1.2578 -} PictureInfo; 1.2579 -typedef struct DecodedPicture 1.2580 -{ 1.2581 - int16_t (*motion_val[2])[2]; 1.2582 - int16_t (*motion_val_base[2])[2]; 1.2583 - int8_t *ref_index[2]; 1.2584 - uint32_t *mb_type; 1.2585 - uint32_t *mb_type_base; 1.2586 - int8_t *intra4x4_pred_mode; 1.2587 - int8_t *non_zero_count; 1.2588 - uint8_t *data[3]; 1.2589 - int linesize[3]; 1.2590 - uint8_t *base[3]; 1.2591 - int cpn; 1.2592 - int poc; 1.2593 - int reference; 1.2594 - int key_frame; 1.2595 - int mmco_reset; 1.2596 -} DecodedPicture; 1.2597 -extern void __assert_fail(__const char *__assertion, __const char *__file, unsigned int __line, __const char *__function) __attribute__((__nothrow__, __leaf__)) __attribute__((__noreturn__)); 1.2598 -extern void __assert_perror_fail(int __errnum, __const char *__file, unsigned int __line, __const char *__function) __attribute__((__nothrow__, __leaf__)) __attribute__((__noreturn__)); 1.2599 -extern void __assert(const char *__assertion, const char *__file, int __line) __attribute__((__nothrow__, __leaf__)) __attribute__((__noreturn__)); 1.2600 -typedef int64_t x86_reg; 1.2601 -typedef struct CABACContext 1.2602 -{ 1.2603 - int low; 1.2604 - int range; 1.2605 - int outstanding_count; 1.2606 - const uint8_t *bytestream_start; 1.2607 - const uint8_t *bytestream; 1.2608 - const uint8_t *bytestream_end; 1.2609 - uint8_t cabac_state[460]; 1.2610 -} CABACContext; 1.2611 -extern uint8_t ff_h264_mlps_state[4 * 64]; 1.2612 -extern uint8_t ff_h264_lps_range[4 * 2 * 64]; 1.2613 -extern uint8_t ff_h264_mps_state[2 * 64]; 1.2614 -extern uint8_t ff_h264_lps_state[2 * 64]; 1.2615 -extern const uint8_t ff_h264_norm_shift[512]; 1.2616 -void ff_init_cabac_decoder(CABACContext *c, const uint8_t *buf, int buf_size); 1.2617 -void ff_init_cabac_states(void); 1.2618 -static void refill(CABACContext *c) 1.2619 -{ 1.2620 - c->low += (c->bytestream[0] << 9) + (c->bytestream[1] << 1); 1.2621 - c->low -= ((1 << 16) - 1); 1.2622 - c->bytestream += 16 / 8; 1.2623 -} 1.2624 -static void refill2(CABACContext *c) 1.2625 -{ 1.2626 - int i, x; 1.2627 - x = c->low ^ (c->low - 1); 1.2628 - i = 7 - ff_h264_norm_shift[x >> (16 - 1)]; 1.2629 - x = - ((1 << 16) - 1); 1.2630 - x += (c->bytestream[0] << 9) + (c->bytestream[1] << 1); 1.2631 - c->low += x << i; 1.2632 - c->bytestream += 16 / 8; 1.2633 -} 1.2634 -static inline void renorm_cabac_decoder(CABACContext *c) 1.2635 -{ 1.2636 - while (c->range < 0x100) 1.2637 + if ((a + 2147483648U) & ~4294967295LU) 1.2638 { 1.2639 - c->range += c->range; 1.2640 - c->low += c->low; 1.2641 - if (!(c->low & ((1 << 16) - 1))) 1.2642 - refill(c); 1.2643 + return a >> 63 ^ 2147483647; 1.2644 + } 1.2645 + else 1.2646 + { 1.2647 + return a; 1.2648 } 1.2649 } 1.2650 -static inline void renorm_cabac_decoder_once(CABACContext *c) 1.2651 +static __inline __attribute__((const)) float av_clipf(float a, float amin, float amax) 1.2652 { 1.2653 - int shift = (uint32_t) (c->range - 0x100) >> 31; 1.2654 - c->range <<= shift; 1.2655 - c->low <<= shift; 1.2656 - if (!(c->low & ((1 << 16) - 1))) 1.2657 - refill(c); 1.2658 -} 1.2659 -static __attribute__((always_inline)) inline int get_cabac_inline(CABACContext *c, uint8_t *const state) 1.2660 -{ 1.2661 - int s = *state; 1.2662 - int RangeLPS = ff_h264_lps_range[2 * (c->range & 0xC0) + s]; 1.2663 - int bit, lps_mask __attribute__((unused)); 1.2664 - c->range -= RangeLPS; 1.2665 - lps_mask = ((c->range << (16 + 1)) - c->low) >> 31; 1.2666 - c->low -= (c->range << (16 + 1)) & lps_mask; 1.2667 - c->range += (RangeLPS - c->range) & lps_mask; 1.2668 - s ^= lps_mask; 1.2669 - *state = (ff_h264_mlps_state + 128)[s]; 1.2670 - bit = s & 1; 1.2671 - lps_mask = ff_h264_norm_shift[c->range]; 1.2672 - c->range <<= lps_mask; 1.2673 - c->low <<= lps_mask; 1.2674 - if (!(c->low & ((1 << 16) - 1))) 1.2675 - refill2(c); 1.2676 - return bit; 1.2677 -} 1.2678 -static int __attribute__((noinline)) __attribute__((unused)) get_cabac_noinline(CABACContext *c, uint8_t *const state) 1.2679 -{ 1.2680 - return get_cabac_inline(c, state); 1.2681 -} 1.2682 -static int __attribute__((unused)) get_cabac(CABACContext *c, uint8_t *const state) 1.2683 -{ 1.2684 - return get_cabac_inline(c, state); 1.2685 -} 1.2686 -static int __attribute__((unused)) get_cabac_bypass(CABACContext *c) 1.2687 -{ 1.2688 - int range; 1.2689 - c->low += c->low; 1.2690 - if (!(c->low & ((1 << 16) - 1))) 1.2691 - refill(c); 1.2692 - range = c->range << (16 + 1); 1.2693 - if (c->low < range) 1.2694 + if (a < amin) 1.2695 { 1.2696 - return 0; 1.2697 + return amin; 1.2698 } 1.2699 - else 1.2700 + else 1.2701 { 1.2702 - c->low -= range; 1.2703 - return 1; 1.2704 + if (a > amax) 1.2705 + { 1.2706 + return amax; 1.2707 + } 1.2708 + else 1.2709 + { 1.2710 + return a; 1.2711 + } 1.2712 } 1.2713 } 1.2714 -static __attribute__((always_inline)) inline int get_cabac_bypass_sign(CABACContext *c, int val) 1.2715 +static __inline __attribute__((const)) int av_ceil_log2(int x) 1.2716 { 1.2717 - int range, mask; 1.2718 - c->low += c->low; 1.2719 - if (!(c->low & ((1 << 16) - 1))) 1.2720 - refill(c); 1.2721 - range = c->range << (16 + 1); 1.2722 - c->low -= range; 1.2723 - mask = c->low >> 31; 1.2724 - range &= mask; 1.2725 - c->low += range; 1.2726 - return (val ^ mask) - mask; 1.2727 + return av_log2_c((x - 1) << 1); 1.2728 } 1.2729 -static int __attribute__((unused)) get_cabac_terminate(CABACContext *c) 1.2730 +static __inline __attribute__((always_inline)) void AV_COPY64(void *d, const void *s) 1.2731 { 1.2732 - c->range -= 2; 1.2733 - if (c->low < c->range << (16 + 1)) 1.2734 + __asm__ ("movq %1, %%mm0 \n\t""movq %%mm0, %0 \n\t" : "=m"(*((uint64_t *)d)) : "m"(*((const uint64_t *)s)) : "mm0"); 1.2735 +} 1.2736 +static __inline __attribute__((always_inline)) void AV_SWAP64(void *a, void *b) 1.2737 +{ 1.2738 + __asm__ ("movq %1, %%mm0 \n\t""movq %0, %%mm1 \n\t""movq %%mm0, %0 \n\t""movq %%mm1, %1 \n\t" : "+m"(*((uint64_t *)a)), "+m"(*((uint64_t *)b)) : : "mm0", "mm1"); 1.2739 +} 1.2740 +static __inline __attribute__((always_inline)) void AV_ZERO64(void *d) 1.2741 +{ 1.2742 + __asm__ ("pxor %%mm0, %%mm0 \n\t""movq %%mm0, %0 \n\t" : "=m"(*((uint64_t *)d)) : : "mm0"); 1.2743 +} 1.2744 +static __inline __attribute__((always_inline)) void AV_COPY128(void *d, const void *s) 1.2745 +{ 1.2746 + struct v; 1.2747 + struct v 1.2748 + { 1.2749 + uint64_t v[2]; 1.2750 + }; 1.2751 + __asm__ ("movaps %1, %%xmm0 \n\t""movaps %%xmm0, %0 \n\t" : "=m"(*((struct v *)d)) : "m"(*((const struct v *)s)) : "xmm0"); 1.2752 +} 1.2753 +static __inline __attribute__((always_inline)) void AV_ZERO128(void *d) 1.2754 +{ 1.2755 + struct v; 1.2756 + struct v 1.2757 + { 1.2758 + uint64_t v[2]; 1.2759 + }; 1.2760 + __asm__ ("pxor %%xmm0, %%xmm0 \n\t""movdqa %%xmm0, %0 \n\t" : "=m"(*((struct v *)d)) : : "xmm0"); 1.2761 +} 1.2762 +static __inline uint32_t rnd_avg32(uint32_t a, uint32_t b) 1.2763 +{ 1.2764 + return (a | b) - (((a ^ b) & ~(1 * 16843009LU)) >> 1); 1.2765 +} 1.2766 +static __inline uint32_t no_rnd_avg32(uint32_t a, uint32_t b) 1.2767 +{ 1.2768 + return (a & b) + (((a ^ b) & ~(1 * 16843009LU)) >> 1); 1.2769 +} 1.2770 +static __inline void emms(void) 1.2771 +{ 1.2772 + __asm__ volatile("emms;" : : : "memory"); 1.2773 +} 1.2774 +static __inline void copy_block2(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h) 1.2775 +{ 1.2776 + int i; 1.2777 + for (i = 0; i < h; i++) 1.2778 { 1.2779 - renorm_cabac_decoder_once(c); 1.2780 - return 0; 1.2781 - } 1.2782 - else 1.2783 - { 1.2784 - return c->bytestream - c->bytestream_start; 1.2785 - } 1.2786 -} 1.2787 -static __attribute__((always_inline)) inline __attribute__((const)) uint16_t bswap_16(uint16_t x) 1.2788 -{ 1.2789 - __asm__ ("rorw $8, %0": "+r" (x): ); 1.2790 - return x; 1.2791 -} 1.2792 -static __attribute__((always_inline)) inline __attribute__((const)) uint32_t bswap_32(uint32_t x) 1.2793 -{ 1.2794 - __asm__ ("bswap %0": "+r" (x): ); 1.2795 - return x; 1.2796 -} 1.2797 -static inline uint64_t __attribute__((const)) bswap_64(uint64_t x) 1.2798 -{ 1.2799 - __asm__ ("bswap %0": "=r" (x): "0" (x)); 1.2800 - return x; 1.2801 -} 1.2802 -enum 1.2803 -{ 1.2804 - _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), 1.2805 - _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), 1.2806 - _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), 1.2807 - _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), 1.2808 - _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), 1.2809 - _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), 1.2810 - _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), 1.2811 - _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), 1.2812 - _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), 1.2813 - _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), 1.2814 - _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), 1.2815 - _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) 1.2816 -}; 1.2817 -extern __const unsigned short int **__ctype_b_loc(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__const)); 1.2818 -extern __const __int32_t **__ctype_tolower_loc(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__const)); 1.2819 -extern __const __int32_t **__ctype_toupper_loc(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__const)); 1.2820 -extern int isalnum(int) __attribute__((__nothrow__, __leaf__)); 1.2821 -extern int isalpha(int) __attribute__((__nothrow__, __leaf__)); 1.2822 -extern int iscntrl(int) __attribute__((__nothrow__, __leaf__)); 1.2823 -extern int isdigit(int) __attribute__((__nothrow__, __leaf__)); 1.2824 -extern int islower(int) __attribute__((__nothrow__, __leaf__)); 1.2825 -extern int isgraph(int) __attribute__((__nothrow__, __leaf__)); 1.2826 -extern int isprint(int) __attribute__((__nothrow__, __leaf__)); 1.2827 -extern int ispunct(int) __attribute__((__nothrow__, __leaf__)); 1.2828 -extern int isspace(int) __attribute__((__nothrow__, __leaf__)); 1.2829 -extern int isupper(int) __attribute__((__nothrow__, __leaf__)); 1.2830 -extern int isxdigit(int) __attribute__((__nothrow__, __leaf__)); 1.2831 -extern int tolower(int __c) __attribute__((__nothrow__, __leaf__)); 1.2832 -extern int toupper(int __c) __attribute__((__nothrow__, __leaf__)); 1.2833 -extern int isblank(int) __attribute__((__nothrow__, __leaf__)); 1.2834 -extern int isascii(int __c) __attribute__((__nothrow__, __leaf__)); 1.2835 -extern int toascii(int __c) __attribute__((__nothrow__, __leaf__)); 1.2836 -extern int _toupper(int) __attribute__((__nothrow__, __leaf__)); 1.2837 -extern int _tolower(int) __attribute__((__nothrow__, __leaf__)); 1.2838 -extern __inline __attribute__((__gnu_inline__)) int __attribute__((__nothrow__, __leaf__)) tolower(int __c) 1.2839 -{ 1.2840 - return __c >= - 128 && __c < 256 ? (*__ctype_tolower_loc())[__c] : __c; 1.2841 -} 1.2842 -extern __inline __attribute__((__gnu_inline__)) int __attribute__((__nothrow__, __leaf__)) toupper(int __c) 1.2843 -{ 1.2844 - return __c >= - 128 && __c < 256 ? (*__ctype_toupper_loc())[__c] : __c; 1.2845 -} 1.2846 -extern int isalnum_l(int, __locale_t) __attribute__((__nothrow__, __leaf__)); 1.2847 -extern int isalpha_l(int, __locale_t) __attribute__((__nothrow__, __leaf__)); 1.2848 -extern int iscntrl_l(int, __locale_t) __attribute__((__nothrow__, __leaf__)); 1.2849 -extern int isdigit_l(int, __locale_t) __attribute__((__nothrow__, __leaf__)); 1.2850 -extern int islower_l(int, __locale_t) __attribute__((__nothrow__, __leaf__)); 1.2851 -extern int isgraph_l(int, __locale_t) __attribute__((__nothrow__, __leaf__)); 1.2852 -extern int isprint_l(int, __locale_t) __attribute__((__nothrow__, __leaf__)); 1.2853 -extern int ispunct_l(int, __locale_t) __attribute__((__nothrow__, __leaf__)); 1.2854 -extern int isspace_l(int, __locale_t) __attribute__((__nothrow__, __leaf__)); 1.2855 -extern int isupper_l(int, __locale_t) __attribute__((__nothrow__, __leaf__)); 1.2856 -extern int isxdigit_l(int, __locale_t) __attribute__((__nothrow__, __leaf__)); 1.2857 -extern int isblank_l(int, __locale_t) __attribute__((__nothrow__, __leaf__)); 1.2858 -extern int __tolower_l(int __c, __locale_t __l) __attribute__((__nothrow__, __leaf__)); 1.2859 -extern int tolower_l(int __c, __locale_t __l) __attribute__((__nothrow__, __leaf__)); 1.2860 -extern int __toupper_l(int __c, __locale_t __l) __attribute__((__nothrow__, __leaf__)); 1.2861 -extern int toupper_l(int __c, __locale_t __l) __attribute__((__nothrow__, __leaf__)); 1.2862 -typedef int __gwchar_t; 1.2863 -typedef struct 1.2864 -{ 1.2865 - long int quot; 1.2866 - long int rem; 1.2867 -} imaxdiv_t; 1.2868 -extern intmax_t imaxabs(intmax_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2869 -extern imaxdiv_t imaxdiv(intmax_t __numer, intmax_t __denom) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2870 -extern intmax_t strtoimax(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)); 1.2871 -extern uintmax_t strtoumax(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)); 1.2872 -extern intmax_t wcstoimax(__const __gwchar_t *__restrict __nptr, __gwchar_t **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)); 1.2873 -extern uintmax_t wcstoumax(__const __gwchar_t *__restrict __nptr, __gwchar_t **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)); 1.2874 -extern long int __strtol_internal(__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.2875 -extern __inline __attribute__((__gnu_inline__)) intmax_t __attribute__((__nothrow__, __leaf__)) strtoimax(__const char *__restrict nptr, char **__restrict endptr, int base) 1.2876 -{ 1.2877 - return __strtol_internal(nptr, endptr, base, 0); 1.2878 -} 1.2879 -extern unsigned long int __strtoul_internal(__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.2880 -extern __inline __attribute__((__gnu_inline__)) uintmax_t __attribute__((__nothrow__, __leaf__)) strtoumax(__const char *__restrict nptr, char **__restrict endptr, int base) 1.2881 -{ 1.2882 - return __strtoul_internal(nptr, endptr, base, 0); 1.2883 -} 1.2884 -extern long int __wcstol_internal(__const __gwchar_t *__restrict __nptr, __gwchar_t **__restrict __endptr, int __base, int __group) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.2885 -extern __inline __attribute__((__gnu_inline__)) intmax_t __attribute__((__nothrow__, __leaf__)) wcstoimax(__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) 1.2886 -{ 1.2887 - return __wcstol_internal(nptr, endptr, base, 0); 1.2888 -} 1.2889 -extern unsigned long int __wcstoul_internal(__const __gwchar_t *__restrict __nptr, __gwchar_t **__restrict __endptr, int __base, int __group) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.2890 -extern __inline __attribute__((__gnu_inline__)) uintmax_t __attribute__((__nothrow__, __leaf__)) wcstoumax(__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) 1.2891 -{ 1.2892 - return __wcstoul_internal(nptr, endptr, base, 0); 1.2893 -} 1.2894 -typedef float float_t; 1.2895 -typedef double double_t; 1.2896 -extern double acos(double __x) __attribute__((__nothrow__, __leaf__)); 1.2897 -extern double __acos(double __x) __attribute__((__nothrow__, __leaf__)); 1.2898 -extern double asin(double __x) __attribute__((__nothrow__, __leaf__)); 1.2899 -extern double __asin(double __x) __attribute__((__nothrow__, __leaf__)); 1.2900 -extern double atan(double __x) __attribute__((__nothrow__, __leaf__)); 1.2901 -extern double __atan(double __x) __attribute__((__nothrow__, __leaf__)); 1.2902 -extern double atan2(double __y, double __x) __attribute__((__nothrow__, __leaf__)); 1.2903 -extern double __atan2(double __y, double __x) __attribute__((__nothrow__, __leaf__)); 1.2904 -extern double cos(double __x) __attribute__((__nothrow__, __leaf__)); 1.2905 -extern double __cos(double __x) __attribute__((__nothrow__, __leaf__)); 1.2906 -extern double sin(double __x) __attribute__((__nothrow__, __leaf__)); 1.2907 -extern double __sin(double __x) __attribute__((__nothrow__, __leaf__)); 1.2908 -extern double tan(double __x) __attribute__((__nothrow__, __leaf__)); 1.2909 -extern double __tan(double __x) __attribute__((__nothrow__, __leaf__)); 1.2910 -extern double cosh(double __x) __attribute__((__nothrow__, __leaf__)); 1.2911 -extern double __cosh(double __x) __attribute__((__nothrow__, __leaf__)); 1.2912 -extern double sinh(double __x) __attribute__((__nothrow__, __leaf__)); 1.2913 -extern double __sinh(double __x) __attribute__((__nothrow__, __leaf__)); 1.2914 -extern double tanh(double __x) __attribute__((__nothrow__, __leaf__)); 1.2915 -extern double __tanh(double __x) __attribute__((__nothrow__, __leaf__)); 1.2916 -extern double acosh(double __x) __attribute__((__nothrow__, __leaf__)); 1.2917 -extern double __acosh(double __x) __attribute__((__nothrow__, __leaf__)); 1.2918 -extern double asinh(double __x) __attribute__((__nothrow__, __leaf__)); 1.2919 -extern double __asinh(double __x) __attribute__((__nothrow__, __leaf__)); 1.2920 -extern double atanh(double __x) __attribute__((__nothrow__, __leaf__)); 1.2921 -extern double __atanh(double __x) __attribute__((__nothrow__, __leaf__)); 1.2922 -extern double exp(double __x) __attribute__((__nothrow__, __leaf__)); 1.2923 -extern double __exp(double __x) __attribute__((__nothrow__, __leaf__)); 1.2924 -extern double frexp(double __x, int *__exponent) __attribute__((__nothrow__, __leaf__)); 1.2925 -extern double __frexp(double __x, int *__exponent) __attribute__((__nothrow__, __leaf__)); 1.2926 -extern double ldexp(double __x, int __exponent) __attribute__((__nothrow__, __leaf__)); 1.2927 -extern double __ldexp(double __x, int __exponent) __attribute__((__nothrow__, __leaf__)); 1.2928 -extern double log(double __x) __attribute__((__nothrow__, __leaf__)); 1.2929 -extern double __log(double __x) __attribute__((__nothrow__, __leaf__)); 1.2930 -extern double log10(double __x) __attribute__((__nothrow__, __leaf__)); 1.2931 -extern double __log10(double __x) __attribute__((__nothrow__, __leaf__)); 1.2932 -extern double modf(double __x, double *__iptr) __attribute__((__nothrow__, __leaf__)); 1.2933 -extern double __modf(double __x, double *__iptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.2934 -extern double expm1(double __x) __attribute__((__nothrow__, __leaf__)); 1.2935 -extern double __expm1(double __x) __attribute__((__nothrow__, __leaf__)); 1.2936 -extern double log1p(double __x) __attribute__((__nothrow__, __leaf__)); 1.2937 -extern double __log1p(double __x) __attribute__((__nothrow__, __leaf__)); 1.2938 -extern double logb(double __x) __attribute__((__nothrow__, __leaf__)); 1.2939 -extern double __logb(double __x) __attribute__((__nothrow__, __leaf__)); 1.2940 -extern double exp2(double __x) __attribute__((__nothrow__, __leaf__)); 1.2941 -extern double __exp2(double __x) __attribute__((__nothrow__, __leaf__)); 1.2942 -extern double log2(double __x) __attribute__((__nothrow__, __leaf__)); 1.2943 -extern double __log2(double __x) __attribute__((__nothrow__, __leaf__)); 1.2944 -extern double pow(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.2945 -extern double __pow(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.2946 -extern double sqrt(double __x) __attribute__((__nothrow__, __leaf__)); 1.2947 -extern double __sqrt(double __x) __attribute__((__nothrow__, __leaf__)); 1.2948 -extern double hypot(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.2949 -extern double __hypot(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.2950 -extern double cbrt(double __x) __attribute__((__nothrow__, __leaf__)); 1.2951 -extern double __cbrt(double __x) __attribute__((__nothrow__, __leaf__)); 1.2952 -extern double ceil(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2953 -extern double __ceil(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2954 -extern double fabs(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2955 -extern double __fabs(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2956 -extern double floor(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2957 -extern double __floor(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2958 -extern double fmod(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.2959 -extern double __fmod(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.2960 -extern int __isinf(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2961 -extern int __finite(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2962 -extern int isinf(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2963 -extern int finite(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2964 -extern double drem(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.2965 -extern double __drem(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.2966 -extern double significand(double __x) __attribute__((__nothrow__, __leaf__)); 1.2967 -extern double __significand(double __x) __attribute__((__nothrow__, __leaf__)); 1.2968 -extern double copysign(double __x, double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2969 -extern double __copysign(double __x, double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2970 -extern double nan(__const char *__tagb) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2971 -extern double __nan(__const char *__tagb) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2972 -extern int __isnan(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2973 -extern int isnan(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2974 -extern double j0(double) __attribute__((__nothrow__, __leaf__)); 1.2975 -extern double __j0(double) __attribute__((__nothrow__, __leaf__)); 1.2976 -extern double j1(double) __attribute__((__nothrow__, __leaf__)); 1.2977 -extern double __j1(double) __attribute__((__nothrow__, __leaf__)); 1.2978 -extern double jn(int, double) __attribute__((__nothrow__, __leaf__)); 1.2979 -extern double __jn(int, double) __attribute__((__nothrow__, __leaf__)); 1.2980 -extern double y0(double) __attribute__((__nothrow__, __leaf__)); 1.2981 -extern double __y0(double) __attribute__((__nothrow__, __leaf__)); 1.2982 -extern double y1(double) __attribute__((__nothrow__, __leaf__)); 1.2983 -extern double __y1(double) __attribute__((__nothrow__, __leaf__)); 1.2984 -extern double yn(int, double) __attribute__((__nothrow__, __leaf__)); 1.2985 -extern double __yn(int, double) __attribute__((__nothrow__, __leaf__)); 1.2986 -extern double erf(double) __attribute__((__nothrow__, __leaf__)); 1.2987 -extern double __erf(double) __attribute__((__nothrow__, __leaf__)); 1.2988 -extern double erfc(double) __attribute__((__nothrow__, __leaf__)); 1.2989 -extern double __erfc(double) __attribute__((__nothrow__, __leaf__)); 1.2990 -extern double lgamma(double) __attribute__((__nothrow__, __leaf__)); 1.2991 -extern double __lgamma(double) __attribute__((__nothrow__, __leaf__)); 1.2992 -extern double tgamma(double) __attribute__((__nothrow__, __leaf__)); 1.2993 -extern double __tgamma(double) __attribute__((__nothrow__, __leaf__)); 1.2994 -extern double gamma(double) __attribute__((__nothrow__, __leaf__)); 1.2995 -extern double __gamma(double) __attribute__((__nothrow__, __leaf__)); 1.2996 -extern double lgamma_r(double, int *__signgamp) __attribute__((__nothrow__, __leaf__)); 1.2997 -extern double __lgamma_r(double, int *__signgamp) __attribute__((__nothrow__, __leaf__)); 1.2998 -extern double rint(double __x) __attribute__((__nothrow__, __leaf__)); 1.2999 -extern double __rint(double __x) __attribute__((__nothrow__, __leaf__)); 1.3000 -extern double nextafter(double __x, double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3001 -extern double __nextafter(double __x, double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3002 -extern double nexttoward(double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3003 -extern double __nexttoward(double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3004 -extern double remainder(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.3005 -extern double __remainder(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.3006 -extern double scalbn(double __x, int __n) __attribute__((__nothrow__, __leaf__)); 1.3007 -extern double __scalbn(double __x, int __n) __attribute__((__nothrow__, __leaf__)); 1.3008 -extern int ilogb(double __x) __attribute__((__nothrow__, __leaf__)); 1.3009 -extern int __ilogb(double __x) __attribute__((__nothrow__, __leaf__)); 1.3010 -extern double scalbln(double __x, long int __n) __attribute__((__nothrow__, __leaf__)); 1.3011 -extern double __scalbln(double __x, long int __n) __attribute__((__nothrow__, __leaf__)); 1.3012 -extern double nearbyint(double __x) __attribute__((__nothrow__, __leaf__)); 1.3013 -extern double __nearbyint(double __x) __attribute__((__nothrow__, __leaf__)); 1.3014 -extern double round(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3015 -extern double __round(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3016 -extern double trunc(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3017 -extern double __trunc(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3018 -extern double remquo(double __x, double __y, int *__quo) __attribute__((__nothrow__, __leaf__)); 1.3019 -extern double __remquo(double __x, double __y, int *__quo) __attribute__((__nothrow__, __leaf__)); 1.3020 -extern long int lrint(double __x) __attribute__((__nothrow__, __leaf__)); 1.3021 -extern long int __lrint(double __x) __attribute__((__nothrow__, __leaf__)); 1.3022 -extern long long int llrint(double __x) __attribute__((__nothrow__, __leaf__)); 1.3023 -extern long long int __llrint(double __x) __attribute__((__nothrow__, __leaf__)); 1.3024 -extern long int lround(double __x) __attribute__((__nothrow__, __leaf__)); 1.3025 -extern long int __lround(double __x) __attribute__((__nothrow__, __leaf__)); 1.3026 -extern long long int llround(double __x) __attribute__((__nothrow__, __leaf__)); 1.3027 -extern long long int __llround(double __x) __attribute__((__nothrow__, __leaf__)); 1.3028 -extern double fdim(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.3029 -extern double __fdim(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.3030 -extern double fmax(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.3031 -extern double __fmax(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.3032 -extern double fmin(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.3033 -extern double __fmin(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.3034 -extern int __fpclassify(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3035 -extern int __signbit(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3036 -extern double fma(double __x, double __y, double __z) __attribute__((__nothrow__, __leaf__)); 1.3037 -extern double __fma(double __x, double __y, double __z) __attribute__((__nothrow__, __leaf__)); 1.3038 -extern double scalb(double __x, double __n) __attribute__((__nothrow__, __leaf__)); 1.3039 -extern double __scalb(double __x, double __n) __attribute__((__nothrow__, __leaf__)); 1.3040 -extern float acosf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3041 -extern float __acosf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3042 -extern float asinf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3043 -extern float __asinf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3044 -extern float atanf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3045 -extern float __atanf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3046 -extern float atan2f(float __y, float __x) __attribute__((__nothrow__, __leaf__)); 1.3047 -extern float __atan2f(float __y, float __x) __attribute__((__nothrow__, __leaf__)); 1.3048 -extern float cosf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3049 -extern float __cosf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3050 -extern float sinf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3051 -extern float __sinf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3052 -extern float tanf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3053 -extern float __tanf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3054 -extern float coshf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3055 -extern float __coshf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3056 -extern float sinhf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3057 -extern float __sinhf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3058 -extern float tanhf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3059 -extern float __tanhf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3060 -extern float acoshf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3061 -extern float __acoshf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3062 -extern float asinhf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3063 -extern float __asinhf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3064 -extern float atanhf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3065 -extern float __atanhf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3066 -extern float expf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3067 -extern float __expf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3068 -extern float frexpf(float __x, int *__exponent) __attribute__((__nothrow__, __leaf__)); 1.3069 -extern float __frexpf(float __x, int *__exponent) __attribute__((__nothrow__, __leaf__)); 1.3070 -extern float ldexpf(float __x, int __exponent) __attribute__((__nothrow__, __leaf__)); 1.3071 -extern float __ldexpf(float __x, int __exponent) __attribute__((__nothrow__, __leaf__)); 1.3072 -extern float logf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3073 -extern float __logf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3074 -extern float log10f(float __x) __attribute__((__nothrow__, __leaf__)); 1.3075 -extern float __log10f(float __x) __attribute__((__nothrow__, __leaf__)); 1.3076 -extern float modff(float __x, float *__iptr) __attribute__((__nothrow__, __leaf__)); 1.3077 -extern float __modff(float __x, float *__iptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.3078 -extern float expm1f(float __x) __attribute__((__nothrow__, __leaf__)); 1.3079 -extern float __expm1f(float __x) __attribute__((__nothrow__, __leaf__)); 1.3080 -extern float log1pf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3081 -extern float __log1pf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3082 -extern float logbf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3083 -extern float __logbf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3084 -extern float exp2f(float __x) __attribute__((__nothrow__, __leaf__)); 1.3085 -extern float __exp2f(float __x) __attribute__((__nothrow__, __leaf__)); 1.3086 -extern float log2f(float __x) __attribute__((__nothrow__, __leaf__)); 1.3087 -extern float __log2f(float __x) __attribute__((__nothrow__, __leaf__)); 1.3088 -extern float powf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.3089 -extern float __powf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.3090 -extern float sqrtf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3091 -extern float __sqrtf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3092 -extern float hypotf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.3093 -extern float __hypotf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.3094 -extern float cbrtf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3095 -extern float __cbrtf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3096 -extern float ceilf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3097 -extern float __ceilf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3098 -extern float fabsf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3099 -extern float __fabsf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3100 -extern float floorf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3101 -extern float __floorf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3102 -extern float fmodf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.3103 -extern float __fmodf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.3104 -extern int __isinff(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3105 -extern int __finitef(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3106 -extern int isinff(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3107 -extern int finitef(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3108 -extern float dremf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.3109 -extern float __dremf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.3110 -extern float significandf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3111 -extern float __significandf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3112 -extern float copysignf(float __x, float __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3113 -extern float __copysignf(float __x, float __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3114 -extern float nanf(__const char *__tagb) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3115 -extern float __nanf(__const char *__tagb) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3116 -extern int __isnanf(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3117 -extern int isnanf(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3118 -extern float j0f(float) __attribute__((__nothrow__, __leaf__)); 1.3119 -extern float __j0f(float) __attribute__((__nothrow__, __leaf__)); 1.3120 -extern float j1f(float) __attribute__((__nothrow__, __leaf__)); 1.3121 -extern float __j1f(float) __attribute__((__nothrow__, __leaf__)); 1.3122 -extern float jnf(int, float) __attribute__((__nothrow__, __leaf__)); 1.3123 -extern float __jnf(int, float) __attribute__((__nothrow__, __leaf__)); 1.3124 -extern float y0f(float) __attribute__((__nothrow__, __leaf__)); 1.3125 -extern float __y0f(float) __attribute__((__nothrow__, __leaf__)); 1.3126 -extern float y1f(float) __attribute__((__nothrow__, __leaf__)); 1.3127 -extern float __y1f(float) __attribute__((__nothrow__, __leaf__)); 1.3128 -extern float ynf(int, float) __attribute__((__nothrow__, __leaf__)); 1.3129 -extern float __ynf(int, float) __attribute__((__nothrow__, __leaf__)); 1.3130 -extern float erff(float) __attribute__((__nothrow__, __leaf__)); 1.3131 -extern float __erff(float) __attribute__((__nothrow__, __leaf__)); 1.3132 -extern float erfcf(float) __attribute__((__nothrow__, __leaf__)); 1.3133 -extern float __erfcf(float) __attribute__((__nothrow__, __leaf__)); 1.3134 -extern float lgammaf(float) __attribute__((__nothrow__, __leaf__)); 1.3135 -extern float __lgammaf(float) __attribute__((__nothrow__, __leaf__)); 1.3136 -extern float tgammaf(float) __attribute__((__nothrow__, __leaf__)); 1.3137 -extern float __tgammaf(float) __attribute__((__nothrow__, __leaf__)); 1.3138 -extern float gammaf(float) __attribute__((__nothrow__, __leaf__)); 1.3139 -extern float __gammaf(float) __attribute__((__nothrow__, __leaf__)); 1.3140 -extern float lgammaf_r(float, int *__signgamp) __attribute__((__nothrow__, __leaf__)); 1.3141 -extern float __lgammaf_r(float, int *__signgamp) __attribute__((__nothrow__, __leaf__)); 1.3142 -extern float rintf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3143 -extern float __rintf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3144 -extern float nextafterf(float __x, float __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3145 -extern float __nextafterf(float __x, float __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3146 -extern float nexttowardf(float __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3147 -extern float __nexttowardf(float __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3148 -extern float remainderf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.3149 -extern float __remainderf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.3150 -extern float scalbnf(float __x, int __n) __attribute__((__nothrow__, __leaf__)); 1.3151 -extern float __scalbnf(float __x, int __n) __attribute__((__nothrow__, __leaf__)); 1.3152 -extern int ilogbf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3153 -extern int __ilogbf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3154 -extern float scalblnf(float __x, long int __n) __attribute__((__nothrow__, __leaf__)); 1.3155 -extern float __scalblnf(float __x, long int __n) __attribute__((__nothrow__, __leaf__)); 1.3156 -extern float nearbyintf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3157 -extern float __nearbyintf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3158 -extern float roundf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3159 -extern float __roundf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3160 -extern float truncf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3161 -extern float __truncf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3162 -extern float remquof(float __x, float __y, int *__quo) __attribute__((__nothrow__, __leaf__)); 1.3163 -extern float __remquof(float __x, float __y, int *__quo) __attribute__((__nothrow__, __leaf__)); 1.3164 -extern long int lrintf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3165 -extern long int __lrintf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3166 -extern long long int llrintf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3167 -extern long long int __llrintf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3168 -extern long int lroundf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3169 -extern long int __lroundf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3170 -extern long long int llroundf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3171 -extern long long int __llroundf(float __x) __attribute__((__nothrow__, __leaf__)); 1.3172 -extern float fdimf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.3173 -extern float __fdimf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.3174 -extern float fmaxf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.3175 -extern float __fmaxf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.3176 -extern float fminf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.3177 -extern float __fminf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.3178 -extern int __fpclassifyf(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3179 -extern int __signbitf(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3180 -extern float fmaf(float __x, float __y, float __z) __attribute__((__nothrow__, __leaf__)); 1.3181 -extern float __fmaf(float __x, float __y, float __z) __attribute__((__nothrow__, __leaf__)); 1.3182 -extern float scalbf(float __x, float __n) __attribute__((__nothrow__, __leaf__)); 1.3183 -extern float __scalbf(float __x, float __n) __attribute__((__nothrow__, __leaf__)); 1.3184 -extern long double acosl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3185 -extern long double __acosl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3186 -extern long double asinl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3187 -extern long double __asinl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3188 -extern long double atanl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3189 -extern long double __atanl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3190 -extern long double atan2l(long double __y, long double __x) __attribute__((__nothrow__, __leaf__)); 1.3191 -extern long double __atan2l(long double __y, long double __x) __attribute__((__nothrow__, __leaf__)); 1.3192 -extern long double cosl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3193 -extern long double __cosl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3194 -extern long double sinl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3195 -extern long double __sinl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3196 -extern long double tanl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3197 -extern long double __tanl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3198 -extern long double coshl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3199 -extern long double __coshl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3200 -extern long double sinhl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3201 -extern long double __sinhl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3202 -extern long double tanhl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3203 -extern long double __tanhl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3204 -extern long double acoshl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3205 -extern long double __acoshl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3206 -extern long double asinhl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3207 -extern long double __asinhl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3208 -extern long double atanhl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3209 -extern long double __atanhl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3210 -extern long double expl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3211 -extern long double __expl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3212 -extern long double frexpl(long double __x, int *__exponent) __attribute__((__nothrow__, __leaf__)); 1.3213 -extern long double __frexpl(long double __x, int *__exponent) __attribute__((__nothrow__, __leaf__)); 1.3214 -extern long double ldexpl(long double __x, int __exponent) __attribute__((__nothrow__, __leaf__)); 1.3215 -extern long double __ldexpl(long double __x, int __exponent) __attribute__((__nothrow__, __leaf__)); 1.3216 -extern long double logl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3217 -extern long double __logl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3218 -extern long double log10l(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3219 -extern long double __log10l(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3220 -extern long double modfl(long double __x, long double *__iptr) __attribute__((__nothrow__, __leaf__)); 1.3221 -extern long double __modfl(long double __x, long double *__iptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.3222 -extern long double expm1l(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3223 -extern long double __expm1l(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3224 -extern long double log1pl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3225 -extern long double __log1pl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3226 -extern long double logbl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3227 -extern long double __logbl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3228 -extern long double exp2l(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3229 -extern long double __exp2l(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3230 -extern long double log2l(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3231 -extern long double __log2l(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3232 -extern long double powl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.3233 -extern long double __powl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.3234 -extern long double sqrtl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3235 -extern long double __sqrtl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3236 -extern long double hypotl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.3237 -extern long double __hypotl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.3238 -extern long double cbrtl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3239 -extern long double __cbrtl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3240 -extern long double ceill(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3241 -extern long double __ceill(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3242 -extern long double fabsl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3243 -extern long double __fabsl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3244 -extern long double floorl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3245 -extern long double __floorl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3246 -extern long double fmodl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.3247 -extern long double __fmodl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.3248 -extern int __isinfl(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3249 -extern int __finitel(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3250 -extern int isinfl(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3251 -extern int finitel(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3252 -extern long double dreml(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.3253 -extern long double __dreml(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.3254 -extern long double significandl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3255 -extern long double __significandl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3256 -extern long double copysignl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3257 -extern long double __copysignl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3258 -extern long double nanl(__const char *__tagb) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3259 -extern long double __nanl(__const char *__tagb) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3260 -extern int __isnanl(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3261 -extern int isnanl(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3262 -extern long double j0l(long double) __attribute__((__nothrow__, __leaf__)); 1.3263 -extern long double __j0l(long double) __attribute__((__nothrow__, __leaf__)); 1.3264 -extern long double j1l(long double) __attribute__((__nothrow__, __leaf__)); 1.3265 -extern long double __j1l(long double) __attribute__((__nothrow__, __leaf__)); 1.3266 -extern long double jnl(int, long double) __attribute__((__nothrow__, __leaf__)); 1.3267 -extern long double __jnl(int, long double) __attribute__((__nothrow__, __leaf__)); 1.3268 -extern long double y0l(long double) __attribute__((__nothrow__, __leaf__)); 1.3269 -extern long double __y0l(long double) __attribute__((__nothrow__, __leaf__)); 1.3270 -extern long double y1l(long double) __attribute__((__nothrow__, __leaf__)); 1.3271 -extern long double __y1l(long double) __attribute__((__nothrow__, __leaf__)); 1.3272 -extern long double ynl(int, long double) __attribute__((__nothrow__, __leaf__)); 1.3273 -extern long double __ynl(int, long double) __attribute__((__nothrow__, __leaf__)); 1.3274 -extern long double erfl(long double) __attribute__((__nothrow__, __leaf__)); 1.3275 -extern long double __erfl(long double) __attribute__((__nothrow__, __leaf__)); 1.3276 -extern long double erfcl(long double) __attribute__((__nothrow__, __leaf__)); 1.3277 -extern long double __erfcl(long double) __attribute__((__nothrow__, __leaf__)); 1.3278 -extern long double lgammal(long double) __attribute__((__nothrow__, __leaf__)); 1.3279 -extern long double __lgammal(long double) __attribute__((__nothrow__, __leaf__)); 1.3280 -extern long double tgammal(long double) __attribute__((__nothrow__, __leaf__)); 1.3281 -extern long double __tgammal(long double) __attribute__((__nothrow__, __leaf__)); 1.3282 -extern long double gammal(long double) __attribute__((__nothrow__, __leaf__)); 1.3283 -extern long double __gammal(long double) __attribute__((__nothrow__, __leaf__)); 1.3284 -extern long double lgammal_r(long double, int *__signgamp) __attribute__((__nothrow__, __leaf__)); 1.3285 -extern long double __lgammal_r(long double, int *__signgamp) __attribute__((__nothrow__, __leaf__)); 1.3286 -extern long double rintl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3287 -extern long double __rintl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3288 -extern long double nextafterl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3289 -extern long double __nextafterl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3290 -extern long double nexttowardl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3291 -extern long double __nexttowardl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3292 -extern long double remainderl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.3293 -extern long double __remainderl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.3294 -extern long double scalbnl(long double __x, int __n) __attribute__((__nothrow__, __leaf__)); 1.3295 -extern long double __scalbnl(long double __x, int __n) __attribute__((__nothrow__, __leaf__)); 1.3296 -extern int ilogbl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3297 -extern int __ilogbl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3298 -extern long double scalblnl(long double __x, long int __n) __attribute__((__nothrow__, __leaf__)); 1.3299 -extern long double __scalblnl(long double __x, long int __n) __attribute__((__nothrow__, __leaf__)); 1.3300 -extern long double nearbyintl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3301 -extern long double __nearbyintl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3302 -extern long double roundl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3303 -extern long double __roundl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3304 -extern long double truncl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3305 -extern long double __truncl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3306 -extern long double remquol(long double __x, long double __y, int *__quo) __attribute__((__nothrow__, __leaf__)); 1.3307 -extern long double __remquol(long double __x, long double __y, int *__quo) __attribute__((__nothrow__, __leaf__)); 1.3308 -extern long int lrintl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3309 -extern long int __lrintl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3310 -extern long long int llrintl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3311 -extern long long int __llrintl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3312 -extern long int lroundl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3313 -extern long int __lroundl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3314 -extern long long int llroundl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3315 -extern long long int __llroundl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3316 -extern long double fdiml(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.3317 -extern long double __fdiml(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.3318 -extern long double fmaxl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.3319 -extern long double __fmaxl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.3320 -extern long double fminl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.3321 -extern long double __fminl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.3322 -extern int __fpclassifyl(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3323 -extern int __signbitl(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3324 -extern long double fmal(long double __x, long double __y, long double __z) __attribute__((__nothrow__, __leaf__)); 1.3325 -extern long double __fmal(long double __x, long double __y, long double __z) __attribute__((__nothrow__, __leaf__)); 1.3326 -extern long double scalbl(long double __x, long double __n) __attribute__((__nothrow__, __leaf__)); 1.3327 -extern long double __scalbl(long double __x, long double __n) __attribute__((__nothrow__, __leaf__)); 1.3328 -extern int signgam; 1.3329 -enum 1.3330 -{ 1.3331 - FP_NAN, 1.3332 - FP_INFINITE, 1.3333 - FP_ZERO, 1.3334 - FP_SUBNORMAL, 1.3335 - FP_NORMAL 1.3336 -}; 1.3337 -typedef enum 1.3338 -{ 1.3339 - _IEEE_ = - 1, 1.3340 - _SVID_, 1.3341 - _XOPEN_, 1.3342 - _POSIX_, 1.3343 - _ISOC_ 1.3344 -} _LIB_VERSION_TYPE; 1.3345 -extern _LIB_VERSION_TYPE _LIB_VERSION; 1.3346 -struct exception 1.3347 -{ 1.3348 - int type; 1.3349 - char *name; 1.3350 - double arg1; 1.3351 - double arg2; 1.3352 - double retval; 1.3353 -}; 1.3354 -extern int matherr(struct exception *__exc); 1.3355 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) __signbitf(float __x) 1.3356 -{ 1.3357 - int __m; 1.3358 - __asm ("pmovmskb %1, %0": "=r" (__m): "x" (__x)); 1.3359 - return __m & 0x8; 1.3360 -} 1.3361 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) __signbit(double __x) 1.3362 -{ 1.3363 - int __m; 1.3364 - __asm ("pmovmskb %1, %0": "=r" (__m): "x" (__x)); 1.3365 - return __m & 0x80; 1.3366 -} 1.3367 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) __signbitl(long double __x) 1.3368 -{ 1.3369 - __extension__ 1.3370 - union 1.3371 - { 1.3372 - long double __l; 1.3373 - int __i[3]; 1.3374 - } __u = {__l:__x}; 1.3375 - return (__u.__i[2] & 0x8000) != 0; 1.3376 -} 1.3377 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) long int __attribute__((__nothrow__, __leaf__)) lrintf(float __x) 1.3378 -{ 1.3379 - long int __res; 1.3380 - __asm ("cvtss2si %1, %0": "=r" (__res): "xm" (__x)); 1.3381 - return __res; 1.3382 -} 1.3383 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) long int __attribute__((__nothrow__, __leaf__)) lrint(double __x) 1.3384 -{ 1.3385 - long int __res; 1.3386 - __asm ("cvtsd2si %1, %0": "=r" (__res): "xm" (__x)); 1.3387 - return __res; 1.3388 -} 1.3389 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) long long int __attribute__((__nothrow__, __leaf__)) llrintf(float __x) 1.3390 -{ 1.3391 - long long int __res; 1.3392 - __asm ("cvtss2si %1, %0": "=r" (__res): "xm" (__x)); 1.3393 - return __res; 1.3394 -} 1.3395 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) long long int __attribute__((__nothrow__, __leaf__)) llrint(double __x) 1.3396 -{ 1.3397 - long long int __res; 1.3398 - __asm ("cvtsd2si %1, %0": "=r" (__res): "xm" (__x)); 1.3399 - return __res; 1.3400 -} 1.3401 -union wait 1.3402 -{ 1.3403 - int w_status; 1.3404 - struct 1.3405 - { 1.3406 - unsigned int __w_termsig : 7; 1.3407 - unsigned int __w_coredump : 1; 1.3408 - unsigned int __w_retcode : 8; 1.3409 - unsigned int : 16; 1.3410 - } __wait_terminated; 1.3411 - struct 1.3412 - { 1.3413 - unsigned int __w_stopval : 8; 1.3414 - unsigned int __w_stopsig : 8; 1.3415 - unsigned int : 16; 1.3416 - } __wait_stopped; 1.3417 -}; 1.3418 -typedef union 1.3419 -{ 1.3420 - union wait *__uptr; 1.3421 - int *__iptr; 1.3422 -} __WAIT_STATUS __attribute__((__transparent_union__)); 1.3423 -typedef struct 1.3424 -{ 1.3425 - int quot; 1.3426 - int rem; 1.3427 -} div_t; 1.3428 -typedef struct 1.3429 -{ 1.3430 - long int quot; 1.3431 - long int rem; 1.3432 -} ldiv_t; 1.3433 -__extension__ 1.3434 -typedef struct 1.3435 -{ 1.3436 - long long int quot; 1.3437 - long long int rem; 1.3438 -} lldiv_t; 1.3439 -extern size_t __ctype_get_mb_cur_max(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.3440 -extern double atof(__const char *__nptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3441 -extern int atoi(__const char *__nptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3442 -extern long int atol(__const char *__nptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3443 -__extension__ 1.3444 -extern long long int atoll(__const char *__nptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3445 -extern double strtod(__const char *__restrict __nptr, char **__restrict __endptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3446 -extern float strtof(__const char *__restrict __nptr, char **__restrict __endptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3447 -extern long double strtold(__const char *__restrict __nptr, char **__restrict __endptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3448 -extern long int strtol(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3449 -extern unsigned long int strtoul(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3450 -__extension__ 1.3451 -extern long long int strtoq(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3452 -__extension__ 1.3453 -extern unsigned long long int strtouq(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3454 -__extension__ 1.3455 -extern long long int strtoll(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3456 -__extension__ 1.3457 -extern unsigned long long int strtoull(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3458 -extern __inline __attribute__((__gnu_inline__)) double __attribute__((__nothrow__, __leaf__)) atof(__const char *__nptr) 1.3459 -{ 1.3460 - return strtod(__nptr, (char **) ((void *) 0)); 1.3461 -} 1.3462 -extern __inline __attribute__((__gnu_inline__)) int __attribute__((__nothrow__, __leaf__)) atoi(__const char *__nptr) 1.3463 -{ 1.3464 - return (int) strtol(__nptr, (char **) ((void *) 0), 10); 1.3465 -} 1.3466 -extern __inline __attribute__((__gnu_inline__)) long int __attribute__((__nothrow__, __leaf__)) atol(__const char *__nptr) 1.3467 -{ 1.3468 - return strtol(__nptr, (char **) ((void *) 0), 10); 1.3469 -} 1.3470 -__extension__ 1.3471 -extern __inline __attribute__((__gnu_inline__)) long long int __attribute__((__nothrow__, __leaf__)) atoll(__const char *__nptr) 1.3472 -{ 1.3473 - return strtoll(__nptr, (char **) ((void *) 0), 10); 1.3474 -} 1.3475 -extern char *l64a(long int __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.3476 -extern long int a64l(__const char *__s) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3477 -typedef __u_char u_char; 1.3478 -typedef __u_short u_short; 1.3479 -typedef __u_int u_int; 1.3480 -typedef __u_long u_long; 1.3481 -typedef __quad_t quad_t; 1.3482 -typedef __u_quad_t u_quad_t; 1.3483 -typedef __fsid_t fsid_t; 1.3484 -typedef __loff_t loff_t; 1.3485 -typedef __ino_t ino_t; 1.3486 -typedef __dev_t dev_t; 1.3487 -typedef __mode_t mode_t; 1.3488 -typedef __nlink_t nlink_t; 1.3489 -typedef __id_t id_t; 1.3490 -typedef __daddr_t daddr_t; 1.3491 -typedef __caddr_t caddr_t; 1.3492 -typedef __key_t key_t; 1.3493 -typedef unsigned long int ulong; 1.3494 -typedef unsigned short int ushort; 1.3495 -typedef unsigned int uint; 1.3496 -typedef unsigned int u_int8_t __attribute__((__mode__(__QI__))); 1.3497 -typedef unsigned int u_int16_t __attribute__((__mode__(__HI__))); 1.3498 -typedef unsigned int u_int32_t __attribute__((__mode__(__SI__))); 1.3499 -typedef unsigned int u_int64_t __attribute__((__mode__(__DI__))); 1.3500 -typedef int register_t __attribute__((__mode__(__word__))); 1.3501 -typedef int __sig_atomic_t; 1.3502 -typedef struct 1.3503 -{ 1.3504 - unsigned long int __val[(1024 / (8 * sizeof(unsigned long int)))]; 1.3505 -} __sigset_t; 1.3506 -typedef __sigset_t sigset_t; 1.3507 -struct timeval 1.3508 -{ 1.3509 - __time_t tv_sec; 1.3510 - __suseconds_t tv_usec; 1.3511 -}; 1.3512 -typedef __suseconds_t suseconds_t; 1.3513 -typedef long int __fd_mask; 1.3514 -typedef struct 1.3515 -{ 1.3516 - __fd_mask __fds_bits[1024 / (8 * (int) sizeof(__fd_mask))]; 1.3517 -} fd_set; 1.3518 -typedef __fd_mask fd_mask; 1.3519 -extern int select(int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout); 1.3520 -extern int pselect(int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, const struct timespec *__restrict __timeout, const __sigset_t *__restrict __sigmask); 1.3521 -extern unsigned long int __fdelt_chk(unsigned long int __d); 1.3522 -extern unsigned long int __fdelt_warn(unsigned long int __d) __attribute__((__warning__("bit outside of fd_set selected"))); 1.3523 -__extension__ 1.3524 -extern unsigned int gnu_dev_major(unsigned long long int __dev) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3525 -__extension__ 1.3526 -extern unsigned int gnu_dev_minor(unsigned long long int __dev) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3527 -__extension__ 1.3528 -extern unsigned long long int gnu_dev_makedev(unsigned int __major, unsigned int __minor) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3529 -__extension__ 1.3530 -extern __inline __attribute__((__gnu_inline__)) __attribute__((__const__)) unsigned int __attribute__((__nothrow__, __leaf__)) gnu_dev_major(unsigned long long int __dev) 1.3531 -{ 1.3532 - return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); 1.3533 -} 1.3534 -__extension__ 1.3535 -extern __inline __attribute__((__gnu_inline__)) __attribute__((__const__)) unsigned int __attribute__((__nothrow__, __leaf__)) gnu_dev_minor(unsigned long long int __dev) 1.3536 -{ 1.3537 - return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); 1.3538 -} 1.3539 -__extension__ 1.3540 -extern __inline __attribute__((__gnu_inline__)) __attribute__((__const__)) unsigned long long int __attribute__((__nothrow__, __leaf__)) gnu_dev_makedev(unsigned int __major, unsigned int __minor) 1.3541 -{ 1.3542 - return ((__minor & 0xff) | ((__major & 0xfff) << 8) | (((unsigned long long int) (__minor & ~0xff)) << 12) | (((unsigned long long int) (__major & ~0xfff)) << 32)); 1.3543 -} 1.3544 -typedef __blksize_t blksize_t; 1.3545 -typedef __blkcnt_t blkcnt_t; 1.3546 -typedef __fsblkcnt_t fsblkcnt_t; 1.3547 -typedef __fsfilcnt_t fsfilcnt_t; 1.3548 -extern long int random(void) __attribute__((__nothrow__, __leaf__)); 1.3549 -extern void srandom(unsigned int __seed) __attribute__((__nothrow__, __leaf__)); 1.3550 -extern char *initstate(unsigned int __seed, char *__statebuf, size_t __statelen) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.3551 -extern char *setstate(char *__statebuf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3552 -struct random_data 1.3553 -{ 1.3554 - int32_t *fptr; 1.3555 - int32_t *rptr; 1.3556 - int32_t *state; 1.3557 - int rand_type; 1.3558 - int rand_deg; 1.3559 - int rand_sep; 1.3560 - int32_t *end_ptr; 1.3561 -}; 1.3562 -extern int random_r(struct random_data *__restrict __buf, int32_t *__restrict __result) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3563 -extern int srandom_r(unsigned int __seed, struct random_data *__buf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.3564 -extern int initstate_r(unsigned int __seed, char *__restrict __statebuf, size_t __statelen, struct random_data *__restrict __buf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 4))); 1.3565 -extern int setstate_r(char *__restrict __statebuf, struct random_data *__restrict __buf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3566 -extern int rand(void) __attribute__((__nothrow__, __leaf__)); 1.3567 -extern void srand(unsigned int __seed) __attribute__((__nothrow__, __leaf__)); 1.3568 -extern int rand_r(unsigned int *__seed) __attribute__((__nothrow__, __leaf__)); 1.3569 -extern double drand48(void) __attribute__((__nothrow__, __leaf__)); 1.3570 -extern double erand48(unsigned short int __xsubi[3]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3571 -extern long int lrand48(void) __attribute__((__nothrow__, __leaf__)); 1.3572 -extern long int nrand48(unsigned short int __xsubi[3]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3573 -extern long int mrand48(void) __attribute__((__nothrow__, __leaf__)); 1.3574 -extern long int jrand48(unsigned short int __xsubi[3]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3575 -extern void srand48(long int __seedval) __attribute__((__nothrow__, __leaf__)); 1.3576 -extern unsigned short int *seed48(unsigned short int __seed16v[3]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3577 -extern void lcong48(unsigned short int __param[7]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3578 -struct drand48_data 1.3579 -{ 1.3580 - unsigned short int __x[3]; 1.3581 - unsigned short int __old_x[3]; 1.3582 - unsigned short int __c; 1.3583 - unsigned short int __init; 1.3584 - unsigned long long int __a; 1.3585 -}; 1.3586 -extern int drand48_r(struct drand48_data *__restrict __buffer, double *__restrict __result) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3587 -extern int erand48_r(unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, double *__restrict __result) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3588 -extern int lrand48_r(struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3589 -extern int nrand48_r(unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3590 -extern int mrand48_r(struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3591 -extern int jrand48_r(unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3592 -extern int srand48_r(long int __seedval, struct drand48_data *__buffer) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.3593 -extern int seed48_r(unsigned short int __seed16v[3], struct drand48_data *__buffer) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3594 -extern int lcong48_r(unsigned short int __param[7], struct drand48_data *__buffer) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3595 -extern void *malloc(size_t __size) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)) __attribute__((__warn_unused_result__)); 1.3596 -extern void *calloc(size_t __nmemb, size_t __size) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)) __attribute__((__warn_unused_result__)); 1.3597 -extern void *realloc(void *__ptr, size_t __size) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.3598 -extern void free(void *__ptr) __attribute__((__nothrow__, __leaf__)); 1.3599 -extern void cfree(void *__ptr) __attribute__((__nothrow__, __leaf__)); 1.3600 -extern void *alloca(size_t __size) __attribute__((__nothrow__, __leaf__)); 1.3601 -extern void *valloc(size_t __size) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)) __attribute__((__warn_unused_result__)); 1.3602 -extern int posix_memalign(void **__memptr, size_t __alignment, size_t __size) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3603 -extern void abort(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__noreturn__)); 1.3604 -extern int atexit(void (*__func)(void)) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3605 -extern int on_exit(void (*__func)(int __status, void *__arg), void *__arg) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3606 -extern void exit(int __status) __attribute__((__nothrow__, __leaf__)) __attribute__((__noreturn__)); 1.3607 -extern void _Exit(int __status) __attribute__((__nothrow__, __leaf__)) __attribute__((__noreturn__)); 1.3608 -extern char *getenv(__const char *__name) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3609 -extern char *__secure_getenv(__const char *__name) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3610 -extern int putenv(char *__string) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3611 -extern int setenv(__const char *__name, __const char *__value, int __replace) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.3612 -extern int unsetenv(__const char *__name) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3613 -extern int clearenv(void) __attribute__((__nothrow__, __leaf__)); 1.3614 -extern char *mktemp(char *__template) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3615 -extern int mkstemp(char *__template) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3616 -extern int mkstemps(char *__template, int __suffixlen) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3617 -extern char *mkdtemp(char *__template) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3618 -extern int system(__const char *__command) __attribute__((__warn_unused_result__)); 1.3619 -extern char *realpath(__const char *__restrict __name, char *__restrict __resolved) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.3620 -typedef int (*__compar_fn_t)(__const void *, __const void *); 1.3621 -extern void *bsearch(__const void *__key, __const void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__((__nonnull__(1, 2, 5))) __attribute__((__warn_unused_result__)); 1.3622 -extern void qsort(void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__((__nonnull__(1, 4))); 1.3623 -extern int abs(int __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)) __attribute__((__warn_unused_result__)); 1.3624 -extern long int labs(long int __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)) __attribute__((__warn_unused_result__)); 1.3625 -__extension__ 1.3626 -extern long long int llabs(long long int __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)) __attribute__((__warn_unused_result__)); 1.3627 -extern div_t div(int __numer, int __denom) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)) __attribute__((__warn_unused_result__)); 1.3628 -extern ldiv_t ldiv(long int __numer, long int __denom) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)) __attribute__((__warn_unused_result__)); 1.3629 -__extension__ 1.3630 -extern lldiv_t lldiv(long long int __numer, long long int __denom) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)) __attribute__((__warn_unused_result__)); 1.3631 -extern char *ecvt(double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3, 4))) __attribute__((__warn_unused_result__)); 1.3632 -extern char *fcvt(double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3, 4))) __attribute__((__warn_unused_result__)); 1.3633 -extern char *gcvt(double __value, int __ndigit, char *__buf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3))) __attribute__((__warn_unused_result__)); 1.3634 -extern char *qecvt(long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3, 4))) __attribute__((__warn_unused_result__)); 1.3635 -extern char *qfcvt(long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3, 4))) __attribute__((__warn_unused_result__)); 1.3636 -extern char *qgcvt(long double __value, int __ndigit, char *__buf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3))) __attribute__((__warn_unused_result__)); 1.3637 -extern int ecvt_r(double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3, 4, 5))); 1.3638 -extern int fcvt_r(double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3, 4, 5))); 1.3639 -extern int qecvt_r(long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3, 4, 5))); 1.3640 -extern int qfcvt_r(long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3, 4, 5))); 1.3641 -extern int mblen(__const char *__s, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.3642 -extern int mbtowc(wchar_t *__restrict __pwc, __const char *__restrict __s, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.3643 -extern int wctomb(char *__s, wchar_t __wchar) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.3644 -extern size_t mbstowcs(wchar_t *__restrict __pwcs, __const char *__restrict __s, size_t __n) __attribute__((__nothrow__, __leaf__)); 1.3645 -extern size_t wcstombs(char *__restrict __s, __const wchar_t *__restrict __pwcs, size_t __n) __attribute__((__nothrow__, __leaf__)); 1.3646 -extern int rpmatch(__const char *__response) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3647 -extern int getsubopt(char **__restrict __optionp, char *__const *__restrict __tokens, char **__restrict __valuep) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2, 3))) __attribute__((__warn_unused_result__)); 1.3648 -extern int getloadavg(double __loadavg[], int __nelem) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3649 -extern char *__realpath_chk(__const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.3650 -extern char *__realpath_alias(__const char *__restrict __name, char *__restrict __resolved) __asm__ ("""realpath") __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.3651 -extern char *__realpath_chk_warn(__const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) __asm__ ("""__realpath_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)) __attribute__((__warning__("second argument of realpath must be either NULL or at ""least PATH_MAX bytes long buffer"))); 1.3652 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) char *__attribute__((__nothrow__, __leaf__)) realpath(__const char *__restrict __name, char *__restrict __resolved) 1.3653 -{ 1.3654 - if (__builtin_object_size(__resolved, 2 > 1) != (size_t) - 1) 1.3655 - { 1.3656 - if (__builtin_object_size(__resolved, 2 > 1) < 4096) 1.3657 - return __realpath_chk_warn(__name, __resolved, __builtin_object_size(__resolved, 2 > 1)); 1.3658 - return __realpath_chk(__name, __resolved, __builtin_object_size(__resolved, 2 > 1)); 1.3659 - } 1.3660 - return __realpath_alias(__name, __resolved); 1.3661 -} 1.3662 -extern int __ptsname_r_chk(int __fd, char *__buf, size_t __buflen, size_t __nreal) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.3663 -extern int __ptsname_r_alias(int __fd, char *__buf, size_t __buflen) __asm__ ("""ptsname_r") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.3664 -extern int __ptsname_r_chk_warn(int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("""__ptsname_r_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))) __attribute__((__warning__("ptsname_r called with buflen bigger than ""size of buf"))); 1.3665 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) ptsname_r(int __fd, char *__buf, size_t __buflen) 1.3666 -{ 1.3667 - if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1) 1.3668 - { 1.3669 - if (!__builtin_constant_p(__buflen)) 1.3670 - return __ptsname_r_chk(__fd, __buf, __buflen, __builtin_object_size(__buf, 2 > 1)); 1.3671 - if (__buflen > __builtin_object_size(__buf, 2 > 1)) 1.3672 - return __ptsname_r_chk_warn(__fd, __buf, __buflen, __builtin_object_size(__buf, 2 > 1)); 1.3673 - } 1.3674 - return __ptsname_r_alias(__fd, __buf, __buflen); 1.3675 -} 1.3676 -extern int __wctomb_chk(char *__s, wchar_t __wchar, size_t __buflen) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.3677 -extern int __wctomb_alias(char *__s, wchar_t __wchar) __asm__ ("""wctomb") __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.3678 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) int __attribute__((__nothrow__, __leaf__)) wctomb(char *__s, wchar_t __wchar) 1.3679 -{ 1.3680 - if (__builtin_object_size(__s, 2 > 1) != (size_t) - 1 && 16 > __builtin_object_size(__s, 2 > 1)) 1.3681 - return __wctomb_chk(__s, __wchar, __builtin_object_size(__s, 2 > 1)); 1.3682 - return __wctomb_alias(__s, __wchar); 1.3683 -} 1.3684 -extern size_t __mbstowcs_chk(wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len, size_t __dstlen) __attribute__((__nothrow__, __leaf__)); 1.3685 -extern size_t __mbstowcs_alias(wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len) __asm__ ("""mbstowcs") __attribute__((__nothrow__, __leaf__)); 1.3686 -extern size_t __mbstowcs_chk_warn(wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len, size_t __dstlen) __asm__ ("""__mbstowcs_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__warning__("mbstowcs called with dst buffer smaller than len ""* sizeof (wchar_t)"))); 1.3687 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) size_t __attribute__((__nothrow__, __leaf__)) mbstowcs(wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len) 1.3688 -{ 1.3689 - if (__builtin_object_size(__dst, 2 > 1) != (size_t) - 1) 1.3690 - { 1.3691 - if (!__builtin_constant_p(__len)) 1.3692 - return __mbstowcs_chk(__dst, __src, __len, __builtin_object_size(__dst, 2 > 1) / sizeof(wchar_t)); 1.3693 - if (__len > __builtin_object_size(__dst, 2 > 1) / sizeof(wchar_t)) 1.3694 - return __mbstowcs_chk_warn(__dst, __src, __len, __builtin_object_size(__dst, 2 > 1) / sizeof(wchar_t)); 1.3695 - } 1.3696 - return __mbstowcs_alias(__dst, __src, __len); 1.3697 -} 1.3698 -extern size_t __wcstombs_chk(char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len, size_t __dstlen) __attribute__((__nothrow__, __leaf__)); 1.3699 -extern size_t __wcstombs_alias(char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len) __asm__ ("""wcstombs") __attribute__((__nothrow__, __leaf__)); 1.3700 -extern size_t __wcstombs_chk_warn(char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len, size_t __dstlen) __asm__ ("""__wcstombs_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__warning__("wcstombs called with dst buffer smaller than len"))); 1.3701 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) size_t __attribute__((__nothrow__, __leaf__)) wcstombs(char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len) 1.3702 -{ 1.3703 - if (__builtin_object_size(__dst, 2 > 1) != (size_t) - 1) 1.3704 - { 1.3705 - if (!__builtin_constant_p(__len)) 1.3706 - return __wcstombs_chk(__dst, __src, __len, __builtin_object_size(__dst, 2 > 1)); 1.3707 - if (__len > __builtin_object_size(__dst, 2 > 1)) 1.3708 - return __wcstombs_chk_warn(__dst, __src, __len, __builtin_object_size(__dst, 2 > 1)); 1.3709 - } 1.3710 - return __wcstombs_alias(__dst, __src, __len); 1.3711 -} 1.3712 -extern void *memcpy(void *__restrict __dest, __const void *__restrict __src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3713 -extern void *memmove(void *__dest, __const void *__src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3714 -extern void *memccpy(void *__restrict __dest, __const void *__restrict __src, int __c, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3715 -extern void *memset(void *__s, int __c, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3716 -extern int memcmp(__const void *__s1, __const void *__s2, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2))); 1.3717 -extern void *memchr(__const void *__s, int __c, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))); 1.3718 -extern char *strcpy(char *__restrict __dest, __const char *__restrict __src) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3719 -extern char *strncpy(char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3720 -extern char *strcat(char *__restrict __dest, __const char *__restrict __src) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3721 -extern char *strncat(char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3722 -extern int strcmp(__const char *__s1, __const char *__s2) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2))); 1.3723 -extern int strncmp(__const char *__s1, __const char *__s2, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2))); 1.3724 -extern int strcoll(__const char *__s1, __const char *__s2) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2))); 1.3725 -extern size_t strxfrm(char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.3726 -extern int strcoll_l(__const char *__s1, __const char *__s2, __locale_t __l) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2, 3))); 1.3727 -extern size_t strxfrm_l(char *__dest, __const char *__src, size_t __n, __locale_t __l) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 4))); 1.3728 -extern char *strdup(__const char *__s) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)) __attribute__((__nonnull__(1))); 1.3729 -extern char *strndup(__const char *__string, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)) __attribute__((__nonnull__(1))); 1.3730 -extern char *strchr(__const char *__s, int __c) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))); 1.3731 -extern char *strrchr(__const char *__s, int __c) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))); 1.3732 -extern size_t strcspn(__const char *__s, __const char *__reject) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2))); 1.3733 -extern size_t strspn(__const char *__s, __const char *__accept) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2))); 1.3734 -extern char *strpbrk(__const char *__s, __const char *__accept) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2))); 1.3735 -extern char *strstr(__const char *__haystack, __const char *__needle) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2))); 1.3736 -extern char *strtok(char *__restrict __s, __const char *__restrict __delim) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.3737 -extern char *__strtok_r(char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 3))); 1.3738 -extern char *strtok_r(char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 3))); 1.3739 -extern size_t strlen(__const char *__s) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))); 1.3740 -extern size_t strnlen(__const char *__string, size_t __maxlen) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))); 1.3741 -extern char *strerror(int __errnum) __attribute__((__nothrow__, __leaf__)); 1.3742 -extern int strerror_r(int __errnum, char *__buf, size_t __buflen) __asm__ ("""__xpg_strerror_r") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.3743 -extern char *strerror_l(int __errnum, __locale_t __l) __attribute__((__nothrow__, __leaf__)); 1.3744 -extern void __bzero(void *__s, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3745 -extern void bcopy(__const void *__src, void *__dest, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3746 -extern void bzero(void *__s, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3747 -extern int bcmp(__const void *__s1, __const void *__s2, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2))); 1.3748 -extern char *index(__const char *__s, int __c) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))); 1.3749 -extern char *rindex(__const char *__s, int __c) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))); 1.3750 -extern int ffs(int __i) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3751 -extern int strcasecmp(__const char *__s1, __const char *__s2) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2))); 1.3752 -extern int strncasecmp(__const char *__s1, __const char *__s2, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2))); 1.3753 -extern char *strsep(char **__restrict __stringp, __const char *__restrict __delim) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3754 -extern char *strsignal(int __sig) __attribute__((__nothrow__, __leaf__)); 1.3755 -extern char *__stpcpy(char *__restrict __dest, __const char *__restrict __src) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3756 -extern char *stpcpy(char *__restrict __dest, __const char *__restrict __src) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3757 -extern char *__stpncpy(char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3758 -extern char *stpncpy(char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3759 -extern void *__rawmemchr(const void *__s, int __c); 1.3760 -extern __inline __attribute__((__gnu_inline__)) size_t __strcspn_c1(__const char *__s, int __reject); 1.3761 -extern __inline __attribute__((__gnu_inline__)) size_t __strcspn_c1(__const char *__s, int __reject) 1.3762 -{ 1.3763 - register size_t __result = 0; 1.3764 - while (__s[__result] != '\0' && __s[__result] != __reject) 1.3765 - ++__result; 1.3766 - return __result; 1.3767 -} 1.3768 -extern __inline __attribute__((__gnu_inline__)) size_t __strcspn_c2(__const char *__s, int __reject1, int __reject2); 1.3769 -extern __inline __attribute__((__gnu_inline__)) size_t __strcspn_c2(__const char *__s, int __reject1, int __reject2) 1.3770 -{ 1.3771 - register size_t __result = 0; 1.3772 - while (__s[__result] != '\0' && __s[__result] != __reject1 && __s[__result] != __reject2) 1.3773 - ++__result; 1.3774 - return __result; 1.3775 -} 1.3776 -extern __inline __attribute__((__gnu_inline__)) size_t __strcspn_c3(__const char *__s, int __reject1, int __reject2, int __reject3); 1.3777 -extern __inline __attribute__((__gnu_inline__)) size_t __strcspn_c3(__const char *__s, int __reject1, int __reject2, int __reject3) 1.3778 -{ 1.3779 - register size_t __result = 0; 1.3780 - while (__s[__result] != '\0' && __s[__result] != __reject1 && __s[__result] != __reject2 && __s[__result] != __reject3) 1.3781 - ++__result; 1.3782 - return __result; 1.3783 -} 1.3784 -extern __inline __attribute__((__gnu_inline__)) size_t __strspn_c1(__const char *__s, int __accept); 1.3785 -extern __inline __attribute__((__gnu_inline__)) size_t __strspn_c1(__const char *__s, int __accept) 1.3786 -{ 1.3787 - register size_t __result = 0; 1.3788 - while (__s[__result] == __accept) 1.3789 - ++__result; 1.3790 - return __result; 1.3791 -} 1.3792 -extern __inline __attribute__((__gnu_inline__)) size_t __strspn_c2(__const char *__s, int __accept1, int __accept2); 1.3793 -extern __inline __attribute__((__gnu_inline__)) size_t __strspn_c2(__const char *__s, int __accept1, int __accept2) 1.3794 -{ 1.3795 - register size_t __result = 0; 1.3796 - while (__s[__result] == __accept1 || __s[__result] == __accept2) 1.3797 - ++__result; 1.3798 - return __result; 1.3799 -} 1.3800 -extern __inline __attribute__((__gnu_inline__)) size_t __strspn_c3(__const char *__s, int __accept1, int __accept2, int __accept3); 1.3801 -extern __inline __attribute__((__gnu_inline__)) size_t __strspn_c3(__const char *__s, int __accept1, int __accept2, int __accept3) 1.3802 -{ 1.3803 - register size_t __result = 0; 1.3804 - while (__s[__result] == __accept1 || __s[__result] == __accept2 || __s[__result] == __accept3) 1.3805 - ++__result; 1.3806 - return __result; 1.3807 -} 1.3808 -extern __inline __attribute__((__gnu_inline__)) char *__strpbrk_c2(__const char *__s, int __accept1, int __accept2); 1.3809 -extern __inline __attribute__((__gnu_inline__)) char *__strpbrk_c2(__const char *__s, int __accept1, int __accept2) 1.3810 -{ 1.3811 - while (*__s != '\0' && *__s != __accept1 && *__s != __accept2) 1.3812 - ++__s; 1.3813 - return *__s == '\0' ? ((void *) 0) : (char *) (size_t) __s; 1.3814 -} 1.3815 -extern __inline __attribute__((__gnu_inline__)) char *__strpbrk_c3(__const char *__s, int __accept1, int __accept2, int __accept3); 1.3816 -extern __inline __attribute__((__gnu_inline__)) char *__strpbrk_c3(__const char *__s, int __accept1, int __accept2, int __accept3) 1.3817 -{ 1.3818 - while (*__s != '\0' && *__s != __accept1 && *__s != __accept2 && *__s != __accept3) 1.3819 - ++__s; 1.3820 - return *__s == '\0' ? ((void *) 0) : (char *) (size_t) __s; 1.3821 -} 1.3822 -extern __inline __attribute__((__gnu_inline__)) char *__strtok_r_1c(char *__s, char __sep, char **__nextp); 1.3823 -extern __inline __attribute__((__gnu_inline__)) char *__strtok_r_1c(char *__s, char __sep, char **__nextp) 1.3824 -{ 1.3825 - char *__result; 1.3826 - if (__s == ((void *) 0)) 1.3827 - __s = *__nextp; 1.3828 - while (*__s == __sep) 1.3829 - ++__s; 1.3830 - __result = ((void *) 0); 1.3831 - if (*__s != '\0') 1.3832 - { 1.3833 - __result = __s++; 1.3834 - while (*__s != '\0') 1.3835 - if (*__s++ == __sep) 1.3836 + { 1.3837 + do 1.3838 + { 1.3839 { 1.3840 - __s[- 1] = '\0'; 1.3841 - break; 1.3842 + ((uint8_t *)dst)[0] = ((const uint8_t *)src)[1] << 8 | ((const uint8_t *)src)[0]; 1.3843 + ((uint8_t *)dst)[1] = (((const uint8_t *)src)[1] << 8 | ((const uint8_t *)src)[0]) >> 8; 1.3844 } 1.3845 - } 1.3846 - *__nextp = __s; 1.3847 - return __result; 1.3848 -} 1.3849 -extern char *__strsep_g(char **__stringp, __const char *__delim); 1.3850 -extern __inline __attribute__((__gnu_inline__)) char *__strsep_1c(char **__s, char __reject); 1.3851 -extern __inline __attribute__((__gnu_inline__)) char *__strsep_1c(char **__s, char __reject) 1.3852 -{ 1.3853 - register char *__retval = *__s; 1.3854 - if (__retval != ((void *) 0) && (*__s = (__extension__ (__builtin_constant_p(__reject) && !__builtin_constant_p(__retval) && (__reject) == '\0' ? (char *) __rawmemchr(__retval, __reject) : __builtin_strchr(__retval, __reject)))) != ((void *) 0)) 1.3855 - *(*__s)++ = '\0'; 1.3856 - return __retval; 1.3857 -} 1.3858 -extern __inline __attribute__((__gnu_inline__)) char *__strsep_2c(char **__s, char __reject1, char __reject2); 1.3859 -extern __inline __attribute__((__gnu_inline__)) char *__strsep_2c(char **__s, char __reject1, char __reject2) 1.3860 -{ 1.3861 - register char *__retval = *__s; 1.3862 - if (__retval != ((void *) 0)) 1.3863 - { 1.3864 - register char *__cp = __retval; 1.3865 - while (1) 1.3866 - { 1.3867 - if (*__cp == '\0') 1.3868 - { 1.3869 - __cp = ((void *) 0); 1.3870 - break; 1.3871 - } 1.3872 - if (*__cp == __reject1 || *__cp == __reject2) 1.3873 - { 1.3874 - *__cp++ = '\0'; 1.3875 - break; 1.3876 - } 1.3877 - ++__cp; 1.3878 - } 1.3879 - *__s = __cp; 1.3880 - } 1.3881 - return __retval; 1.3882 -} 1.3883 -extern __inline __attribute__((__gnu_inline__)) char *__strsep_3c(char **__s, char __reject1, char __reject2, char __reject3); 1.3884 -extern __inline __attribute__((__gnu_inline__)) char *__strsep_3c(char **__s, char __reject1, char __reject2, char __reject3) 1.3885 -{ 1.3886 - register char *__retval = *__s; 1.3887 - if (__retval != ((void *) 0)) 1.3888 - { 1.3889 - register char *__cp = __retval; 1.3890 - while (1) 1.3891 - { 1.3892 - if (*__cp == '\0') 1.3893 - { 1.3894 - __cp = ((void *) 0); 1.3895 - break; 1.3896 - } 1.3897 - if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3) 1.3898 - { 1.3899 - *__cp++ = '\0'; 1.3900 - break; 1.3901 - } 1.3902 - ++__cp; 1.3903 - } 1.3904 - *__s = __cp; 1.3905 - } 1.3906 - return __retval; 1.3907 -} 1.3908 -extern char *__strdup(__const char *__string) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)); 1.3909 -extern char *__strndup(__const char *__string, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)); 1.3910 -extern void __warn_memset_zero_len(void) __attribute__((__warning__("memset used with constant zero length parameter; this could be due to transposed parameters"))); 1.3911 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) void *__attribute__((__nothrow__, __leaf__)) memcpy(void *__restrict __dest, __const void *__restrict __src, size_t __len) 1.3912 -{ 1.3913 - return __builtin___memcpy_chk(__dest, __src, __len, __builtin_object_size(__dest, 0)); 1.3914 -} 1.3915 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) void *__attribute__((__nothrow__, __leaf__)) memmove(void *__dest, __const void *__src, size_t __len) 1.3916 -{ 1.3917 - return __builtin___memmove_chk(__dest, __src, __len, __builtin_object_size(__dest, 0)); 1.3918 -} 1.3919 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) void *__attribute__((__nothrow__, __leaf__)) memset(void *__dest, int __ch, size_t __len) 1.3920 -{ 1.3921 - if (__builtin_constant_p(__len) && __len == 0 && (!__builtin_constant_p(__ch) || __ch != 0)) 1.3922 - { 1.3923 - __warn_memset_zero_len(); 1.3924 - return __dest; 1.3925 - } 1.3926 - return __builtin___memset_chk(__dest, __ch, __len, __builtin_object_size(__dest, 0)); 1.3927 -} 1.3928 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) void __attribute__((__nothrow__, __leaf__)) bcopy(__const void *__src, void *__dest, size_t __len) 1.3929 -{ 1.3930 - (void) __builtin___memmove_chk(__dest, __src, __len, __builtin_object_size(__dest, 0)); 1.3931 -} 1.3932 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) void __attribute__((__nothrow__, __leaf__)) bzero(void *__dest, size_t __len) 1.3933 -{ 1.3934 - (void) __builtin___memset_chk(__dest, '\0', __len, __builtin_object_size(__dest, 0)); 1.3935 -} 1.3936 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) char *__attribute__((__nothrow__, __leaf__)) strcpy(char *__restrict __dest, __const char *__restrict __src) 1.3937 -{ 1.3938 - return __builtin___strcpy_chk(__dest, __src, __builtin_object_size(__dest, 2 > 1)); 1.3939 -} 1.3940 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) char *__attribute__((__nothrow__, __leaf__)) strncpy(char *__restrict __dest, __const char *__restrict __src, size_t __len) 1.3941 -{ 1.3942 - return __builtin___strncpy_chk(__dest, __src, __len, __builtin_object_size(__dest, 2 > 1)); 1.3943 -} 1.3944 -extern char *__stpncpy_chk(char *__dest, __const char *__src, size_t __n, size_t __destlen) __attribute__((__nothrow__, __leaf__)); 1.3945 -extern char *__stpncpy_alias(char *__dest, __const char *__src, size_t __n) __asm__ ("""stpncpy") __attribute__((__nothrow__, __leaf__)); 1.3946 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) char *__attribute__((__nothrow__, __leaf__)) stpncpy(char *__dest, __const char *__src, size_t __n) 1.3947 -{ 1.3948 - if (__builtin_object_size(__dest, 2 > 1) != (size_t) - 1 && (!__builtin_constant_p(__n) || __n <= __builtin_object_size(__dest, 2 > 1))) 1.3949 - return __stpncpy_chk(__dest, __src, __n, __builtin_object_size(__dest, 2 > 1)); 1.3950 - return __stpncpy_alias(__dest, __src, __n); 1.3951 -} 1.3952 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) char *__attribute__((__nothrow__, __leaf__)) strcat(char *__restrict __dest, __const char *__restrict __src) 1.3953 -{ 1.3954 - return __builtin___strcat_chk(__dest, __src, __builtin_object_size(__dest, 2 > 1)); 1.3955 -} 1.3956 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) char *__attribute__((__nothrow__, __leaf__)) strncat(char *__restrict __dest, __const char *__restrict __src, size_t __len) 1.3957 -{ 1.3958 - return __builtin___strncat_chk(__dest, __src, __len, __builtin_object_size(__dest, 2 > 1)); 1.3959 -} 1.3960 -extern const uint8_t ff_log2_tab[256]; 1.3961 -static inline __attribute__((const)) int av_log2_c(unsigned int v) 1.3962 -{ 1.3963 - int n = 0; 1.3964 - if (v & 0xffff0000) 1.3965 - { 1.3966 - v >>= 16; 1.3967 - n += 16; 1.3968 - } 1.3969 - if (v & 0xff00) 1.3970 - { 1.3971 - v >>= 8; 1.3972 - n += 8; 1.3973 - } 1.3974 - n += ff_log2_tab[v]; 1.3975 - return n; 1.3976 -} 1.3977 -static inline __attribute__((const)) int av_log2_16bit_c(unsigned int v) 1.3978 -{ 1.3979 - int n = 0; 1.3980 - if (v & 0xff00) 1.3981 - { 1.3982 - v >>= 8; 1.3983 - n += 8; 1.3984 - } 1.3985 - n += ff_log2_tab[v]; 1.3986 - return n; 1.3987 -} 1.3988 -static inline __attribute__((const)) int av_clip(int a, int amin, int amax) 1.3989 -{ 1.3990 - if (a < amin) 1.3991 - return amin; 1.3992 - else 1.3993 - if (a > amax) 1.3994 - return amax; 1.3995 - else 1.3996 - return a; 1.3997 -} 1.3998 -static inline __attribute__((const)) uint8_t av_clip_uint8(int a) 1.3999 -{ 1.4000 - if (a & (~0xFF)) 1.4001 - return (- a) >> 31; 1.4002 - else 1.4003 - return a; 1.4004 -} 1.4005 -static inline __attribute__((const)) uint16_t av_clip_uint16(int a) 1.4006 -{ 1.4007 - if (a & (~0xFFFF)) 1.4008 - return (- a) >> 31; 1.4009 - else 1.4010 - return a; 1.4011 -} 1.4012 -static inline __attribute__((const)) int16_t av_clip_int16(int a) 1.4013 -{ 1.4014 - if ((a + 0x8000) & ~0xFFFF) 1.4015 - return (a >> 31) ^ 0x7FFF; 1.4016 - else 1.4017 - return a; 1.4018 -} 1.4019 -static inline __attribute__((const)) int32_t av_clipl_int32(int64_t a) 1.4020 -{ 1.4021 - if ((a + 0x80000000u) & ~0xFFFFFFFFUL) 1.4022 - return (a >> 63) ^ 0x7FFFFFFF; 1.4023 - else 1.4024 - return a; 1.4025 -} 1.4026 -static inline __attribute__((const)) float av_clipf(float a, float amin, float amax) 1.4027 -{ 1.4028 - if (a < amin) 1.4029 - return amin; 1.4030 - else 1.4031 - if (a > amax) 1.4032 - return amax; 1.4033 - else 1.4034 - return a; 1.4035 -} 1.4036 -static inline __attribute__((const)) int av_ceil_log2(int x) 1.4037 -{ 1.4038 - return av_log2_c((x - 1) << 1); 1.4039 -} 1.4040 -typedef union 1.4041 -{ 1.4042 - uint64_t u64; 1.4043 - uint32_t u32[2]; 1.4044 - uint16_t u16[4]; 1.4045 - uint8_t u8[8]; 1.4046 - double f64; 1.4047 - float f32[2]; 1.4048 -} __attribute__((__may_alias__)) av_alias64; 1.4049 -typedef union 1.4050 -{ 1.4051 - uint32_t u32; 1.4052 - uint16_t u16[2]; 1.4053 - uint8_t u8[4]; 1.4054 - float f32; 1.4055 -} __attribute__((__may_alias__)) av_alias32; 1.4056 -typedef union 1.4057 -{ 1.4058 - uint16_t u16; 1.4059 - uint8_t u8[2]; 1.4060 -} __attribute__((__may_alias__)) av_alias16; 1.4061 -static __attribute__((always_inline)) inline void AV_COPY64(void *d, const void *s) 1.4062 -{ 1.4063 - __asm__ ("movq %1, %%mm0 \n\t""movq %%mm0, %0 \n\t": "=m" (*(uint64_t *) d): "m" (*(const uint64_t *) s): "mm0"); 1.4064 -} 1.4065 -static __attribute__((always_inline)) inline void AV_SWAP64(void *a, void *b) 1.4066 -{ 1.4067 - __asm__ ("movq %1, %%mm0 \n\t""movq %0, %%mm1 \n\t""movq %%mm0, %0 \n\t""movq %%mm1, %1 \n\t": "+m" (*(uint64_t *) a), "+m" (*(uint64_t *) b): : "mm0", "mm1"); 1.4068 -} 1.4069 -static __attribute__((always_inline)) inline void AV_ZERO64(void *d) 1.4070 -{ 1.4071 - __asm__ ("pxor %%mm0, %%mm0 \n\t""movq %%mm0, %0 \n\t": "=m" (*(uint64_t *) d): : "mm0"); 1.4072 -} 1.4073 -static __attribute__((always_inline)) inline void AV_COPY128(void *d, const void *s) 1.4074 -{ 1.4075 - struct v 1.4076 - { 1.4077 - uint64_t v[2]; 1.4078 - }; 1.4079 - __asm__ ("movaps %1, %%xmm0 \n\t""movaps %%xmm0, %0 \n\t": "=m" (*(struct v *) d): "m" (*(const struct v *) s): "xmm0"); 1.4080 -} 1.4081 -static __attribute__((always_inline)) inline void AV_ZERO128(void *d) 1.4082 -{ 1.4083 - struct v 1.4084 - { 1.4085 - uint64_t v[2]; 1.4086 - }; 1.4087 - __asm__ ("pxor %%xmm0, %%xmm0 \n\t""movdqa %%xmm0, %0 \n\t": "=m" (*(struct v *) d): : "xmm0"); 1.4088 -} 1.4089 -void ff_h264_idct8_add_c(uint8_t *dst, DCTELEM *block, int stride); 1.4090 -void ff_h264_idct_add_c(uint8_t *dst, DCTELEM *block, int stride); 1.4091 -void ff_h264_idct8_dc_add_c(uint8_t *dst, DCTELEM *block, int stride); 1.4092 -void ff_h264_idct_dc_add_c(uint8_t *dst, DCTELEM *block, int stride); 1.4093 -void ff_h264_lowres_idct_add_c(uint8_t *dst, int stride, DCTELEM *block); 1.4094 -void ff_h264_lowres_idct_put_c(uint8_t *dst, int stride, DCTELEM *block); 1.4095 -void ff_h264_idct_add16_c(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]); 1.4096 -void ff_h264_idct_add16intra_c(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]); 1.4097 -void ff_h264_idct8_add4_c(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]); 1.4098 -void ff_h264_idct_add8_c(uint8_t **dest, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]); 1.4099 -void h264_luma_dc_dequant_idct_c(DCTELEM *block, int qmul); 1.4100 -void chroma_dc_dequant_idct_c(DCTELEM *block, int qmul); 1.4101 -void ff_vector_fmul_window_c(float *dst, const float *src0, const float *src1, const float *win, float add_bias, int len); 1.4102 -void ff_float_to_int16_c(int16_t *dst, const float *src, long len); 1.4103 -void ff_float_to_int16_interleave_c(int16_t *dst, const float **src, long len, int channels); 1.4104 -extern const uint8_t ff_alternate_horizontal_scan[64]; 1.4105 -extern const uint8_t ff_alternate_vertical_scan[64]; 1.4106 -extern const uint8_t ff_zigzag_direct[64]; 1.4107 -extern const uint8_t ff_zigzag248_direct[64]; 1.4108 -extern uint32_t ff_squareTbl[512]; 1.4109 -extern uint8_t ff_cropTbl[256 + 2 * 1024]; 1.4110 -void ff_vp3_idct_c(DCTELEM *block); 1.4111 -void ff_vp3_idct_put_c(uint8_t *dest, int line_size, DCTELEM *block); 1.4112 -void ff_vp3_idct_add_c(uint8_t *dest, int line_size, DCTELEM *block); 1.4113 -void ff_vp3_idct_dc_add_c(uint8_t *dest, int line_size, const DCTELEM *block); 1.4114 -void ff_vp3_v_loop_filter_c(uint8_t *src, int stride, int *bounding_values); 1.4115 -void ff_vp3_h_loop_filter_c(uint8_t *src, int stride, int *bounding_values); 1.4116 -void ff_vp6_filter_diag4_c(uint8_t *dst, uint8_t *src, int stride, const int16_t *h_weights, const int16_t *v_weights); 1.4117 -void ff_bink_idct_c(DCTELEM *block); 1.4118 -void ff_bink_idct_add_c(uint8_t *dest, int linesize, DCTELEM *block); 1.4119 -void ff_bink_idct_put_c(uint8_t *dest, int linesize, DCTELEM *block); 1.4120 -void ff_put_cavs_qpel8_mc00_c(uint8_t *dst, uint8_t *src, int stride); 1.4121 -void ff_avg_cavs_qpel8_mc00_c(uint8_t *dst, uint8_t *src, int stride); 1.4122 -void ff_put_cavs_qpel16_mc00_c(uint8_t *dst, uint8_t *src, int stride); 1.4123 -void ff_avg_cavs_qpel16_mc00_c(uint8_t *dst, uint8_t *src, int stride); 1.4124 -void ff_put_vc1_mspel_mc00_c(uint8_t *dst, const uint8_t *src, int stride, int rnd); 1.4125 -void ff_avg_vc1_mspel_mc00_c(uint8_t *dst, const uint8_t *src, int stride, int rnd); 1.4126 -void ff_ea_idct_put_c(uint8_t *dest, int linesize, DCTELEM *block); 1.4127 -void ff_img_copy_plane(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height); 1.4128 -void ff_shrink22(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height); 1.4129 -void ff_shrink44(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height); 1.4130 -void ff_shrink88(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height); 1.4131 -void ff_gmc_c(uint8_t *dst, uint8_t *src, int stride, int h, int ox, int oy, int dxx, int dxy, int dyx, int dyy, int shift, int r, int width, int height); 1.4132 -typedef void (*op_pixels_func)(uint8_t *block, const uint8_t *pixels, int line_size, int h); 1.4133 -typedef void (*tpel_mc_func)(uint8_t *block, const uint8_t *pixels, int line_size, int w, int h); 1.4134 -typedef void (*qpel_mc_func)(uint8_t *dst, uint8_t *src, int stride); 1.4135 -typedef void (*h264_chroma_mc_func)(uint8_t *dst, uint8_t *src, int srcStride, int h, int x, int y); 1.4136 -typedef void (*op_fill_func)(uint8_t *block, uint8_t value, int line_size, int h); 1.4137 -void ff_put_qpel16_mc11_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4138 -void ff_put_no_rnd_qpel16_mc11_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4139 -void ff_avg_qpel16_mc11_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4140 -void ff_put_qpel16_mc31_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4141 -void ff_put_no_rnd_qpel16_mc31_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4142 -void ff_avg_qpel16_mc31_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4143 -void ff_put_qpel16_mc12_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4144 -void ff_put_no_rnd_qpel16_mc12_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4145 -void ff_avg_qpel16_mc12_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4146 -void ff_put_qpel16_mc32_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4147 -void ff_put_no_rnd_qpel16_mc32_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4148 -void ff_avg_qpel16_mc32_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4149 -void ff_put_qpel16_mc13_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4150 -void ff_put_no_rnd_qpel16_mc13_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4151 -void ff_avg_qpel16_mc13_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4152 -void ff_put_qpel16_mc33_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4153 -void ff_put_no_rnd_qpel16_mc33_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4154 -void ff_avg_qpel16_mc33_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4155 -void ff_put_qpel8_mc11_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4156 -void ff_put_no_rnd_qpel8_mc11_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4157 -void ff_avg_qpel8_mc11_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4158 -void ff_put_qpel8_mc31_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4159 -void ff_put_no_rnd_qpel8_mc31_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4160 -void ff_avg_qpel8_mc31_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4161 -void ff_put_qpel8_mc12_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4162 -void ff_put_no_rnd_qpel8_mc12_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4163 -void ff_avg_qpel8_mc12_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4164 -void ff_put_qpel8_mc32_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4165 -void ff_put_no_rnd_qpel8_mc32_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4166 -void ff_avg_qpel8_mc32_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4167 -void ff_put_qpel8_mc13_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4168 -void ff_put_no_rnd_qpel8_mc13_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4169 -void ff_avg_qpel8_mc13_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4170 -void ff_put_qpel8_mc33_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4171 -void ff_put_no_rnd_qpel8_mc33_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4172 -void ff_avg_qpel8_mc33_old_c(uint8_t *dst, uint8_t *src, int stride); 1.4173 -typedef int (*me_cmp_func)(void *s, uint8_t *blk1, uint8_t *blk2, int line_size, int h); 1.4174 -typedef struct ScanTable 1.4175 -{ 1.4176 - const uint8_t *scantable; 1.4177 - uint8_t permutated[64]; 1.4178 - uint8_t raster_end[64]; 1.4179 -} ScanTable; 1.4180 -void ff_init_scantable(uint8_t *, ScanTable *st, const uint8_t *src_scantable); 1.4181 -void ff_emulated_edge_mc(uint8_t *buf, uint8_t *src, int linesize, int block_w, int block_h, int src_x, int src_y, int w, int h); 1.4182 -typedef struct DSPContext 1.4183 -{ 1.4184 - void (*get_pixels)(DCTELEM *block, const uint8_t *pixels, int line_size); 1.4185 - void (*diff_pixels)(DCTELEM *block, const uint8_t *s1, const uint8_t *s2, int stride); 1.4186 - void (*put_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size); 1.4187 - void (*put_signed_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size); 1.4188 - void (*put_pixels_nonclamped)(const DCTELEM *block, uint8_t *pixels, int line_size); 1.4189 - void (*add_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size); 1.4190 - void (*add_pixels8)(uint8_t *pixels, DCTELEM *block, int line_size); 1.4191 - void (*add_pixels4)(uint8_t *pixels, DCTELEM *block, int line_size); 1.4192 - void (*clear_block)(DCTELEM *block); 1.4193 - void (*clear_blocks)(DCTELEM *blocks); 1.4194 - op_pixels_func put_pixels_tab[4][4]; 1.4195 - op_pixels_func avg_pixels_tab[4][4]; 1.4196 - op_pixels_func put_no_rnd_pixels_tab[4][4]; 1.4197 - op_pixels_func avg_no_rnd_pixels_tab[4][4]; 1.4198 - void (*put_no_rnd_pixels_l2[2])(uint8_t *block, const uint8_t *a, const uint8_t *b, int line_size, int h); 1.4199 - qpel_mc_func put_qpel_pixels_tab[2][16]; 1.4200 - qpel_mc_func avg_qpel_pixels_tab[2][16]; 1.4201 - qpel_mc_func put_no_rnd_qpel_pixels_tab[2][16]; 1.4202 - qpel_mc_func avg_no_rnd_qpel_pixels_tab[2][16]; 1.4203 - qpel_mc_func put_mspel_pixels_tab[8]; 1.4204 - h264_chroma_mc_func put_h264_chroma_pixels_tab[3]; 1.4205 - h264_chroma_mc_func avg_h264_chroma_pixels_tab[3]; 1.4206 - h264_chroma_mc_func put_no_rnd_vc1_chroma_pixels_tab[3]; 1.4207 - h264_chroma_mc_func avg_no_rnd_vc1_chroma_pixels_tab[3]; 1.4208 - qpel_mc_func put_h264_qpel_pixels_tab[4][16]; 1.4209 - qpel_mc_func avg_h264_qpel_pixels_tab[4][16]; 1.4210 - qpel_mc_func put_2tap_qpel_pixels_tab[4][16]; 1.4211 - qpel_mc_func avg_2tap_qpel_pixels_tab[4][16]; 1.4212 - void (*fdct)(DCTELEM *block); 1.4213 - void (*fdct248)(DCTELEM *block); 1.4214 - void (*idct)(DCTELEM *block); 1.4215 - void (*idct_put)(uint8_t *dest, int line_size, DCTELEM *block); 1.4216 - void (*idct_add)(uint8_t *dest, int line_size, DCTELEM *block); 1.4217 - void (*draw_edges)(uint8_t *buf, int wrap, int width, int height, int w); 1.4218 - void (*prefetch)(void *mem, int stride, int h); 1.4219 -} DSPContext; 1.4220 -void dsputil_static_init(void); 1.4221 -void dsputil_init(DSPContext *p); 1.4222 -int ff_check_alignment(void); 1.4223 -void ff_block_permute(DCTELEM *block, uint8_t *permutation, const uint8_t *scantable, int last); 1.4224 -void ff_set_cmp(DSPContext *c, me_cmp_func *cmp, int type); 1.4225 -static inline uint32_t rnd_avg32(uint32_t a, uint32_t b) 1.4226 -{ 1.4227 - return (a | b) - (((a ^ b) & ~((0x01) * 0x01010101UL)) >> 1); 1.4228 -} 1.4229 -static inline uint32_t no_rnd_avg32(uint32_t a, uint32_t b) 1.4230 -{ 1.4231 - return (a & b) + (((a ^ b) & ~((0x01) * 0x01010101UL)) >> 1); 1.4232 -} 1.4233 -int mm_support(void); 1.4234 -extern int mm_flags; 1.4235 -void dsputil_init_arm(DSPContext *c); 1.4236 -void dsputil_init_mmx(DSPContext *c); 1.4237 -void dsputil_init_ppc(DSPContext *c); 1.4238 -void ff_dsputil_init_dwt(DSPContext *c); 1.4239 -static inline void emms(void) 1.4240 -{ 1.4241 - __asm__ volatile("emms;": : : "memory"); 1.4242 -} 1.4243 -static inline void copy_block2(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h) 1.4244 -{ 1.4245 - int i; 1.4246 - for (i = 0; 1.4247 - i < h; 1.4248 - i++) 1.4249 - { 1.4250 - do 1.4251 - { 1.4252 - ((uint8_t *) (dst))[0] = (((((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])); 1.4253 - ((uint8_t *) (dst))[1] = (((((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 8; 1.4254 - } 1.4255 + } 1.4256 while (0); 1.4257 dst += dstStride; 1.4258 src += srcStride; 1.4259 + } 1.4260 } 1.4261 } 1.4262 -static inline void copy_block4(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h) 1.4263 +static __inline void copy_block4(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h) 1.4264 { 1.4265 - int i; 1.4266 - for (i = 0; 1.4267 - i < h; 1.4268 - i++) 1.4269 + int i; 1.4270 + for (i = 0; i < h; i++) 1.4271 { 1.4272 + { 1.4273 do 1.4274 - { 1.4275 - ((uint8_t *) (dst))[0] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])); 1.4276 - ((uint8_t *) (dst))[1] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 8; 1.4277 - ((uint8_t *) (dst))[2] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 16; 1.4278 - ((uint8_t *) (dst))[3] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 24; 1.4279 - } 1.4280 + { 1.4281 + { 1.4282 + ((uint8_t *)dst)[0] = ((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]; 1.4283 + ((uint8_t *)dst)[1] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 8; 1.4284 + ((uint8_t *)dst)[2] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 16; 1.4285 + ((uint8_t *)dst)[3] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 24; 1.4286 + } 1.4287 + } 1.4288 while (0); 1.4289 dst += dstStride; 1.4290 src += srcStride; 1.4291 + } 1.4292 } 1.4293 } 1.4294 -static inline void copy_block8(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h) 1.4295 +static __inline void copy_block8(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h) 1.4296 { 1.4297 - int i; 1.4298 - for (i = 0; 1.4299 - i < h; 1.4300 - i++) 1.4301 + int i; 1.4302 + for (i = 0; i < h; i++) 1.4303 { 1.4304 + { 1.4305 do 1.4306 - { 1.4307 - ((uint8_t *) (dst))[0] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])); 1.4308 - ((uint8_t *) (dst))[1] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 8; 1.4309 - ((uint8_t *) (dst))[2] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 16; 1.4310 - ((uint8_t *) (dst))[3] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 24; 1.4311 - } 1.4312 + { 1.4313 + { 1.4314 + ((uint8_t *)dst)[0] = ((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]; 1.4315 + ((uint8_t *)dst)[1] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 8; 1.4316 + ((uint8_t *)dst)[2] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 16; 1.4317 + ((uint8_t *)dst)[3] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 24; 1.4318 + } 1.4319 + } 1.4320 while (0); 1.4321 do 1.4322 - { 1.4323 - ((uint8_t *) (dst + 4))[0] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])); 1.4324 - ((uint8_t *) (dst + 4))[1] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 8; 1.4325 - ((uint8_t *) (dst + 4))[2] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 16; 1.4326 - ((uint8_t *) (dst + 4))[3] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 24; 1.4327 - } 1.4328 + { 1.4329 + { 1.4330 + ((uint8_t *)(dst + 4))[0] = ((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]; 1.4331 + ((uint8_t *)(dst + 4))[1] = (((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]) >> 8; 1.4332 + ((uint8_t *)(dst + 4))[2] = (((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]) >> 16; 1.4333 + ((uint8_t *)(dst + 4))[3] = (((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]) >> 24; 1.4334 + } 1.4335 + } 1.4336 while (0); 1.4337 dst += dstStride; 1.4338 src += srcStride; 1.4339 + } 1.4340 } 1.4341 } 1.4342 -static inline void copy_block9(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h) 1.4343 +static __inline void copy_block9(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h) 1.4344 { 1.4345 - int i; 1.4346 - for (i = 0; 1.4347 - i < h; 1.4348 - i++) 1.4349 + int i; 1.4350 + for (i = 0; i < h; i++) 1.4351 { 1.4352 + { 1.4353 do 1.4354 - { 1.4355 - ((uint8_t *) (dst))[0] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])); 1.4356 - ((uint8_t *) (dst))[1] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 8; 1.4357 - ((uint8_t *) (dst))[2] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 16; 1.4358 - ((uint8_t *) (dst))[3] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 24; 1.4359 - } 1.4360 + { 1.4361 + { 1.4362 + ((uint8_t *)dst)[0] = ((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]; 1.4363 + ((uint8_t *)dst)[1] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 8; 1.4364 + ((uint8_t *)dst)[2] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 16; 1.4365 + ((uint8_t *)dst)[3] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 24; 1.4366 + } 1.4367 + } 1.4368 while (0); 1.4369 do 1.4370 - { 1.4371 - ((uint8_t *) (dst + 4))[0] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])); 1.4372 - ((uint8_t *) (dst + 4))[1] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 8; 1.4373 - ((uint8_t *) (dst + 4))[2] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 16; 1.4374 - ((uint8_t *) (dst + 4))[3] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 24; 1.4375 - } 1.4376 + { 1.4377 + { 1.4378 + ((uint8_t *)(dst + 4))[0] = ((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]; 1.4379 + ((uint8_t *)(dst + 4))[1] = (((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]) >> 8; 1.4380 + ((uint8_t *)(dst + 4))[2] = (((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]) >> 16; 1.4381 + ((uint8_t *)(dst + 4))[3] = (((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]) >> 24; 1.4382 + } 1.4383 + } 1.4384 while (0); 1.4385 dst[8] = src[8]; 1.4386 dst += dstStride; 1.4387 src += srcStride; 1.4388 + } 1.4389 } 1.4390 } 1.4391 -static inline void copy_block16(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h) 1.4392 +static __inline void copy_block16(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h) 1.4393 { 1.4394 - int i; 1.4395 - for (i = 0; 1.4396 - i < h; 1.4397 - i++) 1.4398 + int i; 1.4399 + for (i = 0; i < h; i++) 1.4400 { 1.4401 + { 1.4402 do 1.4403 - { 1.4404 - ((uint8_t *) (dst))[0] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])); 1.4405 - ((uint8_t *) (dst))[1] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 8; 1.4406 - ((uint8_t *) (dst))[2] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 16; 1.4407 - ((uint8_t *) (dst))[3] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 24; 1.4408 - } 1.4409 + { 1.4410 + { 1.4411 + ((uint8_t *)dst)[0] = ((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]; 1.4412 + ((uint8_t *)dst)[1] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 8; 1.4413 + ((uint8_t *)dst)[2] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 16; 1.4414 + ((uint8_t *)dst)[3] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 24; 1.4415 + } 1.4416 + } 1.4417 while (0); 1.4418 do 1.4419 - { 1.4420 - ((uint8_t *) (dst + 4))[0] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])); 1.4421 - ((uint8_t *) (dst + 4))[1] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 8; 1.4422 - ((uint8_t *) (dst + 4))[2] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 16; 1.4423 - ((uint8_t *) (dst + 4))[3] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 24; 1.4424 - } 1.4425 + { 1.4426 + { 1.4427 + ((uint8_t *)(dst + 4))[0] = ((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]; 1.4428 + ((uint8_t *)(dst + 4))[1] = (((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]) >> 8; 1.4429 + ((uint8_t *)(dst + 4))[2] = (((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]) >> 16; 1.4430 + ((uint8_t *)(dst + 4))[3] = (((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]) >> 24; 1.4431 + } 1.4432 + } 1.4433 while (0); 1.4434 do 1.4435 - { 1.4436 - ((uint8_t *) (dst + 8))[0] = (((((const uint8_t *) (src + 8))[3] << 24) | (((const uint8_t *) (src + 8))[2] << 16) | (((const uint8_t *) (src + 8))[1] << 8) | ((const uint8_t *) (src + 8))[0])); 1.4437 - ((uint8_t *) (dst + 8))[1] = (((((const uint8_t *) (src + 8))[3] << 24) | (((const uint8_t *) (src + 8))[2] << 16) | (((const uint8_t *) (src + 8))[1] << 8) | ((const uint8_t *) (src + 8))[0])) >> 8; 1.4438 - ((uint8_t *) (dst + 8))[2] = (((((const uint8_t *) (src + 8))[3] << 24) | (((const uint8_t *) (src + 8))[2] << 16) | (((const uint8_t *) (src + 8))[1] << 8) | ((const uint8_t *) (src + 8))[0])) >> 16; 1.4439 - ((uint8_t *) (dst + 8))[3] = (((((const uint8_t *) (src + 8))[3] << 24) | (((const uint8_t *) (src + 8))[2] << 16) | (((const uint8_t *) (src + 8))[1] << 8) | ((const uint8_t *) (src + 8))[0])) >> 24; 1.4440 - } 1.4441 + { 1.4442 + { 1.4443 + ((uint8_t *)(dst + 8))[0] = ((((const uint8_t *)(src + 8))[3] << 24 | ((const uint8_t *)(src + 8))[2] << 16) | ((const uint8_t *)(src + 8))[1] << 8) | ((const uint8_t *)(src + 8))[0]; 1.4444 + ((uint8_t *)(dst + 8))[1] = (((((const uint8_t *)(src + 8))[3] << 24 | ((const uint8_t *)(src + 8))[2] << 16) | ((const uint8_t *)(src + 8))[1] << 8) | ((const uint8_t *)(src + 8))[0]) >> 8; 1.4445 + ((uint8_t *)(dst + 8))[2] = (((((const uint8_t *)(src + 8))[3] << 24 | ((const uint8_t *)(src + 8))[2] << 16) | ((const uint8_t *)(src + 8))[1] << 8) | ((const uint8_t *)(src + 8))[0]) >> 16; 1.4446 + ((uint8_t *)(dst + 8))[3] = (((((const uint8_t *)(src + 8))[3] << 24 | ((const uint8_t *)(src + 8))[2] << 16) | ((const uint8_t *)(src + 8))[1] << 8) | ((const uint8_t *)(src + 8))[0]) >> 24; 1.4447 + } 1.4448 + } 1.4449 while (0); 1.4450 do 1.4451 - { 1.4452 - ((uint8_t *) (dst + 12))[0] = (((((const uint8_t *) (src + 12))[3] << 24) | (((const uint8_t *) (src + 12))[2] << 16) | (((const uint8_t *) (src + 12))[1] << 8) | ((const uint8_t *) (src + 12))[0])); 1.4453 - ((uint8_t *) (dst + 12))[1] = (((((const uint8_t *) (src + 12))[3] << 24) | (((const uint8_t *) (src + 12))[2] << 16) | (((const uint8_t *) (src + 12))[1] << 8) | ((const uint8_t *) (src + 12))[0])) >> 8; 1.4454 - ((uint8_t *) (dst + 12))[2] = (((((const uint8_t *) (src + 12))[3] << 24) | (((const uint8_t *) (src + 12))[2] << 16) | (((const uint8_t *) (src + 12))[1] << 8) | ((const uint8_t *) (src + 12))[0])) >> 16; 1.4455 - ((uint8_t *) (dst + 12))[3] = (((((const uint8_t *) (src + 12))[3] << 24) | (((const uint8_t *) (src + 12))[2] << 16) | (((const uint8_t *) (src + 12))[1] << 8) | ((const uint8_t *) (src + 12))[0])) >> 24; 1.4456 - } 1.4457 + { 1.4458 + { 1.4459 + ((uint8_t *)(dst + 12))[0] = ((((const uint8_t *)(src + 12))[3] << 24 | ((const uint8_t *)(src + 12))[2] << 16) | ((const uint8_t *)(src + 12))[1] << 8) | ((const uint8_t *)(src + 12))[0]; 1.4460 + ((uint8_t *)(dst + 12))[1] = (((((const uint8_t *)(src + 12))[3] << 24 | ((const uint8_t *)(src + 12))[2] << 16) | ((const uint8_t *)(src + 12))[1] << 8) | ((const uint8_t *)(src + 12))[0]) >> 8; 1.4461 + ((uint8_t *)(dst + 12))[2] = (((((const uint8_t *)(src + 12))[3] << 24 | ((const uint8_t *)(src + 12))[2] << 16) | ((const uint8_t *)(src + 12))[1] << 8) | ((const uint8_t *)(src + 12))[0]) >> 16; 1.4462 + ((uint8_t *)(dst + 12))[3] = (((((const uint8_t *)(src + 12))[3] << 24 | ((const uint8_t *)(src + 12))[2] << 16) | ((const uint8_t *)(src + 12))[1] << 8) | ((const uint8_t *)(src + 12))[0]) >> 24; 1.4463 + } 1.4464 + } 1.4465 while (0); 1.4466 dst += dstStride; 1.4467 src += srcStride; 1.4468 + } 1.4469 } 1.4470 } 1.4471 -static inline void copy_block17(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h) 1.4472 +static __inline void copy_block17(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h) 1.4473 { 1.4474 - int i; 1.4475 - for (i = 0; 1.4476 - i < h; 1.4477 - i++) 1.4478 + int i; 1.4479 + for (i = 0; i < h; i++) 1.4480 { 1.4481 + { 1.4482 do 1.4483 - { 1.4484 - ((uint8_t *) (dst))[0] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])); 1.4485 - ((uint8_t *) (dst))[1] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 8; 1.4486 - ((uint8_t *) (dst))[2] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 16; 1.4487 - ((uint8_t *) (dst))[3] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 24; 1.4488 - } 1.4489 + { 1.4490 + { 1.4491 + ((uint8_t *)dst)[0] = ((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]; 1.4492 + ((uint8_t *)dst)[1] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 8; 1.4493 + ((uint8_t *)dst)[2] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 16; 1.4494 + ((uint8_t *)dst)[3] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 24; 1.4495 + } 1.4496 + } 1.4497 while (0); 1.4498 do 1.4499 - { 1.4500 - ((uint8_t *) (dst + 4))[0] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])); 1.4501 - ((uint8_t *) (dst + 4))[1] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 8; 1.4502 - ((uint8_t *) (dst + 4))[2] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 16; 1.4503 - ((uint8_t *) (dst + 4))[3] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 24; 1.4504 - } 1.4505 + { 1.4506 + { 1.4507 + ((uint8_t *)(dst + 4))[0] = ((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]; 1.4508 + ((uint8_t *)(dst + 4))[1] = (((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]) >> 8; 1.4509 + ((uint8_t *)(dst + 4))[2] = (((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]) >> 16; 1.4510 + ((uint8_t *)(dst + 4))[3] = (((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]) >> 24; 1.4511 + } 1.4512 + } 1.4513 while (0); 1.4514 do 1.4515 - { 1.4516 - ((uint8_t *) (dst + 8))[0] = (((((const uint8_t *) (src + 8))[3] << 24) | (((const uint8_t *) (src + 8))[2] << 16) | (((const uint8_t *) (src + 8))[1] << 8) | ((const uint8_t *) (src + 8))[0])); 1.4517 - ((uint8_t *) (dst + 8))[1] = (((((const uint8_t *) (src + 8))[3] << 24) | (((const uint8_t *) (src + 8))[2] << 16) | (((const uint8_t *) (src + 8))[1] << 8) | ((const uint8_t *) (src + 8))[0])) >> 8; 1.4518 - ((uint8_t *) (dst + 8))[2] = (((((const uint8_t *) (src + 8))[3] << 24) | (((const uint8_t *) (src + 8))[2] << 16) | (((const uint8_t *) (src + 8))[1] << 8) | ((const uint8_t *) (src + 8))[0])) >> 16; 1.4519 - ((uint8_t *) (dst + 8))[3] = (((((const uint8_t *) (src + 8))[3] << 24) | (((const uint8_t *) (src + 8))[2] << 16) | (((const uint8_t *) (src + 8))[1] << 8) | ((const uint8_t *) (src + 8))[0])) >> 24; 1.4520 - } 1.4521 + { 1.4522 + { 1.4523 + ((uint8_t *)(dst + 8))[0] = ((((const uint8_t *)(src + 8))[3] << 24 | ((const uint8_t *)(src + 8))[2] << 16) | ((const uint8_t *)(src + 8))[1] << 8) | ((const uint8_t *)(src + 8))[0]; 1.4524 + ((uint8_t *)(dst + 8))[1] = (((((const uint8_t *)(src + 8))[3] << 24 | ((const uint8_t *)(src + 8))[2] << 16) | ((const uint8_t *)(src + 8))[1] << 8) | ((const uint8_t *)(src + 8))[0]) >> 8; 1.4525 + ((uint8_t *)(dst + 8))[2] = (((((const uint8_t *)(src + 8))[3] << 24 | ((const uint8_t *)(src + 8))[2] << 16) | ((const uint8_t *)(src + 8))[1] << 8) | ((const uint8_t *)(src + 8))[0]) >> 16; 1.4526 + ((uint8_t *)(dst + 8))[3] = (((((const uint8_t *)(src + 8))[3] << 24 | ((const uint8_t *)(src + 8))[2] << 16) | ((const uint8_t *)(src + 8))[1] << 8) | ((const uint8_t *)(src + 8))[0]) >> 24; 1.4527 + } 1.4528 + } 1.4529 while (0); 1.4530 do 1.4531 - { 1.4532 - ((uint8_t *) (dst + 12))[0] = (((((const uint8_t *) (src + 12))[3] << 24) | (((const uint8_t *) (src + 12))[2] << 16) | (((const uint8_t *) (src + 12))[1] << 8) | ((const uint8_t *) (src + 12))[0])); 1.4533 - ((uint8_t *) (dst + 12))[1] = (((((const uint8_t *) (src + 12))[3] << 24) | (((const uint8_t *) (src + 12))[2] << 16) | (((const uint8_t *) (src + 12))[1] << 8) | ((const uint8_t *) (src + 12))[0])) >> 8; 1.4534 - ((uint8_t *) (dst + 12))[2] = (((((const uint8_t *) (src + 12))[3] << 24) | (((const uint8_t *) (src + 12))[2] << 16) | (((const uint8_t *) (src + 12))[1] << 8) | ((const uint8_t *) (src + 12))[0])) >> 16; 1.4535 - ((uint8_t *) (dst + 12))[3] = (((((const uint8_t *) (src + 12))[3] << 24) | (((const uint8_t *) (src + 12))[2] << 16) | (((const uint8_t *) (src + 12))[1] << 8) | ((const uint8_t *) (src + 12))[0])) >> 24; 1.4536 - } 1.4537 + { 1.4538 + { 1.4539 + ((uint8_t *)(dst + 12))[0] = ((((const uint8_t *)(src + 12))[3] << 24 | ((const uint8_t *)(src + 12))[2] << 16) | ((const uint8_t *)(src + 12))[1] << 8) | ((const uint8_t *)(src + 12))[0]; 1.4540 + ((uint8_t *)(dst + 12))[1] = (((((const uint8_t *)(src + 12))[3] << 24 | ((const uint8_t *)(src + 12))[2] << 16) | ((const uint8_t *)(src + 12))[1] << 8) | ((const uint8_t *)(src + 12))[0]) >> 8; 1.4541 + ((uint8_t *)(dst + 12))[2] = (((((const uint8_t *)(src + 12))[3] << 24 | ((const uint8_t *)(src + 12))[2] << 16) | ((const uint8_t *)(src + 12))[1] << 8) | ((const uint8_t *)(src + 12))[0]) >> 16; 1.4542 + ((uint8_t *)(dst + 12))[3] = (((((const uint8_t *)(src + 12))[3] << 24 | ((const uint8_t *)(src + 12))[2] << 16) | ((const uint8_t *)(src + 12))[1] << 8) | ((const uint8_t *)(src + 12))[0]) >> 24; 1.4543 + } 1.4544 + } 1.4545 while (0); 1.4546 dst[16] = src[16]; 1.4547 dst += dstStride; 1.4548 src += srcStride; 1.4549 + } 1.4550 } 1.4551 } 1.4552 -typedef void (*h264_weight_func)(uint8_t *block, int stride, int log2_denom, int weight, int offset); 1.4553 -typedef void (*h264_biweight_func)(uint8_t *dst, uint8_t *src, int stride, int log2_denom, int weightd, int weights, int offset); 1.4554 -typedef struct H264DSPContext 1.4555 +static __inline uint64_t read_time(void) 1.4556 { 1.4557 - h264_weight_func weight_h264_pixels_tab[10]; 1.4558 - h264_biweight_func biweight_h264_pixels_tab[10]; 1.4559 - void (*h264_v_loop_filter_luma)(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0); 1.4560 - void (*h264_h_loop_filter_luma)(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0); 1.4561 - void (*h264_v_loop_filter_luma_intra)(uint8_t *pix, int stride, int alpha, int beta); 1.4562 - void (*h264_h_loop_filter_luma_intra)(uint8_t *pix, int stride, int alpha, int beta); 1.4563 - void (*h264_v_loop_filter_chroma)(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0); 1.4564 - void (*h264_h_loop_filter_chroma)(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0); 1.4565 - void (*h264_v_loop_filter_chroma_intra)(uint8_t *pix, int stride, int alpha, int beta); 1.4566 - void (*h264_h_loop_filter_chroma_intra)(uint8_t *pix, int stride, int alpha, int beta); 1.4567 - void (*h264_loop_filter_strength)(int16_t bS[2][4][4], uint8_t nnz[40], int8_t ref[2][40], int16_t mv[2][40][2], int bidir, int edges, int step, int mask_mv0, int mask_mv1, int field); 1.4568 - void (*h264_idct_add)(uint8_t *dst, DCTELEM *block, int stride); 1.4569 - void (*h264_idct8_add)(uint8_t *dst, DCTELEM *block, int stride); 1.4570 - void (*h264_idct_dc_add)(uint8_t *dst, DCTELEM *block, int stride); 1.4571 - void (*h264_idct8_dc_add)(uint8_t *dst, DCTELEM *block, int stride); 1.4572 - void (*h264_dct)(DCTELEM block[4][4]); 1.4573 - void (*h264_idct_add16)(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]); 1.4574 - void (*h264_idct8_add4)(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]); 1.4575 - void (*h264_idct_add8)(uint8_t **dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]); 1.4576 - void (*h264_idct_add16intra)(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]); 1.4577 - qpel_mc_func (*qpel_put)[16]; 1.4578 - qpel_mc_func (*qpel_avg)[16]; 1.4579 -} H264DSPContext; 1.4580 -void ff_h264dsp_init(H264DSPContext *c); 1.4581 -void ff_h264dsp_init_arm(H264DSPContext *c); 1.4582 -void ff_h264dsp_init_ppc(H264DSPContext *c); 1.4583 -void ff_h264dsp_init_x86(H264DSPContext *c); 1.4584 -typedef struct H264PredContext 1.4585 + uint32_t a; 1.4586 + uint32_t d; 1.4587 + __asm__ volatile("rdtsc" : "=a"(a), "=d"(d) : ); 1.4588 + return ((uint64_t)d << 32) + a; 1.4589 +} 1.4590 +typedef signed char int8_t; 1.4591 +static __inline int32_t NEG_SSR32(int32_t a, int8_t s) 1.4592 { 1.4593 - void (*pred4x4[9 + 3 + 3])(uint8_t *src, uint8_t *topright, int stride); 1.4594 - void (*pred8x8l[9 + 3])(uint8_t *src, int topleft, int topright, int stride); 1.4595 - void (*pred8x8[4 + 3 + 4])(uint8_t *src, int stride); 1.4596 - void (*pred16x16[4 + 3])(uint8_t *src, int stride); 1.4597 - void (*pred4x4_add[2])(uint8_t *pix, const DCTELEM *block, int stride); 1.4598 - void (*pred8x8l_add[2])(uint8_t *pix, const DCTELEM *block, int stride); 1.4599 - void (*pred8x8_add[3])(uint8_t *pix, const int *block_offset, const DCTELEM *block, int stride); 1.4600 - void (*pred16x16_add[3])(uint8_t *pix, const int *block_offset, const DCTELEM *block, int stride); 1.4601 -} H264PredContext; 1.4602 -void ff_h264_pred_init(H264PredContext *h); 1.4603 -void ff_h264_pred_init_arm(H264PredContext *h); 1.4604 -typedef struct 1.4605 + __asm__ ("sarl %1, %0\n\t" : "+r"(a) : "ic"((uint8_t) -s)); 1.4606 + return a; 1.4607 +} 1.4608 +static __inline uint32_t NEG_USR32(uint32_t a, int8_t s) 1.4609 { 1.4610 - const char *class_name; 1.4611 - const char *(*item_name)(void *ctx); 1.4612 - const struct AVOption *option; 1.4613 - int version; 1.4614 -} AVClass; 1.4615 -void av_log(int level, const char *fmt, ...); 1.4616 -void av_vlog(int level, const char *fmt, va_list); 1.4617 -int av_log_get_level(void); 1.4618 -void av_log_set_level(int); 1.4619 -void av_log_set_callback(void (*)(int, const char *, va_list)); 1.4620 -void av_log_default_callback(int level, const char *fmt, va_list vl); 1.4621 -static inline uint64_t read_time(void) 1.4622 + __asm__ ("shrl %1, %0\n\t" : "+r"(a) : "ic"((uint8_t) -s)); 1.4623 + return a; 1.4624 +} 1.4625 +static __inline __attribute__((always_inline)) int MULH(int a, int b) 1.4626 { 1.4627 - uint32_t a, d; 1.4628 - __asm__ volatile("rdtsc": "=a" (a), "=d" (d): ); 1.4629 - return ((uint64_t) d << 32) + a; 1.4630 + return (int64_t)a * (int64_t)b >> 32; 1.4631 } 1.4632 -static inline int32_t NEG_SSR32(int32_t a, int8_t s) 1.4633 +static __inline __attribute__((always_inline)) unsigned int UMULH(unsigned int a, unsigned int b) 1.4634 { 1.4635 - __asm__ ("sarl %1, %0\n\t": "+r" (a): "ic" ((uint8_t) (- s))); 1.4636 - return a; 1.4637 + return (uint64_t)a * (uint64_t)b >> 32; 1.4638 } 1.4639 -static inline uint32_t NEG_USR32(uint32_t a, int8_t s) 1.4640 +static __inline __attribute__((const)) int mid_pred(int a, int b, int c) 1.4641 { 1.4642 - __asm__ ("shrl %1, %0\n\t": "+r" (a): "ic" ((uint8_t) (- s))); 1.4643 - return a; 1.4644 + if (a > b) 1.4645 + { 1.4646 + { 1.4647 + if (c > b) 1.4648 + { 1.4649 + { 1.4650 + if (c > a) 1.4651 + { 1.4652 + b = a; 1.4653 + } 1.4654 + else 1.4655 + { 1.4656 + b = c; 1.4657 + } 1.4658 + } 1.4659 + } 1.4660 + } 1.4661 + } 1.4662 + else 1.4663 + { 1.4664 + { 1.4665 + if (b > c) 1.4666 + { 1.4667 + { 1.4668 + if (c > a) 1.4669 + { 1.4670 + b = c; 1.4671 + } 1.4672 + else 1.4673 + { 1.4674 + b = a; 1.4675 + } 1.4676 + } 1.4677 + } 1.4678 + } 1.4679 + } 1.4680 + return b; 1.4681 } 1.4682 -static __attribute__((always_inline)) inline int MULH(int a, int b) 1.4683 +static __inline __attribute__((const)) int sign_extend(int val, unsigned int bits) 1.4684 { 1.4685 - return ((int64_t) (a) * (int64_t) (b)) >> 32; 1.4686 + return val << (8 * sizeof(int) - bits) >> (8 * sizeof(int) - bits); 1.4687 } 1.4688 -static __attribute__((always_inline)) inline unsigned UMULH(unsigned a, unsigned b) 1.4689 +static __inline __attribute__((const)) unsigned int zero_extend(unsigned int val, unsigned int bits) 1.4690 { 1.4691 - return ((uint64_t) (a) * (uint64_t) (b)) >> 32; 1.4692 + return val << (8 * sizeof(int) - bits) >> (8 * sizeof(int) - bits); 1.4693 } 1.4694 -static inline __attribute__((const)) int mid_pred(int a, int b, int c) 1.4695 +struct GetBitContext; 1.4696 +typedef struct GetBitContext GetBitContext; 1.4697 +struct GetBitContext 1.4698 { 1.4699 - if (a > b) 1.4700 + uint8_t *rbsp; 1.4701 + unsigned int rbsp_size; 1.4702 + uint8_t *raw; 1.4703 + const uint8_t *buffer; 1.4704 + const uint8_t *buffer_end; 1.4705 + unsigned int alloc_size; 1.4706 + unsigned int buf_size; 1.4707 + uint32_t *buffer_ptr; 1.4708 + uint32_t cache0; 1.4709 + uint32_t cache1; 1.4710 + int bit_count; 1.4711 + int size_in_bits; 1.4712 +}; 1.4713 +static __inline int get_bits_count(const GetBitContext *s) 1.4714 +{ 1.4715 + return ((uint8_t *)(*s).buffer_ptr - (*s).buffer) * 8 - 32 + (*s).bit_count; 1.4716 +} 1.4717 +static __inline void skip_bits_long(GetBitContext *s, int n) 1.4718 +{ 1.4719 + int re_bit_count = (*s).bit_count; 1.4720 + uint32_t re_cache0 = (*s).cache0; 1.4721 + uint32_t re_cache1 = (*s).cache1; 1.4722 + uint32_t *re_buffer_ptr = (*s).buffer_ptr; 1.4723 + re_bit_count += n; 1.4724 + re_buffer_ptr += re_bit_count >> 5; 1.4725 + re_bit_count &= 31; 1.4726 + re_cache0 = bswap_32(re_buffer_ptr[ -1]) << re_bit_count; 1.4727 + re_cache1 = 0; 1.4728 + if (re_bit_count > 0) 1.4729 { 1.4730 - if (c > b) 1.4731 - { 1.4732 - if (c > a) 1.4733 - b = a; 1.4734 - else 1.4735 - b = c; 1.4736 - } 1.4737 - } 1.4738 - else 1.4739 - { 1.4740 - if (b > c) 1.4741 - { 1.4742 - if (c > a) 1.4743 - b = c; 1.4744 - else 1.4745 - b = a; 1.4746 - } 1.4747 - } 1.4748 - return b; 1.4749 -} 1.4750 -static inline __attribute__((const)) int sign_extend(int val, unsigned bits) 1.4751 -{ 1.4752 - return (val << ((8 * sizeof(int)) - bits)) >> ((8 * sizeof(int)) - bits); 1.4753 -} 1.4754 -static inline __attribute__((const)) unsigned zero_extend(unsigned val, unsigned bits) 1.4755 -{ 1.4756 - return (val << ((8 * sizeof(int)) - bits)) >> ((8 * sizeof(int)) - bits); 1.4757 -} 1.4758 -typedef struct GetBitContext 1.4759 -{ 1.4760 - uint8_t *rbsp; 1.4761 - unsigned int rbsp_size; 1.4762 - uint8_t *raw; 1.4763 - const uint8_t *buffer, *buffer_end; 1.4764 - unsigned int alloc_size; 1.4765 - unsigned int buf_size; 1.4766 - uint32_t *buffer_ptr; 1.4767 - uint32_t cache0; 1.4768 - uint32_t cache1; 1.4769 - int bit_count; 1.4770 - int size_in_bits; 1.4771 -} GetBitContext; 1.4772 -static inline int get_bits_count(const GetBitContext *s) 1.4773 -{ 1.4774 - return ((uint8_t *) s->buffer_ptr - s->buffer) * 8 - 32 + s->bit_count; 1.4775 -} 1.4776 -static inline void skip_bits_long(GetBitContext *s, int n) 1.4777 -{ 1.4778 - int re_bit_count = (s)->bit_count; 1.4779 - uint32_t re_cache0 = (s)->cache0; 1.4780 - uint32_t re_cache1 = (s)->cache1; 1.4781 - uint32_t *re_buffer_ptr = (s)->buffer_ptr; 1.4782 - re_bit_count += n; 1.4783 - re_buffer_ptr += re_bit_count >> 5; 1.4784 - re_bit_count &= 31; 1.4785 - re_cache0 = bswap_32(re_buffer_ptr[- 1]) << re_bit_count; 1.4786 - re_cache1 = 0; 1.4787 - if (re_bit_count > 0) 1.4788 - { 1.4789 + { 1.4790 const uint32_t next = bswap_32(*re_buffer_ptr); 1.4791 re_cache0 |= NEG_USR32(next, re_bit_count); 1.4792 re_cache1 |= next << re_bit_count; 1.4793 re_buffer_ptr++; 1.4794 re_bit_count -= 32; 1.4795 + } 1.4796 } 1.4797 - (s)->bit_count = re_bit_count; 1.4798 - (s)->cache0 = re_cache0; 1.4799 - (s)->cache1 = re_cache1; 1.4800 - (s)->buffer_ptr = re_buffer_ptr; 1.4801 + (*s).bit_count = re_bit_count; 1.4802 + (*s).cache0 = re_cache0; 1.4803 + (*s).cache1 = re_cache1; 1.4804 + (*s).buffer_ptr = re_buffer_ptr; 1.4805 } 1.4806 -static inline int get_xbits(GetBitContext *s, int n) 1.4807 +static __inline int get_xbits(GetBitContext *s, int n) 1.4808 { 1.4809 - register int sign; 1.4810 - register int32_t cache; 1.4811 - int re_bit_count = (s)->bit_count; 1.4812 - uint32_t re_cache0 = (s)->cache0; 1.4813 - uint32_t re_cache1 = (s)->cache1; 1.4814 - uint32_t *re_buffer_ptr = (s)->buffer_ptr; 1.4815 - if (re_bit_count > 0) 1.4816 + register int32_t cache; 1.4817 + register int sign; 1.4818 + int re_bit_count = (*s).bit_count; 1.4819 + uint32_t re_cache0 = (*s).cache0; 1.4820 + uint32_t re_cache1 = (*s).cache1; 1.4821 + uint32_t *re_buffer_ptr = (*s).buffer_ptr; 1.4822 + if (re_bit_count > 0) 1.4823 { 1.4824 + { 1.4825 const uint32_t next = bswap_32(*re_buffer_ptr); 1.4826 re_cache0 |= NEG_USR32(next, re_bit_count); 1.4827 re_cache1 |= next << re_bit_count; 1.4828 re_buffer_ptr++; 1.4829 re_bit_count -= 32; 1.4830 + } 1.4831 } 1.4832 - cache = (re_cache0); 1.4833 - sign = (~cache) >> 31; 1.4834 + cache = re_cache0; 1.4835 + sign = ~cache >> 31; 1.4836 + { 1.4837 + __asm__ ("shldl %2, %1, %0 \n\t""shll %2, %1 \n\t" : "+r"(re_cache0), "+r"(re_cache1) : "Ic"((uint8_t)n)); 1.4838 + re_bit_count += n; 1.4839 + } 1.4840 + (*s).bit_count = re_bit_count; 1.4841 + (*s).cache0 = re_cache0; 1.4842 + (*s).cache1 = re_cache1; 1.4843 + (*s).buffer_ptr = re_buffer_ptr; 1.4844 + return (NEG_USR32(sign ^ cache, n) ^ sign) - sign; 1.4845 +} 1.4846 +static __inline int get_sbits(GetBitContext *s, int n) 1.4847 +{ 1.4848 + register int tmp; 1.4849 + int re_bit_count = (*s).bit_count; 1.4850 + uint32_t re_cache0 = (*s).cache0; 1.4851 + uint32_t re_cache1 = (*s).cache1; 1.4852 + uint32_t *re_buffer_ptr = (*s).buffer_ptr; 1.4853 + if (re_bit_count > 0) 1.4854 { 1.4855 - __asm__ ("shldl %2, %1, %0 \n\t""shll %2, %1 \n\t": "+r" (re_cache0), "+r" (re_cache1): "Ic" ((uint8_t) (n))); 1.4856 - re_bit_count += (n); 1.4857 - } 1.4858 - (s)->bit_count = re_bit_count; 1.4859 - (s)->cache0 = re_cache0; 1.4860 - (s)->cache1 = re_cache1; 1.4861 - (s)->buffer_ptr = re_buffer_ptr; 1.4862 - return (NEG_USR32(sign ^ cache, n) ^ sign) - sign; 1.4863 -} 1.4864 -static inline int get_sbits(GetBitContext *s, int n) 1.4865 -{ 1.4866 - register int tmp; 1.4867 - int re_bit_count = (s)->bit_count; 1.4868 - uint32_t re_cache0 = (s)->cache0; 1.4869 - uint32_t re_cache1 = (s)->cache1; 1.4870 - uint32_t *re_buffer_ptr = (s)->buffer_ptr; 1.4871 - if (re_bit_count > 0) 1.4872 - { 1.4873 + { 1.4874 const uint32_t next = bswap_32(*re_buffer_ptr); 1.4875 re_cache0 |= NEG_USR32(next, re_bit_count); 1.4876 re_cache1 |= next << re_bit_count; 1.4877 re_buffer_ptr++; 1.4878 re_bit_count -= 32; 1.4879 + } 1.4880 } 1.4881 - tmp = NEG_SSR32(re_cache0, n); 1.4882 + tmp = NEG_SSR32(re_cache0, n); 1.4883 + { 1.4884 + __asm__ ("shldl %2, %1, %0 \n\t""shll %2, %1 \n\t" : "+r"(re_cache0), "+r"(re_cache1) : "Ic"((uint8_t)n)); 1.4885 + re_bit_count += n; 1.4886 + } 1.4887 + (*s).bit_count = re_bit_count; 1.4888 + (*s).cache0 = re_cache0; 1.4889 + (*s).cache1 = re_cache1; 1.4890 + (*s).buffer_ptr = re_buffer_ptr; 1.4891 + return tmp; 1.4892 +} 1.4893 +static __inline unsigned int get_bits(GetBitContext *s, int n) 1.4894 +{ 1.4895 + register int tmp; 1.4896 + int re_bit_count = (*s).bit_count; 1.4897 + uint32_t re_cache0 = (*s).cache0; 1.4898 + uint32_t re_cache1 = (*s).cache1; 1.4899 + uint32_t *re_buffer_ptr = (*s).buffer_ptr; 1.4900 + if (re_bit_count > 0) 1.4901 { 1.4902 - __asm__ ("shldl %2, %1, %0 \n\t""shll %2, %1 \n\t": "+r" (re_cache0), "+r" (re_cache1): "Ic" ((uint8_t) (n))); 1.4903 - re_bit_count += (n); 1.4904 - } 1.4905 - (s)->bit_count = re_bit_count; 1.4906 - (s)->cache0 = re_cache0; 1.4907 - (s)->cache1 = re_cache1; 1.4908 - (s)->buffer_ptr = re_buffer_ptr; 1.4909 - return tmp; 1.4910 -} 1.4911 -static inline unsigned int get_bits(GetBitContext *s, int n) 1.4912 -{ 1.4913 - register int tmp; 1.4914 - int re_bit_count = (s)->bit_count; 1.4915 - uint32_t re_cache0 = (s)->cache0; 1.4916 - uint32_t re_cache1 = (s)->cache1; 1.4917 - uint32_t *re_buffer_ptr = (s)->buffer_ptr; 1.4918 - if (re_bit_count > 0) 1.4919 - { 1.4920 + { 1.4921 const uint32_t next = bswap_32(*re_buffer_ptr); 1.4922 re_cache0 |= NEG_USR32(next, re_bit_count); 1.4923 re_cache1 |= next << re_bit_count; 1.4924 re_buffer_ptr++; 1.4925 re_bit_count -= 32; 1.4926 + } 1.4927 } 1.4928 - tmp = NEG_USR32(re_cache0, n); 1.4929 + tmp = NEG_USR32(re_cache0, n); 1.4930 + { 1.4931 + __asm__ ("shldl %2, %1, %0 \n\t""shll %2, %1 \n\t" : "+r"(re_cache0), "+r"(re_cache1) : "Ic"((uint8_t)n)); 1.4932 + re_bit_count += n; 1.4933 + } 1.4934 + (*s).bit_count = re_bit_count; 1.4935 + (*s).cache0 = re_cache0; 1.4936 + (*s).cache1 = re_cache1; 1.4937 + (*s).buffer_ptr = re_buffer_ptr; 1.4938 + return tmp; 1.4939 +} 1.4940 +static __inline unsigned int show_bits(GetBitContext *s, int n) 1.4941 +{ 1.4942 + register int tmp; 1.4943 + int re_bit_count = (*s).bit_count; 1.4944 + uint32_t re_cache0 = (*s).cache0; 1.4945 + uint32_t re_cache1 = (*s).cache1; 1.4946 + uint32_t *re_buffer_ptr = (*s).buffer_ptr; 1.4947 + if (re_bit_count > 0) 1.4948 { 1.4949 - __asm__ ("shldl %2, %1, %0 \n\t""shll %2, %1 \n\t": "+r" (re_cache0), "+r" (re_cache1): "Ic" ((uint8_t) (n))); 1.4950 - re_bit_count += (n); 1.4951 - } 1.4952 - (s)->bit_count = re_bit_count; 1.4953 - (s)->cache0 = re_cache0; 1.4954 - (s)->cache1 = re_cache1; 1.4955 - (s)->buffer_ptr = re_buffer_ptr; 1.4956 - return tmp; 1.4957 -} 1.4958 -static inline unsigned int show_bits(GetBitContext *s, int n) 1.4959 -{ 1.4960 - register int tmp; 1.4961 - int re_bit_count = (s)->bit_count; 1.4962 - uint32_t re_cache0 = (s)->cache0; 1.4963 - uint32_t re_cache1 = (s)->cache1; 1.4964 - uint32_t *re_buffer_ptr = (s)->buffer_ptr; 1.4965 - if (re_bit_count > 0) 1.4966 - { 1.4967 + { 1.4968 const uint32_t next = bswap_32(*re_buffer_ptr); 1.4969 re_cache0 |= NEG_USR32(next, re_bit_count); 1.4970 re_cache1 |= next << re_bit_count; 1.4971 re_buffer_ptr++; 1.4972 re_bit_count -= 32; 1.4973 + } 1.4974 } 1.4975 - tmp = NEG_USR32(re_cache0, n); 1.4976 - return tmp; 1.4977 + tmp = NEG_USR32(re_cache0, n); 1.4978 + return tmp; 1.4979 } 1.4980 -static inline void skip_bits(GetBitContext *s, int n) 1.4981 +static __inline void skip_bits(GetBitContext *s, int n) 1.4982 { 1.4983 - int re_bit_count = (s)->bit_count; 1.4984 - uint32_t re_cache0 = (s)->cache0; 1.4985 - uint32_t re_cache1 = (s)->cache1; 1.4986 - uint32_t *re_buffer_ptr = (s)->buffer_ptr; 1.4987 - if (re_bit_count > 0) 1.4988 + int re_bit_count = (*s).bit_count; 1.4989 + uint32_t re_cache0 = (*s).cache0; 1.4990 + uint32_t re_cache1 = (*s).cache1; 1.4991 + uint32_t *re_buffer_ptr = (*s).buffer_ptr; 1.4992 + if (re_bit_count > 0) 1.4993 { 1.4994 + { 1.4995 const uint32_t next = bswap_32(*re_buffer_ptr); 1.4996 re_cache0 |= NEG_USR32(next, re_bit_count); 1.4997 re_cache1 |= next << re_bit_count; 1.4998 re_buffer_ptr++; 1.4999 re_bit_count -= 32; 1.5000 + } 1.5001 } 1.5002 + { 1.5003 + __asm__ ("shldl %2, %1, %0 \n\t""shll %2, %1 \n\t" : "+r"(re_cache0), "+r"(re_cache1) : "Ic"((uint8_t)n)); 1.5004 + re_bit_count += n; 1.5005 + } 1.5006 + (*s).bit_count = re_bit_count; 1.5007 + (*s).cache0 = re_cache0; 1.5008 + (*s).cache1 = re_cache1; 1.5009 + (*s).buffer_ptr = re_buffer_ptr; 1.5010 +} 1.5011 +static __inline unsigned int get_bits1(GetBitContext *s) 1.5012 +{ 1.5013 + return get_bits(s, 1); 1.5014 +} 1.5015 +static __inline unsigned int show_bits1(GetBitContext *s) 1.5016 +{ 1.5017 + return show_bits(s, 1); 1.5018 +} 1.5019 +static __inline void skip_bits1(GetBitContext *s) 1.5020 +{ 1.5021 + skip_bits(s, 1); 1.5022 +} 1.5023 +static __inline unsigned int get_bits_long(GetBitContext *s, int n) 1.5024 +{ 1.5025 + if (n <= 32) 1.5026 { 1.5027 - __asm__ ("shldl %2, %1, %0 \n\t""shll %2, %1 \n\t": "+r" (re_cache0), "+r" (re_cache1): "Ic" ((uint8_t) (n))); 1.5028 - re_bit_count += (n); 1.5029 + return get_bits(s, n); 1.5030 } 1.5031 - (s)->bit_count = re_bit_count; 1.5032 - (s)->cache0 = re_cache0; 1.5033 - (s)->cache1 = re_cache1; 1.5034 - (s)->buffer_ptr = re_buffer_ptr; 1.5035 -} 1.5036 -static inline unsigned int get_bits1(GetBitContext *s) 1.5037 -{ 1.5038 - return get_bits(s, 1); 1.5039 -} 1.5040 -static inline unsigned int show_bits1(GetBitContext *s) 1.5041 -{ 1.5042 - return show_bits(s, 1); 1.5043 -} 1.5044 -static inline void skip_bits1(GetBitContext *s) 1.5045 -{ 1.5046 - skip_bits(s, 1); 1.5047 -} 1.5048 -static inline unsigned int get_bits_long(GetBitContext *s, int n) 1.5049 -{ 1.5050 - if (n <= 32) 1.5051 - return get_bits(s, n); 1.5052 - else 1.5053 + else 1.5054 { 1.5055 + { 1.5056 int ret = get_bits(s, 16) << (n - 16); 1.5057 return ret | get_bits(s, n - 16); 1.5058 + } 1.5059 } 1.5060 } 1.5061 -static inline int get_sbits_long(GetBitContext *s, int n) 1.5062 +static __inline int get_sbits_long(GetBitContext *s, int n) 1.5063 { 1.5064 - return sign_extend(get_bits_long(s, n), n); 1.5065 + return sign_extend(get_bits_long(s, n), n); 1.5066 } 1.5067 -static inline unsigned int show_bits_long(GetBitContext *s, int n) 1.5068 +static __inline unsigned int show_bits_long(GetBitContext *s, int n) 1.5069 { 1.5070 - if (n <= 32) 1.5071 - return show_bits(s, n); 1.5072 - else 1.5073 + if (n <= 32) 1.5074 { 1.5075 + return show_bits(s, n); 1.5076 + } 1.5077 + else 1.5078 + { 1.5079 + { 1.5080 GetBitContext gb = *s; 1.5081 return get_bits_long(&gb, n); 1.5082 + } 1.5083 } 1.5084 } 1.5085 -static inline int check_marker(GetBitContext *s, const char *msg) 1.5086 +void av_log(int level, const char *fmt, ...); 1.5087 +static __inline int check_marker(GetBitContext *s, const char *msg) 1.5088 { 1.5089 - int bit = get_bits1(s); 1.5090 - if (!bit) 1.5091 - av_log(32, "Marker bit missing %s\n", msg); 1.5092 - return bit; 1.5093 + int bit = get_bits1(s); 1.5094 + if (!bit) 1.5095 + { 1.5096 + av_log(32, "Marker bit missing %s\n", msg); 1.5097 + } 1.5098 + return bit; 1.5099 } 1.5100 -static inline void init_get_bits(GetBitContext *s, const uint8_t *buffer, int bit_size) 1.5101 +typedef long int __intptr_t; 1.5102 +typedef __intptr_t intptr_t; 1.5103 +static __inline void init_get_bits(GetBitContext *s, const uint8_t *buffer, int bit_size) 1.5104 { 1.5105 - int buffer_size = (bit_size + 7) >> 3; 1.5106 - if (buffer_size < 0 || bit_size < 0) 1.5107 + int buffer_size = (bit_size + 7) >> 3; 1.5108 + if (buffer_size < 0 || bit_size < 0) 1.5109 { 1.5110 + { 1.5111 buffer_size = bit_size = 0; 1.5112 - buffer = ((void *) 0); 1.5113 + buffer = (void *)0; 1.5114 + } 1.5115 } 1.5116 - s->buffer = buffer; 1.5117 - s->size_in_bits = bit_size; 1.5118 - s->buffer_end = buffer + buffer_size; 1.5119 - s->buffer_ptr = (uint32_t *) ((intptr_t) buffer & (~3)); 1.5120 - s->bit_count = 32 + 8 * ((intptr_t) buffer & 3); 1.5121 - skip_bits_long(s, 0); 1.5122 + (*s).buffer = buffer; 1.5123 + (*s).size_in_bits = bit_size; 1.5124 + (*s).buffer_end = buffer + buffer_size; 1.5125 + (*s).buffer_ptr = (uint32_t *)((intptr_t)buffer & ~3); 1.5126 + (*s).bit_count = 32 + 8 * ((intptr_t)buffer & 3); 1.5127 + skip_bits_long(s, 0); 1.5128 } 1.5129 -static inline void align_get_bits(GetBitContext *s) 1.5130 +static __inline void align_get_bits(GetBitContext *s) 1.5131 { 1.5132 - int n = (- get_bits_count(s)) & 7; 1.5133 - if (n) 1.5134 - skip_bits(s, n); 1.5135 + int n = -get_bits_count(s) & 7; 1.5136 + if (n) 1.5137 + { 1.5138 + skip_bits(s, n); 1.5139 + } 1.5140 } 1.5141 -static inline int get_bits_left(GetBitContext *gb) 1.5142 +static __inline int get_bits_left(GetBitContext *gb) 1.5143 { 1.5144 - return gb->size_in_bits - get_bits_count(gb); 1.5145 + return (*gb).size_in_bits - get_bits_count(gb); 1.5146 } 1.5147 -enum 1.5148 +struct H264Slice; 1.5149 +typedef struct H264Slice H264Slice; 1.5150 +struct PPS 1.5151 { 1.5152 - PARSE = 0, 1.5153 - ENTROPY, 1.5154 - REORDER, 1.5155 - REORDER2, 1.5156 - MBDEC, 1.5157 - OUTPUT, 1.5158 - STAGES 1.5159 + unsigned int sps_id; 1.5160 + int cabac; 1.5161 + int pic_order_present; 1.5162 + int slice_group_count; 1.5163 + int mb_slice_group_map_type; 1.5164 + unsigned int ref_count[2]; 1.5165 + int weighted_pred; 1.5166 + int weighted_bipred_idc; 1.5167 + int init_qp; 1.5168 + int init_qs; 1.5169 + int chroma_qp_index_offset[2]; 1.5170 + int deblocking_filter_parameters_present; 1.5171 + int constrained_intra_pred; 1.5172 + int redundant_pic_cnt_present; 1.5173 + int transform_8x8_mode; 1.5174 + uint8_t scaling_matrix4[6][16]; 1.5175 + uint8_t scaling_matrix8[2][64]; 1.5176 + uint8_t chroma_qp_table[2][64]; 1.5177 + int chroma_qp_diff; 1.5178 }; 1.5179 -enum 1.5180 +typedef struct PPS PPS; 1.5181 +struct PictureInfo; 1.5182 +typedef struct PictureInfo PictureInfo; 1.5183 +struct DecodedPicture; 1.5184 +typedef struct DecodedPicture DecodedPicture; 1.5185 +struct H264Slice 1.5186 { 1.5187 - TOTAL = 0, 1.5188 - FRONT, 1.5189 - ED, 1.5190 - REC, 1.5191 - PROFILE_STAGES 1.5192 + PPS pps; 1.5193 + PictureInfo *current_picture_info; 1.5194 + DecodedPicture *curr_pic; 1.5195 + int slice_num; 1.5196 + int release_ref_cpn[66]; 1.5197 + int release_cnt; 1.5198 + int qp_thresh; 1.5199 + int use_weight; 1.5200 + int use_weight_chroma; 1.5201 + int luma_log2_weight_denom; 1.5202 + int chroma_log2_weight_denom; 1.5203 + int16_t luma_weight[16][2][2]; 1.5204 + int16_t chroma_weight[16][2][2][2]; 1.5205 + int16_t implicit_weight[16][16][2]; 1.5206 + int ref_list_cpn[2][16]; 1.5207 + PictureInfo *ref_list[2][16]; 1.5208 + DecodedPicture *dp_ref_list[2][16]; 1.5209 + int ref_count[2]; 1.5210 + int slice_type; 1.5211 + int slice_type_nos; 1.5212 + int slice_alpha_c0_offset; 1.5213 + int slice_beta_offset; 1.5214 + int direct_8x8_inference_flag; 1.5215 + uint8_t list_count; 1.5216 + uint32_t coded_pic_num; 1.5217 + int poc; 1.5218 + int key_frame; 1.5219 + int mmco_reset; 1.5220 + int ip_id; 1.5221 + int transform_bypass; 1.5222 + int direct_spatial_mv_pred; 1.5223 + int map_col_to_list0[2][16]; 1.5224 + int dist_scale_factor[16]; 1.5225 + int cabac_init_idc; 1.5226 + int nal_ref_idc; 1.5227 + int nal_unit_type; 1.5228 + int ref2frm[2][64]; 1.5229 + int qscale; 1.5230 }; 1.5231 -typedef struct ParserContext 1.5232 +static __inline int get_chroma_qp(H264Slice *s, int t, int qscale) 1.5233 { 1.5234 - int ifile; 1.5235 - int ofile; 1.5236 - int buffer_size; 1.5237 - int eof_reached; 1.5238 - uint8_t *data; 1.5239 - int size; 1.5240 - uint8_t *cur_ptr; 1.5241 - int cur_len; 1.5242 - int64_t frame_offset; 1.5243 - int64_t cur_offset; 1.5244 - int64_t next_frame_offset; 1.5245 - int pict_type; 1.5246 - int repeat_pict; 1.5247 - int key_frame; 1.5248 - int64_t pos; 1.5249 - int64_t last_pos; 1.5250 - int final_frame; 1.5251 - uint8_t overread[5]; 1.5252 - int overread_cnt; 1.5253 - int index; 1.5254 - int last_index; 1.5255 - int frame_start_found; 1.5256 - uint32_t state; 1.5257 -} ParserContext; 1.5258 -typedef struct NalContext 1.5259 + return (*s).pps.chroma_qp_table[t][qscale]; 1.5260 +} 1.5261 +struct H264Context; 1.5262 +typedef struct H264Context H264Context; 1.5263 +struct ParserContext; 1.5264 +typedef struct ParserContext ParserContext; 1.5265 +struct NalContext; 1.5266 +typedef struct NalContext NalContext; 1.5267 +struct mcc_struct_anon_54; 1.5268 +typedef struct mcc_struct_anon_54 SliceBufferEntry; 1.5269 +struct H264Mb; 1.5270 +typedef struct H264Mb H264Mb; 1.5271 +struct mcc_struct_anon_54 1.5272 { 1.5273 - SPS *sps_buffers[32]; 1.5274 - PPS *pps_buffers[256]; 1.5275 - SPS sps; 1.5276 - PictureInfo picture[16 + 1]; 1.5277 - PictureInfo *release_ref[66]; 1.5278 - PictureInfo *short_ref[32]; 1.5279 - PictureInfo *long_ref[32]; 1.5280 - int long_ref_count; 1.5281 - int short_ref_count; 1.5282 - uint32_t coded_pic_num; 1.5283 - int poc_lsb; 1.5284 - int poc_msb; 1.5285 - uint32_t poc_offset; 1.5286 - int delta_poc; 1.5287 - int frame_num; 1.5288 - int prev_poc_msb; 1.5289 - int prev_poc_lsb; 1.5290 - int frame_num_offset; 1.5291 - int prev_frame_num_offset; 1.5292 - int prev_frame_num; 1.5293 - int max_pic_num; 1.5294 - int redundant_pic_count; 1.5295 - int outputed_poc; 1.5296 - int ip_id; 1.5297 - int b4_stride; 1.5298 - int mb_stride; 1.5299 - int mb_width; 1.5300 - int mb_height; 1.5301 - int width; 1.5302 - int height; 1.5303 - int has_b_frames; 1.5304 - SEI_PicStructType sei_pic_struct; 1.5305 - int sei_ct_type; 1.5306 - int sei_dpb_output_delay; 1.5307 - int sei_cpb_removal_delay; 1.5308 - int sei_recovery_frame_cnt; 1.5309 - int sei_buffering_period_present; 1.5310 - int initial_cpb_removal_delay[32]; 1.5311 -} NalContext; 1.5312 -typedef struct EntropyContext 1.5313 + H264Slice slice; 1.5314 + H264Mb *mbs; 1.5315 + DecodedPicture *dp; 1.5316 + GetBitContext gb; 1.5317 + int lines_taken; 1.5318 + int lines_total; 1.5319 + int state; 1.5320 + int initialized; 1.5321 +}; 1.5322 +void init_sb_entry(H264Context *h, SliceBufferEntry *sbe); 1.5323 +struct __pthread_internal_list; 1.5324 +struct __pthread_internal_list 1.5325 { 1.5326 - CABACContext c; 1.5327 - H264Mb *m; 1.5328 - int top_cbp; 1.5329 - int left_cbp; 1.5330 - int neighbor_transform_size; 1.5331 - uint32_t top_type; 1.5332 - uint32_t left_type; 1.5333 - uint32_t topright_type; 1.5334 - uint32_t topleft_type; 1.5335 - int curr_qscale; 1.5336 - int chroma_qp[2]; 1.5337 - int last_qscale_diff; 1.5338 - uint32_t dequant4_buffer[6][52][16]; 1.5339 - uint32_t dequant8_buffer[2][52][64]; 1.5340 - uint32_t (*dequant4_coeff[6])[16]; 1.5341 - uint32_t (*dequant8_coeff[2])[64]; 1.5342 - uint8_t (*non_zero_count_top)[8]; 1.5343 - uint8_t (*non_zero_count)[8]; 1.5344 - uint8_t (*non_zero_count_row[2])[8]; 1.5345 - uint8_t __attribute__((aligned(8))) non_zero_count_left[8]; 1.5346 - uint8_t (*mvd_top[2])[2]; 1.5347 - uint8_t (*mvd[2])[2]; 1.5348 - uint8_t (*mvd_table[2][2])[2]; 1.5349 - uint8_t *direct_top; 1.5350 - uint8_t *direct; 1.5351 - uint8_t *direct_table[2]; 1.5352 - uint8_t *chroma_pred_mode_top; 1.5353 - uint8_t *chroma_pred_mode; 1.5354 - uint8_t *chroma_pred_mode_table[2]; 1.5355 - uint16_t *cbp_top; 1.5356 - uint16_t *cbp; 1.5357 - uint16_t *cbp_table[2]; 1.5358 - int8_t *qscale_top; 1.5359 - int8_t *qscale; 1.5360 - int8_t *qscale_table[2]; 1.5361 - int8_t *ref_index_top[2]; 1.5362 - int8_t *ref_index[2]; 1.5363 - int8_t *ref_index_table[2][2]; 1.5364 - uint32_t *mb_type_top; 1.5365 - uint32_t *mb_type; 1.5366 - uint32_t *mb_type_table[2]; 1.5367 - int b_stride; 1.5368 - int mb_stride; 1.5369 - int mb_width; 1.5370 - int mb_height; 1.5371 - uint8_t *zigzag_scan; 1.5372 - uint8_t *zigzag_scan8x8; 1.5373 - uint8_t direct_cache[5 * 8]; 1.5374 - int8_t __attribute__((aligned(8))) intra4x4_pred_mode_cache[5 * 8]; 1.5375 - int16_t __attribute__((aligned(16))) mv_cache[2][5 * 8][2]; 1.5376 - int8_t __attribute__((aligned(8))) ref_cache[2][5 * 8]; 1.5377 - uint8_t __attribute__((aligned(8))) non_zero_count_cache[6 * 8]; 1.5378 - uint8_t __attribute__((aligned(16))) mvd_cache[2][5 * 8][2]; 1.5379 -} EntropyContext; 1.5380 -typedef struct H264Slice 1.5381 + struct __pthread_internal_list *__prev; 1.5382 + struct __pthread_internal_list *__next; 1.5383 +}; 1.5384 +typedef struct __pthread_internal_list __pthread_list_t; 1.5385 +struct __pthread_mutex_s 1.5386 { 1.5387 - PPS pps; 1.5388 - PictureInfo *current_picture_info; 1.5389 - DecodedPicture *curr_pic; 1.5390 - int slice_num; 1.5391 - int release_ref_cpn[66]; 1.5392 - int release_cnt; 1.5393 - int qp_thresh; 1.5394 - int use_weight; 1.5395 - int use_weight_chroma; 1.5396 - int luma_log2_weight_denom; 1.5397 - int chroma_log2_weight_denom; 1.5398 - int16_t luma_weight[16][2][2]; 1.5399 - int16_t chroma_weight[16][2][2][2]; 1.5400 - int16_t implicit_weight[16][16][2]; 1.5401 - int ref_list_cpn[2][16]; 1.5402 - PictureInfo *ref_list[2][16]; 1.5403 - DecodedPicture *dp_ref_list[2][16]; 1.5404 - int ref_count[2]; 1.5405 - int slice_type; 1.5406 - int slice_type_nos; 1.5407 - int slice_alpha_c0_offset; 1.5408 - int slice_beta_offset; 1.5409 - int direct_8x8_inference_flag; 1.5410 - uint8_t list_count; 1.5411 - uint32_t coded_pic_num; 1.5412 - int poc; 1.5413 - int key_frame; 1.5414 - int mmco_reset; 1.5415 - int ip_id; 1.5416 - int transform_bypass; 1.5417 - int direct_spatial_mv_pred; 1.5418 - int map_col_to_list0[2][16]; 1.5419 - int dist_scale_factor[16]; 1.5420 - int cabac_init_idc; 1.5421 - int nal_ref_idc; 1.5422 - int nal_unit_type; 1.5423 - int ref2frm[2][64]; 1.5424 - int qscale; 1.5425 -} H264Slice; 1.5426 -typedef struct 1.5427 + int __lock; 1.5428 + unsigned int __count; 1.5429 + int __owner; 1.5430 + unsigned int __nusers; 1.5431 + int __kind; 1.5432 + int __spins; 1.5433 + __pthread_list_t __list; 1.5434 +}; 1.5435 +union mcc_union_anon_26 1.5436 { 1.5437 - H264Slice slice; 1.5438 - H264Mb *mbs; 1.5439 - DecodedPicture *dp; 1.5440 - GetBitContext gb; 1.5441 - int lines_taken; 1.5442 - int lines_total; 1.5443 - int state; 1.5444 - int initialized; 1.5445 -} SliceBufferEntry; 1.5446 -typedef struct RingLineEntry 1.5447 + struct __pthread_mutex_s __data; 1.5448 + char __size[40]; 1.5449 + long int __align; 1.5450 +}; 1.5451 +typedef union mcc_union_anon_26 pthread_mutex_t; 1.5452 +struct mcc_struct_anon_29 1.5453 { 1.5454 - union 1.5455 - { 1.5456 - volatile int32_t __attribute__((aligned(64))) mb_cnt; 1.5457 - int32_t __attribute__((aligned(64))) pad[16]; 1.5458 - }; 1.5459 - SliceBufferEntry *sbe; 1.5460 - int id; 1.5461 - int line; 1.5462 - TopBorder *top; 1.5463 - struct RingLineEntry *prev_line; 1.5464 -} RingLineEntry; 1.5465 -typedef struct SuperMBTask 1.5466 + int __lock; 1.5467 + unsigned int __futex; 1.5468 + __extension__ unsigned long long int __total_seq; 1.5469 + __extension__ unsigned long long int __wakeup_seq; 1.5470 + __extension__ unsigned long long int __woken_seq; 1.5471 + void *__mutex; 1.5472 + unsigned int __nwaiters; 1.5473 + unsigned int __broadcast_seq; 1.5474 +}; 1.5475 +union mcc_union_anon_28 1.5476 { 1.5477 - int smb_x; 1.5478 - int smb_y; 1.5479 -} SuperMBTask; 1.5480 -typedef struct SuperMBContext 1.5481 + struct mcc_struct_anon_29 __data; 1.5482 + char __size[48]; 1.5483 + __extension__ long long int __align; 1.5484 +}; 1.5485 +typedef union mcc_union_anon_28 pthread_cond_t; 1.5486 +struct mcc_struct_anon_56 1.5487 { 1.5488 - int nsmb_width; 1.5489 - int nsmb_height; 1.5490 - int nsmb_3dheight; 1.5491 - int smb_width; 1.5492 - int smb_height; 1.5493 - int refcount; 1.5494 - int index; 1.5495 - SuperMBTask *smbs[2]; 1.5496 -} SuperMBContext; 1.5497 -typedef struct MBRecState 1.5498 + pthread_mutex_t lock; 1.5499 + pthread_cond_t cond; 1.5500 + SliceBufferEntry **queue; 1.5501 + int size; 1.5502 + int cnt; 1.5503 + int fi; 1.5504 + int fo; 1.5505 +}; 1.5506 +typedef struct mcc_struct_anon_56 SliceBufferQueue; 1.5507 +struct RingLineEntry; 1.5508 +typedef struct RingLineEntry RingLineEntry; 1.5509 +struct mcc_struct_anon_57 1.5510 { 1.5511 - int8_t *ref_index_top[2]; 1.5512 - int8_t *ref_index[2]; 1.5513 - int16_t (*motion_val_top[2])[2]; 1.5514 - int16_t (*motion_val[2])[2]; 1.5515 - uint32_t *mb_type_top; 1.5516 - uint32_t *mb_type; 1.5517 - int8_t *list1_ref_index[2]; 1.5518 - int16_t (*list1_motion_val[2])[2]; 1.5519 - uint32_t *list1_mb_type; 1.5520 - int8_t *intra4x4_pred_mode_top; 1.5521 - int8_t *intra4x4_pred_mode; 1.5522 - int8_t *non_zero_count_top; 1.5523 - int8_t *non_zero_count; 1.5524 - unsigned int topleft_samples_available; 1.5525 - unsigned int topright_samples_available; 1.5526 - unsigned int top_samples_available; 1.5527 - unsigned int left_samples_available; 1.5528 - int top_type; 1.5529 - int left_type; 1.5530 - int8_t __attribute__((aligned(8))) intra4x4_pred_mode_cache[5 * 8]; 1.5531 - int16_t __attribute__((aligned(16))) mv_cache[2][5 * 8][2]; 1.5532 - int8_t __attribute__((aligned(8))) ref_cache[2][5 * 8]; 1.5533 - uint8_t __attribute__((aligned(8))) non_zero_count_cache[6 * 8]; 1.5534 - uint8_t __attribute__((aligned(16))) mvd_cache[2][5 * 8][2]; 1.5535 - int16_t __attribute__((aligned(8))) bS[2][4][4]; 1.5536 - uint8_t edges[2]; 1.5537 -} MBRecState; 1.5538 -typedef struct MBRecContext 1.5539 + pthread_mutex_t wslock; 1.5540 + pthread_cond_t wscond; 1.5541 + pthread_mutex_t swlock; 1.5542 + pthread_cond_t swcond; 1.5543 + RingLineEntry **queue; 1.5544 + int size; 1.5545 + int ready; 1.5546 + int free; 1.5547 + int fi; 1.5548 + int fo; 1.5549 +}; 1.5550 +typedef struct mcc_struct_anon_57 RingLineQueue; 1.5551 +union mcc_union_anon_25 1.5552 { 1.5553 - DSPContext dsp; 1.5554 - H264DSPContext hdsp; 1.5555 - H264PredContext hpc; 1.5556 - MBRecState *mrs; 1.5557 - RingLineEntry *rle; 1.5558 - uint8_t *scratchpad_y; 1.5559 - uint8_t *scratchpad_cb; 1.5560 - uint8_t *scratchpad_cr; 1.5561 - int linesize; 1.5562 - int uvlinesize; 1.5563 - int mb_width; 1.5564 - int mb_height; 1.5565 - int mb_stride; 1.5566 - int b_stride; 1.5567 - int width; 1.5568 - int height; 1.5569 - int block_offset[16 + 8]; 1.5570 -} MBRecContext; 1.5571 -typedef struct OutputContext 1.5572 + char __size[56]; 1.5573 + long int __align; 1.5574 +}; 1.5575 +typedef union mcc_union_anon_25 pthread_attr_t; 1.5576 +typedef unsigned long int pthread_t; 1.5577 +struct SuperMBContext; 1.5578 +typedef struct SuperMBContext SuperMBContext; 1.5579 +typedef long int __time_t; 1.5580 +struct timespec 1.5581 { 1.5582 - int bit_buffer_size; 1.5583 - uint8_t *bit_buffer; 1.5584 - uint64_t video_size; 1.5585 - int frame_number; 1.5586 - DecodedPicture *delayed_pic[33]; 1.5587 - int dp_cnt; 1.5588 -} OutputContext; 1.5589 -typedef struct 1.5590 + __time_t tv_sec; 1.5591 + long int tv_nsec; 1.5592 +}; 1.5593 +struct H264Context 1.5594 { 1.5595 - pthread_mutex_t lock; 1.5596 - pthread_cond_t cond; 1.5597 - SliceBufferEntry **queue; 1.5598 - int size; 1.5599 - int cnt; 1.5600 - int fi; 1.5601 - int fo; 1.5602 -} SliceBufferQueue; 1.5603 -typedef struct 1.5604 + SliceBufferQueue sb_q[6]; 1.5605 + RingLineQueue rl_q; 1.5606 + pthread_mutex_t lock[6]; 1.5607 + pthread_cond_t cond[6]; 1.5608 + pthread_mutex_t task_lock; 1.5609 + pthread_cond_t task_cond; 1.5610 + pthread_attr_t ed_rec_attr[80]; 1.5611 + pthread_t ed_rec_thr[80]; 1.5612 + int init_threads; 1.5613 + pthread_mutex_t ilock; 1.5614 + pthread_cond_t icond; 1.5615 + const char *file_name; 1.5616 + int profile; 1.5617 + int start; 1.5618 + int touch_start; 1.5619 + int setaff; 1.5620 + int touch_done; 1.5621 + int rl_side_touch; 1.5622 + int statmbd; 1.5623 + pthread_mutex_t slock; 1.5624 + pthread_cond_t scond; 1.5625 + pthread_mutex_t tlock; 1.5626 + pthread_cond_t tcond; 1.5627 + pthread_mutex_t tdlock; 1.5628 + pthread_cond_t tdcond; 1.5629 + int ed_ppe_threads; 1.5630 + int threads; 1.5631 + int smt; 1.5632 + int acdpb_cnt; 1.5633 + int reldpb_cnt; 1.5634 + int sb_size; 1.5635 + SliceBufferEntry *sb; 1.5636 + int free_sb_cnt; 1.5637 + int slice_bufs; 1.5638 + int max_dpb_cnt; 1.5639 + DecodedPicture *dpb; 1.5640 + int free_dpb_cnt; 1.5641 + int ifile; 1.5642 + int ofile; 1.5643 + int frame_width; 1.5644 + int frame_height; 1.5645 + int num_frames; 1.5646 + int width; 1.5647 + int height; 1.5648 + int mb_width; 1.5649 + int mb_height; 1.5650 + int mb_stride; 1.5651 + int b4_stride; 1.5652 + int b_stride; 1.5653 + int smb_height; 1.5654 + int smb_width; 1.5655 + pthread_mutex_t smb_lock; 1.5656 + pthread_cond_t sdl_cond; 1.5657 + pthread_mutex_t sdl_lock; 1.5658 + SuperMBContext *smbc; 1.5659 + int wave_order; 1.5660 + int static_3d; 1.5661 + int pipe_bufs; 1.5662 + uint8_t zigzag_scan[16]; 1.5663 + uint8_t zigzag_scan8x8[64]; 1.5664 + int verbose; 1.5665 + int no_mbd; 1.5666 + int display; 1.5667 + int fullscreen; 1.5668 + int quit; 1.5669 + struct timespec start_time[4]; 1.5670 + struct timespec end_time[4]; 1.5671 + double last_time[4]; 1.5672 + double total_time[4]; 1.5673 +}; 1.5674 +void av_read_frame_internal(ParserContext *pc, GetBitContext *gb); 1.5675 +int decode_nal_units(NalContext *n, H264Slice *s, GetBitContext *gb); 1.5676 +static void parse_task(H264Context *h, ParserContext *pc, NalContext *nc, SliceBufferEntry *sbe) 1.5677 { 1.5678 - pthread_mutex_t wslock; 1.5679 - pthread_cond_t wscond; 1.5680 - pthread_mutex_t swlock; 1.5681 - pthread_cond_t swcond; 1.5682 - RingLineEntry **queue; 1.5683 - int size; 1.5684 - int ready; 1.5685 - int free; 1.5686 - int fi; 1.5687 - int fo; 1.5688 -} RingLineQueue; 1.5689 -typedef struct H264Context 1.5690 + H264Slice *s; 1.5691 + if (!(*sbe).initialized) 1.5692 + { 1.5693 + { 1.5694 + init_sb_entry(h, sbe); 1.5695 + (*sbe).lines_total = (*h).mb_height; 1.5696 + } 1.5697 + } 1.5698 + av_read_frame_internal(pc, &(*sbe).gb); 1.5699 + s = &(*sbe).slice; 1.5700 + decode_nal_units(nc, s, &(*sbe).gb); 1.5701 +} 1.5702 +struct EntropyContext; 1.5703 +typedef struct EntropyContext EntropyContext; 1.5704 +struct EntropyContext 1.5705 { 1.5706 - SliceBufferQueue sb_q[STAGES]; 1.5707 - RingLineQueue rl_q; 1.5708 - pthread_mutex_t lock[STAGES]; 1.5709 - pthread_cond_t cond[STAGES]; 1.5710 - pthread_mutex_t task_lock; 1.5711 - pthread_cond_t task_cond; 1.5712 - pthread_attr_t ed_rec_attr[80]; 1.5713 - pthread_t ed_rec_thr[80]; 1.5714 - int init_threads; 1.5715 - pthread_mutex_t ilock; 1.5716 - pthread_cond_t icond; 1.5717 - const char *file_name; 1.5718 - int profile; 1.5719 - int start; 1.5720 - int touch_start; 1.5721 - int setaff; 1.5722 - int touch_done; 1.5723 - int rl_side_touch; 1.5724 - int statmbd; 1.5725 - pthread_mutex_t slock; 1.5726 - pthread_cond_t scond; 1.5727 - pthread_mutex_t tlock; 1.5728 - pthread_cond_t tcond; 1.5729 - pthread_mutex_t tdlock; 1.5730 - pthread_cond_t tdcond; 1.5731 - int ed_ppe_threads; 1.5732 - int threads; 1.5733 - int smt; 1.5734 - int acdpb_cnt; 1.5735 - int reldpb_cnt; 1.5736 - int sb_size; 1.5737 - SliceBufferEntry *sb; 1.5738 - int free_sb_cnt; 1.5739 - int slice_bufs; 1.5740 - int max_dpb_cnt; 1.5741 - DecodedPicture *dpb; 1.5742 - int free_dpb_cnt; 1.5743 - int ifile; 1.5744 - int ofile; 1.5745 - int frame_width; 1.5746 - int frame_height; 1.5747 - int num_frames; 1.5748 - int width; 1.5749 - int height; 1.5750 - int mb_width; 1.5751 - int mb_height; 1.5752 - int mb_stride; 1.5753 - int b4_stride; 1.5754 - int b_stride; 1.5755 - int smb_height; 1.5756 - int smb_width; 1.5757 - pthread_mutex_t smb_lock; 1.5758 - pthread_cond_t sdl_cond; 1.5759 - pthread_mutex_t sdl_lock; 1.5760 - SuperMBContext *smbc; 1.5761 - int wave_order; 1.5762 - int static_3d; 1.5763 - int pipe_bufs; 1.5764 - uint8_t zigzag_scan[16]; 1.5765 - uint8_t zigzag_scan8x8[64]; 1.5766 - int verbose; 1.5767 - int no_mbd; 1.5768 - int display; 1.5769 - int fullscreen; 1.5770 - int quit; 1.5771 - struct timespec start_time[PROFILE_STAGES]; 1.5772 - struct timespec end_time[PROFILE_STAGES]; 1.5773 - double last_time[PROFILE_STAGES]; 1.5774 - double total_time[PROFILE_STAGES]; 1.5775 -} H264Context; 1.5776 -void av_read_frame_internal(ParserContext *pc, GetBitContext *gb); 1.5777 -ParserContext *get_parse_context(int ifile); 1.5778 -void free_parse_context(ParserContext *pc); 1.5779 -int decode_nal_units(NalContext *n, H264Slice *s, GetBitContext *gb); 1.5780 -NalContext *get_nal_context(int width, int height); 1.5781 -void free_nal_context(NalContext *nc); 1.5782 -int ff_h264_decode_mb_cabac(EntropyContext *ec, H264Slice *s, CABACContext *c); 1.5783 + CABACContext c; 1.5784 + H264Mb *m; 1.5785 + int top_cbp; 1.5786 + int left_cbp; 1.5787 + int neighbor_transform_size; 1.5788 + uint32_t top_type; 1.5789 + uint32_t left_type; 1.5790 + uint32_t topright_type; 1.5791 + uint32_t topleft_type; 1.5792 + int curr_qscale; 1.5793 + int chroma_qp[2]; 1.5794 + int last_qscale_diff; 1.5795 + uint32_t dequant4_buffer[6][52][16]; 1.5796 + uint32_t dequant8_buffer[2][52][64]; 1.5797 + uint32_t (*dequant4_coeff[6])[16]; 1.5798 + uint32_t (*dequant8_coeff[2])[64]; 1.5799 + uint8_t (*non_zero_count_top)[8]; 1.5800 + uint8_t (*non_zero_count)[8]; 1.5801 + uint8_t (*non_zero_count_row[2])[8]; 1.5802 + __attribute__((aligned(8))) uint8_t non_zero_count_left[8]; 1.5803 + uint8_t (*mvd_top[2])[2]; 1.5804 + uint8_t (*mvd[2])[2]; 1.5805 + uint8_t (*mvd_table[2][2])[2]; 1.5806 + uint8_t *direct_top; 1.5807 + uint8_t *direct; 1.5808 + uint8_t *direct_table[2]; 1.5809 + uint8_t *chroma_pred_mode_top; 1.5810 + uint8_t *chroma_pred_mode; 1.5811 + uint8_t *chroma_pred_mode_table[2]; 1.5812 + uint16_t *cbp_top; 1.5813 + uint16_t *cbp; 1.5814 + uint16_t *cbp_table[2]; 1.5815 + int8_t *qscale_top; 1.5816 + int8_t *qscale; 1.5817 + int8_t *qscale_table[2]; 1.5818 + int8_t *ref_index_top[2]; 1.5819 + int8_t *ref_index[2]; 1.5820 + int8_t *ref_index_table[2][2]; 1.5821 + uint32_t *mb_type_top; 1.5822 + uint32_t *mb_type; 1.5823 + uint32_t *mb_type_table[2]; 1.5824 + int b_stride; 1.5825 + int mb_stride; 1.5826 + int mb_width; 1.5827 + int mb_height; 1.5828 + uint8_t *zigzag_scan; 1.5829 + uint8_t *zigzag_scan8x8; 1.5830 + uint8_t direct_cache[40]; 1.5831 + __attribute__((aligned(8))) int8_t intra4x4_pred_mode_cache[40]; 1.5832 + __attribute__((aligned(16))) int16_t mv_cache[2][40][2]; 1.5833 + __attribute__((aligned(8))) int8_t ref_cache[2][40]; 1.5834 + __attribute__((aligned(8))) uint8_t non_zero_count_cache[48]; 1.5835 + __attribute__((aligned(16))) uint8_t mvd_cache[2][40][2]; 1.5836 +}; 1.5837 +void init_dequant_tables(H264Slice *s, EntropyContext *ec); 1.5838 +void ff_init_cabac_decoder(CABACContext *c, const uint8_t *buf, int buf_size); 1.5839 void ff_h264_init_cabac_states(EntropyContext *ec, H264Slice *s, CABACContext *c); 1.5840 int init_entropy_buf(EntropyContext *ec, H264Slice *s, int line); 1.5841 -EntropyContext *get_entropy_context(H264Context *h); 1.5842 -void init_dequant_tables(H264Slice *s, EntropyContext *ec); 1.5843 -void free_entropy_context(EntropyContext *ec); 1.5844 -MBRecContext *get_mbrec_context(H264Context *h); 1.5845 -void free_mbrec_context(MBRecContext *d); 1.5846 -void h264_decode_mb_internal(MBRecContext *d, MBRecState *mrs, H264Slice *s, H264Mb *m); 1.5847 -void init_mbrec_context(MBRecContext *mrc, MBRecState *mrs, H264Slice *s, int line); 1.5848 -void ff_h264_pred_direct_motion_rec(MBRecContext *mrc, MBRecState *mrs, H264Slice *s, int *mb_type); 1.5849 -int pred_motion_mb_rec(MBRecContext *mrc, MBRecState *mrs, H264Slice *s, H264Mb *m); 1.5850 -void start_timer(H264Context *h, int stage); 1.5851 -void stop_timer(H264Context *h, int stage); 1.5852 -void init_sb_entry(H264Context *h, SliceBufferEntry *sbe); 1.5853 -void free_sb_entry(SliceBufferEntry *sb); 1.5854 -SliceBufferEntry *get_sb_entry(H264Context *h); 1.5855 -void release_sb_entry(H264Context *h, SliceBufferEntry *sb); 1.5856 -DecodedPicture *get_dpb_entry(H264Context *h, H264Slice *s); 1.5857 -void release_dpb_entry(H264Context *h, DecodedPicture *pic, int mode); 1.5858 -void draw_edges(MBRecContext *d, H264Slice *s, int line); 1.5859 -int ff_init_slice(NalContext *n, H264Slice *s); 1.5860 -void free_picture(PictureInfo *pic); 1.5861 -void free_dp(DecodedPicture *pic); 1.5862 -void av_start_timer(); 1.5863 -int copyEDtoH264Slice(H264Slice *ms, H264Slice *es); 1.5864 -void print_report(int frame_number, uint64_t video_size, int is_last_report, int verbose); 1.5865 -int ff_alloc_picture_info(NalContext *n, H264Slice *s, PictureInfo *pic); 1.5866 -DecodedPicture *output_frame(H264Context *h, OutputContext *oc, DecodedPicture *pic, int fd, int frame_width, int frame_height); 1.5867 -OutputContext *get_output_context(H264Context *h); 1.5868 -void free_output_context(OutputContext *oc); 1.5869 -void freeSuperMBContext(SuperMBContext *smbc); 1.5870 -SuperMBContext *getSuperMBContext(H264Context *h, int smb_width, int smb_height); 1.5871 -void release_smbc(H264Context *h, SuperMBContext *smbc); 1.5872 -SuperMBContext *acquire_smbc(H264Context *h); 1.5873 -static inline int get_chroma_qp(H264Slice *s, int t, int qscale) 1.5874 +struct H264Mb 1.5875 { 1.5876 - return s->pps.chroma_qp_table[t][qscale]; 1.5877 -} 1.5878 -static void parse_task(H264Context *h, ParserContext *pc, NalContext *nc, SliceBufferEntry *sbe) 1.5879 -{ 1.5880 - H264Slice *s; 1.5881 - if (!sbe->initialized) 1.5882 + int16_t mb_x; 1.5883 + int16_t mb_y; 1.5884 + int32_t mb_type; 1.5885 + uint16_t cbp; 1.5886 + int8_t qscale_mb_xy; 1.5887 + int8_t qscale_left_mb_xy; 1.5888 + int8_t qscale_top_mb_xy; 1.5889 + __attribute__((aligned(8))) uint16_t sub_mb_type[4]; 1.5890 + __attribute__((aligned(8))) uint8_t non_zero_count[24]; 1.5891 + __attribute__((aligned(16))) int16_t mb[384]; 1.5892 + union 1.5893 + { 1.5894 + struct 1.5895 { 1.5896 - init_sb_entry(h, sbe); 1.5897 - sbe->lines_total = h->mb_height; 1.5898 - } 1.5899 - av_read_frame_internal(pc, &sbe->gb); 1.5900 - s = &sbe->slice; 1.5901 - decode_nal_units(nc, s, &sbe->gb); 1.5902 -} 1.5903 + __attribute__((aligned(8))) int8_t ref_index[2][4]; 1.5904 + __attribute__((aligned(16))) int16_t mvd[2][16][2]; 1.5905 + }; 1.5906 + struct 1.5907 + { 1.5908 + __attribute__((aligned(8))) int8_t intra4x4_pred_mode[16]; 1.5909 + int8_t chroma_pred_mode; 1.5910 + int8_t intra16x16_pred_mode; 1.5911 + }; 1.5912 + }; 1.5913 + __attribute__((aligned(8))) uint8_t top_border[32]; 1.5914 + __attribute__((aligned(8))) uint8_t top_border_next[8]; 1.5915 + __attribute__((aligned(8))) uint8_t left_border[35]; 1.5916 + int8_t intra4x4_pred_mode_left[4]; 1.5917 +}; 1.5918 +int ff_h264_decode_mb_cabac(EntropyContext *ec, H264Slice *s, CABACContext *c); 1.5919 static void decode_slice_entropy_task(H264Context *h, EntropyContext *ec, SliceBufferEntry *sbe) 1.5920 { 1.5921 - int i, j; 1.5922 - H264Slice *s = &sbe->slice; 1.5923 - GetBitContext *gb = &sbe->gb; 1.5924 - H264Mb *mbs = sbe->mbs; 1.5925 - CABACContext *c = &ec->c; 1.5926 - if (!s->pps.cabac) 1.5927 + int j; 1.5928 + int i; 1.5929 + H264Slice *s = &(*sbe).slice; 1.5930 + GetBitContext *gb = &(*sbe).gb; 1.5931 + H264Mb *mbs = (*sbe).mbs; 1.5932 + CABACContext *c = &(*ec).c; 1.5933 + if (!(*s).pps.cabac) 1.5934 { 1.5935 + { 1.5936 av_log(16, "Only cabac encoded streams are supported\n"); 1.5937 - return; 1.5938 + return ; 1.5939 + } 1.5940 } 1.5941 - init_dequant_tables(s, ec); 1.5942 - ec->curr_qscale = s->qscale; 1.5943 - ec->last_qscale_diff = 0; 1.5944 - ec->chroma_qp[0] = get_chroma_qp((H264Slice *) s, 0, s->qscale); 1.5945 - ec->chroma_qp[1] = get_chroma_qp((H264Slice *) s, 1, s->qscale); 1.5946 - align_get_bits(gb); 1.5947 - ff_init_cabac_decoder(c, gb->buffer + get_bits_count(gb) / 8, (get_bits_left(gb) + 7) / 8); 1.5948 - ff_h264_init_cabac_states(ec, s, c); 1.5949 - for (j = 0; 1.5950 - j < ec->mb_height; 1.5951 - j++) 1.5952 + init_dequant_tables(s, ec); 1.5953 + (*ec).curr_qscale = (*s).qscale; 1.5954 + (*ec).last_qscale_diff = 0; 1.5955 + (*ec).chroma_qp[0] = get_chroma_qp((H264Slice *)s, 0, (*s).qscale); 1.5956 + (*ec).chroma_qp[1] = get_chroma_qp((H264Slice *)s, 1, (*s).qscale); 1.5957 + align_get_bits(gb); 1.5958 + ff_init_cabac_decoder(c, (*gb).buffer + get_bits_count(gb) / 8, (get_bits_left(gb) + 7) / 8); 1.5959 + ff_h264_init_cabac_states(ec, s, c); 1.5960 + for (j = 0; j < (*ec).mb_height; j++) 1.5961 { 1.5962 + { 1.5963 init_entropy_buf(ec, s, j); 1.5964 - for (i = 0; 1.5965 - i < ec->mb_width; 1.5966 - i++) 1.5967 + for (i = 0; i < (*ec).mb_width; i++) 1.5968 + { 1.5969 + { 1.5970 + int ret; 1.5971 + int eos; 1.5972 + H264Mb *m = &mbs[i + j * (*ec).mb_width]; 1.5973 + (*m).mb_x = i; 1.5974 + (*m).mb_y = j; 1.5975 + (*ec).m = m; 1.5976 + ret = ff_h264_decode_mb_cabac(ec, s, c); 1.5977 + eos = get_cabac_terminate(c); 1.5978 + (void)eos; 1.5979 + if (ret < 0 || (*c).bytestream > (*c).bytestream_end + 2) 1.5980 + { 1.5981 + { 1.5982 + av_log(16, "error while decoding MB %d %d, bytestream (%td)\n", (*m).mb_x, (*m).mb_y, (*c).bytestream_end - (*c).bytestream); 1.5983 + return ; 1.5984 + } 1.5985 + } 1.5986 + } 1.5987 + } 1.5988 + } 1.5989 + } 1.5990 +} 1.5991 +struct MBRecContext; 1.5992 +typedef struct MBRecContext MBRecContext; 1.5993 +struct SuperMBTask; 1.5994 +typedef struct SuperMBTask SuperMBTask; 1.5995 +struct SuperMBContext 1.5996 +{ 1.5997 + int nsmb_width; 1.5998 + int nsmb_height; 1.5999 + int nsmb_3dheight; 1.6000 + int smb_width; 1.6001 + int smb_height; 1.6002 + int refcount; 1.6003 + int index; 1.6004 + SuperMBTask *smbs[2]; 1.6005 +}; 1.6006 +struct MBRecState; 1.6007 +typedef struct MBRecState MBRecState; 1.6008 +void init_mbrec_context(MBRecContext *mrc, MBRecState *mrs, H264Slice *s, int line); 1.6009 +struct MBRecState 1.6010 +{ 1.6011 + int8_t *ref_index_top[2]; 1.6012 + int8_t *ref_index[2]; 1.6013 + int16_t (*motion_val_top[2])[2]; 1.6014 + int16_t (*motion_val[2])[2]; 1.6015 + uint32_t *mb_type_top; 1.6016 + uint32_t *mb_type; 1.6017 + int8_t *list1_ref_index[2]; 1.6018 + int16_t (*list1_motion_val[2])[2]; 1.6019 + uint32_t *list1_mb_type; 1.6020 + int8_t *intra4x4_pred_mode_top; 1.6021 + int8_t *intra4x4_pred_mode; 1.6022 + int8_t *non_zero_count_top; 1.6023 + int8_t *non_zero_count; 1.6024 + unsigned int topleft_samples_available; 1.6025 + unsigned int topright_samples_available; 1.6026 + unsigned int top_samples_available; 1.6027 + unsigned int left_samples_available; 1.6028 + int top_type; 1.6029 + int left_type; 1.6030 + __attribute__((aligned(8))) int8_t intra4x4_pred_mode_cache[40]; 1.6031 + __attribute__((aligned(16))) int16_t mv_cache[2][40][2]; 1.6032 + __attribute__((aligned(8))) int8_t ref_cache[2][40]; 1.6033 + __attribute__((aligned(8))) uint8_t non_zero_count_cache[48]; 1.6034 + __attribute__((aligned(16))) uint8_t mvd_cache[2][40][2]; 1.6035 + __attribute__((aligned(8))) int16_t bS[2][4][4]; 1.6036 + uint8_t edges[2]; 1.6037 +}; 1.6038 +typedef short int DCTELEM; 1.6039 +typedef void (*op_pixels_func)(uint8_t *, const uint8_t *, int, int); 1.6040 +typedef void (*qpel_mc_func)(uint8_t *, uint8_t *, int); 1.6041 +typedef void (*h264_chroma_mc_func)(uint8_t *, uint8_t *, int, int, int, int); 1.6042 +struct DSPContext 1.6043 +{ 1.6044 + void (*get_pixels)(DCTELEM *, const uint8_t *, int); 1.6045 + void (*diff_pixels)(DCTELEM *, const uint8_t *, const uint8_t *, int); 1.6046 + void (*put_pixels_clamped)(const DCTELEM *, uint8_t *, int); 1.6047 + void (*put_signed_pixels_clamped)(const DCTELEM *, uint8_t *, int); 1.6048 + void (*put_pixels_nonclamped)(const DCTELEM *, uint8_t *, int); 1.6049 + void (*add_pixels_clamped)(const DCTELEM *, uint8_t *, int); 1.6050 + void (*add_pixels8)(uint8_t *, DCTELEM *, int); 1.6051 + void (*add_pixels4)(uint8_t *, DCTELEM *, int); 1.6052 + void (*clear_block)(DCTELEM *); 1.6053 + void (*clear_blocks)(DCTELEM *); 1.6054 + void (*put_pixels_tab[4][4])(uint8_t *, const uint8_t *, int, int); 1.6055 + void (*avg_pixels_tab[4][4])(uint8_t *, const uint8_t *, int, int); 1.6056 + void (*put_no_rnd_pixels_tab[4][4])(uint8_t *, const uint8_t *, int, int); 1.6057 + void (*avg_no_rnd_pixels_tab[4][4])(uint8_t *, const uint8_t *, int, int); 1.6058 + void (*put_no_rnd_pixels_l2[2])(uint8_t *, const uint8_t *, const uint8_t *, int, int); 1.6059 + void (*put_qpel_pixels_tab[2][16])(uint8_t *, uint8_t *, int); 1.6060 + void (*avg_qpel_pixels_tab[2][16])(uint8_t *, uint8_t *, int); 1.6061 + void (*put_no_rnd_qpel_pixels_tab[2][16])(uint8_t *, uint8_t *, int); 1.6062 + void (*avg_no_rnd_qpel_pixels_tab[2][16])(uint8_t *, uint8_t *, int); 1.6063 + void (*put_mspel_pixels_tab[8])(uint8_t *, uint8_t *, int); 1.6064 + void (*put_h264_chroma_pixels_tab[3])(uint8_t *, uint8_t *, int, int, int, int); 1.6065 + void (*avg_h264_chroma_pixels_tab[3])(uint8_t *, uint8_t *, int, int, int, int); 1.6066 + void (*put_no_rnd_vc1_chroma_pixels_tab[3])(uint8_t *, uint8_t *, int, int, int, int); 1.6067 + void (*avg_no_rnd_vc1_chroma_pixels_tab[3])(uint8_t *, uint8_t *, int, int, int, int); 1.6068 + void (*put_h264_qpel_pixels_tab[4][16])(uint8_t *, uint8_t *, int); 1.6069 + void (*avg_h264_qpel_pixels_tab[4][16])(uint8_t *, uint8_t *, int); 1.6070 + void (*put_2tap_qpel_pixels_tab[4][16])(uint8_t *, uint8_t *, int); 1.6071 + void (*avg_2tap_qpel_pixels_tab[4][16])(uint8_t *, uint8_t *, int); 1.6072 + void (*fdct)(DCTELEM *); 1.6073 + void (*fdct248)(DCTELEM *); 1.6074 + void (*idct)(DCTELEM *); 1.6075 + void (*idct_put)(uint8_t *, int, DCTELEM *); 1.6076 + void (*idct_add)(uint8_t *, int, DCTELEM *); 1.6077 + void (*draw_edges)(uint8_t *, int, int, int, int); 1.6078 + void (*prefetch)(void *, int, int); 1.6079 +}; 1.6080 +typedef struct DSPContext DSPContext; 1.6081 +typedef void (*h264_weight_func)(uint8_t *, int, int, int, int); 1.6082 +typedef void (*h264_biweight_func)(uint8_t *, uint8_t *, int, int, int, int, int); 1.6083 +struct H264DSPContext 1.6084 +{ 1.6085 + void (*weight_h264_pixels_tab[10])(uint8_t *, int, int, int, int); 1.6086 + void (*biweight_h264_pixels_tab[10])(uint8_t *, uint8_t *, int, int, int, int, int); 1.6087 + void (*h264_v_loop_filter_luma)(uint8_t *, int, int, int, int8_t *); 1.6088 + void (*h264_h_loop_filter_luma)(uint8_t *, int, int, int, int8_t *); 1.6089 + void (*h264_v_loop_filter_luma_intra)(uint8_t *, int, int, int); 1.6090 + void (*h264_h_loop_filter_luma_intra)(uint8_t *, int, int, int); 1.6091 + void (*h264_v_loop_filter_chroma)(uint8_t *, int, int, int, int8_t *); 1.6092 + void (*h264_h_loop_filter_chroma)(uint8_t *, int, int, int, int8_t *); 1.6093 + void (*h264_v_loop_filter_chroma_intra)(uint8_t *, int, int, int); 1.6094 + void (*h264_h_loop_filter_chroma_intra)(uint8_t *, int, int, int); 1.6095 + void (*h264_loop_filter_strength)(int16_t [2][4][4], uint8_t [40], int8_t [2][40], int16_t [2][40][2], int, int, int, int, int, int); 1.6096 + void (*h264_idct_add)(uint8_t *, DCTELEM *, int); 1.6097 + void (*h264_idct8_add)(uint8_t *, DCTELEM *, int); 1.6098 + void (*h264_idct_dc_add)(uint8_t *, DCTELEM *, int); 1.6099 + void (*h264_idct8_dc_add)(uint8_t *, DCTELEM *, int); 1.6100 + void (*h264_dct)(DCTELEM [4][4]); 1.6101 + void (*h264_idct_add16)(uint8_t *, const int *, DCTELEM *, int, const uint8_t [48]); 1.6102 + void (*h264_idct8_add4)(uint8_t *, const int *, DCTELEM *, int, const uint8_t [48]); 1.6103 + void (*h264_idct_add8)(uint8_t **, const int *, DCTELEM *, int, const uint8_t [48]); 1.6104 + void (*h264_idct_add16intra)(uint8_t *, const int *, DCTELEM *, int, const uint8_t [48]); 1.6105 + void (*(*qpel_put)[16])(uint8_t *, uint8_t *, int); 1.6106 + void (*(*qpel_avg)[16])(uint8_t *, uint8_t *, int); 1.6107 +}; 1.6108 +typedef struct H264DSPContext H264DSPContext; 1.6109 +struct H264PredContext 1.6110 +{ 1.6111 + void (*pred4x4[15])(uint8_t *, uint8_t *, int); 1.6112 + void (*pred8x8l[12])(uint8_t *, int, int, int); 1.6113 + void (*pred8x8[11])(uint8_t *, int); 1.6114 + void (*pred16x16[7])(uint8_t *, int); 1.6115 + void (*pred4x4_add[2])(uint8_t *, const DCTELEM *, int); 1.6116 + void (*pred8x8l_add[2])(uint8_t *, const DCTELEM *, int); 1.6117 + void (*pred8x8_add[3])(uint8_t *, const int *, const DCTELEM *, int); 1.6118 + void (*pred16x16_add[3])(uint8_t *, const int *, const DCTELEM *, int); 1.6119 +}; 1.6120 +typedef struct H264PredContext H264PredContext; 1.6121 +struct MBRecContext 1.6122 +{ 1.6123 + DSPContext dsp; 1.6124 + H264DSPContext hdsp; 1.6125 + H264PredContext hpc; 1.6126 + MBRecState *mrs; 1.6127 + RingLineEntry *rle; 1.6128 + uint8_t *scratchpad_y; 1.6129 + uint8_t *scratchpad_cb; 1.6130 + uint8_t *scratchpad_cr; 1.6131 + int linesize; 1.6132 + int uvlinesize; 1.6133 + int mb_width; 1.6134 + int mb_height; 1.6135 + int mb_stride; 1.6136 + int b_stride; 1.6137 + int width; 1.6138 + int height; 1.6139 + int block_offset[24]; 1.6140 +}; 1.6141 +void h264_decode_mb_internal(MBRecContext *d, MBRecState *mrs, H264Slice *s, H264Mb *m); 1.6142 +static void decode_super_mb_block(MBRecContext *d, H264Slice *s, SuperMBContext *smbc, H264Mb *mbs, int smb_x, int smb_y) 1.6143 +{ 1.6144 + MBRecState mrs; 1.6145 + for (int k = 0, i = smb_y; i < smb_y + (*smbc).smb_height; (i++, k++)) 1.6146 + { 1.6147 + { 1.6148 + init_mbrec_context(d, &mrs, s, i); 1.6149 + for (int j = smb_x - k; j < smb_x - k + (*smbc).smb_width; j++) 1.6150 + { 1.6151 + { 1.6152 + if ((i < (*d).mb_height && j >= 0) && j < (*d).mb_width) 1.6153 + { 1.6154 + { 1.6155 + h264_decode_mb_internal(d, &mrs, s, &mbs[i * (*d).mb_width + j]); 1.6156 + } 1.6157 + } 1.6158 + } 1.6159 + } 1.6160 + } 1.6161 + } 1.6162 +} 1.6163 +struct SuperMBTask 1.6164 +{ 1.6165 + int smb_x; 1.6166 + int smb_y; 1.6167 +}; 1.6168 +static void decode_super_mb_task(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc, SuperMBTask *ml, SuperMBTask *mur, SuperMBTask *m) 1.6169 +{ 1.6170 + H264Slice *s = &(*sbe).slice; 1.6171 + H264Mb *mbs = (*sbe).mbs; 1.6172 + decode_super_mb_block(d, s, smbc, mbs, (*m).smb_x, (*m).smb_y); 1.6173 +} 1.6174 +void draw_edges(MBRecContext *d, H264Slice *s, int line); 1.6175 +static void draw_edges_task(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc, SuperMBTask *sm, int line) 1.6176 +{ 1.6177 + H264Slice *s = &(*sbe).slice; 1.6178 + for (int i = line * (*smbc).smb_height; i < (line + 1) * (*smbc).smb_height && i < (*d).mb_height; i++) 1.6179 + { 1.6180 + draw_edges(d, s, i); 1.6181 + } 1.6182 +} 1.6183 +SuperMBContext *acquire_smbc(H264Context *h); 1.6184 +enum mcc_enum_anon_8 1.6185 +{ 1.6186 + NANOS_OK = 0, 1.6187 + NANOS_UNKNOWN_ERR = 1, 1.6188 + NANOS_UNIMPLEMENTED = 2, 1.6189 + NANOS_ENOMEM = 3, 1.6190 + NANOS_INVALID_PARAM = 4 1.6191 +}; 1.6192 +typedef enum mcc_enum_anon_8 nanos_err_t; 1.6193 +extern nanos_err_t nanos_in_final(_Bool *result); 1.6194 +struct mcc_struct_anon_20 1.6195 +{ 1.6196 + void (*outline)(void *); 1.6197 +}; 1.6198 +typedef struct mcc_struct_anon_20 nanos_smp_args_t; 1.6199 +struct nanos_args_0_t 1.6200 +{ 1.6201 + MBRecContext *d; 1.6202 + SliceBufferEntry *sbe; 1.6203 + SuperMBContext *smbc; 1.6204 + SuperMBTask *ml; 1.6205 + SuperMBTask *mur; 1.6206 + SuperMBTask *m; 1.6207 +}; 1.6208 +static void smp_ol_decode_super_mb_task_1(struct nanos_args_0_t *const args); 1.6209 +struct mcc_struct_anon_16 1.6210 +{ 1.6211 + _Bool mandatory_creation:1; 1.6212 + _Bool tied:1; 1.6213 + _Bool clear_chunk:1; 1.6214 + _Bool reserved0:1; 1.6215 + _Bool reserved1:1; 1.6216 + _Bool reserved2:1; 1.6217 + _Bool reserved3:1; 1.6218 + _Bool reserved4:1; 1.6219 +}; 1.6220 +typedef struct mcc_struct_anon_16 nanos_wd_props_t; 1.6221 +typedef unsigned long int size_t; 1.6222 +struct nanos_const_wd_definition_tag 1.6223 +{ 1.6224 + nanos_wd_props_t props; 1.6225 + size_t data_alignment; 1.6226 + size_t num_copies; 1.6227 + size_t num_devices; 1.6228 + size_t num_dimensions; 1.6229 + const char *description; 1.6230 +}; 1.6231 +typedef struct nanos_const_wd_definition_tag nanos_const_wd_definition_t; 1.6232 +struct mcc_struct_anon_19 1.6233 +{ 1.6234 + void *(*factory)(void *); 1.6235 + void *arg; 1.6236 +}; 1.6237 +typedef struct mcc_struct_anon_19 nanos_device_t; 1.6238 +struct nanos_const_wd_definition_1 1.6239 +{ 1.6240 + nanos_const_wd_definition_t base; 1.6241 + nanos_device_t devices[1]; 1.6242 +}; 1.6243 +extern void *nanos_smp_factory(void *args); 1.6244 +struct mcc_struct_anon_17 1.6245 +{ 1.6246 + _Bool is_final:1; 1.6247 + _Bool reserved1:1; 1.6248 + _Bool reserved2:1; 1.6249 + _Bool reserved3:1; 1.6250 + _Bool reserved4:1; 1.6251 + _Bool reserved5:1; 1.6252 + _Bool reserved6:1; 1.6253 + _Bool reserved7:1; 1.6254 +}; 1.6255 +typedef struct mcc_struct_anon_17 nanos_wd_dyn_flags_t; 1.6256 +typedef void *nanos_thread_t; 1.6257 +struct mcc_struct_anon_18 1.6258 +{ 1.6259 + nanos_wd_dyn_flags_t flags; 1.6260 + void *tie_to; 1.6261 + unsigned int priority; 1.6262 +}; 1.6263 +typedef struct mcc_struct_anon_18 nanos_wd_dyn_props_t; 1.6264 +typedef void *nanos_wd_t; 1.6265 +struct mcc_struct_anon_9; 1.6266 +typedef struct mcc_struct_anon_9 nanos_copy_data_internal_t; 1.6267 +typedef nanos_copy_data_internal_t nanos_copy_data_t; 1.6268 +struct mcc_struct_anon_5; 1.6269 +typedef struct mcc_struct_anon_5 nanos_region_dimension_internal_t; 1.6270 +typedef void *nanos_wg_t; 1.6271 +extern nanos_err_t nanos_create_wd_compact(void **wd, nanos_const_wd_definition_t *const_data, nanos_wd_dyn_props_t *dyn_props, size_t data_size, void **data, void *wg, nanos_copy_data_t **copies, nanos_region_dimension_internal_t **dimensions); 1.6272 +extern void *nanos_current_wd(void); 1.6273 +extern void nanos_handle_error(nanos_err_t err); 1.6274 +struct mcc_struct_anon_5 1.6275 +{ 1.6276 + size_t size; 1.6277 + size_t lower_bound; 1.6278 + size_t accessed_length; 1.6279 +}; 1.6280 +typedef nanos_region_dimension_internal_t nanos_region_dimension_t; 1.6281 +struct mcc_struct_anon_6 1.6282 +{ 1.6283 + _Bool input:1; 1.6284 + _Bool output:1; 1.6285 + _Bool can_rename:1; 1.6286 + _Bool concurrent:1; 1.6287 + _Bool commutative:1; 1.6288 +}; 1.6289 +typedef struct mcc_struct_anon_6 nanos_access_type_internal_t; 1.6290 +typedef long int ptrdiff_t; 1.6291 +struct mcc_struct_anon_7 1.6292 +{ 1.6293 + void *address; 1.6294 + nanos_access_type_internal_t flags; 1.6295 + short int dimension_count; 1.6296 + const nanos_region_dimension_internal_t *dimensions; 1.6297 + ptrdiff_t offset; 1.6298 +}; 1.6299 +typedef struct mcc_struct_anon_7 nanos_data_access_internal_t; 1.6300 +typedef nanos_data_access_internal_t nanos_data_access_t; 1.6301 +typedef void *nanos_team_t; 1.6302 +extern nanos_err_t nanos_submit(void *wd, size_t num_data_accesses, nanos_data_access_t *data_accesses, void *team); 1.6303 +typedef void (*nanos_translate_args_t)(void *, void *); 1.6304 +extern nanos_err_t nanos_create_wd_and_run_compact(nanos_const_wd_definition_t *const_data, nanos_wd_dyn_props_t *dyn_props, size_t data_size, void *data, size_t num_data_accesses, nanos_data_access_t *data_accesses, nanos_copy_data_t *copies, nanos_region_dimension_internal_t *dimensions, void (*translate_args)(void *, void *)); 1.6305 +struct nanos_args_1_t 1.6306 +{ 1.6307 + MBRecContext *d; 1.6308 + SliceBufferEntry *sbe; 1.6309 + SuperMBContext *smbc; 1.6310 + SuperMBTask *sm; 1.6311 + int line; 1.6312 +}; 1.6313 +static void smp_ol_draw_edges_task_3(struct nanos_args_1_t *const args); 1.6314 +extern nanos_err_t nanos_wait_on(size_t num_data_accesses, nanos_data_access_t *data_accesses); 1.6315 +void release_smbc(H264Context *h, SuperMBContext *smbc); 1.6316 +static void decode_mb_in_slice(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe) 1.6317 +{ 1.6318 + int j; 1.6319 + int i; 1.6320 + SuperMBTask *sml; 1.6321 + SuperMBTask *smur; 1.6322 + SuperMBContext *smbc = acquire_smbc(h); 1.6323 + int smb_height = (*smbc).nsmb_height; 1.6324 + int smb_width = (*smbc).nsmb_width; 1.6325 + SuperMBTask *smbs = (*smbc).smbs[0]; 1.6326 + SuperMBTask *sm = (void *)0; 1.6327 + for (j = 0; j < smb_height; j++) 1.6328 + { 1.6329 + { 1.6330 + nanos_err_t mcc_err_in_final_1; 1.6331 + _Bool mcc_is_in_final_1; 1.6332 + for (i = 0; i < smb_width; i++) 1.6333 + { 1.6334 + { 1.6335 + nanos_err_t mcc_err_in_final_0; 1.6336 + _Bool mcc_is_in_final_0; 1.6337 + sm = smbs + j * smb_width + i; 1.6338 + sml = sm - (i > 0 ? 1 : 0); 1.6339 + smur = sm + (i < smb_width - 1 && j > 0 ? -smb_width + 1 : 0); 1.6340 + mcc_err_in_final_0 = nanos_in_final(&mcc_is_in_final_0); 1.6341 + { 1.6342 + MBRecContext *mcc_arg_0 = d; 1.6343 + SliceBufferEntry *mcc_arg_1 = sbe; 1.6344 + SuperMBContext *mcc_arg_2 = smbc; 1.6345 + SuperMBTask *mcc_arg_3 = sml; 1.6346 + SuperMBTask *mcc_arg_4 = smur; 1.6347 + SuperMBTask *mcc_arg_5 = sm; 1.6348 + if (mcc_is_in_final_0) 1.6349 + { 1.6350 + decode_super_mb_task(d, sbe, smbc, sml, smur, sm); 1.6351 + } 1.6352 + else 1.6353 + { 1.6354 + { 1.6355 + nanos_wd_dyn_props_t nanos_wd_dyn_props; 1.6356 + struct nanos_args_0_t *ol_args; 1.6357 + nanos_err_t err; 1.6358 + struct nanos_args_0_t imm_args; 1.6359 + static nanos_smp_args_t smp_ol_decode_super_mb_task_1_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_0_t *))&smp_ol_decode_super_mb_task_1 }; 1.6360 + static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_0_t), 0, 1, 0, "decode_super_mb_task" }, { { &nanos_smp_factory, &smp_ol_decode_super_mb_task_1_args } } }; 1.6361 + nanos_wd_dyn_props.tie_to = 0; 1.6362 + nanos_wd_dyn_props.priority = 0; 1.6363 + nanos_wd_dyn_props.flags.is_final = 0; 1.6364 + ol_args = (struct nanos_args_0_t *)0; 1.6365 + void *nanos_wd_ = (void *)0; 1.6366 + err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_0_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0); 1.6367 + if (err != NANOS_OK) 1.6368 + { 1.6369 + nanos_handle_error(err); 1.6370 + } 1.6371 + /* Check pendant writes on subexpressions */ 1.6372 + /* End check pendant writes on subexpressions */ 1.6373 + if (nanos_wd_ != (void *)0) 1.6374 + { 1.6375 + { 1.6376 + (*ol_args).d = mcc_arg_0; 1.6377 + (*ol_args).sbe = mcc_arg_1; 1.6378 + (*ol_args).smbc = mcc_arg_2; 1.6379 + (*ol_args).ml = mcc_arg_3; 1.6380 + (*ol_args).mur = mcc_arg_4; 1.6381 + (*ol_args).m = mcc_arg_5; 1.6382 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } }; 1.6383 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.6384 + nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.6385 + nanos_region_dimension_t dimensions_3[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.6386 + nanos_region_dimension_t dimensions_4[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.6387 + nanos_data_access_t dependences[5] = { { (void *)mcc_arg_0, { 1, 0, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_1, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_3, { 1, 0, 0, 0, 0 }, 1, dimensions_2, 0 }, { (void *)mcc_arg_4, { 1, 0, 0, 0, 0 }, 1, dimensions_3, 0 }, { (void *)mcc_arg_5, { 1, 1, 0, 0, 0 }, 1, dimensions_4, 0 } }; 1.6388 + ; 1.6389 + err = nanos_submit(nanos_wd_, 5, dependences, (void *)0); 1.6390 + if (err != NANOS_OK) 1.6391 + { 1.6392 + nanos_handle_error(err); 1.6393 + } 1.6394 + } 1.6395 + } 1.6396 + else 1.6397 + { 1.6398 + { 1.6399 + imm_args.d = mcc_arg_0; 1.6400 + imm_args.sbe = mcc_arg_1; 1.6401 + imm_args.smbc = mcc_arg_2; 1.6402 + imm_args.ml = mcc_arg_3; 1.6403 + imm_args.mur = mcc_arg_4; 1.6404 + imm_args.m = mcc_arg_5; 1.6405 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } }; 1.6406 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.6407 + nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.6408 + nanos_region_dimension_t dimensions_3[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.6409 + nanos_region_dimension_t dimensions_4[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.6410 + nanos_data_access_t dependences[5] = { { (void *)mcc_arg_0, { 1, 0, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_1, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_3, { 1, 0, 0, 0, 0 }, 1, dimensions_2, 0 }, { (void *)mcc_arg_4, { 1, 0, 0, 0, 0 }, 1, dimensions_3, 0 }, { (void *)mcc_arg_5, { 1, 1, 0, 0, 0 }, 1, dimensions_4, 0 } }; 1.6411 + ; 1.6412 + err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_0_t), &imm_args, 5, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0); 1.6413 + if (err != NANOS_OK) 1.6414 + { 1.6415 + nanos_handle_error(err); 1.6416 + } 1.6417 + } 1.6418 + } 1.6419 + } 1.6420 + } 1.6421 + } 1.6422 + } 1.6423 + } 1.6424 + mcc_err_in_final_1 = nanos_in_final(&mcc_is_in_final_1); 1.6425 { 1.6426 - int eos, ret; 1.6427 - H264Mb *m = &mbs[i + j * ec->mb_width]; 1.6428 - m->mb_x = i; 1.6429 - m->mb_y = j; 1.6430 - ec->m = m; 1.6431 - ret = ff_h264_decode_mb_cabac(ec, s, c); 1.6432 - eos = get_cabac_terminate(c); 1.6433 - (void) eos; 1.6434 - if (ret < 0 || c->bytestream > c->bytestream_end + 2) 1.6435 + MBRecContext *mcc_arg_6 = d; 1.6436 + SliceBufferEntry *mcc_arg_7 = sbe; 1.6437 + SuperMBContext *mcc_arg_8 = smbc; 1.6438 + SuperMBTask *mcc_arg_9 = sm; 1.6439 + int mcc_arg_10 = j; 1.6440 + if (mcc_is_in_final_1) 1.6441 { 1.6442 - av_log(16, "error while decoding MB %d %d, bytestream (%td)\n", m->mb_x, m->mb_y, c->bytestream_end - c->bytestream); 1.6443 - return; 1.6444 + draw_edges_task(d, sbe, smbc, sm, j); 1.6445 + } 1.6446 + else 1.6447 + { 1.6448 + { 1.6449 + nanos_wd_dyn_props_t nanos_wd_dyn_props; 1.6450 + struct nanos_args_1_t *ol_args; 1.6451 + nanos_err_t err; 1.6452 + struct nanos_args_1_t imm_args; 1.6453 + static nanos_smp_args_t smp_ol_draw_edges_task_3_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_1_t *))&smp_ol_draw_edges_task_3 }; 1.6454 + static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_1_t), 0, 1, 0, "draw_edges_task" }, { { &nanos_smp_factory, &smp_ol_draw_edges_task_3_args } } }; 1.6455 + nanos_wd_dyn_props.tie_to = 0; 1.6456 + nanos_wd_dyn_props.priority = 0; 1.6457 + nanos_wd_dyn_props.flags.is_final = 0; 1.6458 + ol_args = (struct nanos_args_1_t *)0; 1.6459 + void *nanos_wd_ = (void *)0; 1.6460 + err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_1_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0); 1.6461 + if (err != NANOS_OK) 1.6462 + { 1.6463 + nanos_handle_error(err); 1.6464 + } 1.6465 + /* Check pendant writes on subexpressions */ 1.6466 + /* End check pendant writes on subexpressions */ 1.6467 + if (nanos_wd_ != (void *)0) 1.6468 + { 1.6469 + { 1.6470 + (*ol_args).d = mcc_arg_6; 1.6471 + (*ol_args).sbe = mcc_arg_7; 1.6472 + (*ol_args).smbc = mcc_arg_8; 1.6473 + (*ol_args).sm = mcc_arg_9; 1.6474 + (*ol_args).line = mcc_arg_10; 1.6475 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } }; 1.6476 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.6477 + nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.6478 + nanos_data_access_t dependences[3] = { { (void *)mcc_arg_6, { 1, 0, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_7, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_9, { 1, 1, 0, 0, 0 }, 1, dimensions_2, 0 } }; 1.6479 + ; 1.6480 + err = nanos_submit(nanos_wd_, 3, dependences, (void *)0); 1.6481 + if (err != NANOS_OK) 1.6482 + { 1.6483 + nanos_handle_error(err); 1.6484 + } 1.6485 + } 1.6486 + } 1.6487 + else 1.6488 + { 1.6489 + { 1.6490 + imm_args.d = mcc_arg_6; 1.6491 + imm_args.sbe = mcc_arg_7; 1.6492 + imm_args.smbc = mcc_arg_8; 1.6493 + imm_args.sm = mcc_arg_9; 1.6494 + imm_args.line = mcc_arg_10; 1.6495 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } }; 1.6496 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.6497 + nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.6498 + nanos_data_access_t dependences[3] = { { (void *)mcc_arg_6, { 1, 0, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_7, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_9, { 1, 1, 0, 0, 0 }, 1, dimensions_2, 0 } }; 1.6499 + ; 1.6500 + err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_1_t), &imm_args, 3, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0); 1.6501 + if (err != NANOS_OK) 1.6502 + { 1.6503 + nanos_handle_error(err); 1.6504 + } 1.6505 + } 1.6506 + } 1.6507 + } 1.6508 } 1.6509 } 1.6510 + } 1.6511 } 1.6512 + { 1.6513 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.6514 + nanos_data_access_t dependences[1] = { { (void *)sm, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 } }; 1.6515 + ; 1.6516 + nanos_err_t err = nanos_wait_on(1, dependences); 1.6517 + if (err != NANOS_OK) 1.6518 + { 1.6519 + nanos_handle_error(err); 1.6520 + } 1.6521 + } 1.6522 + release_smbc(h, smbc); 1.6523 } 1.6524 -static void decode_super_mb_block(MBRecContext *d, H264Slice *s, SuperMBContext *smbc, H264Mb *mbs, int smb_x, int smb_y) 1.6525 +struct DecodedPicture 1.6526 { 1.6527 - MBRecState mrs; 1.6528 - for (int k = 0, i = smb_y; 1.6529 - i < smb_y + smbc->smb_height; 1.6530 - i++ , k++) 1.6531 + int16_t (*motion_val[2])[2]; 1.6532 + int16_t (*motion_val_base[2])[2]; 1.6533 + int8_t *ref_index[2]; 1.6534 + uint32_t *mb_type; 1.6535 + uint32_t *mb_type_base; 1.6536 + int8_t *intra4x4_pred_mode; 1.6537 + int8_t *non_zero_count; 1.6538 + uint8_t *data[3]; 1.6539 + int linesize[3]; 1.6540 + uint8_t *base[3]; 1.6541 + int cpn; 1.6542 + int poc; 1.6543 + int reference; 1.6544 + int key_frame; 1.6545 + int mmco_reset; 1.6546 +}; 1.6547 +struct nanos_lock_t; 1.6548 +typedef struct nanos_lock_t nanos_lock_t; 1.6549 +extern nanos_err_t nanos_set_lock(nanos_lock_t *lock); 1.6550 +enum mcc_enum_anon_7 1.6551 +{ 1.6552 + NANOS_LOCK_FREE = 0, 1.6553 + NANOS_LOCK_BUSY = 1 1.6554 +}; 1.6555 +typedef enum mcc_enum_anon_7 nanos_lock_state_t; 1.6556 +struct nanos_lock_t 1.6557 +{ 1.6558 + volatile nanos_lock_state_t state_; 1.6559 +}; 1.6560 +__attribute__((weak)) nanos_lock_t nanos_critical_lock_dpb = { NANOS_LOCK_FREE }; 1.6561 +DecodedPicture *get_dpb_entry(H264Context *h, H264Slice *s); 1.6562 +extern nanos_err_t nanos_unset_lock(nanos_lock_t *lock); 1.6563 +void release_dpb_entry(H264Context *h, DecodedPicture *pic, int mode); 1.6564 +static void decode_slice_mb_task(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe) 1.6565 +{ 1.6566 + H264Slice *s = &(*sbe).slice; 1.6567 + for (int i = 0; i < 2; i++) 1.6568 { 1.6569 - init_mbrec_context(d, &mrs, s, i); 1.6570 - for (int j = smb_x - k; 1.6571 - j < smb_x - k + smbc->smb_width; 1.6572 - j++) 1.6573 - { 1.6574 - if (i < d->mb_height && j >= 0 && j < d->mb_width) 1.6575 + { 1.6576 + for (int j = 0; j < (*s).ref_count[i]; j++) 1.6577 + { 1.6578 { 1.6579 - h264_decode_mb_internal(d, &mrs, s, &mbs[i * d->mb_width + j]); 1.6580 - } 1.6581 - } 1.6582 - } 1.6583 -} 1.6584 -static void decode_super_mb_task(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc, SuperMBTask *ml, SuperMBTask *mur, SuperMBTask *m) 1.6585 -{ 1.6586 - H264Slice *s = &sbe->slice; 1.6587 - H264Mb *mbs = sbe->mbs; 1.6588 - decode_super_mb_block(d, s, smbc, mbs, m->smb_x, m->smb_y); 1.6589 -} 1.6590 -static void draw_edges_task(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc, SuperMBTask *sm, int line) 1.6591 -{ 1.6592 - H264Slice *s = &sbe->slice; 1.6593 - for (int i = line * smbc->smb_height; 1.6594 - i < (line + 1) * smbc->smb_height && i < d->mb_height; 1.6595 - i++) 1.6596 - draw_edges(d, s, i); 1.6597 -} 1.6598 -typedef struct _nx_data_env_0_t_tag 1.6599 -{ 1.6600 - struct MBRecContext *__tmp_0_0; 1.6601 - SliceBufferEntry *__tmp_1_0; 1.6602 - struct SuperMBContext *__tmp_2_0; 1.6603 - struct SuperMBTask *__tmp_3_0; 1.6604 - struct SuperMBTask *__tmp_4_0; 1.6605 - struct SuperMBTask *__tmp_5_0; 1.6606 -} _nx_data_env_0_t; 1.6607 -static void decode_mb_in_slice(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe); 1.6608 -static void _smp__ol_decode_mb_in_slice_0(_nx_data_env_0_t *const __restrict__ _args) 1.6609 -{ 1.6610 - struct MBRecContext *___tmp_0_0 = _args->__tmp_0_0; 1.6611 - SliceBufferEntry *___tmp_1_0 = _args->__tmp_1_0; 1.6612 - struct SuperMBContext *___tmp_2_0 = _args->__tmp_2_0; 1.6613 - struct SuperMBTask *___tmp_3_0 = _args->__tmp_3_0; 1.6614 - struct SuperMBTask *___tmp_4_0 = _args->__tmp_4_0; 1.6615 - struct SuperMBTask *___tmp_5_0 = _args->__tmp_5_0; 1.6616 - /* Translation is done by the runtime */ 1.6617 - { 1.6618 - decode_super_mb_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0), (___tmp_5_0)); 1.6619 - } 1.6620 -} 1.6621 -typedef struct _nx_data_env_1_t_tag 1.6622 -{ 1.6623 - struct MBRecContext *__tmp_0_0; 1.6624 - SliceBufferEntry *__tmp_1_0; 1.6625 - struct SuperMBContext *__tmp_2_0; 1.6626 - struct SuperMBTask *__tmp_3_0; 1.6627 - int __tmp_4_0; 1.6628 -} _nx_data_env_1_t; 1.6629 -static void decode_mb_in_slice(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe); 1.6630 -static void _smp__ol_decode_mb_in_slice_1(_nx_data_env_1_t *const __restrict__ _args) 1.6631 -{ 1.6632 - struct MBRecContext *___tmp_0_0 = _args->__tmp_0_0; 1.6633 - SliceBufferEntry *___tmp_1_0 = _args->__tmp_1_0; 1.6634 - struct SuperMBContext *___tmp_2_0 = _args->__tmp_2_0; 1.6635 - struct SuperMBTask *___tmp_3_0 = _args->__tmp_3_0; 1.6636 - int ___tmp_4_0 = _args->__tmp_4_0; 1.6637 - /* Translation is done by the runtime */ 1.6638 - { 1.6639 - draw_edges_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0)); 1.6640 - } 1.6641 -} 1.6642 -static void decode_mb_in_slice(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe) 1.6643 -{ 1.6644 - int i, j; 1.6645 - SuperMBContext *smbc = acquire_smbc(h); 1.6646 - int smb_height = smbc->nsmb_height, smb_width = smbc->nsmb_width; 1.6647 - SuperMBTask *smbs = smbc->smbs[0]; 1.6648 - SuperMBTask *sm = ((void *) 0), *sml, *smur; 1.6649 - for (j = 0; 1.6650 - j < smb_height; 1.6651 - j++) 1.6652 - { 1.6653 - for (i = 0; 1.6654 - i < smb_width; 1.6655 - i++) 1.6656 - { 1.6657 - sm = smbs + j * smb_width + i; 1.6658 - sml = sm - ((i > 0) ? 1 : 0); 1.6659 - smur = sm + (((i < smb_width - 1) && (j > 0)) ? - smb_width + 1 : 0); 1.6660 - { 1.6661 - struct MBRecContext *__tmp_0 = d; 1.6662 - SliceBufferEntry *__tmp_1 = sbe; 1.6663 - struct SuperMBContext *__tmp_2 = smbc; 1.6664 - struct SuperMBTask *__tmp_3 = sml; 1.6665 - struct SuperMBTask *__tmp_4 = smur; 1.6666 - struct SuperMBTask *__tmp_5 = sm; 1.6667 + int k; 1.6668 + if ((*s).ref_list_cpn[i][j] == -1) 1.6669 { 1.6670 - /* SMP device descriptor */ 1.6671 - static nanos_smp_args_t _ol_decode_mb_in_slice_0_smp_args = {(void (*)(void *)) _smp__ol_decode_mb_in_slice_0}; 1.6672 - _nx_data_env_0_t *ol_args = (_nx_data_env_0_t *) 0; 1.6673 - nanos_wd_t wd = (nanos_wd_t) 0; 1.6674 - struct nanos_const_wd_definition_local_t 1.6675 - { 1.6676 - nanos_const_wd_definition_t base; 1.6677 - nanos_device_t devices[1]; 1.6678 - }; 1.6679 - static struct nanos_const_wd_definition_local_t _const_def = { 1.6680 + continue; 1.6681 + } 1.6682 + for (k = 0; k < (*h).max_dpb_cnt; k++) 1.6683 + { 1.6684 + { 1.6685 + if ((*h).dpb[k].reference >= 2 && (*h).dpb[k].cpn == (*s).ref_list_cpn[i][j]) 1.6686 + { 1.6687 { 1.6688 - { 1.6689 - 0, 1.6690 - 1, 1.6691 - 0, 1.6692 - 0, 1.6693 - 0, 1.6694 - 0, 1.6695 - 0, 1.6696 - 0 1.6697 - }, 1.6698 - __alignof__(_nx_data_env_0_t), 1.6699 - 0, 1.6700 - 1 1.6701 - }, 1.6702 - {{ 1.6703 - nanos_smp_factory, 1.6704 - &_ol_decode_mb_in_slice_0_smp_args 1.6705 - }} 1.6706 - }; 1.6707 - nanos_wd_dyn_props_t dyn_props = {0}; 1.6708 - nanos_err_t err; 1.6709 - dyn_props.priority = 0; 1.6710 - err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_0_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.6711 - if (err != NANOS_OK) 1.6712 - nanos_handle_error(err); 1.6713 - if (wd != (nanos_wd_t) 0) 1.6714 - { 1.6715 - ol_args->__tmp_0_0 = __tmp_0; 1.6716 - ol_args->__tmp_1_0 = __tmp_1; 1.6717 - ol_args->__tmp_2_0 = __tmp_2; 1.6718 - ol_args->__tmp_3_0 = __tmp_3; 1.6719 - ol_args->__tmp_4_0 = __tmp_4; 1.6720 - ol_args->__tmp_5_0 = __tmp_5; 1.6721 - nanos_dependence_t _dependences[5] = { 1.6722 - { 1.6723 - (void **) &ol_args->__tmp_0_0, 1.6724 - ((char *) ((__tmp_0)) - (char *) ol_args->__tmp_0_0), 1.6725 - { 1.6726 - 1, 1.6727 - 0, 1.6728 - 1, 1.6729 - 0 1.6730 - }, 1.6731 - sizeof(struct MBRecContext) 1.6732 - }, 1.6733 - { 1.6734 - (void **) &ol_args->__tmp_1_0, 1.6735 - ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.6736 - { 1.6737 - 1, 1.6738 - 0, 1.6739 - 1, 1.6740 - 0 1.6741 - }, 1.6742 - sizeof(SliceBufferEntry) 1.6743 - }, 1.6744 - { 1.6745 - (void **) &ol_args->__tmp_3_0, 1.6746 - ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0), 1.6747 - { 1.6748 - 1, 1.6749 - 0, 1.6750 - 1, 1.6751 - 0 1.6752 - }, 1.6753 - sizeof(struct SuperMBTask) 1.6754 - }, 1.6755 - { 1.6756 - (void **) &ol_args->__tmp_4_0, 1.6757 - ((char *) ((__tmp_4)) - (char *) ol_args->__tmp_4_0), 1.6758 - { 1.6759 - 1, 1.6760 - 0, 1.6761 - 1, 1.6762 - 0 1.6763 - }, 1.6764 - sizeof(struct SuperMBTask) 1.6765 - }, 1.6766 - { 1.6767 - (void **) &ol_args->__tmp_5_0, 1.6768 - ((char *) ((__tmp_5)) - (char *) ol_args->__tmp_5_0), 1.6769 - { 1.6770 - 1, 1.6771 - 1, 1.6772 - 1, 1.6773 - 0 1.6774 - }, 1.6775 - sizeof(struct SuperMBTask) 1.6776 - } 1.6777 - }; 1.6778 - err = nanos_submit(wd, 5, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.6779 - if (err != NANOS_OK) 1.6780 - nanos_handle_error(err); 1.6781 - } 1.6782 - else 1.6783 - { 1.6784 - _nx_data_env_0_t imm_args; 1.6785 - imm_args.__tmp_0_0 = __tmp_0; 1.6786 - imm_args.__tmp_1_0 = __tmp_1; 1.6787 - imm_args.__tmp_2_0 = __tmp_2; 1.6788 - imm_args.__tmp_3_0 = __tmp_3; 1.6789 - imm_args.__tmp_4_0 = __tmp_4; 1.6790 - imm_args.__tmp_5_0 = __tmp_5; 1.6791 - nanos_dependence_t _dependences[5] = { 1.6792 - { 1.6793 - (void **) &imm_args.__tmp_0_0, 1.6794 - ((char *) ((__tmp_0)) - (char *) imm_args.__tmp_0_0), 1.6795 - { 1.6796 - 1, 1.6797 - 0, 1.6798 - 1, 1.6799 - 0 1.6800 - }, 1.6801 - sizeof(struct MBRecContext) 1.6802 - }, 1.6803 - { 1.6804 - (void **) &imm_args.__tmp_1_0, 1.6805 - ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.6806 - { 1.6807 - 1, 1.6808 - 0, 1.6809 - 1, 1.6810 - 0 1.6811 - }, 1.6812 - sizeof(SliceBufferEntry) 1.6813 - }, 1.6814 - { 1.6815 - (void **) &imm_args.__tmp_3_0, 1.6816 - ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0), 1.6817 - { 1.6818 - 1, 1.6819 - 0, 1.6820 - 1, 1.6821 - 0 1.6822 - }, 1.6823 - sizeof(struct SuperMBTask) 1.6824 - }, 1.6825 - { 1.6826 - (void **) &imm_args.__tmp_4_0, 1.6827 - ((char *) ((__tmp_4)) - (char *) imm_args.__tmp_4_0), 1.6828 - { 1.6829 - 1, 1.6830 - 0, 1.6831 - 1, 1.6832 - 0 1.6833 - }, 1.6834 - sizeof(struct SuperMBTask) 1.6835 - }, 1.6836 - { 1.6837 - (void **) &imm_args.__tmp_5_0, 1.6838 - ((char *) ((__tmp_5)) - (char *) imm_args.__tmp_5_0), 1.6839 - { 1.6840 - 1, 1.6841 - 1, 1.6842 - 1, 1.6843 - 0 1.6844 - }, 1.6845 - sizeof(struct SuperMBTask) 1.6846 - } 1.6847 - }; 1.6848 - dyn_props.priority = 0; 1.6849 - err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_0_t), &imm_args, 5, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.6850 - if (err != NANOS_OK) 1.6851 - nanos_handle_error(err); 1.6852 - } 1.6853 - } 1.6854 - ; 1.6855 - } 1.6856 - } 1.6857 - { 1.6858 - struct MBRecContext *__tmp_0 = d; 1.6859 - SliceBufferEntry *__tmp_1 = sbe; 1.6860 - struct SuperMBContext *__tmp_2 = smbc; 1.6861 - struct SuperMBTask *__tmp_3 = sm; 1.6862 - int __tmp_4 = j; 1.6863 - { 1.6864 - /* SMP device descriptor */ 1.6865 - static nanos_smp_args_t _ol_decode_mb_in_slice_1_smp_args = {(void (*)(void *)) _smp__ol_decode_mb_in_slice_1}; 1.6866 - _nx_data_env_1_t *ol_args = (_nx_data_env_1_t *) 0; 1.6867 - nanos_wd_t wd = (nanos_wd_t) 0; 1.6868 - struct nanos_const_wd_definition_local_t 1.6869 - { 1.6870 - nanos_const_wd_definition_t base; 1.6871 - nanos_device_t devices[1]; 1.6872 - }; 1.6873 - static struct nanos_const_wd_definition_local_t _const_def = { 1.6874 - { 1.6875 - { 1.6876 - 0, 1.6877 - 1, 1.6878 - 0, 1.6879 - 0, 1.6880 - 0, 1.6881 - 0, 1.6882 - 0, 1.6883 - 0 1.6884 - }, 1.6885 - __alignof__(_nx_data_env_1_t), 1.6886 - 0, 1.6887 - 1 1.6888 - }, 1.6889 - {{ 1.6890 - nanos_smp_factory, 1.6891 - &_ol_decode_mb_in_slice_1_smp_args 1.6892 - }} 1.6893 - }; 1.6894 - nanos_wd_dyn_props_t dyn_props = {0}; 1.6895 - nanos_err_t err; 1.6896 - dyn_props.priority = 0; 1.6897 - err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_1_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.6898 - if (err != NANOS_OK) 1.6899 - nanos_handle_error(err); 1.6900 - if (wd != (nanos_wd_t) 0) 1.6901 - { 1.6902 - ol_args->__tmp_0_0 = __tmp_0; 1.6903 - ol_args->__tmp_1_0 = __tmp_1; 1.6904 - ol_args->__tmp_2_0 = __tmp_2; 1.6905 - ol_args->__tmp_3_0 = __tmp_3; 1.6906 - ol_args->__tmp_4_0 = __tmp_4; 1.6907 - nanos_dependence_t _dependences[3] = { 1.6908 - { 1.6909 - (void **) &ol_args->__tmp_0_0, 1.6910 - ((char *) ((__tmp_0)) - (char *) ol_args->__tmp_0_0), 1.6911 - { 1.6912 - 1, 1.6913 - 0, 1.6914 - 1, 1.6915 - 0 1.6916 - }, 1.6917 - sizeof(struct MBRecContext) 1.6918 - }, 1.6919 - { 1.6920 - (void **) &ol_args->__tmp_1_0, 1.6921 - ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.6922 - { 1.6923 - 1, 1.6924 - 0, 1.6925 - 1, 1.6926 - 0 1.6927 - }, 1.6928 - sizeof(SliceBufferEntry) 1.6929 - }, 1.6930 - { 1.6931 - (void **) &ol_args->__tmp_3_0, 1.6932 - ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0), 1.6933 - { 1.6934 - 1, 1.6935 - 1, 1.6936 - 1, 1.6937 - 0 1.6938 - }, 1.6939 - sizeof(struct SuperMBTask) 1.6940 + (*s).dp_ref_list[i][j] = &(*h).dpb[k]; 1.6941 + break; 1.6942 } 1.6943 - }; 1.6944 - err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.6945 - if (err != NANOS_OK) 1.6946 - nanos_handle_error(err); 1.6947 - } 1.6948 - else 1.6949 - { 1.6950 - _nx_data_env_1_t imm_args; 1.6951 - imm_args.__tmp_0_0 = __tmp_0; 1.6952 - imm_args.__tmp_1_0 = __tmp_1; 1.6953 - imm_args.__tmp_2_0 = __tmp_2; 1.6954 - imm_args.__tmp_3_0 = __tmp_3; 1.6955 - imm_args.__tmp_4_0 = __tmp_4; 1.6956 - nanos_dependence_t _dependences[3] = { 1.6957 - { 1.6958 - (void **) &imm_args.__tmp_0_0, 1.6959 - ((char *) ((__tmp_0)) - (char *) imm_args.__tmp_0_0), 1.6960 - { 1.6961 - 1, 1.6962 - 0, 1.6963 - 1, 1.6964 - 0 1.6965 - }, 1.6966 - sizeof(struct MBRecContext) 1.6967 - }, 1.6968 - { 1.6969 - (void **) &imm_args.__tmp_1_0, 1.6970 - ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.6971 - { 1.6972 - 1, 1.6973 - 0, 1.6974 - 1, 1.6975 - 0 1.6976 - }, 1.6977 - sizeof(SliceBufferEntry) 1.6978 - }, 1.6979 - { 1.6980 - (void **) &imm_args.__tmp_3_0, 1.6981 - ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0), 1.6982 - { 1.6983 - 1, 1.6984 - 1, 1.6985 - 1, 1.6986 - 0 1.6987 - }, 1.6988 - sizeof(struct SuperMBTask) 1.6989 - } 1.6990 - }; 1.6991 - dyn_props.priority = 0; 1.6992 - err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_1_t), &imm_args, 3, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.6993 - if (err != NANOS_OK) 1.6994 - nanos_handle_error(err); 1.6995 + } 1.6996 + } 1.6997 } 1.6998 } 1.6999 - ; 1.7000 - } 1.7001 + } 1.7002 + } 1.7003 } 1.7004 + { 1.7005 + nanos_err_t err; 1.7006 + err = nanos_set_lock(&nanos_critical_lock_dpb); 1.7007 + if (err != NANOS_OK) 1.7008 + { 1.7009 + nanos_handle_error(err); 1.7010 + } 1.7011 + get_dpb_entry(h, s); 1.7012 + err = nanos_unset_lock(&nanos_critical_lock_dpb); 1.7013 + if (err != NANOS_OK) 1.7014 + { 1.7015 + nanos_handle_error(err); 1.7016 + } 1.7017 + } 1.7018 + if (!(*h).no_mbd) 1.7019 { 1.7020 - struct _dependence_holder 1.7021 - { 1.7022 - struct SuperMBTask *dep_0; 1.7023 - } _dep_holder = {&(*sm)}; 1.7024 - nanos_dependence_t _wait_dependences[1] = {{ 1.7025 - (void **) &_dep_holder.dep_0, 1.7026 - ((char *) ((sm)) - (char *) _dep_holder.dep_0), 1.7027 + { 1.7028 + decode_mb_in_slice(h, d, sbe); 1.7029 + } 1.7030 + } 1.7031 + for (int i = 0; i < (*s).release_cnt; i++) 1.7032 + { 1.7033 + { 1.7034 + for (int j = 0; j < (*h).max_dpb_cnt; j++) 1.7035 + { 1.7036 { 1.7037 - 1, 1.7038 - 0, 1.7039 - 0, 1.7040 - 0 1.7041 - }, 1.7042 - sizeof (*sm) 1.7043 - }}; 1.7044 - nanos_wait_on(1, _wait_dependences); 1.7045 - } 1.7046 - release_smbc(h, smbc); 1.7047 -} 1.7048 -__attribute__((weak)) nanos_lock_t _nx_u_dpb_critical_lock = {NANOS_LOCK_FREE}; 1.7049 -static void decode_slice_mb_task(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe) 1.7050 -{ 1.7051 - H264Slice *s = &sbe->slice; 1.7052 - for (int i = 0; 1.7053 - i < 2; 1.7054 - i++) 1.7055 - { 1.7056 - for (int j = 0; 1.7057 - j < s->ref_count[i]; 1.7058 - j++) 1.7059 - { 1.7060 - if (s->ref_list_cpn[i][j] == - 1) 1.7061 - continue; 1.7062 - int k; 1.7063 - for (k = 0; 1.7064 - k < h->max_dpb_cnt; 1.7065 - k++) 1.7066 - { 1.7067 - if (h->dpb[k].reference >= 2 && h->dpb[k].cpn == s->ref_list_cpn[i][j]) 1.7068 + if ((*h).dpb[j].cpn == (*s).release_ref_cpn[i]) 1.7069 { 1.7070 - s->dp_ref_list[i][j] = &h->dpb[k]; 1.7071 + { 1.7072 + { 1.7073 + nanos_err_t err; 1.7074 + err = nanos_set_lock(&nanos_critical_lock_dpb); 1.7075 + if (err != NANOS_OK) 1.7076 + { 1.7077 + nanos_handle_error(err); 1.7078 + } 1.7079 + release_dpb_entry(h, &(*h).dpb[j], 2); 1.7080 + err = nanos_unset_lock(&nanos_critical_lock_dpb); 1.7081 + if (err != NANOS_OK) 1.7082 + { 1.7083 + nanos_handle_error(err); 1.7084 + } 1.7085 + } 1.7086 break; 1.7087 + } 1.7088 } 1.7089 } 1.7090 - } 1.7091 + } 1.7092 + } 1.7093 } 1.7094 - { 1.7095 - nanos_set_lock(&_nx_u_dpb_critical_lock); 1.7096 - get_dpb_entry(h, s); 1.7097 - nanos_unset_lock(&_nx_u_dpb_critical_lock); 1.7098 - } 1.7099 - if (!h->no_mbd) 1.7100 - { 1.7101 - decode_mb_in_slice(h, d, sbe); 1.7102 - } 1.7103 - for (int i = 0; 1.7104 - i < s->release_cnt; 1.7105 - i++) 1.7106 - { 1.7107 - for (int j = 0; 1.7108 - j < h->max_dpb_cnt; 1.7109 - j++) 1.7110 - { 1.7111 - if (h->dpb[j].cpn == s->release_ref_cpn[i]) 1.7112 - { 1.7113 - { 1.7114 - nanos_set_lock(&_nx_u_dpb_critical_lock); 1.7115 - release_dpb_entry(h, &h->dpb[j], 2); 1.7116 - nanos_unset_lock(&_nx_u_dpb_critical_lock); 1.7117 - } 1.7118 - break; 1.7119 - } 1.7120 - } 1.7121 - } 1.7122 - s->release_cnt = 0; 1.7123 + (*s).release_cnt = 0; 1.7124 } 1.7125 static void decode_3dwave_super_mb_task(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc, SuperMBTask *ml, SuperMBTask *mur, SuperMBTask *mprev, SuperMBTask *m) 1.7126 { 1.7127 - H264Slice *s = &sbe->slice; 1.7128 - H264Mb *mbs = sbe->mbs; 1.7129 - decode_super_mb_block(d, s, smbc, mbs, m->smb_x, m->smb_y); 1.7130 + H264Slice *s = &(*sbe).slice; 1.7131 + H264Mb *mbs = (*sbe).mbs; 1.7132 + decode_super_mb_block(d, s, smbc, mbs, (*m).smb_x, (*m).smb_y); 1.7133 } 1.7134 static void init_ref_list_and_get_dpb_task(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe, int *init) 1.7135 { 1.7136 - H264Slice *s = &sbe->slice; 1.7137 - for (int i = 0; 1.7138 - i < 2; 1.7139 - i++) 1.7140 + H264Slice *s = &(*sbe).slice; 1.7141 + for (int i = 0; i < 2; i++) 1.7142 { 1.7143 - for (int j = 0; 1.7144 - j < s->ref_count[i]; 1.7145 - j++) 1.7146 - { 1.7147 - if (s->ref_list_cpn[i][j] == - 1) 1.7148 - continue; 1.7149 - int k; 1.7150 - for (k = 0; 1.7151 - k < h->max_dpb_cnt; 1.7152 - k++) 1.7153 + { 1.7154 + for (int j = 0; j < (*s).ref_count[i]; j++) 1.7155 + { 1.7156 { 1.7157 - if (h->dpb[k].reference >= 2 && h->dpb[k].cpn == s->ref_list_cpn[i][j]) 1.7158 + int k; 1.7159 + if ((*s).ref_list_cpn[i][j] == -1) 1.7160 { 1.7161 - s->dp_ref_list[i][j] = &h->dpb[k]; 1.7162 - break; 1.7163 + continue; 1.7164 + } 1.7165 + for (k = 0; k < (*h).max_dpb_cnt; k++) 1.7166 + { 1.7167 + { 1.7168 + if ((*h).dpb[k].reference >= 2 && (*h).dpb[k].cpn == (*s).ref_list_cpn[i][j]) 1.7169 + { 1.7170 + { 1.7171 + (*s).dp_ref_list[i][j] = &(*h).dpb[k]; 1.7172 + break; 1.7173 + } 1.7174 + } 1.7175 + } 1.7176 } 1.7177 } 1.7178 - } 1.7179 + } 1.7180 + } 1.7181 } 1.7182 - { 1.7183 - nanos_set_lock(&_nx_u_dpb_critical_lock); 1.7184 - get_dpb_entry(h, s); 1.7185 - nanos_unset_lock(&_nx_u_dpb_critical_lock); 1.7186 - } 1.7187 + { 1.7188 + nanos_err_t err; 1.7189 + err = nanos_set_lock(&nanos_critical_lock_dpb); 1.7190 + if (err != NANOS_OK) 1.7191 + { 1.7192 + nanos_handle_error(err); 1.7193 + } 1.7194 + get_dpb_entry(h, s); 1.7195 + err = nanos_unset_lock(&nanos_critical_lock_dpb); 1.7196 + if (err != NANOS_OK) 1.7197 + { 1.7198 + nanos_handle_error(err); 1.7199 + } 1.7200 + } 1.7201 } 1.7202 -typedef struct _nx_data_env_2_t_tag 1.7203 +struct nanos_args_2_t 1.7204 { 1.7205 - struct MBRecContext *__tmp_0_0; 1.7206 - SliceBufferEntry *__tmp_1_0; 1.7207 - struct SuperMBContext *__tmp_2_0; 1.7208 - struct SuperMBTask *__tmp_3_0; 1.7209 - struct SuperMBTask *__tmp_4_0; 1.7210 - struct SuperMBTask *__tmp_5_0; 1.7211 - struct SuperMBTask *__tmp_6_0; 1.7212 -} _nx_data_env_2_t; 1.7213 -static SuperMBTask *add_decode_slice_3dwave_tasks(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc); 1.7214 -static void _smp__ol_add_decode_slice_3dwave_tasks_2(_nx_data_env_2_t *const __restrict__ _args) 1.7215 + MBRecContext *d; 1.7216 + SliceBufferEntry *sbe; 1.7217 + SuperMBContext *smbc; 1.7218 + SuperMBTask *ml; 1.7219 + SuperMBTask *mur; 1.7220 + SuperMBTask *mprev; 1.7221 + SuperMBTask *m; 1.7222 +}; 1.7223 +static void smp_ol_decode_3dwave_super_mb_task_5(struct nanos_args_2_t *const args); 1.7224 +struct nanos_args_3_t 1.7225 { 1.7226 - struct MBRecContext *___tmp_0_0 = _args->__tmp_0_0; 1.7227 - SliceBufferEntry *___tmp_1_0 = _args->__tmp_1_0; 1.7228 - struct SuperMBContext *___tmp_2_0 = _args->__tmp_2_0; 1.7229 - struct SuperMBTask *___tmp_3_0 = _args->__tmp_3_0; 1.7230 - struct SuperMBTask *___tmp_4_0 = _args->__tmp_4_0; 1.7231 - struct SuperMBTask *___tmp_5_0 = _args->__tmp_5_0; 1.7232 - struct SuperMBTask *___tmp_6_0 = _args->__tmp_6_0; 1.7233 - /* Translation is done by the runtime */ 1.7234 - { 1.7235 - decode_3dwave_super_mb_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0), (___tmp_5_0), (___tmp_6_0)); 1.7236 - } 1.7237 -} 1.7238 -typedef struct _nx_data_env_3_t_tag 1.7239 + MBRecContext *d; 1.7240 + SliceBufferEntry *sbe; 1.7241 + SuperMBContext *smbc; 1.7242 + SuperMBTask *sm; 1.7243 + int line; 1.7244 +}; 1.7245 +static void smp_ol_draw_edges_task_7(struct nanos_args_3_t *const args); 1.7246 +struct nanos_args_4_t 1.7247 { 1.7248 - struct MBRecContext *__tmp_0_0; 1.7249 - SliceBufferEntry *__tmp_1_0; 1.7250 - struct SuperMBContext *__tmp_2_0; 1.7251 - struct SuperMBTask *__tmp_3_0; 1.7252 - int __tmp_4_0; 1.7253 -} _nx_data_env_3_t; 1.7254 -static SuperMBTask *add_decode_slice_3dwave_tasks(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc); 1.7255 -static void _smp__ol_add_decode_slice_3dwave_tasks_3(_nx_data_env_3_t *const __restrict__ _args) 1.7256 + MBRecContext *d; 1.7257 + SliceBufferEntry *sbe; 1.7258 + SuperMBContext *smbc; 1.7259 + SuperMBTask *ml; 1.7260 + SuperMBTask *mur; 1.7261 + SuperMBTask *m; 1.7262 +}; 1.7263 +static void smp_ol_decode_super_mb_task_9(struct nanos_args_4_t *const args); 1.7264 +struct nanos_args_5_t 1.7265 { 1.7266 - struct MBRecContext *___tmp_0_0 = _args->__tmp_0_0; 1.7267 - SliceBufferEntry *___tmp_1_0 = _args->__tmp_1_0; 1.7268 - struct SuperMBContext *___tmp_2_0 = _args->__tmp_2_0; 1.7269 - struct SuperMBTask *___tmp_3_0 = _args->__tmp_3_0; 1.7270 - int ___tmp_4_0 = _args->__tmp_4_0; 1.7271 - /* Translation is done by the runtime */ 1.7272 - { 1.7273 - draw_edges_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0)); 1.7274 - } 1.7275 -} 1.7276 -typedef struct _nx_data_env_4_t_tag 1.7277 -{ 1.7278 - struct MBRecContext *__tmp_0_0; 1.7279 - SliceBufferEntry *__tmp_1_0; 1.7280 - struct SuperMBContext *__tmp_2_0; 1.7281 - struct SuperMBTask *__tmp_3_0; 1.7282 - struct SuperMBTask *__tmp_4_0; 1.7283 - struct SuperMBTask *__tmp_5_0; 1.7284 -} _nx_data_env_4_t; 1.7285 -static SuperMBTask *add_decode_slice_3dwave_tasks(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc); 1.7286 -static void _smp__ol_add_decode_slice_3dwave_tasks_4(_nx_data_env_4_t *const __restrict__ _args) 1.7287 -{ 1.7288 - struct MBRecContext *___tmp_0_0 = _args->__tmp_0_0; 1.7289 - SliceBufferEntry *___tmp_1_0 = _args->__tmp_1_0; 1.7290 - struct SuperMBContext *___tmp_2_0 = _args->__tmp_2_0; 1.7291 - struct SuperMBTask *___tmp_3_0 = _args->__tmp_3_0; 1.7292 - struct SuperMBTask *___tmp_4_0 = _args->__tmp_4_0; 1.7293 - struct SuperMBTask *___tmp_5_0 = _args->__tmp_5_0; 1.7294 - /* Translation is done by the runtime */ 1.7295 - { 1.7296 - decode_super_mb_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0), (___tmp_5_0)); 1.7297 - } 1.7298 -} 1.7299 -typedef struct _nx_data_env_5_t_tag 1.7300 -{ 1.7301 - struct MBRecContext *__tmp_0_0; 1.7302 - SliceBufferEntry *__tmp_1_0; 1.7303 - struct SuperMBContext *__tmp_2_0; 1.7304 - struct SuperMBTask *__tmp_3_0; 1.7305 - int __tmp_4_0; 1.7306 -} _nx_data_env_5_t; 1.7307 -static SuperMBTask *add_decode_slice_3dwave_tasks(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc); 1.7308 -static void _smp__ol_add_decode_slice_3dwave_tasks_5(_nx_data_env_5_t *const __restrict__ _args) 1.7309 -{ 1.7310 - struct MBRecContext *___tmp_0_0 = _args->__tmp_0_0; 1.7311 - SliceBufferEntry *___tmp_1_0 = _args->__tmp_1_0; 1.7312 - struct SuperMBContext *___tmp_2_0 = _args->__tmp_2_0; 1.7313 - struct SuperMBTask *___tmp_3_0 = _args->__tmp_3_0; 1.7314 - int ___tmp_4_0 = _args->__tmp_4_0; 1.7315 - /* Translation is done by the runtime */ 1.7316 - { 1.7317 - draw_edges_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0)); 1.7318 - } 1.7319 -} 1.7320 + MBRecContext *d; 1.7321 + SliceBufferEntry *sbe; 1.7322 + SuperMBContext *smbc; 1.7323 + SuperMBTask *sm; 1.7324 + int line; 1.7325 +}; 1.7326 +static void smp_ol_draw_edges_task_11(struct nanos_args_5_t *const args); 1.7327 static SuperMBTask *add_decode_slice_3dwave_tasks(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc) 1.7328 { 1.7329 - int i, j; 1.7330 - int smb_3d_height = smbc->nsmb_3dheight; 1.7331 - int smb_height = smbc->nsmb_height, smb_width = smbc->nsmb_width; 1.7332 - int smb_diff_prev = smb_height - smb_3d_height; 1.7333 - SuperMBTask *sm = ((void *) 0), *sml, *smur, *smprev; 1.7334 - SuperMBTask *smbs = smbc->smbs[smbc->index++]; 1.7335 - smbc->index %= 2; 1.7336 - SuperMBTask *smbs_prev = smbc->smbs[smbc->index]; 1.7337 - for (j = 0; 1.7338 - j < smb_3d_height; 1.7339 - j++) 1.7340 + int j; 1.7341 + int i; 1.7342 + SuperMBTask *sml; 1.7343 + SuperMBTask *smur; 1.7344 + SuperMBTask *smprev; 1.7345 + int smb_3d_height = (*smbc).nsmb_3dheight; 1.7346 + int smb_height = (*smbc).nsmb_height; 1.7347 + int smb_width = (*smbc).nsmb_width; 1.7348 + int smb_diff_prev = smb_height - smb_3d_height; 1.7349 + SuperMBTask *sm = (void *)0; 1.7350 + SuperMBTask *smbs = (*smbc).smbs[(*smbc).index++]; 1.7351 + (*smbc).index %= 2; 1.7352 + SuperMBTask *smbs_prev = (*smbc).smbs[(*smbc).index]; 1.7353 + for (j = 0; j < smb_3d_height; j++) 1.7354 { 1.7355 - for (i = 0; 1.7356 - i < smb_width; 1.7357 - i++) 1.7358 + { 1.7359 + nanos_err_t mcc_err_in_final_3; 1.7360 + _Bool mcc_is_in_final_3; 1.7361 + for (i = 0; i < smb_width; i++) 1.7362 + { 1.7363 + { 1.7364 + nanos_err_t mcc_err_in_final_2; 1.7365 + _Bool mcc_is_in_final_2; 1.7366 + sm = smbs + j * smb_width + i; 1.7367 + sml = sm - (i > 0 ? 1 : 0); 1.7368 + smur = sm + (i < smb_width - 1 && j > 0 ? -smb_width + 1 : 0); 1.7369 + smprev = smbs_prev + (j + smb_diff_prev + 1) * smb_width - 1; 1.7370 + mcc_err_in_final_2 = nanos_in_final(&mcc_is_in_final_2); 1.7371 + { 1.7372 + MBRecContext *mcc_arg_11 = d; 1.7373 + SliceBufferEntry *mcc_arg_12 = sbe; 1.7374 + SuperMBContext *mcc_arg_13 = smbc; 1.7375 + SuperMBTask *mcc_arg_14 = sml; 1.7376 + SuperMBTask *mcc_arg_15 = smur; 1.7377 + SuperMBTask *mcc_arg_16 = smprev; 1.7378 + SuperMBTask *mcc_arg_17 = sm; 1.7379 + if (mcc_is_in_final_2) 1.7380 + { 1.7381 + decode_3dwave_super_mb_task(d, sbe, smbc, sml, smur, smprev, sm); 1.7382 + } 1.7383 + else 1.7384 + { 1.7385 + { 1.7386 + nanos_wd_dyn_props_t nanos_wd_dyn_props; 1.7387 + struct nanos_args_2_t *ol_args; 1.7388 + nanos_err_t err; 1.7389 + struct nanos_args_2_t imm_args; 1.7390 + static nanos_smp_args_t smp_ol_decode_3dwave_super_mb_task_5_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_2_t *))&smp_ol_decode_3dwave_super_mb_task_5 }; 1.7391 + static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_2_t), 0, 1, 0, "decode_3dwave_super_mb_task" }, { { &nanos_smp_factory, &smp_ol_decode_3dwave_super_mb_task_5_args } } }; 1.7392 + nanos_wd_dyn_props.tie_to = 0; 1.7393 + nanos_wd_dyn_props.priority = 0; 1.7394 + nanos_wd_dyn_props.flags.is_final = 0; 1.7395 + ol_args = (struct nanos_args_2_t *)0; 1.7396 + void *nanos_wd_ = (void *)0; 1.7397 + err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_2_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0); 1.7398 + if (err != NANOS_OK) 1.7399 + { 1.7400 + nanos_handle_error(err); 1.7401 + } 1.7402 + /* Check pendant writes on subexpressions */ 1.7403 + /* End check pendant writes on subexpressions */ 1.7404 + if (nanos_wd_ != (void *)0) 1.7405 + { 1.7406 + { 1.7407 + (*ol_args).d = mcc_arg_11; 1.7408 + (*ol_args).sbe = mcc_arg_12; 1.7409 + (*ol_args).smbc = mcc_arg_13; 1.7410 + (*ol_args).ml = mcc_arg_14; 1.7411 + (*ol_args).mur = mcc_arg_15; 1.7412 + (*ol_args).mprev = mcc_arg_16; 1.7413 + (*ol_args).m = mcc_arg_17; 1.7414 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } }; 1.7415 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.7416 + nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.7417 + nanos_region_dimension_t dimensions_3[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.7418 + nanos_region_dimension_t dimensions_4[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.7419 + nanos_region_dimension_t dimensions_5[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.7420 + nanos_data_access_t dependences[6] = { { (void *)mcc_arg_11, { 1, 0, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_12, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_14, { 1, 0, 0, 0, 0 }, 1, dimensions_2, 0 }, { (void *)mcc_arg_15, { 1, 0, 0, 0, 0 }, 1, dimensions_3, 0 }, { (void *)mcc_arg_16, { 1, 0, 0, 0, 0 }, 1, dimensions_4, 0 }, { (void *)mcc_arg_17, { 1, 1, 0, 0, 0 }, 1, dimensions_5, 0 } }; 1.7421 + ; 1.7422 + err = nanos_submit(nanos_wd_, 6, dependences, (void *)0); 1.7423 + if (err != NANOS_OK) 1.7424 + { 1.7425 + nanos_handle_error(err); 1.7426 + } 1.7427 + } 1.7428 + } 1.7429 + else 1.7430 + { 1.7431 + { 1.7432 + imm_args.d = mcc_arg_11; 1.7433 + imm_args.sbe = mcc_arg_12; 1.7434 + imm_args.smbc = mcc_arg_13; 1.7435 + imm_args.ml = mcc_arg_14; 1.7436 + imm_args.mur = mcc_arg_15; 1.7437 + imm_args.mprev = mcc_arg_16; 1.7438 + imm_args.m = mcc_arg_17; 1.7439 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } }; 1.7440 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.7441 + nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.7442 + nanos_region_dimension_t dimensions_3[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.7443 + nanos_region_dimension_t dimensions_4[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.7444 + nanos_region_dimension_t dimensions_5[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.7445 + nanos_data_access_t dependences[6] = { { (void *)mcc_arg_11, { 1, 0, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_12, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_14, { 1, 0, 0, 0, 0 }, 1, dimensions_2, 0 }, { (void *)mcc_arg_15, { 1, 0, 0, 0, 0 }, 1, dimensions_3, 0 }, { (void *)mcc_arg_16, { 1, 0, 0, 0, 0 }, 1, dimensions_4, 0 }, { (void *)mcc_arg_17, { 1, 1, 0, 0, 0 }, 1, dimensions_5, 0 } }; 1.7446 + ; 1.7447 + err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_2_t), &imm_args, 6, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0); 1.7448 + if (err != NANOS_OK) 1.7449 + { 1.7450 + nanos_handle_error(err); 1.7451 + } 1.7452 + } 1.7453 + } 1.7454 + } 1.7455 + } 1.7456 + } 1.7457 + } 1.7458 + } 1.7459 + mcc_err_in_final_3 = nanos_in_final(&mcc_is_in_final_3); 1.7460 { 1.7461 - sm = smbs + j * smb_width + i; 1.7462 - sml = sm - ((i > 0) ? 1 : 0); 1.7463 - smur = sm + (((i < smb_width - 1) && (j > 0)) ? - smb_width + 1 : 0); 1.7464 - smprev = smbs_prev + (j + smb_diff_prev + 1) * smb_width - 1; 1.7465 + MBRecContext *mcc_arg_18 = d; 1.7466 + SliceBufferEntry *mcc_arg_19 = sbe; 1.7467 + SuperMBContext *mcc_arg_20 = smbc; 1.7468 + SuperMBTask *mcc_arg_21 = sm; 1.7469 + int mcc_arg_22 = j; 1.7470 + if (mcc_is_in_final_3) 1.7471 { 1.7472 - struct MBRecContext *__tmp_0 = d; 1.7473 - SliceBufferEntry *__tmp_1 = sbe; 1.7474 - struct SuperMBContext *__tmp_2 = smbc; 1.7475 - struct SuperMBTask *__tmp_3 = sml; 1.7476 - struct SuperMBTask *__tmp_4 = smur; 1.7477 - struct SuperMBTask *__tmp_5 = smprev; 1.7478 - struct SuperMBTask *__tmp_6 = sm; 1.7479 - { 1.7480 - /* SMP device descriptor */ 1.7481 - static nanos_smp_args_t _ol_add_decode_slice_3dwave_tasks_2_smp_args = {(void (*)(void *)) _smp__ol_add_decode_slice_3dwave_tasks_2}; 1.7482 - _nx_data_env_2_t *ol_args = (_nx_data_env_2_t *) 0; 1.7483 - nanos_wd_t wd = (nanos_wd_t) 0; 1.7484 - struct nanos_const_wd_definition_local_t 1.7485 + draw_edges_task(d, sbe, smbc, sm, j); 1.7486 + } 1.7487 + else 1.7488 + { 1.7489 + { 1.7490 + nanos_wd_dyn_props_t nanos_wd_dyn_props; 1.7491 + struct nanos_args_3_t *ol_args; 1.7492 + nanos_err_t err; 1.7493 + struct nanos_args_3_t imm_args; 1.7494 + static nanos_smp_args_t smp_ol_draw_edges_task_7_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_3_t *))&smp_ol_draw_edges_task_7 }; 1.7495 + static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_3_t), 0, 1, 0, "draw_edges_task" }, { { &nanos_smp_factory, &smp_ol_draw_edges_task_7_args } } }; 1.7496 + nanos_wd_dyn_props.tie_to = 0; 1.7497 + nanos_wd_dyn_props.priority = 0; 1.7498 + nanos_wd_dyn_props.flags.is_final = 0; 1.7499 + ol_args = (struct nanos_args_3_t *)0; 1.7500 + void *nanos_wd_ = (void *)0; 1.7501 + err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_3_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0); 1.7502 + if (err != NANOS_OK) 1.7503 + { 1.7504 + nanos_handle_error(err); 1.7505 + } 1.7506 + /* Check pendant writes on subexpressions */ 1.7507 + /* End check pendant writes on subexpressions */ 1.7508 + if (nanos_wd_ != (void *)0) 1.7509 + { 1.7510 { 1.7511 - nanos_const_wd_definition_t base; 1.7512 - nanos_device_t devices[1]; 1.7513 - }; 1.7514 - static struct nanos_const_wd_definition_local_t _const_def = { 1.7515 + (*ol_args).d = mcc_arg_18; 1.7516 + (*ol_args).sbe = mcc_arg_19; 1.7517 + (*ol_args).smbc = mcc_arg_20; 1.7518 + (*ol_args).sm = mcc_arg_21; 1.7519 + (*ol_args).line = mcc_arg_22; 1.7520 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } }; 1.7521 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.7522 + nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.7523 + nanos_data_access_t dependences[3] = { { (void *)mcc_arg_18, { 1, 0, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_19, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_21, { 1, 1, 0, 0, 0 }, 1, dimensions_2, 0 } }; 1.7524 + ; 1.7525 + err = nanos_submit(nanos_wd_, 3, dependences, (void *)0); 1.7526 + if (err != NANOS_OK) 1.7527 { 1.7528 - { 1.7529 - 0, 1.7530 - 1, 1.7531 - 0, 1.7532 - 0, 1.7533 - 0, 1.7534 - 0, 1.7535 - 0, 1.7536 - 0 1.7537 - }, 1.7538 - __alignof__(_nx_data_env_2_t), 1.7539 - 0, 1.7540 - 1 1.7541 - }, 1.7542 - {{ 1.7543 - nanos_smp_factory, 1.7544 - &_ol_add_decode_slice_3dwave_tasks_2_smp_args 1.7545 - }} 1.7546 - }; 1.7547 - nanos_wd_dyn_props_t dyn_props = {0}; 1.7548 - nanos_err_t err; 1.7549 - dyn_props.priority = 0; 1.7550 - err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_2_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.7551 - if (err != NANOS_OK) 1.7552 - nanos_handle_error(err); 1.7553 - if (wd != (nanos_wd_t) 0) 1.7554 + nanos_handle_error(err); 1.7555 + } 1.7556 + } 1.7557 + } 1.7558 + else 1.7559 + { 1.7560 { 1.7561 - ol_args->__tmp_0_0 = __tmp_0; 1.7562 - ol_args->__tmp_1_0 = __tmp_1; 1.7563 - ol_args->__tmp_2_0 = __tmp_2; 1.7564 - ol_args->__tmp_3_0 = __tmp_3; 1.7565 - ol_args->__tmp_4_0 = __tmp_4; 1.7566 - ol_args->__tmp_5_0 = __tmp_5; 1.7567 - ol_args->__tmp_6_0 = __tmp_6; 1.7568 - nanos_dependence_t _dependences[6] = { 1.7569 - { 1.7570 - (void **) &ol_args->__tmp_0_0, 1.7571 - ((char *) ((__tmp_0)) - (char *) ol_args->__tmp_0_0), 1.7572 - { 1.7573 - 1, 1.7574 - 0, 1.7575 - 1, 1.7576 - 0 1.7577 - }, 1.7578 - sizeof(struct MBRecContext) 1.7579 - }, 1.7580 - { 1.7581 - (void **) &ol_args->__tmp_1_0, 1.7582 - ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.7583 - { 1.7584 - 1, 1.7585 - 0, 1.7586 - 1, 1.7587 - 0 1.7588 - }, 1.7589 - sizeof(SliceBufferEntry) 1.7590 - }, 1.7591 - { 1.7592 - (void **) &ol_args->__tmp_3_0, 1.7593 - ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0), 1.7594 - { 1.7595 - 1, 1.7596 - 0, 1.7597 - 1, 1.7598 - 0 1.7599 - }, 1.7600 - sizeof(struct SuperMBTask) 1.7601 - }, 1.7602 - { 1.7603 - (void **) &ol_args->__tmp_4_0, 1.7604 - ((char *) ((__tmp_4)) - (char *) ol_args->__tmp_4_0), 1.7605 - { 1.7606 - 1, 1.7607 - 0, 1.7608 - 1, 1.7609 - 0 1.7610 - }, 1.7611 - sizeof(struct SuperMBTask) 1.7612 - }, 1.7613 - { 1.7614 - (void **) &ol_args->__tmp_5_0, 1.7615 - ((char *) ((__tmp_5)) - (char *) ol_args->__tmp_5_0), 1.7616 - { 1.7617 - 1, 1.7618 - 0, 1.7619 - 1, 1.7620 - 0 1.7621 - }, 1.7622 - sizeof(struct SuperMBTask) 1.7623 - }, 1.7624 - { 1.7625 - (void **) &ol_args->__tmp_6_0, 1.7626 - ((char *) ((__tmp_6)) - (char *) ol_args->__tmp_6_0), 1.7627 - { 1.7628 - 1, 1.7629 - 1, 1.7630 - 1, 1.7631 - 0 1.7632 - }, 1.7633 - sizeof(struct SuperMBTask) 1.7634 - } 1.7635 - }; 1.7636 - err = nanos_submit(wd, 6, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.7637 - if (err != NANOS_OK) 1.7638 - nanos_handle_error(err); 1.7639 + imm_args.d = mcc_arg_18; 1.7640 + imm_args.sbe = mcc_arg_19; 1.7641 + imm_args.smbc = mcc_arg_20; 1.7642 + imm_args.sm = mcc_arg_21; 1.7643 + imm_args.line = mcc_arg_22; 1.7644 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } }; 1.7645 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.7646 + nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.7647 + nanos_data_access_t dependences[3] = { { (void *)mcc_arg_18, { 1, 0, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_19, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_21, { 1, 1, 0, 0, 0 }, 1, dimensions_2, 0 } }; 1.7648 + ; 1.7649 + err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_3_t), &imm_args, 3, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0); 1.7650 + if (err != NANOS_OK) 1.7651 + { 1.7652 + nanos_handle_error(err); 1.7653 + } 1.7654 } 1.7655 - else 1.7656 - { 1.7657 - _nx_data_env_2_t imm_args; 1.7658 - imm_args.__tmp_0_0 = __tmp_0; 1.7659 - imm_args.__tmp_1_0 = __tmp_1; 1.7660 - imm_args.__tmp_2_0 = __tmp_2; 1.7661 - imm_args.__tmp_3_0 = __tmp_3; 1.7662 - imm_args.__tmp_4_0 = __tmp_4; 1.7663 - imm_args.__tmp_5_0 = __tmp_5; 1.7664 - imm_args.__tmp_6_0 = __tmp_6; 1.7665 - nanos_dependence_t _dependences[6] = { 1.7666 - { 1.7667 - (void **) &imm_args.__tmp_0_0, 1.7668 - ((char *) ((__tmp_0)) - (char *) imm_args.__tmp_0_0), 1.7669 - { 1.7670 - 1, 1.7671 - 0, 1.7672 - 1, 1.7673 - 0 1.7674 - }, 1.7675 - sizeof(struct MBRecContext) 1.7676 - }, 1.7677 - { 1.7678 - (void **) &imm_args.__tmp_1_0, 1.7679 - ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.7680 - { 1.7681 - 1, 1.7682 - 0, 1.7683 - 1, 1.7684 - 0 1.7685 - }, 1.7686 - sizeof(SliceBufferEntry) 1.7687 - }, 1.7688 - { 1.7689 - (void **) &imm_args.__tmp_3_0, 1.7690 - ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0), 1.7691 - { 1.7692 - 1, 1.7693 - 0, 1.7694 - 1, 1.7695 - 0 1.7696 - }, 1.7697 - sizeof(struct SuperMBTask) 1.7698 - }, 1.7699 - { 1.7700 - (void **) &imm_args.__tmp_4_0, 1.7701 - ((char *) ((__tmp_4)) - (char *) imm_args.__tmp_4_0), 1.7702 - { 1.7703 - 1, 1.7704 - 0, 1.7705 - 1, 1.7706 - 0 1.7707 - }, 1.7708 - sizeof(struct SuperMBTask) 1.7709 - }, 1.7710 - { 1.7711 - (void **) &imm_args.__tmp_5_0, 1.7712 - ((char *) ((__tmp_5)) - (char *) imm_args.__tmp_5_0), 1.7713 - { 1.7714 - 1, 1.7715 - 0, 1.7716 - 1, 1.7717 - 0 1.7718 - }, 1.7719 - sizeof(struct SuperMBTask) 1.7720 - }, 1.7721 - { 1.7722 - (void **) &imm_args.__tmp_6_0, 1.7723 - ((char *) ((__tmp_6)) - (char *) imm_args.__tmp_6_0), 1.7724 - { 1.7725 - 1, 1.7726 - 1, 1.7727 - 1, 1.7728 - 0 1.7729 - }, 1.7730 - sizeof(struct SuperMBTask) 1.7731 - } 1.7732 - }; 1.7733 - dyn_props.priority = 0; 1.7734 - err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_2_t), &imm_args, 6, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.7735 - if (err != NANOS_OK) 1.7736 - nanos_handle_error(err); 1.7737 - } 1.7738 - } 1.7739 - ; 1.7740 + } 1.7741 + } 1.7742 } 1.7743 } 1.7744 + } 1.7745 + } 1.7746 + for (; j < smb_height; j++) 1.7747 + { 1.7748 + { 1.7749 + nanos_err_t mcc_err_in_final_5; 1.7750 + _Bool mcc_is_in_final_5; 1.7751 + for (i = 0; i < smb_width; i++) 1.7752 + { 1.7753 + { 1.7754 + nanos_err_t mcc_err_in_final_4; 1.7755 + _Bool mcc_is_in_final_4; 1.7756 + sm = smbs + j * smb_width + i; 1.7757 + sml = sm - (i > 0 ? 1 : 0); 1.7758 + smur = sm + (i < smb_width - 1 && j > 0 ? -smb_width + 1 : 0); 1.7759 + mcc_err_in_final_4 = nanos_in_final(&mcc_is_in_final_4); 1.7760 + { 1.7761 + MBRecContext *mcc_arg_23 = d; 1.7762 + SliceBufferEntry *mcc_arg_24 = sbe; 1.7763 + SuperMBContext *mcc_arg_25 = smbc; 1.7764 + SuperMBTask *mcc_arg_26 = sml; 1.7765 + SuperMBTask *mcc_arg_27 = smur; 1.7766 + SuperMBTask *mcc_arg_28 = sm; 1.7767 + if (mcc_is_in_final_4) 1.7768 + { 1.7769 + decode_super_mb_task(d, sbe, smbc, sml, smur, sm); 1.7770 + } 1.7771 + else 1.7772 + { 1.7773 + { 1.7774 + nanos_wd_dyn_props_t nanos_wd_dyn_props; 1.7775 + struct nanos_args_4_t *ol_args; 1.7776 + nanos_err_t err; 1.7777 + struct nanos_args_4_t imm_args; 1.7778 + static nanos_smp_args_t smp_ol_decode_super_mb_task_9_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_4_t *))&smp_ol_decode_super_mb_task_9 }; 1.7779 + static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_4_t), 0, 1, 0, "decode_super_mb_task" }, { { &nanos_smp_factory, &smp_ol_decode_super_mb_task_9_args } } }; 1.7780 + nanos_wd_dyn_props.tie_to = 0; 1.7781 + nanos_wd_dyn_props.priority = 0; 1.7782 + nanos_wd_dyn_props.flags.is_final = 0; 1.7783 + ol_args = (struct nanos_args_4_t *)0; 1.7784 + void *nanos_wd_ = (void *)0; 1.7785 + err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_4_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0); 1.7786 + if (err != NANOS_OK) 1.7787 + { 1.7788 + nanos_handle_error(err); 1.7789 + } 1.7790 + /* Check pendant writes on subexpressions */ 1.7791 + /* End check pendant writes on subexpressions */ 1.7792 + if (nanos_wd_ != (void *)0) 1.7793 + { 1.7794 + { 1.7795 + (*ol_args).d = mcc_arg_23; 1.7796 + (*ol_args).sbe = mcc_arg_24; 1.7797 + (*ol_args).smbc = mcc_arg_25; 1.7798 + (*ol_args).ml = mcc_arg_26; 1.7799 + (*ol_args).mur = mcc_arg_27; 1.7800 + (*ol_args).m = mcc_arg_28; 1.7801 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } }; 1.7802 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.7803 + nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.7804 + nanos_region_dimension_t dimensions_3[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.7805 + nanos_region_dimension_t dimensions_4[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.7806 + nanos_data_access_t dependences[5] = { { (void *)mcc_arg_23, { 1, 0, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_24, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_26, { 1, 0, 0, 0, 0 }, 1, dimensions_2, 0 }, { (void *)mcc_arg_27, { 1, 0, 0, 0, 0 }, 1, dimensions_3, 0 }, { (void *)mcc_arg_28, { 1, 1, 0, 0, 0 }, 1, dimensions_4, 0 } }; 1.7807 + ; 1.7808 + err = nanos_submit(nanos_wd_, 5, dependences, (void *)0); 1.7809 + if (err != NANOS_OK) 1.7810 + { 1.7811 + nanos_handle_error(err); 1.7812 + } 1.7813 + } 1.7814 + } 1.7815 + else 1.7816 + { 1.7817 + { 1.7818 + imm_args.d = mcc_arg_23; 1.7819 + imm_args.sbe = mcc_arg_24; 1.7820 + imm_args.smbc = mcc_arg_25; 1.7821 + imm_args.ml = mcc_arg_26; 1.7822 + imm_args.mur = mcc_arg_27; 1.7823 + imm_args.m = mcc_arg_28; 1.7824 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } }; 1.7825 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.7826 + nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.7827 + nanos_region_dimension_t dimensions_3[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.7828 + nanos_region_dimension_t dimensions_4[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.7829 + nanos_data_access_t dependences[5] = { { (void *)mcc_arg_23, { 1, 0, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_24, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_26, { 1, 0, 0, 0, 0 }, 1, dimensions_2, 0 }, { (void *)mcc_arg_27, { 1, 0, 0, 0, 0 }, 1, dimensions_3, 0 }, { (void *)mcc_arg_28, { 1, 1, 0, 0, 0 }, 1, dimensions_4, 0 } }; 1.7830 + ; 1.7831 + err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_4_t), &imm_args, 5, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0); 1.7832 + if (err != NANOS_OK) 1.7833 + { 1.7834 + nanos_handle_error(err); 1.7835 + } 1.7836 + } 1.7837 + } 1.7838 + } 1.7839 + } 1.7840 + } 1.7841 + } 1.7842 + } 1.7843 + mcc_err_in_final_5 = nanos_in_final(&mcc_is_in_final_5); 1.7844 { 1.7845 - struct MBRecContext *__tmp_0 = d; 1.7846 - SliceBufferEntry *__tmp_1 = sbe; 1.7847 - struct SuperMBContext *__tmp_2 = smbc; 1.7848 - struct SuperMBTask *__tmp_3 = sm; 1.7849 - int __tmp_4 = j; 1.7850 + MBRecContext *mcc_arg_29 = d; 1.7851 + SliceBufferEntry *mcc_arg_30 = sbe; 1.7852 + SuperMBContext *mcc_arg_31 = smbc; 1.7853 + SuperMBTask *mcc_arg_32 = sm; 1.7854 + int mcc_arg_33 = j; 1.7855 + if (mcc_is_in_final_5) 1.7856 { 1.7857 - /* SMP device descriptor */ 1.7858 - static nanos_smp_args_t _ol_add_decode_slice_3dwave_tasks_3_smp_args = {(void (*)(void *)) _smp__ol_add_decode_slice_3dwave_tasks_3}; 1.7859 - _nx_data_env_3_t *ol_args = (_nx_data_env_3_t *) 0; 1.7860 - nanos_wd_t wd = (nanos_wd_t) 0; 1.7861 - struct nanos_const_wd_definition_local_t 1.7862 - { 1.7863 - nanos_const_wd_definition_t base; 1.7864 - nanos_device_t devices[1]; 1.7865 - }; 1.7866 - static struct nanos_const_wd_definition_local_t _const_def = { 1.7867 + draw_edges_task(d, sbe, smbc, sm, j); 1.7868 + } 1.7869 + else 1.7870 + { 1.7871 + { 1.7872 + nanos_wd_dyn_props_t nanos_wd_dyn_props; 1.7873 + struct nanos_args_5_t *ol_args; 1.7874 + nanos_err_t err; 1.7875 + struct nanos_args_5_t imm_args; 1.7876 + static nanos_smp_args_t smp_ol_draw_edges_task_11_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_5_t *))&smp_ol_draw_edges_task_11 }; 1.7877 + static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_5_t), 0, 1, 0, "draw_edges_task" }, { { &nanos_smp_factory, &smp_ol_draw_edges_task_11_args } } }; 1.7878 + nanos_wd_dyn_props.tie_to = 0; 1.7879 + nanos_wd_dyn_props.priority = 0; 1.7880 + nanos_wd_dyn_props.flags.is_final = 0; 1.7881 + ol_args = (struct nanos_args_5_t *)0; 1.7882 + void *nanos_wd_ = (void *)0; 1.7883 + err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_5_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0); 1.7884 + if (err != NANOS_OK) 1.7885 + { 1.7886 + nanos_handle_error(err); 1.7887 + } 1.7888 + /* Check pendant writes on subexpressions */ 1.7889 + /* End check pendant writes on subexpressions */ 1.7890 + if (nanos_wd_ != (void *)0) 1.7891 + { 1.7892 { 1.7893 + (*ol_args).d = mcc_arg_29; 1.7894 + (*ol_args).sbe = mcc_arg_30; 1.7895 + (*ol_args).smbc = mcc_arg_31; 1.7896 + (*ol_args).sm = mcc_arg_32; 1.7897 + (*ol_args).line = mcc_arg_33; 1.7898 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } }; 1.7899 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.7900 + nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.7901 + nanos_data_access_t dependences[3] = { { (void *)mcc_arg_29, { 1, 0, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_30, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_32, { 1, 1, 0, 0, 0 }, 1, dimensions_2, 0 } }; 1.7902 + ; 1.7903 + err = nanos_submit(nanos_wd_, 3, dependences, (void *)0); 1.7904 + if (err != NANOS_OK) 1.7905 { 1.7906 - 0, 1.7907 - 1, 1.7908 - 0, 1.7909 - 0, 1.7910 - 0, 1.7911 - 0, 1.7912 - 0, 1.7913 - 0 1.7914 - }, 1.7915 - __alignof__(_nx_data_env_3_t), 1.7916 - 0, 1.7917 - 1 1.7918 - }, 1.7919 - {{ 1.7920 - nanos_smp_factory, 1.7921 - &_ol_add_decode_slice_3dwave_tasks_3_smp_args 1.7922 - }} 1.7923 - }; 1.7924 - nanos_wd_dyn_props_t dyn_props = {0}; 1.7925 - nanos_err_t err; 1.7926 - dyn_props.priority = 0; 1.7927 - err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_3_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.7928 - if (err != NANOS_OK) 1.7929 - nanos_handle_error(err); 1.7930 - if (wd != (nanos_wd_t) 0) 1.7931 - { 1.7932 - ol_args->__tmp_0_0 = __tmp_0; 1.7933 - ol_args->__tmp_1_0 = __tmp_1; 1.7934 - ol_args->__tmp_2_0 = __tmp_2; 1.7935 - ol_args->__tmp_3_0 = __tmp_3; 1.7936 - ol_args->__tmp_4_0 = __tmp_4; 1.7937 - nanos_dependence_t _dependences[3] = { 1.7938 + nanos_handle_error(err); 1.7939 + } 1.7940 + } 1.7941 + } 1.7942 + else 1.7943 + { 1.7944 + { 1.7945 + imm_args.d = mcc_arg_29; 1.7946 + imm_args.sbe = mcc_arg_30; 1.7947 + imm_args.smbc = mcc_arg_31; 1.7948 + imm_args.sm = mcc_arg_32; 1.7949 + imm_args.line = mcc_arg_33; 1.7950 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } }; 1.7951 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.7952 + nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.7953 + nanos_data_access_t dependences[3] = { { (void *)mcc_arg_29, { 1, 0, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_30, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_32, { 1, 1, 0, 0, 0 }, 1, dimensions_2, 0 } }; 1.7954 + ; 1.7955 + err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_5_t), &imm_args, 3, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0); 1.7956 + if (err != NANOS_OK) 1.7957 { 1.7958 - (void **) &ol_args->__tmp_0_0, 1.7959 - ((char *) ((__tmp_0)) - (char *) ol_args->__tmp_0_0), 1.7960 - { 1.7961 - 1, 1.7962 - 0, 1.7963 - 1, 1.7964 - 0 1.7965 - }, 1.7966 - sizeof(struct MBRecContext) 1.7967 - }, 1.7968 - { 1.7969 - (void **) &ol_args->__tmp_1_0, 1.7970 - ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.7971 - { 1.7972 - 1, 1.7973 - 0, 1.7974 - 1, 1.7975 - 0 1.7976 - }, 1.7977 - sizeof(SliceBufferEntry) 1.7978 - }, 1.7979 - { 1.7980 - (void **) &ol_args->__tmp_3_0, 1.7981 - ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0), 1.7982 - { 1.7983 - 1, 1.7984 - 1, 1.7985 - 1, 1.7986 - 0 1.7987 - }, 1.7988 - sizeof(struct SuperMBTask) 1.7989 + nanos_handle_error(err); 1.7990 } 1.7991 - }; 1.7992 - err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.7993 - if (err != NANOS_OK) 1.7994 - nanos_handle_error(err); 1.7995 - } 1.7996 - else 1.7997 - { 1.7998 - _nx_data_env_3_t imm_args; 1.7999 - imm_args.__tmp_0_0 = __tmp_0; 1.8000 - imm_args.__tmp_1_0 = __tmp_1; 1.8001 - imm_args.__tmp_2_0 = __tmp_2; 1.8002 - imm_args.__tmp_3_0 = __tmp_3; 1.8003 - imm_args.__tmp_4_0 = __tmp_4; 1.8004 - nanos_dependence_t _dependences[3] = { 1.8005 - { 1.8006 - (void **) &imm_args.__tmp_0_0, 1.8007 - ((char *) ((__tmp_0)) - (char *) imm_args.__tmp_0_0), 1.8008 - { 1.8009 - 1, 1.8010 - 0, 1.8011 - 1, 1.8012 - 0 1.8013 - }, 1.8014 - sizeof(struct MBRecContext) 1.8015 - }, 1.8016 - { 1.8017 - (void **) &imm_args.__tmp_1_0, 1.8018 - ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.8019 - { 1.8020 - 1, 1.8021 - 0, 1.8022 - 1, 1.8023 - 0 1.8024 - }, 1.8025 - sizeof(SliceBufferEntry) 1.8026 - }, 1.8027 - { 1.8028 - (void **) &imm_args.__tmp_3_0, 1.8029 - ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0), 1.8030 - { 1.8031 - 1, 1.8032 - 1, 1.8033 - 1, 1.8034 - 0 1.8035 - }, 1.8036 - sizeof(struct SuperMBTask) 1.8037 - } 1.8038 - }; 1.8039 - dyn_props.priority = 0; 1.8040 - err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_3_t), &imm_args, 3, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.8041 - if (err != NANOS_OK) 1.8042 - nanos_handle_error(err); 1.8043 - } 1.8044 - } 1.8045 - ; 1.8046 - } 1.8047 - } 1.8048 - for (; 1.8049 - j < smb_height; 1.8050 - j++) 1.8051 - { 1.8052 - for (i = 0; 1.8053 - i < smb_width; 1.8054 - i++) 1.8055 - { 1.8056 - sm = smbs + j * smb_width + i; 1.8057 - sml = sm - ((i > 0) ? 1 : 0); 1.8058 - smur = sm + (((i < smb_width - 1) && (j > 0)) ? - smb_width + 1 : 0); 1.8059 - { 1.8060 - struct MBRecContext *__tmp_0 = d; 1.8061 - SliceBufferEntry *__tmp_1 = sbe; 1.8062 - struct SuperMBContext *__tmp_2 = smbc; 1.8063 - struct SuperMBTask *__tmp_3 = sml; 1.8064 - struct SuperMBTask *__tmp_4 = smur; 1.8065 - struct SuperMBTask *__tmp_5 = sm; 1.8066 - { 1.8067 - /* SMP device descriptor */ 1.8068 - static nanos_smp_args_t _ol_add_decode_slice_3dwave_tasks_4_smp_args = {(void (*)(void *)) _smp__ol_add_decode_slice_3dwave_tasks_4}; 1.8069 - _nx_data_env_4_t *ol_args = (_nx_data_env_4_t *) 0; 1.8070 - nanos_wd_t wd = (nanos_wd_t) 0; 1.8071 - struct nanos_const_wd_definition_local_t 1.8072 - { 1.8073 - nanos_const_wd_definition_t base; 1.8074 - nanos_device_t devices[1]; 1.8075 - }; 1.8076 - static struct nanos_const_wd_definition_local_t _const_def = { 1.8077 - { 1.8078 - { 1.8079 - 0, 1.8080 - 1, 1.8081 - 0, 1.8082 - 0, 1.8083 - 0, 1.8084 - 0, 1.8085 - 0, 1.8086 - 0 1.8087 - }, 1.8088 - __alignof__(_nx_data_env_4_t), 1.8089 - 0, 1.8090 - 1 1.8091 - }, 1.8092 - {{ 1.8093 - nanos_smp_factory, 1.8094 - &_ol_add_decode_slice_3dwave_tasks_4_smp_args 1.8095 - }} 1.8096 - }; 1.8097 - nanos_wd_dyn_props_t dyn_props = {0}; 1.8098 - nanos_err_t err; 1.8099 - dyn_props.priority = 0; 1.8100 - err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_4_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.8101 - if (err != NANOS_OK) 1.8102 - nanos_handle_error(err); 1.8103 - if (wd != (nanos_wd_t) 0) 1.8104 - { 1.8105 - ol_args->__tmp_0_0 = __tmp_0; 1.8106 - ol_args->__tmp_1_0 = __tmp_1; 1.8107 - ol_args->__tmp_2_0 = __tmp_2; 1.8108 - ol_args->__tmp_3_0 = __tmp_3; 1.8109 - ol_args->__tmp_4_0 = __tmp_4; 1.8110 - ol_args->__tmp_5_0 = __tmp_5; 1.8111 - nanos_dependence_t _dependences[5] = { 1.8112 - { 1.8113 - (void **) &ol_args->__tmp_0_0, 1.8114 - ((char *) ((__tmp_0)) - (char *) ol_args->__tmp_0_0), 1.8115 - { 1.8116 - 1, 1.8117 - 0, 1.8118 - 1, 1.8119 - 0 1.8120 - }, 1.8121 - sizeof(struct MBRecContext) 1.8122 - }, 1.8123 - { 1.8124 - (void **) &ol_args->__tmp_1_0, 1.8125 - ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.8126 - { 1.8127 - 1, 1.8128 - 0, 1.8129 - 1, 1.8130 - 0 1.8131 - }, 1.8132 - sizeof(SliceBufferEntry) 1.8133 - }, 1.8134 - { 1.8135 - (void **) &ol_args->__tmp_3_0, 1.8136 - ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0), 1.8137 - { 1.8138 - 1, 1.8139 - 0, 1.8140 - 1, 1.8141 - 0 1.8142 - }, 1.8143 - sizeof(struct SuperMBTask) 1.8144 - }, 1.8145 - { 1.8146 - (void **) &ol_args->__tmp_4_0, 1.8147 - ((char *) ((__tmp_4)) - (char *) ol_args->__tmp_4_0), 1.8148 - { 1.8149 - 1, 1.8150 - 0, 1.8151 - 1, 1.8152 - 0 1.8153 - }, 1.8154 - sizeof(struct SuperMBTask) 1.8155 - }, 1.8156 - { 1.8157 - (void **) &ol_args->__tmp_5_0, 1.8158 - ((char *) ((__tmp_5)) - (char *) ol_args->__tmp_5_0), 1.8159 - { 1.8160 - 1, 1.8161 - 1, 1.8162 - 1, 1.8163 - 0 1.8164 - }, 1.8165 - sizeof(struct SuperMBTask) 1.8166 - } 1.8167 - }; 1.8168 - err = nanos_submit(wd, 5, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.8169 - if (err != NANOS_OK) 1.8170 - nanos_handle_error(err); 1.8171 } 1.8172 - else 1.8173 - { 1.8174 - _nx_data_env_4_t imm_args; 1.8175 - imm_args.__tmp_0_0 = __tmp_0; 1.8176 - imm_args.__tmp_1_0 = __tmp_1; 1.8177 - imm_args.__tmp_2_0 = __tmp_2; 1.8178 - imm_args.__tmp_3_0 = __tmp_3; 1.8179 - imm_args.__tmp_4_0 = __tmp_4; 1.8180 - imm_args.__tmp_5_0 = __tmp_5; 1.8181 - nanos_dependence_t _dependences[5] = { 1.8182 - { 1.8183 - (void **) &imm_args.__tmp_0_0, 1.8184 - ((char *) ((__tmp_0)) - (char *) imm_args.__tmp_0_0), 1.8185 - { 1.8186 - 1, 1.8187 - 0, 1.8188 - 1, 1.8189 - 0 1.8190 - }, 1.8191 - sizeof(struct MBRecContext) 1.8192 - }, 1.8193 - { 1.8194 - (void **) &imm_args.__tmp_1_0, 1.8195 - ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.8196 - { 1.8197 - 1, 1.8198 - 0, 1.8199 - 1, 1.8200 - 0 1.8201 - }, 1.8202 - sizeof(SliceBufferEntry) 1.8203 - }, 1.8204 - { 1.8205 - (void **) &imm_args.__tmp_3_0, 1.8206 - ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0), 1.8207 - { 1.8208 - 1, 1.8209 - 0, 1.8210 - 1, 1.8211 - 0 1.8212 - }, 1.8213 - sizeof(struct SuperMBTask) 1.8214 - }, 1.8215 - { 1.8216 - (void **) &imm_args.__tmp_4_0, 1.8217 - ((char *) ((__tmp_4)) - (char *) imm_args.__tmp_4_0), 1.8218 - { 1.8219 - 1, 1.8220 - 0, 1.8221 - 1, 1.8222 - 0 1.8223 - }, 1.8224 - sizeof(struct SuperMBTask) 1.8225 - }, 1.8226 - { 1.8227 - (void **) &imm_args.__tmp_5_0, 1.8228 - ((char *) ((__tmp_5)) - (char *) imm_args.__tmp_5_0), 1.8229 - { 1.8230 - 1, 1.8231 - 1, 1.8232 - 1, 1.8233 - 0 1.8234 - }, 1.8235 - sizeof(struct SuperMBTask) 1.8236 - } 1.8237 - }; 1.8238 - dyn_props.priority = 0; 1.8239 - err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_4_t), &imm_args, 5, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.8240 - if (err != NANOS_OK) 1.8241 - nanos_handle_error(err); 1.8242 - } 1.8243 - } 1.8244 - ; 1.8245 + } 1.8246 + } 1.8247 } 1.8248 } 1.8249 - { 1.8250 - struct MBRecContext *__tmp_0 = d; 1.8251 - SliceBufferEntry *__tmp_1 = sbe; 1.8252 - struct SuperMBContext *__tmp_2 = smbc; 1.8253 - struct SuperMBTask *__tmp_3 = sm; 1.8254 - int __tmp_4 = j; 1.8255 - { 1.8256 - /* SMP device descriptor */ 1.8257 - static nanos_smp_args_t _ol_add_decode_slice_3dwave_tasks_5_smp_args = {(void (*)(void *)) _smp__ol_add_decode_slice_3dwave_tasks_5}; 1.8258 - _nx_data_env_5_t *ol_args = (_nx_data_env_5_t *) 0; 1.8259 - nanos_wd_t wd = (nanos_wd_t) 0; 1.8260 - struct nanos_const_wd_definition_local_t 1.8261 - { 1.8262 - nanos_const_wd_definition_t base; 1.8263 - nanos_device_t devices[1]; 1.8264 - }; 1.8265 - static struct nanos_const_wd_definition_local_t _const_def = { 1.8266 - { 1.8267 - { 1.8268 - 0, 1.8269 - 1, 1.8270 - 0, 1.8271 - 0, 1.8272 - 0, 1.8273 - 0, 1.8274 - 0, 1.8275 - 0 1.8276 - }, 1.8277 - __alignof__(_nx_data_env_5_t), 1.8278 - 0, 1.8279 - 1 1.8280 - }, 1.8281 - {{ 1.8282 - nanos_smp_factory, 1.8283 - &_ol_add_decode_slice_3dwave_tasks_5_smp_args 1.8284 - }} 1.8285 - }; 1.8286 - nanos_wd_dyn_props_t dyn_props = {0}; 1.8287 - nanos_err_t err; 1.8288 - dyn_props.priority = 0; 1.8289 - err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_5_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.8290 - if (err != NANOS_OK) 1.8291 - nanos_handle_error(err); 1.8292 - if (wd != (nanos_wd_t) 0) 1.8293 - { 1.8294 - ol_args->__tmp_0_0 = __tmp_0; 1.8295 - ol_args->__tmp_1_0 = __tmp_1; 1.8296 - ol_args->__tmp_2_0 = __tmp_2; 1.8297 - ol_args->__tmp_3_0 = __tmp_3; 1.8298 - ol_args->__tmp_4_0 = __tmp_4; 1.8299 - nanos_dependence_t _dependences[3] = { 1.8300 - { 1.8301 - (void **) &ol_args->__tmp_0_0, 1.8302 - ((char *) ((__tmp_0)) - (char *) ol_args->__tmp_0_0), 1.8303 - { 1.8304 - 1, 1.8305 - 0, 1.8306 - 1, 1.8307 - 0 1.8308 - }, 1.8309 - sizeof(struct MBRecContext) 1.8310 - }, 1.8311 - { 1.8312 - (void **) &ol_args->__tmp_1_0, 1.8313 - ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.8314 - { 1.8315 - 1, 1.8316 - 0, 1.8317 - 1, 1.8318 - 0 1.8319 - }, 1.8320 - sizeof(SliceBufferEntry) 1.8321 - }, 1.8322 - { 1.8323 - (void **) &ol_args->__tmp_3_0, 1.8324 - ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0), 1.8325 - { 1.8326 - 1, 1.8327 - 1, 1.8328 - 1, 1.8329 - 0 1.8330 - }, 1.8331 - sizeof(struct SuperMBTask) 1.8332 - } 1.8333 - }; 1.8334 - err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.8335 - if (err != NANOS_OK) 1.8336 - nanos_handle_error(err); 1.8337 - } 1.8338 - else 1.8339 - { 1.8340 - _nx_data_env_5_t imm_args; 1.8341 - imm_args.__tmp_0_0 = __tmp_0; 1.8342 - imm_args.__tmp_1_0 = __tmp_1; 1.8343 - imm_args.__tmp_2_0 = __tmp_2; 1.8344 - imm_args.__tmp_3_0 = __tmp_3; 1.8345 - imm_args.__tmp_4_0 = __tmp_4; 1.8346 - nanos_dependence_t _dependences[3] = { 1.8347 - { 1.8348 - (void **) &imm_args.__tmp_0_0, 1.8349 - ((char *) ((__tmp_0)) - (char *) imm_args.__tmp_0_0), 1.8350 - { 1.8351 - 1, 1.8352 - 0, 1.8353 - 1, 1.8354 - 0 1.8355 - }, 1.8356 - sizeof(struct MBRecContext) 1.8357 - }, 1.8358 - { 1.8359 - (void **) &imm_args.__tmp_1_0, 1.8360 - ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.8361 - { 1.8362 - 1, 1.8363 - 0, 1.8364 - 1, 1.8365 - 0 1.8366 - }, 1.8367 - sizeof(SliceBufferEntry) 1.8368 - }, 1.8369 - { 1.8370 - (void **) &imm_args.__tmp_3_0, 1.8371 - ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0), 1.8372 - { 1.8373 - 1, 1.8374 - 1, 1.8375 - 1, 1.8376 - 0 1.8377 - }, 1.8378 - sizeof(struct SuperMBTask) 1.8379 - } 1.8380 - }; 1.8381 - dyn_props.priority = 0; 1.8382 - err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_5_t), &imm_args, 3, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.8383 - if (err != NANOS_OK) 1.8384 - nanos_handle_error(err); 1.8385 - } 1.8386 - } 1.8387 - ; 1.8388 - } 1.8389 + } 1.8390 } 1.8391 - return sm; 1.8392 + return sm; 1.8393 } 1.8394 static void release_ref_list_task(H264Context *h, SuperMBContext *smbc, MBRecContext *d, SliceBufferEntry *sbe, SuperMBTask *lastsmb, int *release) 1.8395 { 1.8396 - H264Slice *s = &sbe->slice; 1.8397 - for (int i = 0; 1.8398 - i < s->release_cnt; 1.8399 - i++) 1.8400 + H264Slice *s = &(*sbe).slice; 1.8401 + for (int i = 0; i < (*s).release_cnt; i++) 1.8402 { 1.8403 - for (int j = 0; 1.8404 - j < h->max_dpb_cnt; 1.8405 - j++) 1.8406 + { 1.8407 + for (int j = 0; j < (*h).max_dpb_cnt; j++) 1.8408 + { 1.8409 + { 1.8410 + if ((*h).dpb[j].cpn == (*s).release_ref_cpn[i]) 1.8411 + { 1.8412 + { 1.8413 + { 1.8414 + nanos_err_t err; 1.8415 + err = nanos_set_lock(&nanos_critical_lock_dpb); 1.8416 + if (err != NANOS_OK) 1.8417 + { 1.8418 + nanos_handle_error(err); 1.8419 + } 1.8420 + release_dpb_entry(h, &(*h).dpb[j], 2); 1.8421 + err = nanos_unset_lock(&nanos_critical_lock_dpb); 1.8422 + if (err != NANOS_OK) 1.8423 + { 1.8424 + nanos_handle_error(err); 1.8425 + } 1.8426 + } 1.8427 + break; 1.8428 + } 1.8429 + } 1.8430 + } 1.8431 + } 1.8432 + } 1.8433 + } 1.8434 + (*s).release_cnt = 0; 1.8435 + release_smbc(h, smbc); 1.8436 +} 1.8437 +struct OutputContext; 1.8438 +typedef struct OutputContext OutputContext; 1.8439 +DecodedPicture *output_frame(H264Context *h, OutputContext *oc, DecodedPicture *pic, int fd, int frame_width, int frame_height); 1.8440 +static void output_task(H264Context *h, OutputContext *oc, SliceBufferEntry *sbe) 1.8441 +{ 1.8442 + DecodedPicture *out = output_frame(h, oc, (*sbe).slice.curr_pic, (*h).ofile, (*h).frame_width, (*h).frame_height); 1.8443 + if (out) 1.8444 + { 1.8445 + { 1.8446 { 1.8447 - if (h->dpb[j].cpn == s->release_ref_cpn[i]) 1.8448 + nanos_err_t err; 1.8449 + err = nanos_set_lock(&nanos_critical_lock_dpb); 1.8450 + if (err != NANOS_OK) 1.8451 { 1.8452 - { 1.8453 - nanos_set_lock(&_nx_u_dpb_critical_lock); 1.8454 - release_dpb_entry(h, &h->dpb[j], 2); 1.8455 - nanos_unset_lock(&_nx_u_dpb_critical_lock); 1.8456 - } 1.8457 - break; 1.8458 + nanos_handle_error(err); 1.8459 + } 1.8460 + release_dpb_entry(h, out, 1); 1.8461 + err = nanos_unset_lock(&nanos_critical_lock_dpb); 1.8462 + if (err != NANOS_OK) 1.8463 + { 1.8464 + nanos_handle_error(err); 1.8465 } 1.8466 } 1.8467 - } 1.8468 - s->release_cnt = 0; 1.8469 - release_smbc(h, smbc); 1.8470 -} 1.8471 -static void output_task(H264Context *h, OutputContext *oc, SliceBufferEntry *sbe) 1.8472 -{ 1.8473 - DecodedPicture *out = output_frame(h, oc, sbe->slice.curr_pic, h->ofile, h->frame_width, h->frame_height); 1.8474 - if (out) 1.8475 - { 1.8476 - { 1.8477 - nanos_set_lock(&_nx_u_dpb_critical_lock); 1.8478 - release_dpb_entry(h, out, 1); 1.8479 - nanos_unset_lock(&_nx_u_dpb_critical_lock); 1.8480 - } 1.8481 + } 1.8482 } 1.8483 } 1.8484 -typedef struct _nx_data_env_6_t_tag 1.8485 +void *av_mallocz(unsigned int size)__attribute__((__malloc__)); 1.8486 +ParserContext *get_parse_context(int ifile); 1.8487 +NalContext *get_nal_context(int width, int height); 1.8488 +EntropyContext *get_entropy_context(H264Context *h); 1.8489 +MBRecContext *get_mbrec_context(H264Context *h); 1.8490 +OutputContext *get_output_context(H264Context *h); 1.8491 +void av_start_timer(); 1.8492 +struct ParserContext 1.8493 { 1.8494 - struct H264Context *__tmp_0_0; 1.8495 - struct ParserContext *__tmp_1_0; 1.8496 - struct NalContext *__tmp_2_0; 1.8497 - SliceBufferEntry *__tmp_3_0; 1.8498 -} _nx_data_env_6_t; 1.8499 -int h264_decode_ompss(H264Context *h); 1.8500 -static void _smp__ol_h264_decode_ompss_6(_nx_data_env_6_t *const __restrict__ _args) 1.8501 + int ifile; 1.8502 + int ofile; 1.8503 + int buffer_size; 1.8504 + int eof_reached; 1.8505 + uint8_t *data; 1.8506 + int size; 1.8507 + uint8_t *cur_ptr; 1.8508 + int cur_len; 1.8509 + int64_t frame_offset; 1.8510 + int64_t cur_offset; 1.8511 + int64_t next_frame_offset; 1.8512 + int pict_type; 1.8513 + int repeat_pict; 1.8514 + int key_frame; 1.8515 + int64_t pos; 1.8516 + int64_t last_pos; 1.8517 + int final_frame; 1.8518 + uint8_t overread[5]; 1.8519 + int overread_cnt; 1.8520 + int index; 1.8521 + int last_index; 1.8522 + int frame_start_found; 1.8523 + uint32_t state; 1.8524 +}; 1.8525 +struct nanos_args_6_t 1.8526 { 1.8527 - struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.8528 - struct ParserContext *___tmp_1_0 = _args->__tmp_1_0; 1.8529 - struct NalContext *___tmp_2_0 = _args->__tmp_2_0; 1.8530 - SliceBufferEntry *___tmp_3_0 = _args->__tmp_3_0; 1.8531 - /* Translation is done by the runtime */ 1.8532 - { 1.8533 - parse_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0)); 1.8534 - } 1.8535 -} 1.8536 -typedef struct _nx_data_env_7_t_tag 1.8537 + H264Context *h; 1.8538 + ParserContext *pc; 1.8539 + NalContext *nc; 1.8540 + SliceBufferEntry *sbe; 1.8541 +}; 1.8542 +static void smp_ol_parse_task_13(struct nanos_args_6_t *const args); 1.8543 +struct SPS; 1.8544 +typedef struct SPS SPS; 1.8545 +enum AVColorPrimaries 1.8546 { 1.8547 - struct H264Context *__tmp_0_0; 1.8548 - struct EntropyContext *__tmp_1_0; 1.8549 - SliceBufferEntry *__tmp_2_0; 1.8550 -} _nx_data_env_7_t; 1.8551 -int h264_decode_ompss(H264Context *h); 1.8552 -static void _smp__ol_h264_decode_ompss_7(_nx_data_env_7_t *const __restrict__ _args) 1.8553 + AVCOL_PRI_BT709 = 1, 1.8554 + AVCOL_PRI_UNSPECIFIED = 2, 1.8555 + AVCOL_PRI_BT470M = 4, 1.8556 + AVCOL_PRI_BT470BG = 5, 1.8557 + AVCOL_PRI_SMPTE170M = 6, 1.8558 + AVCOL_PRI_SMPTE240M = 7, 1.8559 + AVCOL_PRI_FILM = 8, 1.8560 + AVCOL_PRI_NB = 9 1.8561 +}; 1.8562 +enum AVColorTransferCharacteristic 1.8563 { 1.8564 - struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.8565 - struct EntropyContext *___tmp_1_0 = _args->__tmp_1_0; 1.8566 - SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0; 1.8567 - /* Translation is done by the runtime */ 1.8568 - { 1.8569 - decode_slice_entropy_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0)); 1.8570 - } 1.8571 -} 1.8572 -typedef struct _nx_data_env_8_t_tag 1.8573 + AVCOL_TRC_BT709 = 1, 1.8574 + AVCOL_TRC_UNSPECIFIED = 2, 1.8575 + AVCOL_TRC_GAMMA22 = 4, 1.8576 + AVCOL_TRC_GAMMA28 = 5, 1.8577 + AVCOL_TRC_NB = 6 1.8578 +}; 1.8579 +enum AVColorSpace 1.8580 { 1.8581 - struct H264Context *__tmp_0_0; 1.8582 - struct ParserContext *__tmp_1_0; 1.8583 - struct NalContext *__tmp_2_0; 1.8584 - SliceBufferEntry *__tmp_3_0; 1.8585 -} _nx_data_env_8_t; 1.8586 -int h264_decode_ompss(H264Context *h); 1.8587 -static void _smp__ol_h264_decode_ompss_8(_nx_data_env_8_t *const __restrict__ _args) 1.8588 + AVCOL_SPC_RGB = 0, 1.8589 + AVCOL_SPC_BT709 = 1, 1.8590 + AVCOL_SPC_UNSPECIFIED = 2, 1.8591 + AVCOL_SPC_FCC = 4, 1.8592 + AVCOL_SPC_BT470BG = 5, 1.8593 + AVCOL_SPC_SMPTE170M = 6, 1.8594 + AVCOL_SPC_SMPTE240M = 7, 1.8595 + AVCOL_SPC_NB = 8 1.8596 +}; 1.8597 +struct SPS 1.8598 { 1.8599 - struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.8600 - struct ParserContext *___tmp_1_0 = _args->__tmp_1_0; 1.8601 - struct NalContext *___tmp_2_0 = _args->__tmp_2_0; 1.8602 - SliceBufferEntry *___tmp_3_0 = _args->__tmp_3_0; 1.8603 - /* Translation is done by the runtime */ 1.8604 - { 1.8605 - parse_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0)); 1.8606 - } 1.8607 -} 1.8608 -typedef struct _nx_data_env_9_t_tag 1.8609 + int profile_idc; 1.8610 + int level_idc; 1.8611 + int chroma_format_idc; 1.8612 + int transform_bypass; 1.8613 + int log2_max_frame_num; 1.8614 + int poc_type; 1.8615 + int log2_max_poc_lsb; 1.8616 + int delta_pic_order_always_zero_flag; 1.8617 + int offset_for_non_ref_pic; 1.8618 + int offset_for_top_to_bottom_field; 1.8619 + int poc_cycle_length; 1.8620 + int ref_frame_count; 1.8621 + int gaps_in_frame_num_allowed_flag; 1.8622 + int mb_width; 1.8623 + int mb_height; 1.8624 + int frame_mbs_only_flag; 1.8625 + int mb_aff; 1.8626 + int direct_8x8_inference_flag; 1.8627 + int crop; 1.8628 + unsigned int crop_left; 1.8629 + unsigned int crop_right; 1.8630 + unsigned int crop_top; 1.8631 + unsigned int crop_bottom; 1.8632 + int vui_parameters_present_flag; 1.8633 + int num; 1.8634 + int den; 1.8635 + int video_signal_type_present_flag; 1.8636 + int full_range; 1.8637 + int colour_description_present_flag; 1.8638 + enum AVColorPrimaries color_primaries; 1.8639 + enum AVColorTransferCharacteristic color_trc; 1.8640 + enum AVColorSpace colorspace; 1.8641 + int timing_info_present_flag; 1.8642 + uint32_t num_units_in_tick; 1.8643 + uint32_t time_scale; 1.8644 + int fixed_frame_rate_flag; 1.8645 + short int offset_for_ref_frame[256]; 1.8646 + int bitstream_restriction_flag; 1.8647 + int num_reorder_frames; 1.8648 + int scaling_matrix_present; 1.8649 + uint8_t scaling_matrix4[6][16]; 1.8650 + uint8_t scaling_matrix8[2][64]; 1.8651 + int nal_hrd_parameters_present_flag; 1.8652 + int vcl_hrd_parameters_present_flag; 1.8653 + int pic_struct_present_flag; 1.8654 + int time_offset_length; 1.8655 + int cpb_cnt; 1.8656 + int initial_cpb_removal_delay_length; 1.8657 + int cpb_removal_delay_length; 1.8658 + int dpb_output_delay_length; 1.8659 + int bit_depth_luma; 1.8660 + int bit_depth_chroma; 1.8661 + int residual_color_transform_flag; 1.8662 +}; 1.8663 +struct PictureInfo 1.8664 { 1.8665 - struct H264Context *__tmp_0_0; 1.8666 - struct EntropyContext *__tmp_1_0; 1.8667 - SliceBufferEntry *__tmp_2_0; 1.8668 -} _nx_data_env_9_t; 1.8669 -int h264_decode_ompss(H264Context *h); 1.8670 -static void _smp__ol_h264_decode_ompss_9(_nx_data_env_9_t *const __restrict__ _args) 1.8671 + int ref_poc[2][16]; 1.8672 + int ref_count[2]; 1.8673 + int poc; 1.8674 + int frame_num; 1.8675 + int pic_id; 1.8676 + int long_ref; 1.8677 + int cpn; 1.8678 + int slice_type_nos; 1.8679 + int reference; 1.8680 +}; 1.8681 +enum mcc_enum_anon_20 1.8682 { 1.8683 - struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.8684 - struct EntropyContext *___tmp_1_0 = _args->__tmp_1_0; 1.8685 - SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0; 1.8686 - /* Translation is done by the runtime */ 1.8687 - { 1.8688 - decode_slice_entropy_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0)); 1.8689 - } 1.8690 -} 1.8691 -typedef struct _nx_data_env_10_t_tag 1.8692 + SEI_PIC_STRUCT_FRAME = 0, 1.8693 + SEI_PIC_STRUCT_TOP_FIELD = 1, 1.8694 + SEI_PIC_STRUCT_BOTTOM_FIELD = 2, 1.8695 + SEI_PIC_STRUCT_TOP_BOTTOM = 3, 1.8696 + SEI_PIC_STRUCT_BOTTOM_TOP = 4, 1.8697 + SEI_PIC_STRUCT_TOP_BOTTOM_TOP = 5, 1.8698 + SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM = 6, 1.8699 + SEI_PIC_STRUCT_FRAME_DOUBLING = 7, 1.8700 + SEI_PIC_STRUCT_FRAME_TRIPLING = 8 1.8701 +}; 1.8702 +typedef enum mcc_enum_anon_20 SEI_PicStructType; 1.8703 +struct NalContext 1.8704 { 1.8705 - struct H264Context *__tmp_0_0; 1.8706 - struct MBRecContext *__tmp_1_0; 1.8707 - SliceBufferEntry *__tmp_2_0; 1.8708 - int *__tmp_3_0; 1.8709 -} _nx_data_env_10_t; 1.8710 -int h264_decode_ompss(H264Context *h); 1.8711 -static void _smp__ol_h264_decode_ompss_10(_nx_data_env_10_t *const __restrict__ _args) 1.8712 + SPS *sps_buffers[32]; 1.8713 + PPS *pps_buffers[256]; 1.8714 + SPS sps; 1.8715 + PictureInfo picture[17]; 1.8716 + PictureInfo *release_ref[66]; 1.8717 + PictureInfo *short_ref[32]; 1.8718 + PictureInfo *long_ref[32]; 1.8719 + int long_ref_count; 1.8720 + int short_ref_count; 1.8721 + uint32_t coded_pic_num; 1.8722 + int poc_lsb; 1.8723 + int poc_msb; 1.8724 + uint32_t poc_offset; 1.8725 + int delta_poc; 1.8726 + int frame_num; 1.8727 + int prev_poc_msb; 1.8728 + int prev_poc_lsb; 1.8729 + int frame_num_offset; 1.8730 + int prev_frame_num_offset; 1.8731 + int prev_frame_num; 1.8732 + int max_pic_num; 1.8733 + int redundant_pic_count; 1.8734 + int outputed_poc; 1.8735 + int ip_id; 1.8736 + int b4_stride; 1.8737 + int mb_stride; 1.8738 + int mb_width; 1.8739 + int mb_height; 1.8740 + int width; 1.8741 + int height; 1.8742 + int has_b_frames; 1.8743 + SEI_PicStructType sei_pic_struct; 1.8744 + int sei_ct_type; 1.8745 + int sei_dpb_output_delay; 1.8746 + int sei_cpb_removal_delay; 1.8747 + int sei_recovery_frame_cnt; 1.8748 + int sei_buffering_period_present; 1.8749 + int initial_cpb_removal_delay[32]; 1.8750 +}; 1.8751 +struct nanos_args_7_t 1.8752 { 1.8753 - struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.8754 - struct MBRecContext *___tmp_1_0 = _args->__tmp_1_0; 1.8755 - SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0; 1.8756 - int *___tmp_3_0 = _args->__tmp_3_0; 1.8757 - /* Translation is done by the runtime */ 1.8758 - { 1.8759 - init_ref_list_and_get_dpb_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0)); 1.8760 - } 1.8761 -} 1.8762 -typedef struct _nx_data_env_11_t_tag 1.8763 + H264Context *h; 1.8764 + EntropyContext *ec; 1.8765 + SliceBufferEntry *sbe; 1.8766 +}; 1.8767 +static void smp_ol_decode_slice_entropy_task_15(struct nanos_args_7_t *const args); 1.8768 +struct nanos_args_8_t 1.8769 { 1.8770 - struct H264Context *__tmp_0_0; 1.8771 - struct SuperMBContext *__tmp_1_0; 1.8772 - struct MBRecContext *__tmp_2_0; 1.8773 - SliceBufferEntry *__tmp_3_0; 1.8774 - struct SuperMBTask *__tmp_4_0; 1.8775 - int *__tmp_5_0; 1.8776 -} _nx_data_env_11_t; 1.8777 -int h264_decode_ompss(H264Context *h); 1.8778 -static void _smp__ol_h264_decode_ompss_11(_nx_data_env_11_t *const __restrict__ _args) 1.8779 + H264Context *h; 1.8780 + ParserContext *pc; 1.8781 + NalContext *nc; 1.8782 + SliceBufferEntry *sbe; 1.8783 +}; 1.8784 +static void smp_ol_parse_task_17(struct nanos_args_8_t *const args); 1.8785 +struct nanos_args_9_t 1.8786 { 1.8787 - struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.8788 - struct SuperMBContext *___tmp_1_0 = _args->__tmp_1_0; 1.8789 - struct MBRecContext *___tmp_2_0 = _args->__tmp_2_0; 1.8790 - SliceBufferEntry *___tmp_3_0 = _args->__tmp_3_0; 1.8791 - struct SuperMBTask *___tmp_4_0 = _args->__tmp_4_0; 1.8792 - int *___tmp_5_0 = _args->__tmp_5_0; 1.8793 - /* Translation is done by the runtime */ 1.8794 - { 1.8795 - release_ref_list_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0), (___tmp_5_0)); 1.8796 - } 1.8797 -} 1.8798 -typedef struct _nx_data_env_12_t_tag 1.8799 + H264Context *h; 1.8800 + EntropyContext *ec; 1.8801 + SliceBufferEntry *sbe; 1.8802 +}; 1.8803 +static void smp_ol_decode_slice_entropy_task_19(struct nanos_args_9_t *const args); 1.8804 +struct nanos_args_10_t 1.8805 { 1.8806 - struct H264Context *__tmp_0_0; 1.8807 - struct OutputContext *__tmp_1_0; 1.8808 - SliceBufferEntry *__tmp_2_0; 1.8809 -} _nx_data_env_12_t; 1.8810 -int h264_decode_ompss(H264Context *h); 1.8811 -static void _smp__ol_h264_decode_ompss_12(_nx_data_env_12_t *const __restrict__ _args) 1.8812 + H264Context *h; 1.8813 + MBRecContext *d; 1.8814 + SliceBufferEntry *sbe; 1.8815 + int *init; 1.8816 +}; 1.8817 +static void smp_ol_init_ref_list_and_get_dpb_task_21(struct nanos_args_10_t *const args); 1.8818 +struct nanos_args_11_t 1.8819 { 1.8820 - struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.8821 - struct OutputContext *___tmp_1_0 = _args->__tmp_1_0; 1.8822 - SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0; 1.8823 - /* Translation is done by the runtime */ 1.8824 - { 1.8825 - output_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0)); 1.8826 - } 1.8827 -} 1.8828 -typedef struct _nx_data_env_13_t_tag 1.8829 + H264Context *h; 1.8830 + SuperMBContext *smbc; 1.8831 + MBRecContext *d; 1.8832 + SliceBufferEntry *sbe; 1.8833 + SuperMBTask *lastsmb; 1.8834 + int *release; 1.8835 +}; 1.8836 +static void smp_ol_release_ref_list_task_23(struct nanos_args_11_t *const args); 1.8837 +struct nanos_args_12_t 1.8838 { 1.8839 - struct H264Context *__tmp_0_0; 1.8840 - struct MBRecContext *__tmp_1_0; 1.8841 - SliceBufferEntry *__tmp_2_0; 1.8842 - int *__tmp_3_0; 1.8843 -} _nx_data_env_13_t; 1.8844 -int h264_decode_ompss(H264Context *h); 1.8845 -static void _smp__ol_h264_decode_ompss_13(_nx_data_env_13_t *const __restrict__ _args) 1.8846 + H264Context *h; 1.8847 + OutputContext *oc; 1.8848 + SliceBufferEntry *sbe; 1.8849 +}; 1.8850 +static void smp_ol_output_task_25(struct nanos_args_12_t *const args); 1.8851 +struct OutputContext 1.8852 { 1.8853 - struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.8854 - struct MBRecContext *___tmp_1_0 = _args->__tmp_1_0; 1.8855 - SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0; 1.8856 - int *___tmp_3_0 = _args->__tmp_3_0; 1.8857 - /* Translation is done by the runtime */ 1.8858 - { 1.8859 - init_ref_list_and_get_dpb_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0)); 1.8860 - } 1.8861 -} 1.8862 -typedef struct _nx_data_env_14_t_tag 1.8863 + int bit_buffer_size; 1.8864 + uint8_t *bit_buffer; 1.8865 + uint64_t video_size; 1.8866 + int frame_number; 1.8867 + DecodedPicture *delayed_pic[33]; 1.8868 + int dp_cnt; 1.8869 +}; 1.8870 +struct nanos_args_13_t 1.8871 { 1.8872 - struct H264Context *__tmp_0_0; 1.8873 - struct SuperMBContext *__tmp_1_0; 1.8874 - struct MBRecContext *__tmp_2_0; 1.8875 - SliceBufferEntry *__tmp_3_0; 1.8876 - struct SuperMBTask *__tmp_4_0; 1.8877 - int *__tmp_5_0; 1.8878 -} _nx_data_env_14_t; 1.8879 -int h264_decode_ompss(H264Context *h); 1.8880 -static void _smp__ol_h264_decode_ompss_14(_nx_data_env_14_t *const __restrict__ _args) 1.8881 + H264Context *h; 1.8882 + MBRecContext *d; 1.8883 + SliceBufferEntry *sbe; 1.8884 + int *init; 1.8885 +}; 1.8886 +static void smp_ol_init_ref_list_and_get_dpb_task_27(struct nanos_args_13_t *const args); 1.8887 +struct nanos_args_14_t 1.8888 { 1.8889 - struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.8890 - struct SuperMBContext *___tmp_1_0 = _args->__tmp_1_0; 1.8891 - struct MBRecContext *___tmp_2_0 = _args->__tmp_2_0; 1.8892 - SliceBufferEntry *___tmp_3_0 = _args->__tmp_3_0; 1.8893 - struct SuperMBTask *___tmp_4_0 = _args->__tmp_4_0; 1.8894 - int *___tmp_5_0 = _args->__tmp_5_0; 1.8895 - /* Translation is done by the runtime */ 1.8896 - { 1.8897 - release_ref_list_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0), (___tmp_5_0)); 1.8898 - } 1.8899 -} 1.8900 -typedef struct _nx_data_env_15_t_tag 1.8901 + H264Context *h; 1.8902 + SuperMBContext *smbc; 1.8903 + MBRecContext *d; 1.8904 + SliceBufferEntry *sbe; 1.8905 + SuperMBTask *lastsmb; 1.8906 + int *release; 1.8907 +}; 1.8908 +static void smp_ol_release_ref_list_task_29(struct nanos_args_14_t *const args); 1.8909 +struct nanos_args_15_t 1.8910 { 1.8911 - struct H264Context *__tmp_0_0; 1.8912 - struct OutputContext *__tmp_1_0; 1.8913 - SliceBufferEntry *__tmp_2_0; 1.8914 -} _nx_data_env_15_t; 1.8915 -int h264_decode_ompss(H264Context *h); 1.8916 -static void _smp__ol_h264_decode_ompss_15(_nx_data_env_15_t *const __restrict__ _args) 1.8917 + H264Context *h; 1.8918 + OutputContext *oc; 1.8919 + SliceBufferEntry *sbe; 1.8920 +}; 1.8921 +static void smp_ol_output_task_31(struct nanos_args_15_t *const args); 1.8922 +struct nanos_args_16_t 1.8923 { 1.8924 - struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.8925 - struct OutputContext *___tmp_1_0 = _args->__tmp_1_0; 1.8926 - SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0; 1.8927 - /* Translation is done by the runtime */ 1.8928 - { 1.8929 - output_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0)); 1.8930 - } 1.8931 -} 1.8932 -typedef struct _nx_data_env_16_t_tag 1.8933 + H264Context *h; 1.8934 + ParserContext *pc; 1.8935 + NalContext *nc; 1.8936 + SliceBufferEntry *sbe; 1.8937 +}; 1.8938 +static void smp_ol_parse_task_33(struct nanos_args_16_t *const args); 1.8939 +struct nanos_args_17_t 1.8940 { 1.8941 - struct H264Context *__tmp_0_0; 1.8942 - struct ParserContext *__tmp_1_0; 1.8943 - struct NalContext *__tmp_2_0; 1.8944 - SliceBufferEntry *__tmp_3_0; 1.8945 -} _nx_data_env_16_t; 1.8946 -int h264_decode_ompss(H264Context *h); 1.8947 -static void _smp__ol_h264_decode_ompss_16(_nx_data_env_16_t *const __restrict__ _args) 1.8948 + H264Context *h; 1.8949 + EntropyContext *ec; 1.8950 + SliceBufferEntry *sbe; 1.8951 +}; 1.8952 +static void smp_ol_decode_slice_entropy_task_35(struct nanos_args_17_t *const args); 1.8953 +struct nanos_args_18_t 1.8954 { 1.8955 - struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.8956 - struct ParserContext *___tmp_1_0 = _args->__tmp_1_0; 1.8957 - struct NalContext *___tmp_2_0 = _args->__tmp_2_0; 1.8958 - SliceBufferEntry *___tmp_3_0 = _args->__tmp_3_0; 1.8959 - /* Translation is done by the runtime */ 1.8960 - { 1.8961 - parse_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0)); 1.8962 - } 1.8963 -} 1.8964 -typedef struct _nx_data_env_17_t_tag 1.8965 + H264Context *h; 1.8966 + MBRecContext *d; 1.8967 + SliceBufferEntry *sbe; 1.8968 +}; 1.8969 +static void smp_ol_decode_slice_mb_task_37(struct nanos_args_18_t *const args); 1.8970 +struct nanos_args_19_t 1.8971 { 1.8972 - struct H264Context *__tmp_0_0; 1.8973 - struct EntropyContext *__tmp_1_0; 1.8974 - SliceBufferEntry *__tmp_2_0; 1.8975 -} _nx_data_env_17_t; 1.8976 -int h264_decode_ompss(H264Context *h); 1.8977 -static void _smp__ol_h264_decode_ompss_17(_nx_data_env_17_t *const __restrict__ _args) 1.8978 -{ 1.8979 - struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.8980 - struct EntropyContext *___tmp_1_0 = _args->__tmp_1_0; 1.8981 - SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0; 1.8982 - /* Translation is done by the runtime */ 1.8983 - { 1.8984 - decode_slice_entropy_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0)); 1.8985 - } 1.8986 -} 1.8987 -typedef struct _nx_data_env_18_t_tag 1.8988 -{ 1.8989 - struct H264Context *__tmp_0_0; 1.8990 - struct MBRecContext *__tmp_1_0; 1.8991 - SliceBufferEntry *__tmp_2_0; 1.8992 -} _nx_data_env_18_t; 1.8993 -int h264_decode_ompss(H264Context *h); 1.8994 -static void _smp__ol_h264_decode_ompss_18(_nx_data_env_18_t *const __restrict__ _args) 1.8995 -{ 1.8996 - struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.8997 - struct MBRecContext *___tmp_1_0 = _args->__tmp_1_0; 1.8998 - SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0; 1.8999 - /* Translation is done by the runtime */ 1.9000 - { 1.9001 - decode_slice_mb_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0)); 1.9002 - } 1.9003 -} 1.9004 -typedef struct _nx_data_env_19_t_tag 1.9005 -{ 1.9006 - struct H264Context *__tmp_0_0; 1.9007 - struct OutputContext *__tmp_1_0; 1.9008 - SliceBufferEntry *__tmp_2_0; 1.9009 -} _nx_data_env_19_t; 1.9010 -int h264_decode_ompss(H264Context *h); 1.9011 -static void _smp__ol_h264_decode_ompss_19(_nx_data_env_19_t *const __restrict__ _args) 1.9012 -{ 1.9013 - struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.9014 - struct OutputContext *___tmp_1_0 = _args->__tmp_1_0; 1.9015 - SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0; 1.9016 - /* Translation is done by the runtime */ 1.9017 - { 1.9018 - output_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0)); 1.9019 - } 1.9020 -} 1.9021 + H264Context *h; 1.9022 + OutputContext *oc; 1.9023 + SliceBufferEntry *sbe; 1.9024 +}; 1.9025 +static void smp_ol_output_task_39(struct nanos_args_19_t *const args); 1.9026 +extern nanos_err_t nanos_wg_wait_completion(void *wg, _Bool avoid_flush); 1.9027 +void free_parse_context(ParserContext *pc); 1.9028 +void free_nal_context(NalContext *nc); 1.9029 +void free_output_context(OutputContext *oc); 1.9030 +void free_sb_entry(SliceBufferEntry *sb); 1.9031 +void free_entropy_context(EntropyContext *ec); 1.9032 +void av_free(void *ptr); 1.9033 +void free_mbrec_context(MBRecContext *d); 1.9034 int h264_decode_ompss(H264Context *h) 1.9035 { 1.9036 - const int bufs = h->pipe_bufs; 1.9037 - ParserContext *pc; 1.9038 - NalContext *nc; 1.9039 - EntropyContext *ec[bufs]; 1.9040 - MBRecContext *rc[2]; 1.9041 - OutputContext *oc; 1.9042 - SliceBufferEntry *sbe; 1.9043 - SuperMBContext *smbc; 1.9044 - DecodedPicture *out; 1.9045 - int frames = 0; 1.9046 - sbe = av_mallocz(sizeof(SliceBufferEntry) * bufs); 1.9047 - pc = get_parse_context(h->ifile); 1.9048 - nc = get_nal_context(h->width, h->height); 1.9049 - for (int i = 0; 1.9050 - i < bufs; 1.9051 - i++) 1.9052 + SliceBufferEntry *sbe; 1.9053 + ParserContext *pc; 1.9054 + NalContext *nc; 1.9055 + MBRecContext *rc[2]; 1.9056 + OutputContext *oc; 1.9057 + int init; 1.9058 + SuperMBContext *smbc; 1.9059 + int release; 1.9060 + DecodedPicture *out; 1.9061 + const int bufs = (*h).pipe_bufs; 1.9062 + EntropyContext *ec[bufs]; 1.9063 + int frames = 0; 1.9064 + sbe = av_mallocz(sizeof(SliceBufferEntry) * bufs); 1.9065 + pc = get_parse_context((*h).ifile); 1.9066 + nc = get_nal_context((*h).width, (*h).height); 1.9067 + for (int i = 0; i < bufs; i++) 1.9068 { 1.9069 + { 1.9070 ec[i] = get_entropy_context(h); 1.9071 + } 1.9072 } 1.9073 - for (int i = 0; 1.9074 - i < 2; 1.9075 - i++) 1.9076 + for (int i = 0; i < 2; i++) 1.9077 { 1.9078 + { 1.9079 rc[i] = get_mbrec_context(h); 1.9080 + } 1.9081 } 1.9082 - oc = get_output_context(h); 1.9083 - av_start_timer(); 1.9084 - int k = 0; 1.9085 - int init, release; 1.9086 - if (h->static_3d && bufs < h->num_frames) 1.9087 + oc = get_output_context(h); 1.9088 + av_start_timer(); 1.9089 + int k = 0; 1.9090 + if ((*h).static_3d && bufs < (*h).num_frames) 1.9091 { 1.9092 + { 1.9093 int num_pre_ed = 0; 1.9094 - for (num_pre_ed = 0; 1.9095 - num_pre_ed < bufs - 1 && !pc->final_frame; 1.9096 - num_pre_ed++) 1.9097 - { 1.9098 + for (num_pre_ed = 0; num_pre_ed < bufs - 1 && !(*pc).final_frame; num_pre_ed++) 1.9099 + { 1.9100 { 1.9101 - struct H264Context *__tmp_0 = h; 1.9102 - struct ParserContext *__tmp_1 = pc; 1.9103 - struct NalContext *__tmp_2 = nc; 1.9104 - SliceBufferEntry *__tmp_3 = &sbe[k % bufs]; 1.9105 - { 1.9106 - /* SMP device descriptor */ 1.9107 - static nanos_smp_args_t _ol_h264_decode_ompss_6_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_6}; 1.9108 - _nx_data_env_6_t *ol_args = (_nx_data_env_6_t *) 0; 1.9109 - nanos_wd_t wd = (nanos_wd_t) 0; 1.9110 - struct nanos_const_wd_definition_local_t 1.9111 + nanos_err_t mcc_err_in_final_6; 1.9112 + _Bool mcc_is_in_final_6; 1.9113 + nanos_err_t mcc_err_in_final_7; 1.9114 + _Bool mcc_is_in_final_7; 1.9115 + mcc_err_in_final_6 = nanos_in_final(&mcc_is_in_final_6); 1.9116 + { 1.9117 + H264Context *mcc_arg_34 = h; 1.9118 + ParserContext *mcc_arg_35 = pc; 1.9119 + NalContext *mcc_arg_36 = nc; 1.9120 + SliceBufferEntry *mcc_arg_37 = &sbe[k % bufs]; 1.9121 + if (mcc_is_in_final_6) 1.9122 + { 1.9123 + parse_task(h, pc, nc, &sbe[k % bufs]); 1.9124 + } 1.9125 + else 1.9126 + { 1.9127 { 1.9128 - nanos_const_wd_definition_t base; 1.9129 - nanos_device_t devices[1]; 1.9130 - }; 1.9131 - static struct nanos_const_wd_definition_local_t _const_def = { 1.9132 + nanos_wd_dyn_props_t nanos_wd_dyn_props; 1.9133 + struct nanos_args_6_t *ol_args; 1.9134 + nanos_err_t err; 1.9135 + struct nanos_args_6_t imm_args; 1.9136 + static nanos_smp_args_t smp_ol_parse_task_13_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_6_t *))&smp_ol_parse_task_13 }; 1.9137 + static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_6_t), 0, 1, 0, "parse_task" }, { { &nanos_smp_factory, &smp_ol_parse_task_13_args } } }; 1.9138 + nanos_wd_dyn_props.tie_to = 0; 1.9139 + nanos_wd_dyn_props.priority = 0; 1.9140 + nanos_wd_dyn_props.flags.is_final = 0; 1.9141 + ol_args = (struct nanos_args_6_t *)0; 1.9142 + void *nanos_wd_ = (void *)0; 1.9143 + err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_6_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0); 1.9144 + if (err != NANOS_OK) 1.9145 { 1.9146 - { 1.9147 - 0, 1.9148 - 1, 1.9149 - 0, 1.9150 - 0, 1.9151 - 0, 1.9152 - 0, 1.9153 - 0, 1.9154 - 0 1.9155 - }, 1.9156 - __alignof__(_nx_data_env_6_t), 1.9157 - 0, 1.9158 - 1 1.9159 - }, 1.9160 - {{ 1.9161 - nanos_smp_factory, 1.9162 - &_ol_h264_decode_ompss_6_smp_args 1.9163 - }} 1.9164 - }; 1.9165 - nanos_wd_dyn_props_t dyn_props = {0}; 1.9166 - nanos_err_t err; 1.9167 - dyn_props.priority = 0; 1.9168 - err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_6_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.9169 - if (err != NANOS_OK) 1.9170 - nanos_handle_error(err); 1.9171 - if (wd != (nanos_wd_t) 0) 1.9172 + nanos_handle_error(err); 1.9173 + } 1.9174 + /* Check pendant writes on subexpressions */ 1.9175 + /* End check pendant writes on subexpressions */ 1.9176 + if (nanos_wd_ != (void *)0) 1.9177 + { 1.9178 + { 1.9179 + (*ol_args).h = mcc_arg_34; 1.9180 + (*ol_args).pc = mcc_arg_35; 1.9181 + (*ol_args).nc = mcc_arg_36; 1.9182 + (*ol_args).sbe = mcc_arg_37; 1.9183 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(ParserContext), 0, sizeof(ParserContext) } }; 1.9184 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(NalContext), 0, sizeof(NalContext) } }; 1.9185 + nanos_region_dimension_t dimensions_2[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.9186 + nanos_data_access_t dependences[3] = { { (void *)mcc_arg_35, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_36, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_37, { 0, 1, 0, 0, 0 }, 1, dimensions_2, 0 } }; 1.9187 + ; 1.9188 + err = nanos_submit(nanos_wd_, 3, dependences, (void *)0); 1.9189 + if (err != NANOS_OK) 1.9190 + { 1.9191 + nanos_handle_error(err); 1.9192 + } 1.9193 + } 1.9194 + } 1.9195 + else 1.9196 + { 1.9197 + { 1.9198 + imm_args.h = mcc_arg_34; 1.9199 + imm_args.pc = mcc_arg_35; 1.9200 + imm_args.nc = mcc_arg_36; 1.9201 + imm_args.sbe = mcc_arg_37; 1.9202 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(ParserContext), 0, sizeof(ParserContext) } }; 1.9203 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(NalContext), 0, sizeof(NalContext) } }; 1.9204 + nanos_region_dimension_t dimensions_2[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.9205 + nanos_data_access_t dependences[3] = { { (void *)mcc_arg_35, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_36, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_37, { 0, 1, 0, 0, 0 }, 1, dimensions_2, 0 } }; 1.9206 + ; 1.9207 + err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_6_t), &imm_args, 3, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0); 1.9208 + if (err != NANOS_OK) 1.9209 + { 1.9210 + nanos_handle_error(err); 1.9211 + } 1.9212 + } 1.9213 + } 1.9214 + } 1.9215 + } 1.9216 + } 1.9217 + mcc_err_in_final_7 = nanos_in_final(&mcc_is_in_final_7); 1.9218 + { 1.9219 + H264Context *mcc_arg_38 = h; 1.9220 + EntropyContext *mcc_arg_39 = ec[k % bufs]; 1.9221 + SliceBufferEntry *mcc_arg_40 = &sbe[k % bufs]; 1.9222 + if (mcc_is_in_final_7) 1.9223 + { 1.9224 + decode_slice_entropy_task(h, ec[k % bufs], &sbe[k % bufs]); 1.9225 + } 1.9226 + else 1.9227 + { 1.9228 { 1.9229 - ol_args->__tmp_0_0 = __tmp_0; 1.9230 - ol_args->__tmp_1_0 = __tmp_1; 1.9231 - ol_args->__tmp_2_0 = __tmp_2; 1.9232 - ol_args->__tmp_3_0 = __tmp_3; 1.9233 - nanos_dependence_t _dependences[3] = { 1.9234 - { 1.9235 - (void **) &ol_args->__tmp_3_0, 1.9236 - ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0), 1.9237 - { 1.9238 - 0, 1.9239 - 1, 1.9240 - 1, 1.9241 - 0 1.9242 - }, 1.9243 - sizeof(SliceBufferEntry) 1.9244 - }, 1.9245 - { 1.9246 - (void **) &ol_args->__tmp_1_0, 1.9247 - ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.9248 - { 1.9249 - 1, 1.9250 - 1, 1.9251 - 1, 1.9252 - 0 1.9253 - }, 1.9254 - sizeof(struct ParserContext) 1.9255 - }, 1.9256 - { 1.9257 - (void **) &ol_args->__tmp_2_0, 1.9258 - ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.9259 - { 1.9260 - 1, 1.9261 - 1, 1.9262 - 1, 1.9263 - 0 1.9264 - }, 1.9265 - sizeof(struct NalContext) 1.9266 - } 1.9267 - }; 1.9268 - err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.9269 - if (err != NANOS_OK) 1.9270 - nanos_handle_error(err); 1.9271 + nanos_wd_dyn_props_t nanos_wd_dyn_props; 1.9272 + struct nanos_args_7_t *ol_args; 1.9273 + nanos_err_t err; 1.9274 + struct nanos_args_7_t imm_args; 1.9275 + static nanos_smp_args_t smp_ol_decode_slice_entropy_task_15_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_7_t *))&smp_ol_decode_slice_entropy_task_15 }; 1.9276 + static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_7_t), 0, 1, 0, "decode_slice_entropy_task" }, { { &nanos_smp_factory, &smp_ol_decode_slice_entropy_task_15_args } } }; 1.9277 + nanos_wd_dyn_props.tie_to = 0; 1.9278 + nanos_wd_dyn_props.priority = 0; 1.9279 + nanos_wd_dyn_props.flags.is_final = 0; 1.9280 + ol_args = (struct nanos_args_7_t *)0; 1.9281 + void *nanos_wd_ = (void *)0; 1.9282 + err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_7_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0); 1.9283 + if (err != NANOS_OK) 1.9284 + { 1.9285 + nanos_handle_error(err); 1.9286 + } 1.9287 + /* Check pendant writes on subexpressions */ 1.9288 + /* End check pendant writes on subexpressions */ 1.9289 + if (nanos_wd_ != (void *)0) 1.9290 + { 1.9291 + { 1.9292 + (*ol_args).h = mcc_arg_38; 1.9293 + (*ol_args).ec = mcc_arg_39; 1.9294 + (*ol_args).sbe = mcc_arg_40; 1.9295 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(EntropyContext), 0, sizeof(EntropyContext) } }; 1.9296 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.9297 + nanos_data_access_t dependences[2] = { { (void *)mcc_arg_39, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_40, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 } }; 1.9298 + ; 1.9299 + err = nanos_submit(nanos_wd_, 2, dependences, (void *)0); 1.9300 + if (err != NANOS_OK) 1.9301 + { 1.9302 + nanos_handle_error(err); 1.9303 + } 1.9304 + } 1.9305 + } 1.9306 + else 1.9307 + { 1.9308 + { 1.9309 + imm_args.h = mcc_arg_38; 1.9310 + imm_args.ec = mcc_arg_39; 1.9311 + imm_args.sbe = mcc_arg_40; 1.9312 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(EntropyContext), 0, sizeof(EntropyContext) } }; 1.9313 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.9314 + nanos_data_access_t dependences[2] = { { (void *)mcc_arg_39, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_40, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 } }; 1.9315 + ; 1.9316 + err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_7_t), &imm_args, 2, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0); 1.9317 + if (err != NANOS_OK) 1.9318 + { 1.9319 + nanos_handle_error(err); 1.9320 + } 1.9321 + } 1.9322 + } 1.9323 } 1.9324 - else 1.9325 + } 1.9326 + } 1.9327 + { 1.9328 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(ParserContext), 0, sizeof(ParserContext) } }; 1.9329 + nanos_data_access_t dependences[1] = { { (void *)pc, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 } }; 1.9330 + ; 1.9331 + nanos_err_t err = nanos_wait_on(1, dependences); 1.9332 + if (err != NANOS_OK) 1.9333 + { 1.9334 + nanos_handle_error(err); 1.9335 + } 1.9336 + } 1.9337 + k++; 1.9338 + } 1.9339 + } 1.9340 + while ((!(*pc).final_frame && frames++ < (*h).num_frames) && !(*h).quit) 1.9341 + { 1.9342 + { 1.9343 + nanos_err_t mcc_err_in_final_8; 1.9344 + _Bool mcc_is_in_final_8; 1.9345 + nanos_err_t mcc_err_in_final_9; 1.9346 + _Bool mcc_is_in_final_9; 1.9347 + nanos_err_t mcc_err_in_final_10; 1.9348 + _Bool mcc_is_in_final_10; 1.9349 + nanos_err_t mcc_err_in_final_11; 1.9350 + _Bool mcc_is_in_final_11; 1.9351 + nanos_err_t mcc_err_in_final_12; 1.9352 + _Bool mcc_is_in_final_12; 1.9353 + mcc_err_in_final_8 = nanos_in_final(&mcc_is_in_final_8); 1.9354 + { 1.9355 + H264Context *mcc_arg_41 = h; 1.9356 + ParserContext *mcc_arg_42 = pc; 1.9357 + NalContext *mcc_arg_43 = nc; 1.9358 + SliceBufferEntry *mcc_arg_44 = &sbe[k % bufs]; 1.9359 + if (mcc_is_in_final_8) 1.9360 + { 1.9361 + parse_task(h, pc, nc, &sbe[k % bufs]); 1.9362 + } 1.9363 + else 1.9364 + { 1.9365 { 1.9366 - _nx_data_env_6_t imm_args; 1.9367 - imm_args.__tmp_0_0 = __tmp_0; 1.9368 - imm_args.__tmp_1_0 = __tmp_1; 1.9369 - imm_args.__tmp_2_0 = __tmp_2; 1.9370 - imm_args.__tmp_3_0 = __tmp_3; 1.9371 - nanos_dependence_t _dependences[3] = { 1.9372 - { 1.9373 - (void **) &imm_args.__tmp_3_0, 1.9374 - ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0), 1.9375 - { 1.9376 - 0, 1.9377 - 1, 1.9378 - 1, 1.9379 - 0 1.9380 - }, 1.9381 - sizeof(SliceBufferEntry) 1.9382 - }, 1.9383 - { 1.9384 - (void **) &imm_args.__tmp_1_0, 1.9385 - ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.9386 - { 1.9387 - 1, 1.9388 - 1, 1.9389 - 1, 1.9390 - 0 1.9391 - }, 1.9392 - sizeof(struct ParserContext) 1.9393 - }, 1.9394 - { 1.9395 - (void **) &imm_args.__tmp_2_0, 1.9396 - ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.9397 - { 1.9398 - 1, 1.9399 - 1, 1.9400 - 1, 1.9401 - 0 1.9402 - }, 1.9403 - sizeof(struct NalContext) 1.9404 - } 1.9405 - }; 1.9406 - dyn_props.priority = 0; 1.9407 - err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_6_t), &imm_args, 3, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.9408 - if (err != NANOS_OK) 1.9409 - nanos_handle_error(err); 1.9410 + nanos_wd_dyn_props_t nanos_wd_dyn_props; 1.9411 + struct nanos_args_8_t *ol_args; 1.9412 + nanos_err_t err; 1.9413 + struct nanos_args_8_t imm_args; 1.9414 + static nanos_smp_args_t smp_ol_parse_task_17_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_8_t *))&smp_ol_parse_task_17 }; 1.9415 + static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_8_t), 0, 1, 0, "parse_task" }, { { &nanos_smp_factory, &smp_ol_parse_task_17_args } } }; 1.9416 + nanos_wd_dyn_props.tie_to = 0; 1.9417 + nanos_wd_dyn_props.priority = 0; 1.9418 + nanos_wd_dyn_props.flags.is_final = 0; 1.9419 + ol_args = (struct nanos_args_8_t *)0; 1.9420 + void *nanos_wd_ = (void *)0; 1.9421 + err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_8_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0); 1.9422 + if (err != NANOS_OK) 1.9423 + { 1.9424 + nanos_handle_error(err); 1.9425 + } 1.9426 + /* Check pendant writes on subexpressions */ 1.9427 + /* End check pendant writes on subexpressions */ 1.9428 + if (nanos_wd_ != (void *)0) 1.9429 + { 1.9430 + { 1.9431 + (*ol_args).h = mcc_arg_41; 1.9432 + (*ol_args).pc = mcc_arg_42; 1.9433 + (*ol_args).nc = mcc_arg_43; 1.9434 + (*ol_args).sbe = mcc_arg_44; 1.9435 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(ParserContext), 0, sizeof(ParserContext) } }; 1.9436 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(NalContext), 0, sizeof(NalContext) } }; 1.9437 + nanos_region_dimension_t dimensions_2[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.9438 + nanos_data_access_t dependences[3] = { { (void *)mcc_arg_42, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_43, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_44, { 0, 1, 0, 0, 0 }, 1, dimensions_2, 0 } }; 1.9439 + ; 1.9440 + err = nanos_submit(nanos_wd_, 3, dependences, (void *)0); 1.9441 + if (err != NANOS_OK) 1.9442 + { 1.9443 + nanos_handle_error(err); 1.9444 + } 1.9445 + } 1.9446 + } 1.9447 + else 1.9448 + { 1.9449 + { 1.9450 + imm_args.h = mcc_arg_41; 1.9451 + imm_args.pc = mcc_arg_42; 1.9452 + imm_args.nc = mcc_arg_43; 1.9453 + imm_args.sbe = mcc_arg_44; 1.9454 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(ParserContext), 0, sizeof(ParserContext) } }; 1.9455 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(NalContext), 0, sizeof(NalContext) } }; 1.9456 + nanos_region_dimension_t dimensions_2[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.9457 + nanos_data_access_t dependences[3] = { { (void *)mcc_arg_42, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_43, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_44, { 0, 1, 0, 0, 0 }, 1, dimensions_2, 0 } }; 1.9458 + ; 1.9459 + err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_8_t), &imm_args, 3, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0); 1.9460 + if (err != NANOS_OK) 1.9461 + { 1.9462 + nanos_handle_error(err); 1.9463 + } 1.9464 + } 1.9465 + } 1.9466 } 1.9467 - } 1.9468 + } 1.9469 + } 1.9470 + mcc_err_in_final_9 = nanos_in_final(&mcc_is_in_final_9); 1.9471 + { 1.9472 + H264Context *mcc_arg_45 = h; 1.9473 + EntropyContext *mcc_arg_46 = ec[k % bufs]; 1.9474 + SliceBufferEntry *mcc_arg_47 = &sbe[k % bufs]; 1.9475 + if (mcc_is_in_final_9) 1.9476 + { 1.9477 + decode_slice_entropy_task(h, ec[k % bufs], &sbe[k % bufs]); 1.9478 + } 1.9479 + else 1.9480 + { 1.9481 + { 1.9482 + nanos_wd_dyn_props_t nanos_wd_dyn_props; 1.9483 + struct nanos_args_9_t *ol_args; 1.9484 + nanos_err_t err; 1.9485 + struct nanos_args_9_t imm_args; 1.9486 + static nanos_smp_args_t smp_ol_decode_slice_entropy_task_19_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_9_t *))&smp_ol_decode_slice_entropy_task_19 }; 1.9487 + static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_9_t), 0, 1, 0, "decode_slice_entropy_task" }, { { &nanos_smp_factory, &smp_ol_decode_slice_entropy_task_19_args } } }; 1.9488 + nanos_wd_dyn_props.tie_to = 0; 1.9489 + nanos_wd_dyn_props.priority = 0; 1.9490 + nanos_wd_dyn_props.flags.is_final = 0; 1.9491 + ol_args = (struct nanos_args_9_t *)0; 1.9492 + void *nanos_wd_ = (void *)0; 1.9493 + err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_9_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0); 1.9494 + if (err != NANOS_OK) 1.9495 + { 1.9496 + nanos_handle_error(err); 1.9497 + } 1.9498 + /* Check pendant writes on subexpressions */ 1.9499 + /* End check pendant writes on subexpressions */ 1.9500 + if (nanos_wd_ != (void *)0) 1.9501 + { 1.9502 + { 1.9503 + (*ol_args).h = mcc_arg_45; 1.9504 + (*ol_args).ec = mcc_arg_46; 1.9505 + (*ol_args).sbe = mcc_arg_47; 1.9506 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(EntropyContext), 0, sizeof(EntropyContext) } }; 1.9507 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.9508 + nanos_data_access_t dependences[2] = { { (void *)mcc_arg_46, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_47, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 } }; 1.9509 + ; 1.9510 + err = nanos_submit(nanos_wd_, 2, dependences, (void *)0); 1.9511 + if (err != NANOS_OK) 1.9512 + { 1.9513 + nanos_handle_error(err); 1.9514 + } 1.9515 + } 1.9516 + } 1.9517 + else 1.9518 + { 1.9519 + { 1.9520 + imm_args.h = mcc_arg_45; 1.9521 + imm_args.ec = mcc_arg_46; 1.9522 + imm_args.sbe = mcc_arg_47; 1.9523 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(EntropyContext), 0, sizeof(EntropyContext) } }; 1.9524 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.9525 + nanos_data_access_t dependences[2] = { { (void *)mcc_arg_46, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_47, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 } }; 1.9526 + ; 1.9527 + err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_9_t), &imm_args, 2, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0); 1.9528 + if (err != NANOS_OK) 1.9529 + { 1.9530 + nanos_handle_error(err); 1.9531 + } 1.9532 + } 1.9533 + } 1.9534 + } 1.9535 + } 1.9536 + } 1.9537 + k++; 1.9538 + mcc_err_in_final_10 = nanos_in_final(&mcc_is_in_final_10); 1.9539 + { 1.9540 + H264Context *mcc_arg_48 = h; 1.9541 + MBRecContext *mcc_arg_49 = rc[k % 2]; 1.9542 + SliceBufferEntry *mcc_arg_50 = &sbe[k % bufs]; 1.9543 + int *mcc_arg_51 = &init; 1.9544 + if (mcc_is_in_final_10) 1.9545 + { 1.9546 + init_ref_list_and_get_dpb_task(h, rc[k % 2], &sbe[k % bufs], &init); 1.9547 + } 1.9548 + else 1.9549 + { 1.9550 + { 1.9551 + nanos_wd_dyn_props_t nanos_wd_dyn_props; 1.9552 + struct nanos_args_10_t *ol_args; 1.9553 + nanos_err_t err; 1.9554 + struct nanos_args_10_t imm_args; 1.9555 + static nanos_smp_args_t smp_ol_init_ref_list_and_get_dpb_task_21_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_10_t *))&smp_ol_init_ref_list_and_get_dpb_task_21 }; 1.9556 + static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_10_t), 0, 1, 0, "init_ref_list_and_get_dpb_task" }, { { &nanos_smp_factory, &smp_ol_init_ref_list_and_get_dpb_task_21_args } } }; 1.9557 + nanos_wd_dyn_props.tie_to = 0; 1.9558 + nanos_wd_dyn_props.priority = 0; 1.9559 + nanos_wd_dyn_props.flags.is_final = 0; 1.9560 + ol_args = (struct nanos_args_10_t *)0; 1.9561 + void *nanos_wd_ = (void *)0; 1.9562 + err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_10_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0); 1.9563 + if (err != NANOS_OK) 1.9564 + { 1.9565 + nanos_handle_error(err); 1.9566 + } 1.9567 + /* Check pendant writes on subexpressions */ 1.9568 + /* End check pendant writes on subexpressions */ 1.9569 + if (nanos_wd_ != (void *)0) 1.9570 + { 1.9571 + { 1.9572 + (*ol_args).h = mcc_arg_48; 1.9573 + (*ol_args).d = mcc_arg_49; 1.9574 + (*ol_args).sbe = mcc_arg_50; 1.9575 + (*ol_args).init = mcc_arg_51; 1.9576 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } }; 1.9577 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.9578 + nanos_region_dimension_t dimensions_2[1] = { { sizeof(int), 0, sizeof(int) } }; 1.9579 + nanos_data_access_t dependences[3] = { { (void *)mcc_arg_49, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_50, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_51, { 1, 1, 0, 0, 0 }, 1, dimensions_2, 0 } }; 1.9580 + ; 1.9581 + err = nanos_submit(nanos_wd_, 3, dependences, (void *)0); 1.9582 + if (err != NANOS_OK) 1.9583 + { 1.9584 + nanos_handle_error(err); 1.9585 + } 1.9586 + } 1.9587 + } 1.9588 + else 1.9589 + { 1.9590 + { 1.9591 + imm_args.h = mcc_arg_48; 1.9592 + imm_args.d = mcc_arg_49; 1.9593 + imm_args.sbe = mcc_arg_50; 1.9594 + imm_args.init = mcc_arg_51; 1.9595 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } }; 1.9596 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.9597 + nanos_region_dimension_t dimensions_2[1] = { { sizeof(int), 0, sizeof(int) } }; 1.9598 + nanos_data_access_t dependences[3] = { { (void *)mcc_arg_49, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_50, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_51, { 1, 1, 0, 0, 0 }, 1, dimensions_2, 0 } }; 1.9599 + ; 1.9600 + err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_10_t), &imm_args, 3, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0); 1.9601 + if (err != NANOS_OK) 1.9602 + { 1.9603 + nanos_handle_error(err); 1.9604 + } 1.9605 + } 1.9606 + } 1.9607 + } 1.9608 + } 1.9609 + } 1.9610 + smbc = acquire_smbc(h); 1.9611 + SuperMBTask *lastsmb = add_decode_slice_3dwave_tasks(rc[k % 2], &sbe[k % bufs], smbc); 1.9612 + mcc_err_in_final_11 = nanos_in_final(&mcc_is_in_final_11); 1.9613 + { 1.9614 + H264Context *mcc_arg_52 = h; 1.9615 + SuperMBContext *mcc_arg_53 = smbc; 1.9616 + MBRecContext *mcc_arg_54 = rc[k % 2]; 1.9617 + SliceBufferEntry *mcc_arg_55 = &sbe[k % bufs]; 1.9618 + SuperMBTask *mcc_arg_56 = lastsmb; 1.9619 + int *mcc_arg_57 = &release; 1.9620 + if (mcc_is_in_final_11) 1.9621 + { 1.9622 + release_ref_list_task(h, smbc, rc[k % 2], &sbe[k % bufs], lastsmb, &release); 1.9623 + } 1.9624 + else 1.9625 + { 1.9626 + { 1.9627 + nanos_wd_dyn_props_t nanos_wd_dyn_props; 1.9628 + struct nanos_args_11_t *ol_args; 1.9629 + nanos_err_t err; 1.9630 + struct nanos_args_11_t imm_args; 1.9631 + static nanos_smp_args_t smp_ol_release_ref_list_task_23_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_11_t *))&smp_ol_release_ref_list_task_23 }; 1.9632 + static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_11_t), 0, 1, 0, "release_ref_list_task" }, { { &nanos_smp_factory, &smp_ol_release_ref_list_task_23_args } } }; 1.9633 + nanos_wd_dyn_props.tie_to = 0; 1.9634 + nanos_wd_dyn_props.priority = 0; 1.9635 + nanos_wd_dyn_props.flags.is_final = 0; 1.9636 + ol_args = (struct nanos_args_11_t *)0; 1.9637 + void *nanos_wd_ = (void *)0; 1.9638 + err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_11_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0); 1.9639 + if (err != NANOS_OK) 1.9640 + { 1.9641 + nanos_handle_error(err); 1.9642 + } 1.9643 + /* Check pendant writes on subexpressions */ 1.9644 + /* End check pendant writes on subexpressions */ 1.9645 + if (nanos_wd_ != (void *)0) 1.9646 + { 1.9647 + { 1.9648 + (*ol_args).h = mcc_arg_52; 1.9649 + (*ol_args).smbc = mcc_arg_53; 1.9650 + (*ol_args).d = mcc_arg_54; 1.9651 + (*ol_args).sbe = mcc_arg_55; 1.9652 + (*ol_args).lastsmb = mcc_arg_56; 1.9653 + (*ol_args).release = mcc_arg_57; 1.9654 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } }; 1.9655 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.9656 + nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.9657 + nanos_region_dimension_t dimensions_3[1] = { { sizeof(int), 0, sizeof(int) } }; 1.9658 + nanos_data_access_t dependences[4] = { { (void *)mcc_arg_54, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_55, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_56, { 1, 0, 0, 0, 0 }, 1, dimensions_2, 0 }, { (void *)mcc_arg_57, { 1, 1, 0, 0, 0 }, 1, dimensions_3, 0 } }; 1.9659 + ; 1.9660 + err = nanos_submit(nanos_wd_, 4, dependences, (void *)0); 1.9661 + if (err != NANOS_OK) 1.9662 + { 1.9663 + nanos_handle_error(err); 1.9664 + } 1.9665 + } 1.9666 + } 1.9667 + else 1.9668 + { 1.9669 + { 1.9670 + imm_args.h = mcc_arg_52; 1.9671 + imm_args.smbc = mcc_arg_53; 1.9672 + imm_args.d = mcc_arg_54; 1.9673 + imm_args.sbe = mcc_arg_55; 1.9674 + imm_args.lastsmb = mcc_arg_56; 1.9675 + imm_args.release = mcc_arg_57; 1.9676 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } }; 1.9677 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.9678 + nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.9679 + nanos_region_dimension_t dimensions_3[1] = { { sizeof(int), 0, sizeof(int) } }; 1.9680 + nanos_data_access_t dependences[4] = { { (void *)mcc_arg_54, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_55, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_56, { 1, 0, 0, 0, 0 }, 1, dimensions_2, 0 }, { (void *)mcc_arg_57, { 1, 1, 0, 0, 0 }, 1, dimensions_3, 0 } }; 1.9681 + ; 1.9682 + err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_11_t), &imm_args, 4, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0); 1.9683 + if (err != NANOS_OK) 1.9684 + { 1.9685 + nanos_handle_error(err); 1.9686 + } 1.9687 + } 1.9688 + } 1.9689 + } 1.9690 + } 1.9691 + } 1.9692 + mcc_err_in_final_12 = nanos_in_final(&mcc_is_in_final_12); 1.9693 + { 1.9694 + H264Context *mcc_arg_58 = h; 1.9695 + OutputContext *mcc_arg_59 = oc; 1.9696 + SliceBufferEntry *mcc_arg_60 = &sbe[k % bufs]; 1.9697 + if (mcc_is_in_final_12) 1.9698 + { 1.9699 + output_task(h, oc, &sbe[k % bufs]); 1.9700 + } 1.9701 + else 1.9702 + { 1.9703 + { 1.9704 + nanos_wd_dyn_props_t nanos_wd_dyn_props; 1.9705 + struct nanos_args_12_t *ol_args; 1.9706 + nanos_err_t err; 1.9707 + struct nanos_args_12_t imm_args; 1.9708 + static nanos_smp_args_t smp_ol_output_task_25_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_12_t *))&smp_ol_output_task_25 }; 1.9709 + static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_12_t), 0, 1, 0, "output_task" }, { { &nanos_smp_factory, &smp_ol_output_task_25_args } } }; 1.9710 + nanos_wd_dyn_props.tie_to = 0; 1.9711 + nanos_wd_dyn_props.priority = 0; 1.9712 + nanos_wd_dyn_props.flags.is_final = 0; 1.9713 + ol_args = (struct nanos_args_12_t *)0; 1.9714 + void *nanos_wd_ = (void *)0; 1.9715 + err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_12_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0); 1.9716 + if (err != NANOS_OK) 1.9717 + { 1.9718 + nanos_handle_error(err); 1.9719 + } 1.9720 + /* Check pendant writes on subexpressions */ 1.9721 + /* End check pendant writes on subexpressions */ 1.9722 + if (nanos_wd_ != (void *)0) 1.9723 + { 1.9724 + { 1.9725 + (*ol_args).h = mcc_arg_58; 1.9726 + (*ol_args).oc = mcc_arg_59; 1.9727 + (*ol_args).sbe = mcc_arg_60; 1.9728 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(OutputContext), 0, sizeof(OutputContext) } }; 1.9729 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.9730 + nanos_data_access_t dependences[2] = { { (void *)mcc_arg_59, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_60, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 } }; 1.9731 + ; 1.9732 + err = nanos_submit(nanos_wd_, 2, dependences, (void *)0); 1.9733 + if (err != NANOS_OK) 1.9734 + { 1.9735 + nanos_handle_error(err); 1.9736 + } 1.9737 + } 1.9738 + } 1.9739 + else 1.9740 + { 1.9741 + { 1.9742 + imm_args.h = mcc_arg_58; 1.9743 + imm_args.oc = mcc_arg_59; 1.9744 + imm_args.sbe = mcc_arg_60; 1.9745 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(OutputContext), 0, sizeof(OutputContext) } }; 1.9746 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.9747 + nanos_data_access_t dependences[2] = { { (void *)mcc_arg_59, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_60, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 } }; 1.9748 + ; 1.9749 + err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_12_t), &imm_args, 2, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0); 1.9750 + if (err != NANOS_OK) 1.9751 + { 1.9752 + nanos_handle_error(err); 1.9753 + } 1.9754 + } 1.9755 + } 1.9756 + } 1.9757 + } 1.9758 + } 1.9759 + { 1.9760 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(ParserContext), 0, sizeof(ParserContext) } }; 1.9761 + nanos_data_access_t dependences[1] = { { (void *)pc, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 } }; 1.9762 ; 1.9763 + nanos_err_t err = nanos_wait_on(1, dependences); 1.9764 + if (err != NANOS_OK) 1.9765 + { 1.9766 + nanos_handle_error(err); 1.9767 + } 1.9768 + } 1.9769 } 1.9770 + } 1.9771 + for (int i = 0; i < num_pre_ed; i++) 1.9772 + { 1.9773 { 1.9774 - struct H264Context *__tmp_0 = h; 1.9775 - struct EntropyContext *__tmp_1 = ec[k % bufs]; 1.9776 - SliceBufferEntry *__tmp_2 = &sbe[k % bufs]; 1.9777 - { 1.9778 - /* SMP device descriptor */ 1.9779 - static nanos_smp_args_t _ol_h264_decode_ompss_7_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_7}; 1.9780 - _nx_data_env_7_t *ol_args = (_nx_data_env_7_t *) 0; 1.9781 - nanos_wd_t wd = (nanos_wd_t) 0; 1.9782 - struct nanos_const_wd_definition_local_t 1.9783 + nanos_err_t mcc_err_in_final_13; 1.9784 + _Bool mcc_is_in_final_13; 1.9785 + nanos_err_t mcc_err_in_final_14; 1.9786 + _Bool mcc_is_in_final_14; 1.9787 + nanos_err_t mcc_err_in_final_15; 1.9788 + _Bool mcc_is_in_final_15; 1.9789 + k++; 1.9790 + mcc_err_in_final_13 = nanos_in_final(&mcc_is_in_final_13); 1.9791 + { 1.9792 + H264Context *mcc_arg_61 = h; 1.9793 + MBRecContext *mcc_arg_62 = rc[k % 2]; 1.9794 + SliceBufferEntry *mcc_arg_63 = &sbe[k % bufs]; 1.9795 + int *mcc_arg_64 = &init; 1.9796 + if (mcc_is_in_final_13) 1.9797 + { 1.9798 + init_ref_list_and_get_dpb_task(h, rc[k % 2], &sbe[k % bufs], &init); 1.9799 + } 1.9800 + else 1.9801 + { 1.9802 { 1.9803 - nanos_const_wd_definition_t base; 1.9804 - nanos_device_t devices[1]; 1.9805 - }; 1.9806 - static struct nanos_const_wd_definition_local_t _const_def = { 1.9807 + nanos_wd_dyn_props_t nanos_wd_dyn_props; 1.9808 + struct nanos_args_13_t *ol_args; 1.9809 + nanos_err_t err; 1.9810 + struct nanos_args_13_t imm_args; 1.9811 + static nanos_smp_args_t smp_ol_init_ref_list_and_get_dpb_task_27_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_13_t *))&smp_ol_init_ref_list_and_get_dpb_task_27 }; 1.9812 + static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_13_t), 0, 1, 0, "init_ref_list_and_get_dpb_task" }, { { &nanos_smp_factory, &smp_ol_init_ref_list_and_get_dpb_task_27_args } } }; 1.9813 + nanos_wd_dyn_props.tie_to = 0; 1.9814 + nanos_wd_dyn_props.priority = 0; 1.9815 + nanos_wd_dyn_props.flags.is_final = 0; 1.9816 + ol_args = (struct nanos_args_13_t *)0; 1.9817 + void *nanos_wd_ = (void *)0; 1.9818 + err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_13_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0); 1.9819 + if (err != NANOS_OK) 1.9820 { 1.9821 - { 1.9822 - 0, 1.9823 - 1, 1.9824 - 0, 1.9825 - 0, 1.9826 - 0, 1.9827 - 0, 1.9828 - 0, 1.9829 - 0 1.9830 - }, 1.9831 - __alignof__(_nx_data_env_7_t), 1.9832 - 0, 1.9833 - 1 1.9834 - }, 1.9835 - {{ 1.9836 - nanos_smp_factory, 1.9837 - &_ol_h264_decode_ompss_7_smp_args 1.9838 - }} 1.9839 - }; 1.9840 - nanos_wd_dyn_props_t dyn_props = {0}; 1.9841 - nanos_err_t err; 1.9842 - dyn_props.priority = 0; 1.9843 - err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_7_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.9844 - if (err != NANOS_OK) 1.9845 - nanos_handle_error(err); 1.9846 - if (wd != (nanos_wd_t) 0) 1.9847 + nanos_handle_error(err); 1.9848 + } 1.9849 + /* Check pendant writes on subexpressions */ 1.9850 + /* End check pendant writes on subexpressions */ 1.9851 + if (nanos_wd_ != (void *)0) 1.9852 + { 1.9853 + { 1.9854 + (*ol_args).h = mcc_arg_61; 1.9855 + (*ol_args).d = mcc_arg_62; 1.9856 + (*ol_args).sbe = mcc_arg_63; 1.9857 + (*ol_args).init = mcc_arg_64; 1.9858 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } }; 1.9859 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.9860 + nanos_region_dimension_t dimensions_2[1] = { { sizeof(int), 0, sizeof(int) } }; 1.9861 + nanos_data_access_t dependences[3] = { { (void *)mcc_arg_62, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_63, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_64, { 1, 1, 0, 0, 0 }, 1, dimensions_2, 0 } }; 1.9862 + ; 1.9863 + err = nanos_submit(nanos_wd_, 3, dependences, (void *)0); 1.9864 + if (err != NANOS_OK) 1.9865 + { 1.9866 + nanos_handle_error(err); 1.9867 + } 1.9868 + } 1.9869 + } 1.9870 + else 1.9871 + { 1.9872 + { 1.9873 + imm_args.h = mcc_arg_61; 1.9874 + imm_args.d = mcc_arg_62; 1.9875 + imm_args.sbe = mcc_arg_63; 1.9876 + imm_args.init = mcc_arg_64; 1.9877 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } }; 1.9878 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.9879 + nanos_region_dimension_t dimensions_2[1] = { { sizeof(int), 0, sizeof(int) } }; 1.9880 + nanos_data_access_t dependences[3] = { { (void *)mcc_arg_62, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_63, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_64, { 1, 1, 0, 0, 0 }, 1, dimensions_2, 0 } }; 1.9881 + ; 1.9882 + err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_13_t), &imm_args, 3, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0); 1.9883 + if (err != NANOS_OK) 1.9884 + { 1.9885 + nanos_handle_error(err); 1.9886 + } 1.9887 + } 1.9888 + } 1.9889 + } 1.9890 + } 1.9891 + } 1.9892 + smbc = acquire_smbc(h); 1.9893 + SuperMBTask *lastsmb = add_decode_slice_3dwave_tasks(rc[k % 2], &sbe[k % bufs], smbc); 1.9894 + mcc_err_in_final_14 = nanos_in_final(&mcc_is_in_final_14); 1.9895 + { 1.9896 + H264Context *mcc_arg_65 = h; 1.9897 + SuperMBContext *mcc_arg_66 = smbc; 1.9898 + MBRecContext *mcc_arg_67 = rc[k % 2]; 1.9899 + SliceBufferEntry *mcc_arg_68 = &sbe[k % bufs]; 1.9900 + SuperMBTask *mcc_arg_69 = lastsmb; 1.9901 + int *mcc_arg_70 = &release; 1.9902 + if (mcc_is_in_final_14) 1.9903 + { 1.9904 + release_ref_list_task(h, smbc, rc[k % 2], &sbe[k % bufs], lastsmb, &release); 1.9905 + } 1.9906 + else 1.9907 + { 1.9908 { 1.9909 - ol_args->__tmp_0_0 = __tmp_0; 1.9910 - ol_args->__tmp_1_0 = __tmp_1; 1.9911 - ol_args->__tmp_2_0 = __tmp_2; 1.9912 - nanos_dependence_t _dependences[2] = { 1.9913 - { 1.9914 - (void **) &ol_args->__tmp_1_0, 1.9915 - ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.9916 - { 1.9917 - 1, 1.9918 - 1, 1.9919 - 1, 1.9920 - 0 1.9921 - }, 1.9922 - sizeof(struct EntropyContext) 1.9923 - }, 1.9924 - { 1.9925 - (void **) &ol_args->__tmp_2_0, 1.9926 - ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.9927 - { 1.9928 - 1, 1.9929 - 1, 1.9930 - 1, 1.9931 - 0 1.9932 - }, 1.9933 - sizeof(SliceBufferEntry) 1.9934 - } 1.9935 - }; 1.9936 - err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.9937 - if (err != NANOS_OK) 1.9938 - nanos_handle_error(err); 1.9939 + nanos_wd_dyn_props_t nanos_wd_dyn_props; 1.9940 + struct nanos_args_14_t *ol_args; 1.9941 + nanos_err_t err; 1.9942 + struct nanos_args_14_t imm_args; 1.9943 + static nanos_smp_args_t smp_ol_release_ref_list_task_29_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_14_t *))&smp_ol_release_ref_list_task_29 }; 1.9944 + static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_14_t), 0, 1, 0, "release_ref_list_task" }, { { &nanos_smp_factory, &smp_ol_release_ref_list_task_29_args } } }; 1.9945 + nanos_wd_dyn_props.tie_to = 0; 1.9946 + nanos_wd_dyn_props.priority = 0; 1.9947 + nanos_wd_dyn_props.flags.is_final = 0; 1.9948 + ol_args = (struct nanos_args_14_t *)0; 1.9949 + void *nanos_wd_ = (void *)0; 1.9950 + err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_14_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0); 1.9951 + if (err != NANOS_OK) 1.9952 + { 1.9953 + nanos_handle_error(err); 1.9954 + } 1.9955 + /* Check pendant writes on subexpressions */ 1.9956 + /* End check pendant writes on subexpressions */ 1.9957 + if (nanos_wd_ != (void *)0) 1.9958 + { 1.9959 + { 1.9960 + (*ol_args).h = mcc_arg_65; 1.9961 + (*ol_args).smbc = mcc_arg_66; 1.9962 + (*ol_args).d = mcc_arg_67; 1.9963 + (*ol_args).sbe = mcc_arg_68; 1.9964 + (*ol_args).lastsmb = mcc_arg_69; 1.9965 + (*ol_args).release = mcc_arg_70; 1.9966 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } }; 1.9967 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.9968 + nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.9969 + nanos_region_dimension_t dimensions_3[1] = { { sizeof(int), 0, sizeof(int) } }; 1.9970 + nanos_data_access_t dependences[4] = { { (void *)mcc_arg_67, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_68, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_69, { 1, 0, 0, 0, 0 }, 1, dimensions_2, 0 }, { (void *)mcc_arg_70, { 1, 1, 0, 0, 0 }, 1, dimensions_3, 0 } }; 1.9971 + ; 1.9972 + err = nanos_submit(nanos_wd_, 4, dependences, (void *)0); 1.9973 + if (err != NANOS_OK) 1.9974 + { 1.9975 + nanos_handle_error(err); 1.9976 + } 1.9977 + } 1.9978 + } 1.9979 + else 1.9980 + { 1.9981 + { 1.9982 + imm_args.h = mcc_arg_65; 1.9983 + imm_args.smbc = mcc_arg_66; 1.9984 + imm_args.d = mcc_arg_67; 1.9985 + imm_args.sbe = mcc_arg_68; 1.9986 + imm_args.lastsmb = mcc_arg_69; 1.9987 + imm_args.release = mcc_arg_70; 1.9988 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } }; 1.9989 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.9990 + nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } }; 1.9991 + nanos_region_dimension_t dimensions_3[1] = { { sizeof(int), 0, sizeof(int) } }; 1.9992 + nanos_data_access_t dependences[4] = { { (void *)mcc_arg_67, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_68, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_69, { 1, 0, 0, 0, 0 }, 1, dimensions_2, 0 }, { (void *)mcc_arg_70, { 1, 1, 0, 0, 0 }, 1, dimensions_3, 0 } }; 1.9993 + ; 1.9994 + err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_14_t), &imm_args, 4, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0); 1.9995 + if (err != NANOS_OK) 1.9996 + { 1.9997 + nanos_handle_error(err); 1.9998 + } 1.9999 + } 1.10000 + } 1.10001 } 1.10002 - else 1.10003 + } 1.10004 + } 1.10005 + mcc_err_in_final_15 = nanos_in_final(&mcc_is_in_final_15); 1.10006 + { 1.10007 + H264Context *mcc_arg_71 = h; 1.10008 + OutputContext *mcc_arg_72 = oc; 1.10009 + SliceBufferEntry *mcc_arg_73 = &sbe[k % bufs]; 1.10010 + if (mcc_is_in_final_15) 1.10011 + { 1.10012 + output_task(h, oc, &sbe[k % bufs]); 1.10013 + } 1.10014 + else 1.10015 + { 1.10016 { 1.10017 - _nx_data_env_7_t imm_args; 1.10018 - imm_args.__tmp_0_0 = __tmp_0; 1.10019 - imm_args.__tmp_1_0 = __tmp_1; 1.10020 - imm_args.__tmp_2_0 = __tmp_2; 1.10021 - nanos_dependence_t _dependences[2] = { 1.10022 - { 1.10023 - (void **) &imm_args.__tmp_1_0, 1.10024 - ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.10025 - { 1.10026 - 1, 1.10027 - 1, 1.10028 - 1, 1.10029 - 0 1.10030 - }, 1.10031 - sizeof(struct EntropyContext) 1.10032 - }, 1.10033 - { 1.10034 - (void **) &imm_args.__tmp_2_0, 1.10035 - ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.10036 - { 1.10037 - 1, 1.10038 - 1, 1.10039 - 1, 1.10040 - 0 1.10041 - }, 1.10042 - sizeof(SliceBufferEntry) 1.10043 - } 1.10044 - }; 1.10045 - dyn_props.priority = 0; 1.10046 - err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_7_t), &imm_args, 2, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.10047 - if (err != NANOS_OK) 1.10048 - nanos_handle_error(err); 1.10049 + nanos_wd_dyn_props_t nanos_wd_dyn_props; 1.10050 + struct nanos_args_15_t *ol_args; 1.10051 + nanos_err_t err; 1.10052 + struct nanos_args_15_t imm_args; 1.10053 + static nanos_smp_args_t smp_ol_output_task_31_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_15_t *))&smp_ol_output_task_31 }; 1.10054 + static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_15_t), 0, 1, 0, "output_task" }, { { &nanos_smp_factory, &smp_ol_output_task_31_args } } }; 1.10055 + nanos_wd_dyn_props.tie_to = 0; 1.10056 + nanos_wd_dyn_props.priority = 0; 1.10057 + nanos_wd_dyn_props.flags.is_final = 0; 1.10058 + ol_args = (struct nanos_args_15_t *)0; 1.10059 + void *nanos_wd_ = (void *)0; 1.10060 + err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_15_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0); 1.10061 + if (err != NANOS_OK) 1.10062 + { 1.10063 + nanos_handle_error(err); 1.10064 + } 1.10065 + /* Check pendant writes on subexpressions */ 1.10066 + /* End check pendant writes on subexpressions */ 1.10067 + if (nanos_wd_ != (void *)0) 1.10068 + { 1.10069 + { 1.10070 + (*ol_args).h = mcc_arg_71; 1.10071 + (*ol_args).oc = mcc_arg_72; 1.10072 + (*ol_args).sbe = mcc_arg_73; 1.10073 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(OutputContext), 0, sizeof(OutputContext) } }; 1.10074 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.10075 + nanos_data_access_t dependences[2] = { { (void *)mcc_arg_72, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_73, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 } }; 1.10076 + ; 1.10077 + err = nanos_submit(nanos_wd_, 2, dependences, (void *)0); 1.10078 + if (err != NANOS_OK) 1.10079 + { 1.10080 + nanos_handle_error(err); 1.10081 + } 1.10082 + } 1.10083 + } 1.10084 + else 1.10085 + { 1.10086 + { 1.10087 + imm_args.h = mcc_arg_71; 1.10088 + imm_args.oc = mcc_arg_72; 1.10089 + imm_args.sbe = mcc_arg_73; 1.10090 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(OutputContext), 0, sizeof(OutputContext) } }; 1.10091 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.10092 + nanos_data_access_t dependences[2] = { { (void *)mcc_arg_72, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_73, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 } }; 1.10093 + ; 1.10094 + err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_15_t), &imm_args, 2, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0); 1.10095 + if (err != NANOS_OK) 1.10096 + { 1.10097 + nanos_handle_error(err); 1.10098 + } 1.10099 + } 1.10100 + } 1.10101 } 1.10102 - } 1.10103 + } 1.10104 + } 1.10105 + } 1.10106 + } 1.10107 + } 1.10108 + } 1.10109 + else 1.10110 + { 1.10111 + { 1.10112 + while ((!(*pc).final_frame && frames++ < (*h).num_frames) && !(*h).quit) 1.10113 + { 1.10114 + { 1.10115 + nanos_err_t mcc_err_in_final_16; 1.10116 + _Bool mcc_is_in_final_16; 1.10117 + nanos_err_t mcc_err_in_final_17; 1.10118 + _Bool mcc_is_in_final_17; 1.10119 + nanos_err_t mcc_err_in_final_18; 1.10120 + _Bool mcc_is_in_final_18; 1.10121 + nanos_err_t mcc_err_in_final_19; 1.10122 + _Bool mcc_is_in_final_19; 1.10123 + mcc_err_in_final_16 = nanos_in_final(&mcc_is_in_final_16); 1.10124 + { 1.10125 + H264Context *mcc_arg_74 = h; 1.10126 + ParserContext *mcc_arg_75 = pc; 1.10127 + NalContext *mcc_arg_76 = nc; 1.10128 + SliceBufferEntry *mcc_arg_77 = &sbe[k % bufs]; 1.10129 + if (mcc_is_in_final_16) 1.10130 + { 1.10131 + parse_task(h, pc, nc, &sbe[k % bufs]); 1.10132 + } 1.10133 + else 1.10134 + { 1.10135 + { 1.10136 + nanos_wd_dyn_props_t nanos_wd_dyn_props; 1.10137 + struct nanos_args_16_t *ol_args; 1.10138 + nanos_err_t err; 1.10139 + struct nanos_args_16_t imm_args; 1.10140 + static nanos_smp_args_t smp_ol_parse_task_33_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_16_t *))&smp_ol_parse_task_33 }; 1.10141 + static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_16_t), 0, 1, 0, "parse_task" }, { { &nanos_smp_factory, &smp_ol_parse_task_33_args } } }; 1.10142 + nanos_wd_dyn_props.tie_to = 0; 1.10143 + nanos_wd_dyn_props.priority = 0; 1.10144 + nanos_wd_dyn_props.flags.is_final = 0; 1.10145 + ol_args = (struct nanos_args_16_t *)0; 1.10146 + void *nanos_wd_ = (void *)0; 1.10147 + err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_16_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0); 1.10148 + if (err != NANOS_OK) 1.10149 + { 1.10150 + nanos_handle_error(err); 1.10151 + } 1.10152 + /* Check pendant writes on subexpressions */ 1.10153 + /* End check pendant writes on subexpressions */ 1.10154 + if (nanos_wd_ != (void *)0) 1.10155 + { 1.10156 + { 1.10157 + (*ol_args).h = mcc_arg_74; 1.10158 + (*ol_args).pc = mcc_arg_75; 1.10159 + (*ol_args).nc = mcc_arg_76; 1.10160 + (*ol_args).sbe = mcc_arg_77; 1.10161 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(ParserContext), 0, sizeof(ParserContext) } }; 1.10162 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(NalContext), 0, sizeof(NalContext) } }; 1.10163 + nanos_region_dimension_t dimensions_2[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.10164 + nanos_data_access_t dependences[3] = { { (void *)mcc_arg_75, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_76, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_77, { 0, 1, 0, 0, 0 }, 1, dimensions_2, 0 } }; 1.10165 + ; 1.10166 + err = nanos_submit(nanos_wd_, 3, dependences, (void *)0); 1.10167 + if (err != NANOS_OK) 1.10168 + { 1.10169 + nanos_handle_error(err); 1.10170 + } 1.10171 + } 1.10172 + } 1.10173 + else 1.10174 + { 1.10175 + { 1.10176 + imm_args.h = mcc_arg_74; 1.10177 + imm_args.pc = mcc_arg_75; 1.10178 + imm_args.nc = mcc_arg_76; 1.10179 + imm_args.sbe = mcc_arg_77; 1.10180 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(ParserContext), 0, sizeof(ParserContext) } }; 1.10181 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(NalContext), 0, sizeof(NalContext) } }; 1.10182 + nanos_region_dimension_t dimensions_2[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.10183 + nanos_data_access_t dependences[3] = { { (void *)mcc_arg_75, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_76, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_77, { 0, 1, 0, 0, 0 }, 1, dimensions_2, 0 } }; 1.10184 + ; 1.10185 + err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_16_t), &imm_args, 3, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0); 1.10186 + if (err != NANOS_OK) 1.10187 + { 1.10188 + nanos_handle_error(err); 1.10189 + } 1.10190 + } 1.10191 + } 1.10192 + } 1.10193 + } 1.10194 + } 1.10195 + mcc_err_in_final_17 = nanos_in_final(&mcc_is_in_final_17); 1.10196 + { 1.10197 + H264Context *mcc_arg_78 = h; 1.10198 + EntropyContext *mcc_arg_79 = ec[k % bufs]; 1.10199 + SliceBufferEntry *mcc_arg_80 = &sbe[k % bufs]; 1.10200 + if (mcc_is_in_final_17) 1.10201 + { 1.10202 + decode_slice_entropy_task(h, ec[k % bufs], &sbe[k % bufs]); 1.10203 + } 1.10204 + else 1.10205 + { 1.10206 + { 1.10207 + nanos_wd_dyn_props_t nanos_wd_dyn_props; 1.10208 + struct nanos_args_17_t *ol_args; 1.10209 + nanos_err_t err; 1.10210 + struct nanos_args_17_t imm_args; 1.10211 + static nanos_smp_args_t smp_ol_decode_slice_entropy_task_35_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_17_t *))&smp_ol_decode_slice_entropy_task_35 }; 1.10212 + static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_17_t), 0, 1, 0, "decode_slice_entropy_task" }, { { &nanos_smp_factory, &smp_ol_decode_slice_entropy_task_35_args } } }; 1.10213 + nanos_wd_dyn_props.tie_to = 0; 1.10214 + nanos_wd_dyn_props.priority = 0; 1.10215 + nanos_wd_dyn_props.flags.is_final = 0; 1.10216 + ol_args = (struct nanos_args_17_t *)0; 1.10217 + void *nanos_wd_ = (void *)0; 1.10218 + err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_17_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0); 1.10219 + if (err != NANOS_OK) 1.10220 + { 1.10221 + nanos_handle_error(err); 1.10222 + } 1.10223 + /* Check pendant writes on subexpressions */ 1.10224 + /* End check pendant writes on subexpressions */ 1.10225 + if (nanos_wd_ != (void *)0) 1.10226 + { 1.10227 + { 1.10228 + (*ol_args).h = mcc_arg_78; 1.10229 + (*ol_args).ec = mcc_arg_79; 1.10230 + (*ol_args).sbe = mcc_arg_80; 1.10231 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(EntropyContext), 0, sizeof(EntropyContext) } }; 1.10232 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.10233 + nanos_data_access_t dependences[2] = { { (void *)mcc_arg_79, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_80, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 } }; 1.10234 + ; 1.10235 + err = nanos_submit(nanos_wd_, 2, dependences, (void *)0); 1.10236 + if (err != NANOS_OK) 1.10237 + { 1.10238 + nanos_handle_error(err); 1.10239 + } 1.10240 + } 1.10241 + } 1.10242 + else 1.10243 + { 1.10244 + { 1.10245 + imm_args.h = mcc_arg_78; 1.10246 + imm_args.ec = mcc_arg_79; 1.10247 + imm_args.sbe = mcc_arg_80; 1.10248 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(EntropyContext), 0, sizeof(EntropyContext) } }; 1.10249 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.10250 + nanos_data_access_t dependences[2] = { { (void *)mcc_arg_79, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_80, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 } }; 1.10251 + ; 1.10252 + err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_17_t), &imm_args, 2, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0); 1.10253 + if (err != NANOS_OK) 1.10254 + { 1.10255 + nanos_handle_error(err); 1.10256 + } 1.10257 + } 1.10258 + } 1.10259 + } 1.10260 + } 1.10261 + } 1.10262 + mcc_err_in_final_18 = nanos_in_final(&mcc_is_in_final_18); 1.10263 + { 1.10264 + H264Context *mcc_arg_81 = h; 1.10265 + MBRecContext *mcc_arg_82 = rc[0]; 1.10266 + SliceBufferEntry *mcc_arg_83 = &sbe[k % bufs]; 1.10267 + if (mcc_is_in_final_18) 1.10268 + { 1.10269 + decode_slice_mb_task(h, rc[0], &sbe[k % bufs]); 1.10270 + } 1.10271 + else 1.10272 + { 1.10273 + { 1.10274 + nanos_wd_dyn_props_t nanos_wd_dyn_props; 1.10275 + struct nanos_args_18_t *ol_args; 1.10276 + nanos_err_t err; 1.10277 + struct nanos_args_18_t imm_args; 1.10278 + static nanos_smp_args_t smp_ol_decode_slice_mb_task_37_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_18_t *))&smp_ol_decode_slice_mb_task_37 }; 1.10279 + static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_18_t), 0, 1, 0, "decode_slice_mb_task" }, { { &nanos_smp_factory, &smp_ol_decode_slice_mb_task_37_args } } }; 1.10280 + nanos_wd_dyn_props.tie_to = 0; 1.10281 + nanos_wd_dyn_props.priority = 0; 1.10282 + nanos_wd_dyn_props.flags.is_final = 0; 1.10283 + ol_args = (struct nanos_args_18_t *)0; 1.10284 + void *nanos_wd_ = (void *)0; 1.10285 + err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_18_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0); 1.10286 + if (err != NANOS_OK) 1.10287 + { 1.10288 + nanos_handle_error(err); 1.10289 + } 1.10290 + /* Check pendant writes on subexpressions */ 1.10291 + /* End check pendant writes on subexpressions */ 1.10292 + if (nanos_wd_ != (void *)0) 1.10293 + { 1.10294 + { 1.10295 + (*ol_args).h = mcc_arg_81; 1.10296 + (*ol_args).d = mcc_arg_82; 1.10297 + (*ol_args).sbe = mcc_arg_83; 1.10298 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } }; 1.10299 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.10300 + nanos_data_access_t dependences[2] = { { (void *)mcc_arg_82, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_83, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 } }; 1.10301 + ; 1.10302 + err = nanos_submit(nanos_wd_, 2, dependences, (void *)0); 1.10303 + if (err != NANOS_OK) 1.10304 + { 1.10305 + nanos_handle_error(err); 1.10306 + } 1.10307 + } 1.10308 + } 1.10309 + else 1.10310 + { 1.10311 + { 1.10312 + imm_args.h = mcc_arg_81; 1.10313 + imm_args.d = mcc_arg_82; 1.10314 + imm_args.sbe = mcc_arg_83; 1.10315 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } }; 1.10316 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.10317 + nanos_data_access_t dependences[2] = { { (void *)mcc_arg_82, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_83, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 } }; 1.10318 + ; 1.10319 + err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_18_t), &imm_args, 2, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0); 1.10320 + if (err != NANOS_OK) 1.10321 + { 1.10322 + nanos_handle_error(err); 1.10323 + } 1.10324 + } 1.10325 + } 1.10326 + } 1.10327 + } 1.10328 + } 1.10329 + mcc_err_in_final_19 = nanos_in_final(&mcc_is_in_final_19); 1.10330 + { 1.10331 + H264Context *mcc_arg_84 = h; 1.10332 + OutputContext *mcc_arg_85 = oc; 1.10333 + SliceBufferEntry *mcc_arg_86 = &sbe[k % bufs]; 1.10334 + if (mcc_is_in_final_19) 1.10335 + { 1.10336 + output_task(h, oc, &sbe[k % bufs]); 1.10337 + } 1.10338 + else 1.10339 + { 1.10340 + { 1.10341 + nanos_wd_dyn_props_t nanos_wd_dyn_props; 1.10342 + struct nanos_args_19_t *ol_args; 1.10343 + nanos_err_t err; 1.10344 + struct nanos_args_19_t imm_args; 1.10345 + static nanos_smp_args_t smp_ol_output_task_39_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_19_t *))&smp_ol_output_task_39 }; 1.10346 + static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_19_t), 0, 1, 0, "output_task" }, { { &nanos_smp_factory, &smp_ol_output_task_39_args } } }; 1.10347 + nanos_wd_dyn_props.tie_to = 0; 1.10348 + nanos_wd_dyn_props.priority = 0; 1.10349 + nanos_wd_dyn_props.flags.is_final = 0; 1.10350 + ol_args = (struct nanos_args_19_t *)0; 1.10351 + void *nanos_wd_ = (void *)0; 1.10352 + err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_19_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0); 1.10353 + if (err != NANOS_OK) 1.10354 + { 1.10355 + nanos_handle_error(err); 1.10356 + } 1.10357 + /* Check pendant writes on subexpressions */ 1.10358 + /* End check pendant writes on subexpressions */ 1.10359 + if (nanos_wd_ != (void *)0) 1.10360 + { 1.10361 + { 1.10362 + (*ol_args).h = mcc_arg_84; 1.10363 + (*ol_args).oc = mcc_arg_85; 1.10364 + (*ol_args).sbe = mcc_arg_86; 1.10365 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(OutputContext), 0, sizeof(OutputContext) } }; 1.10366 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.10367 + nanos_data_access_t dependences[2] = { { (void *)mcc_arg_85, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_86, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 } }; 1.10368 + ; 1.10369 + err = nanos_submit(nanos_wd_, 2, dependences, (void *)0); 1.10370 + if (err != NANOS_OK) 1.10371 + { 1.10372 + nanos_handle_error(err); 1.10373 + } 1.10374 + } 1.10375 + } 1.10376 + else 1.10377 + { 1.10378 + { 1.10379 + imm_args.h = mcc_arg_84; 1.10380 + imm_args.oc = mcc_arg_85; 1.10381 + imm_args.sbe = mcc_arg_86; 1.10382 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(OutputContext), 0, sizeof(OutputContext) } }; 1.10383 + nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } }; 1.10384 + nanos_data_access_t dependences[2] = { { (void *)mcc_arg_85, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_86, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 } }; 1.10385 + ; 1.10386 + err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_19_t), &imm_args, 2, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0); 1.10387 + if (err != NANOS_OK) 1.10388 + { 1.10389 + nanos_handle_error(err); 1.10390 + } 1.10391 + } 1.10392 + } 1.10393 + } 1.10394 + } 1.10395 + } 1.10396 + { 1.10397 + nanos_region_dimension_t dimensions_0[1] = { { sizeof(ParserContext), 0, sizeof(ParserContext) } }; 1.10398 + nanos_data_access_t dependences[1] = { { (void *)pc, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 } }; 1.10399 ; 1.10400 + nanos_err_t err = nanos_wait_on(1, dependences); 1.10401 + if (err != NANOS_OK) 1.10402 + { 1.10403 + nanos_handle_error(err); 1.10404 + } 1.10405 + } 1.10406 + k++; 1.10407 } 1.10408 - { 1.10409 - struct _dependence_holder 1.10410 - { 1.10411 - struct ParserContext *dep_0; 1.10412 - } _dep_holder = {&(*pc)}; 1.10413 - nanos_dependence_t _wait_dependences[1] = {{ 1.10414 - (void **) &_dep_holder.dep_0, 1.10415 - ((char *) ((pc)) - (char *) _dep_holder.dep_0), 1.10416 - { 1.10417 - 1, 1.10418 - 0, 1.10419 - 0, 1.10420 - 0 1.10421 - }, 1.10422 - sizeof (*pc) 1.10423 - }}; 1.10424 - nanos_wait_on(1, _wait_dependences); 1.10425 - } 1.10426 - k++; 1.10427 - } 1.10428 - while (!pc->final_frame && frames++ < h->num_frames && !h->quit) 1.10429 - { 1.10430 - { 1.10431 - struct H264Context *__tmp_0 = h; 1.10432 - struct ParserContext *__tmp_1 = pc; 1.10433 - struct NalContext *__tmp_2 = nc; 1.10434 - SliceBufferEntry *__tmp_3 = &sbe[k % bufs]; 1.10435 - { 1.10436 - /* SMP device descriptor */ 1.10437 - static nanos_smp_args_t _ol_h264_decode_ompss_8_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_8}; 1.10438 - _nx_data_env_8_t *ol_args = (_nx_data_env_8_t *) 0; 1.10439 - nanos_wd_t wd = (nanos_wd_t) 0; 1.10440 - struct nanos_const_wd_definition_local_t 1.10441 - { 1.10442 - nanos_const_wd_definition_t base; 1.10443 - nanos_device_t devices[1]; 1.10444 - }; 1.10445 - static struct nanos_const_wd_definition_local_t _const_def = { 1.10446 - { 1.10447 - { 1.10448 - 0, 1.10449 - 1, 1.10450 - 0, 1.10451 - 0, 1.10452 - 0, 1.10453 - 0, 1.10454 - 0, 1.10455 - 0 1.10456 - }, 1.10457 - __alignof__(_nx_data_env_8_t), 1.10458 - 0, 1.10459 - 1 1.10460 - }, 1.10461 - {{ 1.10462 - nanos_smp_factory, 1.10463 - &_ol_h264_decode_ompss_8_smp_args 1.10464 - }} 1.10465 - }; 1.10466 - nanos_wd_dyn_props_t dyn_props = {0}; 1.10467 - nanos_err_t err; 1.10468 - dyn_props.priority = 0; 1.10469 - err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_8_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.10470 - if (err != NANOS_OK) 1.10471 - nanos_handle_error(err); 1.10472 - if (wd != (nanos_wd_t) 0) 1.10473 - { 1.10474 - ol_args->__tmp_0_0 = __tmp_0; 1.10475 - ol_args->__tmp_1_0 = __tmp_1; 1.10476 - ol_args->__tmp_2_0 = __tmp_2; 1.10477 - ol_args->__tmp_3_0 = __tmp_3; 1.10478 - nanos_dependence_t _dependences[3] = { 1.10479 - { 1.10480 - (void **) &ol_args->__tmp_3_0, 1.10481 - ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0), 1.10482 - { 1.10483 - 0, 1.10484 - 1, 1.10485 - 1, 1.10486 - 0 1.10487 - }, 1.10488 - sizeof(SliceBufferEntry) 1.10489 - }, 1.10490 - { 1.10491 - (void **) &ol_args->__tmp_1_0, 1.10492 - ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.10493 - { 1.10494 - 1, 1.10495 - 1, 1.10496 - 1, 1.10497 - 0 1.10498 - }, 1.10499 - sizeof(struct ParserContext) 1.10500 - }, 1.10501 - { 1.10502 - (void **) &ol_args->__tmp_2_0, 1.10503 - ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.10504 - { 1.10505 - 1, 1.10506 - 1, 1.10507 - 1, 1.10508 - 0 1.10509 - }, 1.10510 - sizeof(struct NalContext) 1.10511 - } 1.10512 - }; 1.10513 - err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.10514 - if (err != NANOS_OK) 1.10515 - nanos_handle_error(err); 1.10516 - } 1.10517 - else 1.10518 - { 1.10519 - _nx_data_env_8_t imm_args; 1.10520 - imm_args.__tmp_0_0 = __tmp_0; 1.10521 - imm_args.__tmp_1_0 = __tmp_1; 1.10522 - imm_args.__tmp_2_0 = __tmp_2; 1.10523 - imm_args.__tmp_3_0 = __tmp_3; 1.10524 - nanos_dependence_t _dependences[3] = { 1.10525 - { 1.10526 - (void **) &imm_args.__tmp_3_0, 1.10527 - ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0), 1.10528 - { 1.10529 - 0, 1.10530 - 1, 1.10531 - 1, 1.10532 - 0 1.10533 - }, 1.10534 - sizeof(SliceBufferEntry) 1.10535 - }, 1.10536 - { 1.10537 - (void **) &imm_args.__tmp_1_0, 1.10538 - ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.10539 - { 1.10540 - 1, 1.10541 - 1, 1.10542 - 1, 1.10543 - 0 1.10544 - }, 1.10545 - sizeof(struct ParserContext) 1.10546 - }, 1.10547 - { 1.10548 - (void **) &imm_args.__tmp_2_0, 1.10549 - ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.10550 - { 1.10551 - 1, 1.10552 - 1, 1.10553 - 1, 1.10554 - 0 1.10555 - }, 1.10556 - sizeof(struct NalContext) 1.10557 - } 1.10558 - }; 1.10559 - dyn_props.priority = 0; 1.10560 - err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_8_t), &imm_args, 3, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.10561 - if (err != NANOS_OK) 1.10562 - nanos_handle_error(err); 1.10563 - } 1.10564 - } 1.10565 - ; 1.10566 - } 1.10567 - { 1.10568 - struct H264Context *__tmp_0 = h; 1.10569 - struct EntropyContext *__tmp_1 = ec[k % bufs]; 1.10570 - SliceBufferEntry *__tmp_2 = &sbe[k % bufs]; 1.10571 - { 1.10572 - /* SMP device descriptor */ 1.10573 - static nanos_smp_args_t _ol_h264_decode_ompss_9_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_9}; 1.10574 - _nx_data_env_9_t *ol_args = (_nx_data_env_9_t *) 0; 1.10575 - nanos_wd_t wd = (nanos_wd_t) 0; 1.10576 - struct nanos_const_wd_definition_local_t 1.10577 - { 1.10578 - nanos_const_wd_definition_t base; 1.10579 - nanos_device_t devices[1]; 1.10580 - }; 1.10581 - static struct nanos_const_wd_definition_local_t _const_def = { 1.10582 - { 1.10583 - { 1.10584 - 0, 1.10585 - 1, 1.10586 - 0, 1.10587 - 0, 1.10588 - 0, 1.10589 - 0, 1.10590 - 0, 1.10591 - 0 1.10592 - }, 1.10593 - __alignof__(_nx_data_env_9_t), 1.10594 - 0, 1.10595 - 1 1.10596 - }, 1.10597 - {{ 1.10598 - nanos_smp_factory, 1.10599 - &_ol_h264_decode_ompss_9_smp_args 1.10600 - }} 1.10601 - }; 1.10602 - nanos_wd_dyn_props_t dyn_props = {0}; 1.10603 - nanos_err_t err; 1.10604 - dyn_props.priority = 0; 1.10605 - err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_9_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.10606 - if (err != NANOS_OK) 1.10607 - nanos_handle_error(err); 1.10608 - if (wd != (nanos_wd_t) 0) 1.10609 - { 1.10610 - ol_args->__tmp_0_0 = __tmp_0; 1.10611 - ol_args->__tmp_1_0 = __tmp_1; 1.10612 - ol_args->__tmp_2_0 = __tmp_2; 1.10613 - nanos_dependence_t _dependences[2] = { 1.10614 - { 1.10615 - (void **) &ol_args->__tmp_1_0, 1.10616 - ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.10617 - { 1.10618 - 1, 1.10619 - 1, 1.10620 - 1, 1.10621 - 0 1.10622 - }, 1.10623 - sizeof(struct EntropyContext) 1.10624 - }, 1.10625 - { 1.10626 - (void **) &ol_args->__tmp_2_0, 1.10627 - ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.10628 - { 1.10629 - 1, 1.10630 - 1, 1.10631 - 1, 1.10632 - 0 1.10633 - }, 1.10634 - sizeof(SliceBufferEntry) 1.10635 - } 1.10636 - }; 1.10637 - err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.10638 - if (err != NANOS_OK) 1.10639 - nanos_handle_error(err); 1.10640 - } 1.10641 - else 1.10642 - { 1.10643 - _nx_data_env_9_t imm_args; 1.10644 - imm_args.__tmp_0_0 = __tmp_0; 1.10645 - imm_args.__tmp_1_0 = __tmp_1; 1.10646 - imm_args.__tmp_2_0 = __tmp_2; 1.10647 - nanos_dependence_t _dependences[2] = { 1.10648 - { 1.10649 - (void **) &imm_args.__tmp_1_0, 1.10650 - ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.10651 - { 1.10652 - 1, 1.10653 - 1, 1.10654 - 1, 1.10655 - 0 1.10656 - }, 1.10657 - sizeof(struct EntropyContext) 1.10658 - }, 1.10659 - { 1.10660 - (void **) &imm_args.__tmp_2_0, 1.10661 - ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.10662 - { 1.10663 - 1, 1.10664 - 1, 1.10665 - 1, 1.10666 - 0 1.10667 - }, 1.10668 - sizeof(SliceBufferEntry) 1.10669 - } 1.10670 - }; 1.10671 - dyn_props.priority = 0; 1.10672 - err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_9_t), &imm_args, 2, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.10673 - if (err != NANOS_OK) 1.10674 - nanos_handle_error(err); 1.10675 - } 1.10676 - } 1.10677 - ; 1.10678 - } 1.10679 - k++; 1.10680 - { 1.10681 - struct H264Context *__tmp_0 = h; 1.10682 - struct MBRecContext *__tmp_1 = rc[k % 2]; 1.10683 - SliceBufferEntry *__tmp_2 = &sbe[k % bufs]; 1.10684 - int *__tmp_3 = &init; 1.10685 - { 1.10686 - /* SMP device descriptor */ 1.10687 - static nanos_smp_args_t _ol_h264_decode_ompss_10_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_10}; 1.10688 - _nx_data_env_10_t *ol_args = (_nx_data_env_10_t *) 0; 1.10689 - nanos_wd_t wd = (nanos_wd_t) 0; 1.10690 - struct nanos_const_wd_definition_local_t 1.10691 - { 1.10692 - nanos_const_wd_definition_t base; 1.10693 - nanos_device_t devices[1]; 1.10694 - }; 1.10695 - static struct nanos_const_wd_definition_local_t _const_def = { 1.10696 - { 1.10697 - { 1.10698 - 0, 1.10699 - 1, 1.10700 - 0, 1.10701 - 0, 1.10702 - 0, 1.10703 - 0, 1.10704 - 0, 1.10705 - 0 1.10706 - }, 1.10707 - __alignof__(_nx_data_env_10_t), 1.10708 - 0, 1.10709 - 1 1.10710 - }, 1.10711 - {{ 1.10712 - nanos_smp_factory, 1.10713 - &_ol_h264_decode_ompss_10_smp_args 1.10714 - }} 1.10715 - }; 1.10716 - nanos_wd_dyn_props_t dyn_props = {0}; 1.10717 - nanos_err_t err; 1.10718 - dyn_props.priority = 0; 1.10719 - err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_10_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.10720 - if (err != NANOS_OK) 1.10721 - nanos_handle_error(err); 1.10722 - if (wd != (nanos_wd_t) 0) 1.10723 - { 1.10724 - ol_args->__tmp_0_0 = __tmp_0; 1.10725 - ol_args->__tmp_1_0 = __tmp_1; 1.10726 - ol_args->__tmp_2_0 = __tmp_2; 1.10727 - ol_args->__tmp_3_0 = __tmp_3; 1.10728 - nanos_dependence_t _dependences[3] = { 1.10729 - { 1.10730 - (void **) &ol_args->__tmp_1_0, 1.10731 - ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.10732 - { 1.10733 - 1, 1.10734 - 1, 1.10735 - 1, 1.10736 - 0 1.10737 - }, 1.10738 - sizeof(struct MBRecContext) 1.10739 - }, 1.10740 - { 1.10741 - (void **) &ol_args->__tmp_2_0, 1.10742 - ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.10743 - { 1.10744 - 1, 1.10745 - 1, 1.10746 - 1, 1.10747 - 0 1.10748 - }, 1.10749 - sizeof(SliceBufferEntry) 1.10750 - }, 1.10751 - { 1.10752 - (void **) &ol_args->__tmp_3_0, 1.10753 - ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0), 1.10754 - { 1.10755 - 1, 1.10756 - 1, 1.10757 - 1, 1.10758 - 0 1.10759 - }, 1.10760 - sizeof(int) 1.10761 - } 1.10762 - }; 1.10763 - err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.10764 - if (err != NANOS_OK) 1.10765 - nanos_handle_error(err); 1.10766 - } 1.10767 - else 1.10768 - { 1.10769 - _nx_data_env_10_t imm_args; 1.10770 - imm_args.__tmp_0_0 = __tmp_0; 1.10771 - imm_args.__tmp_1_0 = __tmp_1; 1.10772 - imm_args.__tmp_2_0 = __tmp_2; 1.10773 - imm_args.__tmp_3_0 = __tmp_3; 1.10774 - nanos_dependence_t _dependences[3] = { 1.10775 - { 1.10776 - (void **) &imm_args.__tmp_1_0, 1.10777 - ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.10778 - { 1.10779 - 1, 1.10780 - 1, 1.10781 - 1, 1.10782 - 0 1.10783 - }, 1.10784 - sizeof(struct MBRecContext) 1.10785 - }, 1.10786 - { 1.10787 - (void **) &imm_args.__tmp_2_0, 1.10788 - ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.10789 - { 1.10790 - 1, 1.10791 - 1, 1.10792 - 1, 1.10793 - 0 1.10794 - }, 1.10795 - sizeof(SliceBufferEntry) 1.10796 - }, 1.10797 - { 1.10798 - (void **) &imm_args.__tmp_3_0, 1.10799 - ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0), 1.10800 - { 1.10801 - 1, 1.10802 - 1, 1.10803 - 1, 1.10804 - 0 1.10805 - }, 1.10806 - sizeof(int) 1.10807 - } 1.10808 - }; 1.10809 - dyn_props.priority = 0; 1.10810 - err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_10_t), &imm_args, 3, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.10811 - if (err != NANOS_OK) 1.10812 - nanos_handle_error(err); 1.10813 - } 1.10814 - } 1.10815 - ; 1.10816 - } 1.10817 - smbc = acquire_smbc(h); 1.10818 - SuperMBTask *lastsmb = add_decode_slice_3dwave_tasks(rc[k % 2], &sbe[k % bufs], smbc); 1.10819 - { 1.10820 - struct H264Context *__tmp_0 = h; 1.10821 - struct SuperMBContext *__tmp_1 = smbc; 1.10822 - struct MBRecContext *__tmp_2 = rc[k % 2]; 1.10823 - SliceBufferEntry *__tmp_3 = &sbe[k % bufs]; 1.10824 - struct SuperMBTask *__tmp_4 = lastsmb; 1.10825 - int *__tmp_5 = &release; 1.10826 - { 1.10827 - /* SMP device descriptor */ 1.10828 - static nanos_smp_args_t _ol_h264_decode_ompss_11_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_11}; 1.10829 - _nx_data_env_11_t *ol_args = (_nx_data_env_11_t *) 0; 1.10830 - nanos_wd_t wd = (nanos_wd_t) 0; 1.10831 - struct nanos_const_wd_definition_local_t 1.10832 - { 1.10833 - nanos_const_wd_definition_t base; 1.10834 - nanos_device_t devices[1]; 1.10835 - }; 1.10836 - static struct nanos_const_wd_definition_local_t _const_def = { 1.10837 - { 1.10838 - { 1.10839 - 0, 1.10840 - 1, 1.10841 - 0, 1.10842 - 0, 1.10843 - 0, 1.10844 - 0, 1.10845 - 0, 1.10846 - 0 1.10847 - }, 1.10848 - __alignof__(_nx_data_env_11_t), 1.10849 - 0, 1.10850 - 1 1.10851 - }, 1.10852 - {{ 1.10853 - nanos_smp_factory, 1.10854 - &_ol_h264_decode_ompss_11_smp_args 1.10855 - }} 1.10856 - }; 1.10857 - nanos_wd_dyn_props_t dyn_props = {0}; 1.10858 - nanos_err_t err; 1.10859 - dyn_props.priority = 0; 1.10860 - err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_11_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.10861 - if (err != NANOS_OK) 1.10862 - nanos_handle_error(err); 1.10863 - if (wd != (nanos_wd_t) 0) 1.10864 - { 1.10865 - ol_args->__tmp_0_0 = __tmp_0; 1.10866 - ol_args->__tmp_1_0 = __tmp_1; 1.10867 - ol_args->__tmp_2_0 = __tmp_2; 1.10868 - ol_args->__tmp_3_0 = __tmp_3; 1.10869 - ol_args->__tmp_4_0 = __tmp_4; 1.10870 - ol_args->__tmp_5_0 = __tmp_5; 1.10871 - nanos_dependence_t _dependences[4] = { 1.10872 - { 1.10873 - (void **) &ol_args->__tmp_4_0, 1.10874 - ((char *) ((__tmp_4)) - (char *) ol_args->__tmp_4_0), 1.10875 - { 1.10876 - 1, 1.10877 - 0, 1.10878 - 1, 1.10879 - 0 1.10880 - }, 1.10881 - sizeof(struct SuperMBTask) 1.10882 - }, 1.10883 - { 1.10884 - (void **) &ol_args->__tmp_2_0, 1.10885 - ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.10886 - { 1.10887 - 1, 1.10888 - 1, 1.10889 - 1, 1.10890 - 0 1.10891 - }, 1.10892 - sizeof(struct MBRecContext) 1.10893 - }, 1.10894 - { 1.10895 - (void **) &ol_args->__tmp_3_0, 1.10896 - ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0), 1.10897 - { 1.10898 - 1, 1.10899 - 1, 1.10900 - 1, 1.10901 - 0 1.10902 - }, 1.10903 - sizeof(SliceBufferEntry) 1.10904 - }, 1.10905 - { 1.10906 - (void **) &ol_args->__tmp_5_0, 1.10907 - ((char *) ((__tmp_5)) - (char *) ol_args->__tmp_5_0), 1.10908 - { 1.10909 - 1, 1.10910 - 1, 1.10911 - 1, 1.10912 - 0 1.10913 - }, 1.10914 - sizeof(int) 1.10915 - } 1.10916 - }; 1.10917 - err = nanos_submit(wd, 4, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.10918 - if (err != NANOS_OK) 1.10919 - nanos_handle_error(err); 1.10920 - } 1.10921 - else 1.10922 - { 1.10923 - _nx_data_env_11_t imm_args; 1.10924 - imm_args.__tmp_0_0 = __tmp_0; 1.10925 - imm_args.__tmp_1_0 = __tmp_1; 1.10926 - imm_args.__tmp_2_0 = __tmp_2; 1.10927 - imm_args.__tmp_3_0 = __tmp_3; 1.10928 - imm_args.__tmp_4_0 = __tmp_4; 1.10929 - imm_args.__tmp_5_0 = __tmp_5; 1.10930 - nanos_dependence_t _dependences[4] = { 1.10931 - { 1.10932 - (void **) &imm_args.__tmp_4_0, 1.10933 - ((char *) ((__tmp_4)) - (char *) imm_args.__tmp_4_0), 1.10934 - { 1.10935 - 1, 1.10936 - 0, 1.10937 - 1, 1.10938 - 0 1.10939 - }, 1.10940 - sizeof(struct SuperMBTask) 1.10941 - }, 1.10942 - { 1.10943 - (void **) &imm_args.__tmp_2_0, 1.10944 - ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.10945 - { 1.10946 - 1, 1.10947 - 1, 1.10948 - 1, 1.10949 - 0 1.10950 - }, 1.10951 - sizeof(struct MBRecContext) 1.10952 - }, 1.10953 - { 1.10954 - (void **) &imm_args.__tmp_3_0, 1.10955 - ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0), 1.10956 - { 1.10957 - 1, 1.10958 - 1, 1.10959 - 1, 1.10960 - 0 1.10961 - }, 1.10962 - sizeof(SliceBufferEntry) 1.10963 - }, 1.10964 - { 1.10965 - (void **) &imm_args.__tmp_5_0, 1.10966 - ((char *) ((__tmp_5)) - (char *) imm_args.__tmp_5_0), 1.10967 - { 1.10968 - 1, 1.10969 - 1, 1.10970 - 1, 1.10971 - 0 1.10972 - }, 1.10973 - sizeof(int) 1.10974 - } 1.10975 - }; 1.10976 - dyn_props.priority = 0; 1.10977 - err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_11_t), &imm_args, 4, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.10978 - if (err != NANOS_OK) 1.10979 - nanos_handle_error(err); 1.10980 - } 1.10981 - } 1.10982 - ; 1.10983 - } 1.10984 - { 1.10985 - struct H264Context *__tmp_0 = h; 1.10986 - struct OutputContext *__tmp_1 = oc; 1.10987 - SliceBufferEntry *__tmp_2 = &sbe[k % bufs]; 1.10988 - { 1.10989 - /* SMP device descriptor */ 1.10990 - static nanos_smp_args_t _ol_h264_decode_ompss_12_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_12}; 1.10991 - _nx_data_env_12_t *ol_args = (_nx_data_env_12_t *) 0; 1.10992 - nanos_wd_t wd = (nanos_wd_t) 0; 1.10993 - struct nanos_const_wd_definition_local_t 1.10994 - { 1.10995 - nanos_const_wd_definition_t base; 1.10996 - nanos_device_t devices[1]; 1.10997 - }; 1.10998 - static struct nanos_const_wd_definition_local_t _const_def = { 1.10999 - { 1.11000 - { 1.11001 - 0, 1.11002 - 1, 1.11003 - 0, 1.11004 - 0, 1.11005 - 0, 1.11006 - 0, 1.11007 - 0, 1.11008 - 0 1.11009 - }, 1.11010 - __alignof__(_nx_data_env_12_t), 1.11011 - 0, 1.11012 - 1 1.11013 - }, 1.11014 - {{ 1.11015 - nanos_smp_factory, 1.11016 - &_ol_h264_decode_ompss_12_smp_args 1.11017 - }} 1.11018 - }; 1.11019 - nanos_wd_dyn_props_t dyn_props = {0}; 1.11020 - nanos_err_t err; 1.11021 - dyn_props.priority = 0; 1.11022 - err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_12_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.11023 - if (err != NANOS_OK) 1.11024 - nanos_handle_error(err); 1.11025 - if (wd != (nanos_wd_t) 0) 1.11026 - { 1.11027 - ol_args->__tmp_0_0 = __tmp_0; 1.11028 - ol_args->__tmp_1_0 = __tmp_1; 1.11029 - ol_args->__tmp_2_0 = __tmp_2; 1.11030 - nanos_dependence_t _dependences[2] = { 1.11031 - { 1.11032 - (void **) &ol_args->__tmp_2_0, 1.11033 - ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.11034 - { 1.11035 - 1, 1.11036 - 0, 1.11037 - 1, 1.11038 - 0 1.11039 - }, 1.11040 - sizeof(SliceBufferEntry) 1.11041 - }, 1.11042 - { 1.11043 - (void **) &ol_args->__tmp_1_0, 1.11044 - ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.11045 - { 1.11046 - 1, 1.11047 - 1, 1.11048 - 1, 1.11049 - 0 1.11050 - }, 1.11051 - sizeof(struct OutputContext) 1.11052 - } 1.11053 - }; 1.11054 - err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.11055 - if (err != NANOS_OK) 1.11056 - nanos_handle_error(err); 1.11057 - } 1.11058 - else 1.11059 - { 1.11060 - _nx_data_env_12_t imm_args; 1.11061 - imm_args.__tmp_0_0 = __tmp_0; 1.11062 - imm_args.__tmp_1_0 = __tmp_1; 1.11063 - imm_args.__tmp_2_0 = __tmp_2; 1.11064 - nanos_dependence_t _dependences[2] = { 1.11065 - { 1.11066 - (void **) &imm_args.__tmp_2_0, 1.11067 - ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.11068 - { 1.11069 - 1, 1.11070 - 0, 1.11071 - 1, 1.11072 - 0 1.11073 - }, 1.11074 - sizeof(SliceBufferEntry) 1.11075 - }, 1.11076 - { 1.11077 - (void **) &imm_args.__tmp_1_0, 1.11078 - ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.11079 - { 1.11080 - 1, 1.11081 - 1, 1.11082 - 1, 1.11083 - 0 1.11084 - }, 1.11085 - sizeof(struct OutputContext) 1.11086 - } 1.11087 - }; 1.11088 - dyn_props.priority = 0; 1.11089 - err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_12_t), &imm_args, 2, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.11090 - if (err != NANOS_OK) 1.11091 - nanos_handle_error(err); 1.11092 - } 1.11093 - } 1.11094 - ; 1.11095 - } 1.11096 - { 1.11097 - struct _dependence_holder 1.11098 - { 1.11099 - struct ParserContext *dep_0; 1.11100 - } _dep_holder = {&(*pc)}; 1.11101 - nanos_dependence_t _wait_dependences[1] = {{ 1.11102 - (void **) &_dep_holder.dep_0, 1.11103 - ((char *) ((pc)) - (char *) _dep_holder.dep_0), 1.11104 - { 1.11105 - 1, 1.11106 - 0, 1.11107 - 0, 1.11108 - 0 1.11109 - }, 1.11110 - sizeof (*pc) 1.11111 - }}; 1.11112 - nanos_wait_on(1, _wait_dependences); 1.11113 - } 1.11114 - } 1.11115 - for (int i = 0; 1.11116 - i < num_pre_ed; 1.11117 - i++) 1.11118 - { 1.11119 - k++; 1.11120 - { 1.11121 - struct H264Context *__tmp_0 = h; 1.11122 - struct MBRecContext *__tmp_1 = rc[k % 2]; 1.11123 - SliceBufferEntry *__tmp_2 = &sbe[k % bufs]; 1.11124 - int *__tmp_3 = &init; 1.11125 - { 1.11126 - /* SMP device descriptor */ 1.11127 - static nanos_smp_args_t _ol_h264_decode_ompss_13_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_13}; 1.11128 - _nx_data_env_13_t *ol_args = (_nx_data_env_13_t *) 0; 1.11129 - nanos_wd_t wd = (nanos_wd_t) 0; 1.11130 - struct nanos_const_wd_definition_local_t 1.11131 - { 1.11132 - nanos_const_wd_definition_t base; 1.11133 - nanos_device_t devices[1]; 1.11134 - }; 1.11135 - static struct nanos_const_wd_definition_local_t _const_def = { 1.11136 - { 1.11137 - { 1.11138 - 0, 1.11139 - 1, 1.11140 - 0, 1.11141 - 0, 1.11142 - 0, 1.11143 - 0, 1.11144 - 0, 1.11145 - 0 1.11146 - }, 1.11147 - __alignof__(_nx_data_env_13_t), 1.11148 - 0, 1.11149 - 1 1.11150 - }, 1.11151 - {{ 1.11152 - nanos_smp_factory, 1.11153 - &_ol_h264_decode_ompss_13_smp_args 1.11154 - }} 1.11155 - }; 1.11156 - nanos_wd_dyn_props_t dyn_props = {0}; 1.11157 - nanos_err_t err; 1.11158 - dyn_props.priority = 0; 1.11159 - err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_13_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.11160 - if (err != NANOS_OK) 1.11161 - nanos_handle_error(err); 1.11162 - if (wd != (nanos_wd_t) 0) 1.11163 - { 1.11164 - ol_args->__tmp_0_0 = __tmp_0; 1.11165 - ol_args->__tmp_1_0 = __tmp_1; 1.11166 - ol_args->__tmp_2_0 = __tmp_2; 1.11167 - ol_args->__tmp_3_0 = __tmp_3; 1.11168 - nanos_dependence_t _dependences[3] = { 1.11169 - { 1.11170 - (void **) &ol_args->__tmp_1_0, 1.11171 - ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.11172 - { 1.11173 - 1, 1.11174 - 1, 1.11175 - 1, 1.11176 - 0 1.11177 - }, 1.11178 - sizeof(struct MBRecContext) 1.11179 - }, 1.11180 - { 1.11181 - (void **) &ol_args->__tmp_2_0, 1.11182 - ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.11183 - { 1.11184 - 1, 1.11185 - 1, 1.11186 - 1, 1.11187 - 0 1.11188 - }, 1.11189 - sizeof(SliceBufferEntry) 1.11190 - }, 1.11191 - { 1.11192 - (void **) &ol_args->__tmp_3_0, 1.11193 - ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0), 1.11194 - { 1.11195 - 1, 1.11196 - 1, 1.11197 - 1, 1.11198 - 0 1.11199 - }, 1.11200 - sizeof(int) 1.11201 - } 1.11202 - }; 1.11203 - err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.11204 - if (err != NANOS_OK) 1.11205 - nanos_handle_error(err); 1.11206 - } 1.11207 - else 1.11208 - { 1.11209 - _nx_data_env_13_t imm_args; 1.11210 - imm_args.__tmp_0_0 = __tmp_0; 1.11211 - imm_args.__tmp_1_0 = __tmp_1; 1.11212 - imm_args.__tmp_2_0 = __tmp_2; 1.11213 - imm_args.__tmp_3_0 = __tmp_3; 1.11214 - nanos_dependence_t _dependences[3] = { 1.11215 - { 1.11216 - (void **) &imm_args.__tmp_1_0, 1.11217 - ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.11218 - { 1.11219 - 1, 1.11220 - 1, 1.11221 - 1, 1.11222 - 0 1.11223 - }, 1.11224 - sizeof(struct MBRecContext) 1.11225 - }, 1.11226 - { 1.11227 - (void **) &imm_args.__tmp_2_0, 1.11228 - ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.11229 - { 1.11230 - 1, 1.11231 - 1, 1.11232 - 1, 1.11233 - 0 1.11234 - }, 1.11235 - sizeof(SliceBufferEntry) 1.11236 - }, 1.11237 - { 1.11238 - (void **) &imm_args.__tmp_3_0, 1.11239 - ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0), 1.11240 - { 1.11241 - 1, 1.11242 - 1, 1.11243 - 1, 1.11244 - 0 1.11245 - }, 1.11246 - sizeof(int) 1.11247 - } 1.11248 - }; 1.11249 - dyn_props.priority = 0; 1.11250 - err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_13_t), &imm_args, 3, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.11251 - if (err != NANOS_OK) 1.11252 - nanos_handle_error(err); 1.11253 - } 1.11254 - } 1.11255 - ; 1.11256 - } 1.11257 - smbc = acquire_smbc(h); 1.11258 - SuperMBTask *lastsmb = add_decode_slice_3dwave_tasks(rc[k % 2], &sbe[k % bufs], smbc); 1.11259 - { 1.11260 - struct H264Context *__tmp_0 = h; 1.11261 - struct SuperMBContext *__tmp_1 = smbc; 1.11262 - struct MBRecContext *__tmp_2 = rc[k % 2]; 1.11263 - SliceBufferEntry *__tmp_3 = &sbe[k % bufs]; 1.11264 - struct SuperMBTask *__tmp_4 = lastsmb; 1.11265 - int *__tmp_5 = &release; 1.11266 - { 1.11267 - /* SMP device descriptor */ 1.11268 - static nanos_smp_args_t _ol_h264_decode_ompss_14_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_14}; 1.11269 - _nx_data_env_14_t *ol_args = (_nx_data_env_14_t *) 0; 1.11270 - nanos_wd_t wd = (nanos_wd_t) 0; 1.11271 - struct nanos_const_wd_definition_local_t 1.11272 - { 1.11273 - nanos_const_wd_definition_t base; 1.11274 - nanos_device_t devices[1]; 1.11275 - }; 1.11276 - static struct nanos_const_wd_definition_local_t _const_def = { 1.11277 - { 1.11278 - { 1.11279 - 0, 1.11280 - 1, 1.11281 - 0, 1.11282 - 0, 1.11283 - 0, 1.11284 - 0, 1.11285 - 0, 1.11286 - 0 1.11287 - }, 1.11288 - __alignof__(_nx_data_env_14_t), 1.11289 - 0, 1.11290 - 1 1.11291 - }, 1.11292 - {{ 1.11293 - nanos_smp_factory, 1.11294 - &_ol_h264_decode_ompss_14_smp_args 1.11295 - }} 1.11296 - }; 1.11297 - nanos_wd_dyn_props_t dyn_props = {0}; 1.11298 - nanos_err_t err; 1.11299 - dyn_props.priority = 0; 1.11300 - err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_14_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.11301 - if (err != NANOS_OK) 1.11302 - nanos_handle_error(err); 1.11303 - if (wd != (nanos_wd_t) 0) 1.11304 - { 1.11305 - ol_args->__tmp_0_0 = __tmp_0; 1.11306 - ol_args->__tmp_1_0 = __tmp_1; 1.11307 - ol_args->__tmp_2_0 = __tmp_2; 1.11308 - ol_args->__tmp_3_0 = __tmp_3; 1.11309 - ol_args->__tmp_4_0 = __tmp_4; 1.11310 - ol_args->__tmp_5_0 = __tmp_5; 1.11311 - nanos_dependence_t _dependences[4] = { 1.11312 - { 1.11313 - (void **) &ol_args->__tmp_4_0, 1.11314 - ((char *) ((__tmp_4)) - (char *) ol_args->__tmp_4_0), 1.11315 - { 1.11316 - 1, 1.11317 - 0, 1.11318 - 1, 1.11319 - 0 1.11320 - }, 1.11321 - sizeof(struct SuperMBTask) 1.11322 - }, 1.11323 - { 1.11324 - (void **) &ol_args->__tmp_2_0, 1.11325 - ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.11326 - { 1.11327 - 1, 1.11328 - 1, 1.11329 - 1, 1.11330 - 0 1.11331 - }, 1.11332 - sizeof(struct MBRecContext) 1.11333 - }, 1.11334 - { 1.11335 - (void **) &ol_args->__tmp_3_0, 1.11336 - ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0), 1.11337 - { 1.11338 - 1, 1.11339 - 1, 1.11340 - 1, 1.11341 - 0 1.11342 - }, 1.11343 - sizeof(SliceBufferEntry) 1.11344 - }, 1.11345 - { 1.11346 - (void **) &ol_args->__tmp_5_0, 1.11347 - ((char *) ((__tmp_5)) - (char *) ol_args->__tmp_5_0), 1.11348 - { 1.11349 - 1, 1.11350 - 1, 1.11351 - 1, 1.11352 - 0 1.11353 - }, 1.11354 - sizeof(int) 1.11355 - } 1.11356 - }; 1.11357 - err = nanos_submit(wd, 4, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.11358 - if (err != NANOS_OK) 1.11359 - nanos_handle_error(err); 1.11360 - } 1.11361 - else 1.11362 - { 1.11363 - _nx_data_env_14_t imm_args; 1.11364 - imm_args.__tmp_0_0 = __tmp_0; 1.11365 - imm_args.__tmp_1_0 = __tmp_1; 1.11366 - imm_args.__tmp_2_0 = __tmp_2; 1.11367 - imm_args.__tmp_3_0 = __tmp_3; 1.11368 - imm_args.__tmp_4_0 = __tmp_4; 1.11369 - imm_args.__tmp_5_0 = __tmp_5; 1.11370 - nanos_dependence_t _dependences[4] = { 1.11371 - { 1.11372 - (void **) &imm_args.__tmp_4_0, 1.11373 - ((char *) ((__tmp_4)) - (char *) imm_args.__tmp_4_0), 1.11374 - { 1.11375 - 1, 1.11376 - 0, 1.11377 - 1, 1.11378 - 0 1.11379 - }, 1.11380 - sizeof(struct SuperMBTask) 1.11381 - }, 1.11382 - { 1.11383 - (void **) &imm_args.__tmp_2_0, 1.11384 - ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.11385 - { 1.11386 - 1, 1.11387 - 1, 1.11388 - 1, 1.11389 - 0 1.11390 - }, 1.11391 - sizeof(struct MBRecContext) 1.11392 - }, 1.11393 - { 1.11394 - (void **) &imm_args.__tmp_3_0, 1.11395 - ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0), 1.11396 - { 1.11397 - 1, 1.11398 - 1, 1.11399 - 1, 1.11400 - 0 1.11401 - }, 1.11402 - sizeof(SliceBufferEntry) 1.11403 - }, 1.11404 - { 1.11405 - (void **) &imm_args.__tmp_5_0, 1.11406 - ((char *) ((__tmp_5)) - (char *) imm_args.__tmp_5_0), 1.11407 - { 1.11408 - 1, 1.11409 - 1, 1.11410 - 1, 1.11411 - 0 1.11412 - }, 1.11413 - sizeof(int) 1.11414 - } 1.11415 - }; 1.11416 - dyn_props.priority = 0; 1.11417 - err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_14_t), &imm_args, 4, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.11418 - if (err != NANOS_OK) 1.11419 - nanos_handle_error(err); 1.11420 - } 1.11421 - } 1.11422 - ; 1.11423 - } 1.11424 - { 1.11425 - struct H264Context *__tmp_0 = h; 1.11426 - struct OutputContext *__tmp_1 = oc; 1.11427 - SliceBufferEntry *__tmp_2 = &sbe[k % bufs]; 1.11428 - { 1.11429 - /* SMP device descriptor */ 1.11430 - static nanos_smp_args_t _ol_h264_decode_ompss_15_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_15}; 1.11431 - _nx_data_env_15_t *ol_args = (_nx_data_env_15_t *) 0; 1.11432 - nanos_wd_t wd = (nanos_wd_t) 0; 1.11433 - struct nanos_const_wd_definition_local_t 1.11434 - { 1.11435 - nanos_const_wd_definition_t base; 1.11436 - nanos_device_t devices[1]; 1.11437 - }; 1.11438 - static struct nanos_const_wd_definition_local_t _const_def = { 1.11439 - { 1.11440 - { 1.11441 - 0, 1.11442 - 1, 1.11443 - 0, 1.11444 - 0, 1.11445 - 0, 1.11446 - 0, 1.11447 - 0, 1.11448 - 0 1.11449 - }, 1.11450 - __alignof__(_nx_data_env_15_t), 1.11451 - 0, 1.11452 - 1 1.11453 - }, 1.11454 - {{ 1.11455 - nanos_smp_factory, 1.11456 - &_ol_h264_decode_ompss_15_smp_args 1.11457 - }} 1.11458 - }; 1.11459 - nanos_wd_dyn_props_t dyn_props = {0}; 1.11460 - nanos_err_t err; 1.11461 - dyn_props.priority = 0; 1.11462 - err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_15_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.11463 - if (err != NANOS_OK) 1.11464 - nanos_handle_error(err); 1.11465 - if (wd != (nanos_wd_t) 0) 1.11466 - { 1.11467 - ol_args->__tmp_0_0 = __tmp_0; 1.11468 - ol_args->__tmp_1_0 = __tmp_1; 1.11469 - ol_args->__tmp_2_0 = __tmp_2; 1.11470 - nanos_dependence_t _dependences[2] = { 1.11471 - { 1.11472 - (void **) &ol_args->__tmp_2_0, 1.11473 - ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.11474 - { 1.11475 - 1, 1.11476 - 0, 1.11477 - 1, 1.11478 - 0 1.11479 - }, 1.11480 - sizeof(SliceBufferEntry) 1.11481 - }, 1.11482 - { 1.11483 - (void **) &ol_args->__tmp_1_0, 1.11484 - ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.11485 - { 1.11486 - 1, 1.11487 - 1, 1.11488 - 1, 1.11489 - 0 1.11490 - }, 1.11491 - sizeof(struct OutputContext) 1.11492 - } 1.11493 - }; 1.11494 - err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.11495 - if (err != NANOS_OK) 1.11496 - nanos_handle_error(err); 1.11497 - } 1.11498 - else 1.11499 - { 1.11500 - _nx_data_env_15_t imm_args; 1.11501 - imm_args.__tmp_0_0 = __tmp_0; 1.11502 - imm_args.__tmp_1_0 = __tmp_1; 1.11503 - imm_args.__tmp_2_0 = __tmp_2; 1.11504 - nanos_dependence_t _dependences[2] = { 1.11505 - { 1.11506 - (void **) &imm_args.__tmp_2_0, 1.11507 - ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.11508 - { 1.11509 - 1, 1.11510 - 0, 1.11511 - 1, 1.11512 - 0 1.11513 - }, 1.11514 - sizeof(SliceBufferEntry) 1.11515 - }, 1.11516 - { 1.11517 - (void **) &imm_args.__tmp_1_0, 1.11518 - ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.11519 - { 1.11520 - 1, 1.11521 - 1, 1.11522 - 1, 1.11523 - 0 1.11524 - }, 1.11525 - sizeof(struct OutputContext) 1.11526 - } 1.11527 - }; 1.11528 - dyn_props.priority = 0; 1.11529 - err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_15_t), &imm_args, 2, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.11530 - if (err != NANOS_OK) 1.11531 - nanos_handle_error(err); 1.11532 - } 1.11533 - } 1.11534 - ; 1.11535 - } 1.11536 - } 1.11537 + } 1.11538 + } 1.11539 } 1.11540 - else 1.11541 + { 1.11542 + nanos_err_t err; 1.11543 + void *nanos_wd_ = nanos_current_wd(); 1.11544 + err = nanos_wg_wait_completion(nanos_wd_, 0); 1.11545 + if (err != NANOS_OK) 1.11546 + { 1.11547 + nanos_handle_error(err); 1.11548 + } 1.11549 + } 1.11550 + while ((out = output_frame(h, oc, (void *)0, (*h).ofile, (*h).frame_width, (*h).frame_height))) 1.11551 { 1.11552 - while (!pc->final_frame && frames++ < h->num_frames && !h->quit) 1.11553 - { 1.11554 - { 1.11555 - struct H264Context *__tmp_0 = h; 1.11556 - struct ParserContext *__tmp_1 = pc; 1.11557 - struct NalContext *__tmp_2 = nc; 1.11558 - SliceBufferEntry *__tmp_3 = &sbe[k % bufs]; 1.11559 - { 1.11560 - /* SMP device descriptor */ 1.11561 - static nanos_smp_args_t _ol_h264_decode_ompss_16_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_16}; 1.11562 - _nx_data_env_16_t *ol_args = (_nx_data_env_16_t *) 0; 1.11563 - nanos_wd_t wd = (nanos_wd_t) 0; 1.11564 - struct nanos_const_wd_definition_local_t 1.11565 - { 1.11566 - nanos_const_wd_definition_t base; 1.11567 - nanos_device_t devices[1]; 1.11568 - }; 1.11569 - static struct nanos_const_wd_definition_local_t _const_def = { 1.11570 - { 1.11571 - { 1.11572 - 0, 1.11573 - 1, 1.11574 - 0, 1.11575 - 0, 1.11576 - 0, 1.11577 - 0, 1.11578 - 0, 1.11579 - 0 1.11580 - }, 1.11581 - __alignof__(_nx_data_env_16_t), 1.11582 - 0, 1.11583 - 1 1.11584 - }, 1.11585 - {{ 1.11586 - nanos_smp_factory, 1.11587 - &_ol_h264_decode_ompss_16_smp_args 1.11588 - }} 1.11589 - }; 1.11590 - nanos_wd_dyn_props_t dyn_props = {0}; 1.11591 - nanos_err_t err; 1.11592 - dyn_props.priority = 0; 1.11593 - err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_16_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.11594 - if (err != NANOS_OK) 1.11595 - nanos_handle_error(err); 1.11596 - if (wd != (nanos_wd_t) 0) 1.11597 - { 1.11598 - ol_args->__tmp_0_0 = __tmp_0; 1.11599 - ol_args->__tmp_1_0 = __tmp_1; 1.11600 - ol_args->__tmp_2_0 = __tmp_2; 1.11601 - ol_args->__tmp_3_0 = __tmp_3; 1.11602 - nanos_dependence_t _dependences[3] = { 1.11603 - { 1.11604 - (void **) &ol_args->__tmp_3_0, 1.11605 - ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0), 1.11606 - { 1.11607 - 0, 1.11608 - 1, 1.11609 - 1, 1.11610 - 0 1.11611 - }, 1.11612 - sizeof(SliceBufferEntry) 1.11613 - }, 1.11614 - { 1.11615 - (void **) &ol_args->__tmp_1_0, 1.11616 - ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.11617 - { 1.11618 - 1, 1.11619 - 1, 1.11620 - 1, 1.11621 - 0 1.11622 - }, 1.11623 - sizeof(struct ParserContext) 1.11624 - }, 1.11625 - { 1.11626 - (void **) &ol_args->__tmp_2_0, 1.11627 - ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.11628 - { 1.11629 - 1, 1.11630 - 1, 1.11631 - 1, 1.11632 - 0 1.11633 - }, 1.11634 - sizeof(struct NalContext) 1.11635 - } 1.11636 - }; 1.11637 - err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.11638 - if (err != NANOS_OK) 1.11639 - nanos_handle_error(err); 1.11640 - } 1.11641 - else 1.11642 - { 1.11643 - _nx_data_env_16_t imm_args; 1.11644 - imm_args.__tmp_0_0 = __tmp_0; 1.11645 - imm_args.__tmp_1_0 = __tmp_1; 1.11646 - imm_args.__tmp_2_0 = __tmp_2; 1.11647 - imm_args.__tmp_3_0 = __tmp_3; 1.11648 - nanos_dependence_t _dependences[3] = { 1.11649 - { 1.11650 - (void **) &imm_args.__tmp_3_0, 1.11651 - ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0), 1.11652 - { 1.11653 - 0, 1.11654 - 1, 1.11655 - 1, 1.11656 - 0 1.11657 - }, 1.11658 - sizeof(SliceBufferEntry) 1.11659 - }, 1.11660 - { 1.11661 - (void **) &imm_args.__tmp_1_0, 1.11662 - ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.11663 - { 1.11664 - 1, 1.11665 - 1, 1.11666 - 1, 1.11667 - 0 1.11668 - }, 1.11669 - sizeof(struct ParserContext) 1.11670 - }, 1.11671 - { 1.11672 - (void **) &imm_args.__tmp_2_0, 1.11673 - ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.11674 - { 1.11675 - 1, 1.11676 - 1, 1.11677 - 1, 1.11678 - 0 1.11679 - }, 1.11680 - sizeof(struct NalContext) 1.11681 - } 1.11682 - }; 1.11683 - dyn_props.priority = 0; 1.11684 - err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_16_t), &imm_args, 3, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.11685 - if (err != NANOS_OK) 1.11686 - nanos_handle_error(err); 1.11687 - } 1.11688 - } 1.11689 - ; 1.11690 - } 1.11691 - { 1.11692 - struct H264Context *__tmp_0 = h; 1.11693 - struct EntropyContext *__tmp_1 = ec[k % bufs]; 1.11694 - SliceBufferEntry *__tmp_2 = &sbe[k % bufs]; 1.11695 - { 1.11696 - /* SMP device descriptor */ 1.11697 - static nanos_smp_args_t _ol_h264_decode_ompss_17_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_17}; 1.11698 - _nx_data_env_17_t *ol_args = (_nx_data_env_17_t *) 0; 1.11699 - nanos_wd_t wd = (nanos_wd_t) 0; 1.11700 - struct nanos_const_wd_definition_local_t 1.11701 - { 1.11702 - nanos_const_wd_definition_t base; 1.11703 - nanos_device_t devices[1]; 1.11704 - }; 1.11705 - static struct nanos_const_wd_definition_local_t _const_def = { 1.11706 - { 1.11707 - { 1.11708 - 0, 1.11709 - 1, 1.11710 - 0, 1.11711 - 0, 1.11712 - 0, 1.11713 - 0, 1.11714 - 0, 1.11715 - 0 1.11716 - }, 1.11717 - __alignof__(_nx_data_env_17_t), 1.11718 - 0, 1.11719 - 1 1.11720 - }, 1.11721 - {{ 1.11722 - nanos_smp_factory, 1.11723 - &_ol_h264_decode_ompss_17_smp_args 1.11724 - }} 1.11725 - }; 1.11726 - nanos_wd_dyn_props_t dyn_props = {0}; 1.11727 - nanos_err_t err; 1.11728 - dyn_props.priority = 0; 1.11729 - err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_17_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.11730 - if (err != NANOS_OK) 1.11731 - nanos_handle_error(err); 1.11732 - if (wd != (nanos_wd_t) 0) 1.11733 - { 1.11734 - ol_args->__tmp_0_0 = __tmp_0; 1.11735 - ol_args->__tmp_1_0 = __tmp_1; 1.11736 - ol_args->__tmp_2_0 = __tmp_2; 1.11737 - nanos_dependence_t _dependences[2] = { 1.11738 - { 1.11739 - (void **) &ol_args->__tmp_1_0, 1.11740 - ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.11741 - { 1.11742 - 1, 1.11743 - 1, 1.11744 - 1, 1.11745 - 0 1.11746 - }, 1.11747 - sizeof(struct EntropyContext) 1.11748 - }, 1.11749 - { 1.11750 - (void **) &ol_args->__tmp_2_0, 1.11751 - ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.11752 - { 1.11753 - 1, 1.11754 - 1, 1.11755 - 1, 1.11756 - 0 1.11757 - }, 1.11758 - sizeof(SliceBufferEntry) 1.11759 - } 1.11760 - }; 1.11761 - err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.11762 - if (err != NANOS_OK) 1.11763 - nanos_handle_error(err); 1.11764 - } 1.11765 - else 1.11766 - { 1.11767 - _nx_data_env_17_t imm_args; 1.11768 - imm_args.__tmp_0_0 = __tmp_0; 1.11769 - imm_args.__tmp_1_0 = __tmp_1; 1.11770 - imm_args.__tmp_2_0 = __tmp_2; 1.11771 - nanos_dependence_t _dependences[2] = { 1.11772 - { 1.11773 - (void **) &imm_args.__tmp_1_0, 1.11774 - ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.11775 - { 1.11776 - 1, 1.11777 - 1, 1.11778 - 1, 1.11779 - 0 1.11780 - }, 1.11781 - sizeof(struct EntropyContext) 1.11782 - }, 1.11783 - { 1.11784 - (void **) &imm_args.__tmp_2_0, 1.11785 - ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.11786 - { 1.11787 - 1, 1.11788 - 1, 1.11789 - 1, 1.11790 - 0 1.11791 - }, 1.11792 - sizeof(SliceBufferEntry) 1.11793 - } 1.11794 - }; 1.11795 - dyn_props.priority = 0; 1.11796 - err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_17_t), &imm_args, 2, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.11797 - if (err != NANOS_OK) 1.11798 - nanos_handle_error(err); 1.11799 - } 1.11800 - } 1.11801 - ; 1.11802 - } 1.11803 - { 1.11804 - struct H264Context *__tmp_0 = h; 1.11805 - struct MBRecContext *__tmp_1 = rc[0]; 1.11806 - SliceBufferEntry *__tmp_2 = &sbe[k % bufs]; 1.11807 - { 1.11808 - /* SMP device descriptor */ 1.11809 - static nanos_smp_args_t _ol_h264_decode_ompss_18_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_18}; 1.11810 - _nx_data_env_18_t *ol_args = (_nx_data_env_18_t *) 0; 1.11811 - nanos_wd_t wd = (nanos_wd_t) 0; 1.11812 - struct nanos_const_wd_definition_local_t 1.11813 - { 1.11814 - nanos_const_wd_definition_t base; 1.11815 - nanos_device_t devices[1]; 1.11816 - }; 1.11817 - static struct nanos_const_wd_definition_local_t _const_def = { 1.11818 - { 1.11819 - { 1.11820 - 0, 1.11821 - 1, 1.11822 - 0, 1.11823 - 0, 1.11824 - 0, 1.11825 - 0, 1.11826 - 0, 1.11827 - 0 1.11828 - }, 1.11829 - __alignof__(_nx_data_env_18_t), 1.11830 - 0, 1.11831 - 1 1.11832 - }, 1.11833 - {{ 1.11834 - nanos_smp_factory, 1.11835 - &_ol_h264_decode_ompss_18_smp_args 1.11836 - }} 1.11837 - }; 1.11838 - nanos_wd_dyn_props_t dyn_props = {0}; 1.11839 - nanos_err_t err; 1.11840 - dyn_props.priority = 0; 1.11841 - err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_18_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.11842 - if (err != NANOS_OK) 1.11843 - nanos_handle_error(err); 1.11844 - if (wd != (nanos_wd_t) 0) 1.11845 - { 1.11846 - ol_args->__tmp_0_0 = __tmp_0; 1.11847 - ol_args->__tmp_1_0 = __tmp_1; 1.11848 - ol_args->__tmp_2_0 = __tmp_2; 1.11849 - nanos_dependence_t _dependences[2] = { 1.11850 - { 1.11851 - (void **) &ol_args->__tmp_1_0, 1.11852 - ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.11853 - { 1.11854 - 1, 1.11855 - 1, 1.11856 - 1, 1.11857 - 0 1.11858 - }, 1.11859 - sizeof(struct MBRecContext) 1.11860 - }, 1.11861 - { 1.11862 - (void **) &ol_args->__tmp_2_0, 1.11863 - ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.11864 - { 1.11865 - 1, 1.11866 - 1, 1.11867 - 1, 1.11868 - 0 1.11869 - }, 1.11870 - sizeof(SliceBufferEntry) 1.11871 - } 1.11872 - }; 1.11873 - err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.11874 - if (err != NANOS_OK) 1.11875 - nanos_handle_error(err); 1.11876 - } 1.11877 - else 1.11878 - { 1.11879 - _nx_data_env_18_t imm_args; 1.11880 - imm_args.__tmp_0_0 = __tmp_0; 1.11881 - imm_args.__tmp_1_0 = __tmp_1; 1.11882 - imm_args.__tmp_2_0 = __tmp_2; 1.11883 - nanos_dependence_t _dependences[2] = { 1.11884 - { 1.11885 - (void **) &imm_args.__tmp_1_0, 1.11886 - ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.11887 - { 1.11888 - 1, 1.11889 - 1, 1.11890 - 1, 1.11891 - 0 1.11892 - }, 1.11893 - sizeof(struct MBRecContext) 1.11894 - }, 1.11895 - { 1.11896 - (void **) &imm_args.__tmp_2_0, 1.11897 - ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.11898 - { 1.11899 - 1, 1.11900 - 1, 1.11901 - 1, 1.11902 - 0 1.11903 - }, 1.11904 - sizeof(SliceBufferEntry) 1.11905 - } 1.11906 - }; 1.11907 - dyn_props.priority = 0; 1.11908 - err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_18_t), &imm_args, 2, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.11909 - if (err != NANOS_OK) 1.11910 - nanos_handle_error(err); 1.11911 - } 1.11912 - } 1.11913 - ; 1.11914 - } 1.11915 - { 1.11916 - struct H264Context *__tmp_0 = h; 1.11917 - struct OutputContext *__tmp_1 = oc; 1.11918 - SliceBufferEntry *__tmp_2 = &sbe[k % bufs]; 1.11919 - { 1.11920 - /* SMP device descriptor */ 1.11921 - static nanos_smp_args_t _ol_h264_decode_ompss_19_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_19}; 1.11922 - _nx_data_env_19_t *ol_args = (_nx_data_env_19_t *) 0; 1.11923 - nanos_wd_t wd = (nanos_wd_t) 0; 1.11924 - struct nanos_const_wd_definition_local_t 1.11925 - { 1.11926 - nanos_const_wd_definition_t base; 1.11927 - nanos_device_t devices[1]; 1.11928 - }; 1.11929 - static struct nanos_const_wd_definition_local_t _const_def = { 1.11930 - { 1.11931 - { 1.11932 - 0, 1.11933 - 1, 1.11934 - 0, 1.11935 - 0, 1.11936 - 0, 1.11937 - 0, 1.11938 - 0, 1.11939 - 0 1.11940 - }, 1.11941 - __alignof__(_nx_data_env_19_t), 1.11942 - 0, 1.11943 - 1 1.11944 - }, 1.11945 - {{ 1.11946 - nanos_smp_factory, 1.11947 - &_ol_h264_decode_ompss_19_smp_args 1.11948 - }} 1.11949 - }; 1.11950 - nanos_wd_dyn_props_t dyn_props = {0}; 1.11951 - nanos_err_t err; 1.11952 - dyn_props.priority = 0; 1.11953 - err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_19_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.11954 - if (err != NANOS_OK) 1.11955 - nanos_handle_error(err); 1.11956 - if (wd != (nanos_wd_t) 0) 1.11957 - { 1.11958 - ol_args->__tmp_0_0 = __tmp_0; 1.11959 - ol_args->__tmp_1_0 = __tmp_1; 1.11960 - ol_args->__tmp_2_0 = __tmp_2; 1.11961 - nanos_dependence_t _dependences[2] = { 1.11962 - { 1.11963 - (void **) &ol_args->__tmp_2_0, 1.11964 - ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.11965 - { 1.11966 - 1, 1.11967 - 0, 1.11968 - 1, 1.11969 - 0 1.11970 - }, 1.11971 - sizeof(SliceBufferEntry) 1.11972 - }, 1.11973 - { 1.11974 - (void **) &ol_args->__tmp_1_0, 1.11975 - ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.11976 - { 1.11977 - 1, 1.11978 - 1, 1.11979 - 1, 1.11980 - 0 1.11981 - }, 1.11982 - sizeof(struct OutputContext) 1.11983 - } 1.11984 - }; 1.11985 - err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.11986 - if (err != NANOS_OK) 1.11987 - nanos_handle_error(err); 1.11988 - } 1.11989 - else 1.11990 - { 1.11991 - _nx_data_env_19_t imm_args; 1.11992 - imm_args.__tmp_0_0 = __tmp_0; 1.11993 - imm_args.__tmp_1_0 = __tmp_1; 1.11994 - imm_args.__tmp_2_0 = __tmp_2; 1.11995 - nanos_dependence_t _dependences[2] = { 1.11996 - { 1.11997 - (void **) &imm_args.__tmp_2_0, 1.11998 - ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.11999 - { 1.12000 - 1, 1.12001 - 0, 1.12002 - 1, 1.12003 - 0 1.12004 - }, 1.12005 - sizeof(SliceBufferEntry) 1.12006 - }, 1.12007 - { 1.12008 - (void **) &imm_args.__tmp_1_0, 1.12009 - ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.12010 - { 1.12011 - 1, 1.12012 - 1, 1.12013 - 1, 1.12014 - 0 1.12015 - }, 1.12016 - sizeof(struct OutputContext) 1.12017 - } 1.12018 - }; 1.12019 - dyn_props.priority = 0; 1.12020 - err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_19_t), &imm_args, 2, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.12021 - if (err != NANOS_OK) 1.12022 - nanos_handle_error(err); 1.12023 - } 1.12024 - } 1.12025 - ; 1.12026 - } 1.12027 - { 1.12028 - struct _dependence_holder 1.12029 - { 1.12030 - struct ParserContext *dep_0; 1.12031 - } _dep_holder = {&(*pc)}; 1.12032 - nanos_dependence_t _wait_dependences[1] = {{ 1.12033 - (void **) &_dep_holder.dep_0, 1.12034 - ((char *) ((pc)) - (char *) _dep_holder.dep_0), 1.12035 - { 1.12036 - 1, 1.12037 - 0, 1.12038 - 0, 1.12039 - 0 1.12040 - }, 1.12041 - sizeof (*pc) 1.12042 - }}; 1.12043 - nanos_wait_on(1, _wait_dependences); 1.12044 - } 1.12045 - k++; 1.12046 - } 1.12047 + ; 1.12048 } 1.12049 - nanos_wg_wait_completion(nanos_current_wd(), 0); 1.12050 - while ((out = output_frame(h, oc, ((void *) 0), h->ofile, h->frame_width, h->frame_height))) 1.12051 - ; 1.12052 - h->num_frames = oc->frame_number; 1.12053 - free_parse_context(pc); 1.12054 - free_nal_context(nc); 1.12055 - free_output_context(oc); 1.12056 - for (int i = 0; 1.12057 - i < bufs; 1.12058 - i++) 1.12059 + (*h).num_frames = (*oc).frame_number; 1.12060 + free_parse_context(pc); 1.12061 + free_nal_context(nc); 1.12062 + free_output_context(oc); 1.12063 + for (int i = 0; i < bufs; i++) 1.12064 { 1.12065 + { 1.12066 free_sb_entry(&sbe[i]); 1.12067 free_entropy_context(ec[i]); 1.12068 + } 1.12069 } 1.12070 - av_free(sbe); 1.12071 - for (int i = 0; 1.12072 - i < 2; 1.12073 - i++) 1.12074 + av_free(sbe); 1.12075 + for (int i = 0; i < 2; i++) 1.12076 { 1.12077 + { 1.12078 free_mbrec_context(rc[i]); 1.12079 + } 1.12080 } 1.12081 - return 0; 1.12082 + return 0; 1.12083 } 1.12084 -__attribute__((weak, section("nanos_init"))) nanos_init_desc_t __section__nanos_init = { 1.12085 - nanos_omp_set_interface, 1.12086 - (void *) 0 1.12087 +static void smp_ol_decode_super_mb_task_1_unpacked(MBRecContext **const d, SliceBufferEntry **const sbe, SuperMBContext **const smbc, SuperMBTask **const ml, SuperMBTask **const mur, SuperMBTask **const m) 1.12088 +{ 1.12089 + { 1.12090 + decode_super_mb_task((*d), (*sbe), (*smbc), (*ml), (*mur), (*m)); 1.12091 + } 1.12092 +} 1.12093 +static void smp_ol_decode_super_mb_task_1(struct nanos_args_0_t *const args) 1.12094 +{ 1.12095 + { 1.12096 + smp_ol_decode_super_mb_task_1_unpacked(&((*args).d), &((*args).sbe), &((*args).smbc), &((*args).ml), &((*args).mur), &((*args).m)); 1.12097 + } 1.12098 +} 1.12099 +static void smp_ol_draw_edges_task_3_unpacked(MBRecContext **const d, SliceBufferEntry **const sbe, SuperMBContext **const smbc, SuperMBTask **const sm, int *const line) 1.12100 +{ 1.12101 + { 1.12102 + draw_edges_task((*d), (*sbe), (*smbc), (*sm), (*line)); 1.12103 + } 1.12104 +} 1.12105 +static void smp_ol_draw_edges_task_3(struct nanos_args_1_t *const args) 1.12106 +{ 1.12107 + { 1.12108 + smp_ol_draw_edges_task_3_unpacked(&((*args).d), &((*args).sbe), &((*args).smbc), &((*args).sm), &((*args).line)); 1.12109 + } 1.12110 +} 1.12111 +static void smp_ol_decode_3dwave_super_mb_task_5_unpacked(MBRecContext **const d, SliceBufferEntry **const sbe, SuperMBContext **const smbc, SuperMBTask **const ml, SuperMBTask **const mur, SuperMBTask **const mprev, SuperMBTask **const m) 1.12112 +{ 1.12113 + { 1.12114 + decode_3dwave_super_mb_task((*d), (*sbe), (*smbc), (*ml), (*mur), (*mprev), (*m)); 1.12115 + } 1.12116 +} 1.12117 +static void smp_ol_decode_3dwave_super_mb_task_5(struct nanos_args_2_t *const args) 1.12118 +{ 1.12119 + { 1.12120 + smp_ol_decode_3dwave_super_mb_task_5_unpacked(&((*args).d), &((*args).sbe), &((*args).smbc), &((*args).ml), &((*args).mur), &((*args).mprev), &((*args).m)); 1.12121 + } 1.12122 +} 1.12123 +static void smp_ol_draw_edges_task_7_unpacked(MBRecContext **const d, SliceBufferEntry **const sbe, SuperMBContext **const smbc, SuperMBTask **const sm, int *const line) 1.12124 +{ 1.12125 + { 1.12126 + draw_edges_task((*d), (*sbe), (*smbc), (*sm), (*line)); 1.12127 + } 1.12128 +} 1.12129 +static void smp_ol_draw_edges_task_7(struct nanos_args_3_t *const args) 1.12130 +{ 1.12131 + { 1.12132 + smp_ol_draw_edges_task_7_unpacked(&((*args).d), &((*args).sbe), &((*args).smbc), &((*args).sm), &((*args).line)); 1.12133 + } 1.12134 +} 1.12135 +static void smp_ol_decode_super_mb_task_9_unpacked(MBRecContext **const d, SliceBufferEntry **const sbe, SuperMBContext **const smbc, SuperMBTask **const ml, SuperMBTask **const mur, SuperMBTask **const m) 1.12136 +{ 1.12137 + { 1.12138 + decode_super_mb_task((*d), (*sbe), (*smbc), (*ml), (*mur), (*m)); 1.12139 + } 1.12140 +} 1.12141 +static void smp_ol_decode_super_mb_task_9(struct nanos_args_4_t *const args) 1.12142 +{ 1.12143 + { 1.12144 + smp_ol_decode_super_mb_task_9_unpacked(&((*args).d), &((*args).sbe), &((*args).smbc), &((*args).ml), &((*args).mur), &((*args).m)); 1.12145 + } 1.12146 +} 1.12147 +static void smp_ol_draw_edges_task_11_unpacked(MBRecContext **const d, SliceBufferEntry **const sbe, SuperMBContext **const smbc, SuperMBTask **const sm, int *const line) 1.12148 +{ 1.12149 + { 1.12150 + draw_edges_task((*d), (*sbe), (*smbc), (*sm), (*line)); 1.12151 + } 1.12152 +} 1.12153 +static void smp_ol_draw_edges_task_11(struct nanos_args_5_t *const args) 1.12154 +{ 1.12155 + { 1.12156 + smp_ol_draw_edges_task_11_unpacked(&((*args).d), &((*args).sbe), &((*args).smbc), &((*args).sm), &((*args).line)); 1.12157 + } 1.12158 +} 1.12159 +static void smp_ol_parse_task_13_unpacked(H264Context **const h, ParserContext **const pc, NalContext **const nc, SliceBufferEntry **const sbe) 1.12160 +{ 1.12161 + { 1.12162 + parse_task((*h), (*pc), (*nc), (*sbe)); 1.12163 + } 1.12164 +} 1.12165 +static void smp_ol_parse_task_13(struct nanos_args_6_t *const args) 1.12166 +{ 1.12167 + { 1.12168 + smp_ol_parse_task_13_unpacked(&((*args).h), &((*args).pc), &((*args).nc), &((*args).sbe)); 1.12169 + } 1.12170 +} 1.12171 +static void smp_ol_decode_slice_entropy_task_15_unpacked(H264Context **const h, EntropyContext **const ec, SliceBufferEntry **const sbe) 1.12172 +{ 1.12173 + { 1.12174 + decode_slice_entropy_task((*h), (*ec), (*sbe)); 1.12175 + } 1.12176 +} 1.12177 +static void smp_ol_decode_slice_entropy_task_15(struct nanos_args_7_t *const args) 1.12178 +{ 1.12179 + { 1.12180 + smp_ol_decode_slice_entropy_task_15_unpacked(&((*args).h), &((*args).ec), &((*args).sbe)); 1.12181 + } 1.12182 +} 1.12183 +static void smp_ol_parse_task_17_unpacked(H264Context **const h, ParserContext **const pc, NalContext **const nc, SliceBufferEntry **const sbe) 1.12184 +{ 1.12185 + { 1.12186 + parse_task((*h), (*pc), (*nc), (*sbe)); 1.12187 + } 1.12188 +} 1.12189 +static void smp_ol_parse_task_17(struct nanos_args_8_t *const args) 1.12190 +{ 1.12191 + { 1.12192 + smp_ol_parse_task_17_unpacked(&((*args).h), &((*args).pc), &((*args).nc), &((*args).sbe)); 1.12193 + } 1.12194 +} 1.12195 +static void smp_ol_decode_slice_entropy_task_19_unpacked(H264Context **const h, EntropyContext **const ec, SliceBufferEntry **const sbe) 1.12196 +{ 1.12197 + { 1.12198 + decode_slice_entropy_task((*h), (*ec), (*sbe)); 1.12199 + } 1.12200 +} 1.12201 +static void smp_ol_decode_slice_entropy_task_19(struct nanos_args_9_t *const args) 1.12202 +{ 1.12203 + { 1.12204 + smp_ol_decode_slice_entropy_task_19_unpacked(&((*args).h), &((*args).ec), &((*args).sbe)); 1.12205 + } 1.12206 +} 1.12207 +static void smp_ol_init_ref_list_and_get_dpb_task_21_unpacked(H264Context **const h, MBRecContext **const d, SliceBufferEntry **const sbe, int **const init) 1.12208 +{ 1.12209 + { 1.12210 + init_ref_list_and_get_dpb_task((*h), (*d), (*sbe), (*init)); 1.12211 + } 1.12212 +} 1.12213 +static void smp_ol_init_ref_list_and_get_dpb_task_21(struct nanos_args_10_t *const args) 1.12214 +{ 1.12215 + { 1.12216 + smp_ol_init_ref_list_and_get_dpb_task_21_unpacked(&((*args).h), &((*args).d), &((*args).sbe), &((*args).init)); 1.12217 + } 1.12218 +} 1.12219 +static void smp_ol_release_ref_list_task_23_unpacked(H264Context **const h, SuperMBContext **const smbc, MBRecContext **const d, SliceBufferEntry **const sbe, SuperMBTask **const lastsmb, int **const release) 1.12220 +{ 1.12221 + { 1.12222 + release_ref_list_task((*h), (*smbc), (*d), (*sbe), (*lastsmb), (*release)); 1.12223 + } 1.12224 +} 1.12225 +static void smp_ol_release_ref_list_task_23(struct nanos_args_11_t *const args) 1.12226 +{ 1.12227 + { 1.12228 + smp_ol_release_ref_list_task_23_unpacked(&((*args).h), &((*args).smbc), &((*args).d), &((*args).sbe), &((*args).lastsmb), &((*args).release)); 1.12229 + } 1.12230 +} 1.12231 +static void smp_ol_output_task_25_unpacked(H264Context **const h, OutputContext **const oc, SliceBufferEntry **const sbe) 1.12232 +{ 1.12233 + { 1.12234 + output_task((*h), (*oc), (*sbe)); 1.12235 + } 1.12236 +} 1.12237 +static void smp_ol_output_task_25(struct nanos_args_12_t *const args) 1.12238 +{ 1.12239 + { 1.12240 + smp_ol_output_task_25_unpacked(&((*args).h), &((*args).oc), &((*args).sbe)); 1.12241 + } 1.12242 +} 1.12243 +static void smp_ol_init_ref_list_and_get_dpb_task_27_unpacked(H264Context **const h, MBRecContext **const d, SliceBufferEntry **const sbe, int **const init) 1.12244 +{ 1.12245 + { 1.12246 + init_ref_list_and_get_dpb_task((*h), (*d), (*sbe), (*init)); 1.12247 + } 1.12248 +} 1.12249 +static void smp_ol_init_ref_list_and_get_dpb_task_27(struct nanos_args_13_t *const args) 1.12250 +{ 1.12251 + { 1.12252 + smp_ol_init_ref_list_and_get_dpb_task_27_unpacked(&((*args).h), &((*args).d), &((*args).sbe), &((*args).init)); 1.12253 + } 1.12254 +} 1.12255 +static void smp_ol_release_ref_list_task_29_unpacked(H264Context **const h, SuperMBContext **const smbc, MBRecContext **const d, SliceBufferEntry **const sbe, SuperMBTask **const lastsmb, int **const release) 1.12256 +{ 1.12257 + { 1.12258 + release_ref_list_task((*h), (*smbc), (*d), (*sbe), (*lastsmb), (*release)); 1.12259 + } 1.12260 +} 1.12261 +static void smp_ol_release_ref_list_task_29(struct nanos_args_14_t *const args) 1.12262 +{ 1.12263 + { 1.12264 + smp_ol_release_ref_list_task_29_unpacked(&((*args).h), &((*args).smbc), &((*args).d), &((*args).sbe), &((*args).lastsmb), &((*args).release)); 1.12265 + } 1.12266 +} 1.12267 +static void smp_ol_output_task_31_unpacked(H264Context **const h, OutputContext **const oc, SliceBufferEntry **const sbe) 1.12268 +{ 1.12269 + { 1.12270 + output_task((*h), (*oc), (*sbe)); 1.12271 + } 1.12272 +} 1.12273 +static void smp_ol_output_task_31(struct nanos_args_15_t *const args) 1.12274 +{ 1.12275 + { 1.12276 + smp_ol_output_task_31_unpacked(&((*args).h), &((*args).oc), &((*args).sbe)); 1.12277 + } 1.12278 +} 1.12279 +static void smp_ol_parse_task_33_unpacked(H264Context **const h, ParserContext **const pc, NalContext **const nc, SliceBufferEntry **const sbe) 1.12280 +{ 1.12281 + { 1.12282 + parse_task((*h), (*pc), (*nc), (*sbe)); 1.12283 + } 1.12284 +} 1.12285 +static void smp_ol_parse_task_33(struct nanos_args_16_t *const args) 1.12286 +{ 1.12287 + { 1.12288 + smp_ol_parse_task_33_unpacked(&((*args).h), &((*args).pc), &((*args).nc), &((*args).sbe)); 1.12289 + } 1.12290 +} 1.12291 +static void smp_ol_decode_slice_entropy_task_35_unpacked(H264Context **const h, EntropyContext **const ec, SliceBufferEntry **const sbe) 1.12292 +{ 1.12293 + { 1.12294 + decode_slice_entropy_task((*h), (*ec), (*sbe)); 1.12295 + } 1.12296 +} 1.12297 +static void smp_ol_decode_slice_entropy_task_35(struct nanos_args_17_t *const args) 1.12298 +{ 1.12299 + { 1.12300 + smp_ol_decode_slice_entropy_task_35_unpacked(&((*args).h), &((*args).ec), &((*args).sbe)); 1.12301 + } 1.12302 +} 1.12303 +static void smp_ol_decode_slice_mb_task_37_unpacked(H264Context **const h, MBRecContext **const d, SliceBufferEntry **const sbe) 1.12304 +{ 1.12305 + { 1.12306 + decode_slice_mb_task((*h), (*d), (*sbe)); 1.12307 + } 1.12308 +} 1.12309 +static void smp_ol_decode_slice_mb_task_37(struct nanos_args_18_t *const args) 1.12310 +{ 1.12311 + { 1.12312 + smp_ol_decode_slice_mb_task_37_unpacked(&((*args).h), &((*args).d), &((*args).sbe)); 1.12313 + } 1.12314 +} 1.12315 +static void smp_ol_output_task_39_unpacked(H264Context **const h, OutputContext **const oc, SliceBufferEntry **const sbe) 1.12316 +{ 1.12317 + { 1.12318 + output_task((*h), (*oc), (*sbe)); 1.12319 + } 1.12320 +} 1.12321 +static void smp_ol_output_task_39(struct nanos_args_19_t *const args) 1.12322 +{ 1.12323 + { 1.12324 + smp_ol_output_task_39_unpacked(&((*args).h), &((*args).oc), &((*args).sbe)); 1.12325 + } 1.12326 +} 1.12327 +typedef void nanos_init_func_t(void *); 1.12328 +struct mcc_struct_anon_22 1.12329 +{ 1.12330 + void (*func)(void *); 1.12331 + void *data; 1.12332 }; 1.12333 +typedef struct mcc_struct_anon_22 nanos_init_desc_t; 1.12334 +void nanos_omp_set_interface(void *); 1.12335 +__attribute__((weak)) __attribute__((section("nanos_init"))) nanos_init_desc_t __section__nanos_init = { nanos_omp_set_interface, (void *)0 };
