# 1 "decode.c" # 1 "/home/xnox/libtheora-1.1.1+dfsg.1/lib//" # 1 "" # 1 "" # 1 "/usr/include/stdc-predef.h" 1 3 4 # 1 "" 2 # 1 "decode.c" # 18 "decode.c" # 1 "/usr/include/stdlib.h" 1 3 4 # 24 "/usr/include/stdlib.h" 3 4 # 1 "/usr/include/features.h" 1 3 4 # 364 "/usr/include/features.h" 3 4 # 1 "/usr/include/s390x-linux-gnu/sys/cdefs.h" 1 3 4 # 402 "/usr/include/s390x-linux-gnu/sys/cdefs.h" 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/wordsize.h" 1 3 4 # 403 "/usr/include/s390x-linux-gnu/sys/cdefs.h" 2 3 4 # 365 "/usr/include/features.h" 2 3 4 # 388 "/usr/include/features.h" 3 4 # 1 "/usr/include/s390x-linux-gnu/gnu/stubs.h" 1 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/wordsize.h" 1 3 4 # 6 "/usr/include/s390x-linux-gnu/gnu/stubs.h" 2 3 4 # 1 "/usr/include/s390x-linux-gnu/gnu/stubs-64.h" 1 3 4 # 12 "/usr/include/s390x-linux-gnu/gnu/stubs.h" 2 3 4 # 389 "/usr/include/features.h" 2 3 4 # 25 "/usr/include/stdlib.h" 2 3 4 # 1 "/usr/lib/gcc/s390x-linux-gnu/5/include/stddef.h" 1 3 4 # 216 "/usr/lib/gcc/s390x-linux-gnu/5/include/stddef.h" 3 4 # 216 "/usr/lib/gcc/s390x-linux-gnu/5/include/stddef.h" 3 4 typedef long unsigned int size_t; # 328 "/usr/lib/gcc/s390x-linux-gnu/5/include/stddef.h" 3 4 typedef int wchar_t; # 33 "/usr/include/stdlib.h" 2 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/waitflags.h" 1 3 4 # 50 "/usr/include/s390x-linux-gnu/bits/waitflags.h" 3 4 typedef enum { P_ALL, P_PID, P_PGID } idtype_t; # 42 "/usr/include/stdlib.h" 2 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/waitstatus.h" 1 3 4 # 64 "/usr/include/s390x-linux-gnu/bits/waitstatus.h" 3 4 # 1 "/usr/include/endian.h" 1 3 4 # 36 "/usr/include/endian.h" 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/endian.h" 1 3 4 # 37 "/usr/include/endian.h" 2 3 4 # 60 "/usr/include/endian.h" 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/byteswap.h" 1 3 4 # 24 "/usr/include/s390x-linux-gnu/bits/byteswap.h" 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/wordsize.h" 1 3 4 # 25 "/usr/include/s390x-linux-gnu/bits/byteswap.h" 2 3 4 # 33 "/usr/include/s390x-linux-gnu/bits/byteswap.h" 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/byteswap-16.h" 1 3 4 # 24 "/usr/include/s390x-linux-gnu/bits/byteswap-16.h" 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/wordsize.h" 1 3 4 # 25 "/usr/include/s390x-linux-gnu/bits/byteswap-16.h" 2 3 4 # 34 "/usr/include/s390x-linux-gnu/bits/byteswap.h" 2 3 4 # 61 "/usr/include/endian.h" 2 3 4 # 65 "/usr/include/s390x-linux-gnu/bits/waitstatus.h" 2 3 4 union wait { int w_status; struct { unsigned int:16; unsigned int __w_retcode:8; unsigned int __w_coredump:1; unsigned int __w_termsig:7; } __wait_terminated; struct { unsigned int:16; unsigned int __w_stopsig:8; unsigned int __w_stopval:8; } __wait_stopped; }; # 43 "/usr/include/stdlib.h" 2 3 4 # 67 "/usr/include/stdlib.h" 3 4 typedef union { union wait *__uptr; int *__iptr; } __WAIT_STATUS __attribute__ ((__transparent_union__)); # 95 "/usr/include/stdlib.h" 3 4 typedef struct { int quot; int rem; } div_t; typedef struct { long int quot; long int rem; } ldiv_t; __extension__ typedef struct { long long int quot; long long int rem; } lldiv_t; # 139 "/usr/include/stdlib.h" 3 4 extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern double atof (const char *__nptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int atoi (const char *__nptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern long int atol (const char *__nptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); __extension__ extern long long int atoll (const char *__nptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern double strtod (const char *__restrict __nptr, char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern float strtof (const char *__restrict __nptr, char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern long double strtold (const char *__restrict __nptr, char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern long int strtol (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern unsigned long int strtoul (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); __extension__ extern long long int strtoq (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); __extension__ extern unsigned long long int strtouq (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); __extension__ extern long long int strtoll (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); __extension__ extern unsigned long long int strtoull (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); # 276 "/usr/include/stdlib.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) atoi (const char *__nptr) { return (int) strtol (__nptr, (char **) ((void *)0), 10); } extern __inline __attribute__ ((__gnu_inline__)) long int __attribute__ ((__nothrow__ , __leaf__)) atol (const char *__nptr) { return strtol (__nptr, (char **) ((void *)0), 10); } __extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int __attribute__ ((__nothrow__ , __leaf__)) atoll (const char *__nptr) { return strtoll (__nptr, (char **) ((void *)0), 10); } # 305 "/usr/include/stdlib.h" 3 4 extern char *l64a (long int __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern long int a64l (const char *__s) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 1 "/usr/include/s390x-linux-gnu/sys/types.h" 1 3 4 # 27 "/usr/include/s390x-linux-gnu/sys/types.h" 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/types.h" 1 3 4 # 27 "/usr/include/s390x-linux-gnu/bits/types.h" 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/wordsize.h" 1 3 4 # 28 "/usr/include/s390x-linux-gnu/bits/types.h" 2 3 4 typedef unsigned char __u_char; typedef unsigned short int __u_short; typedef unsigned int __u_int; typedef unsigned long int __u_long; typedef signed char __int8_t; typedef unsigned char __uint8_t; typedef signed short int __int16_t; typedef unsigned short int __uint16_t; typedef signed int __int32_t; typedef unsigned int __uint32_t; typedef signed long int __int64_t; typedef unsigned long int __uint64_t; typedef long int __quad_t; typedef unsigned long int __u_quad_t; # 121 "/usr/include/s390x-linux-gnu/bits/types.h" 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/typesizes.h" 1 3 4 # 122 "/usr/include/s390x-linux-gnu/bits/types.h" 2 3 4 typedef unsigned long int __dev_t; typedef unsigned int __uid_t; typedef unsigned int __gid_t; typedef unsigned long int __ino_t; typedef unsigned long int __ino64_t; typedef unsigned int __mode_t; typedef unsigned long int __nlink_t; typedef long int __off_t; typedef long int __off64_t; typedef int __pid_t; typedef struct { int __val[2]; } __fsid_t; typedef long int __clock_t; typedef unsigned long int __rlim_t; typedef unsigned long int __rlim64_t; typedef unsigned int __id_t; typedef long int __time_t; typedef unsigned int __useconds_t; typedef long int __suseconds_t; typedef int __daddr_t; typedef int __key_t; typedef int __clockid_t; typedef void * __timer_t; typedef long int __blksize_t; typedef long int __blkcnt_t; typedef long int __blkcnt64_t; typedef unsigned long int __fsblkcnt_t; typedef unsigned long int __fsblkcnt64_t; typedef unsigned long int __fsfilcnt_t; typedef unsigned long int __fsfilcnt64_t; typedef long int __fsword_t; typedef long int __ssize_t; typedef long int __syscall_slong_t; typedef unsigned long int __syscall_ulong_t; typedef __off64_t __loff_t; typedef __quad_t *__qaddr_t; typedef char *__caddr_t; typedef long int __intptr_t; typedef unsigned int __socklen_t; # 30 "/usr/include/s390x-linux-gnu/sys/types.h" 2 3 4 typedef __u_char u_char; typedef __u_short u_short; typedef __u_int u_int; typedef __u_long u_long; typedef __quad_t quad_t; typedef __u_quad_t u_quad_t; typedef __fsid_t fsid_t; typedef __loff_t loff_t; typedef __ino_t ino_t; # 60 "/usr/include/s390x-linux-gnu/sys/types.h" 3 4 typedef __dev_t dev_t; typedef __gid_t gid_t; typedef __mode_t mode_t; typedef __nlink_t nlink_t; typedef __uid_t uid_t; typedef __off_t off_t; # 98 "/usr/include/s390x-linux-gnu/sys/types.h" 3 4 typedef __pid_t pid_t; typedef __id_t id_t; typedef __ssize_t ssize_t; typedef __daddr_t daddr_t; typedef __caddr_t caddr_t; typedef __key_t key_t; # 132 "/usr/include/s390x-linux-gnu/sys/types.h" 3 4 # 1 "/usr/include/time.h" 1 3 4 # 57 "/usr/include/time.h" 3 4 typedef __clock_t clock_t; # 73 "/usr/include/time.h" 3 4 typedef __time_t time_t; # 91 "/usr/include/time.h" 3 4 typedef __clockid_t clockid_t; # 103 "/usr/include/time.h" 3 4 typedef __timer_t timer_t; # 133 "/usr/include/s390x-linux-gnu/sys/types.h" 2 3 4 # 146 "/usr/include/s390x-linux-gnu/sys/types.h" 3 4 # 1 "/usr/lib/gcc/s390x-linux-gnu/5/include/stddef.h" 1 3 4 # 147 "/usr/include/s390x-linux-gnu/sys/types.h" 2 3 4 typedef unsigned long int ulong; typedef unsigned short int ushort; typedef unsigned int uint; # 194 "/usr/include/s390x-linux-gnu/sys/types.h" 3 4 typedef int int8_t __attribute__ ((__mode__ (__QI__))); typedef int int16_t __attribute__ ((__mode__ (__HI__))); typedef int int32_t __attribute__ ((__mode__ (__SI__))); typedef int int64_t __attribute__ ((__mode__ (__DI__))); typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); typedef int register_t __attribute__ ((__mode__ (__word__))); # 219 "/usr/include/s390x-linux-gnu/sys/types.h" 3 4 # 1 "/usr/include/s390x-linux-gnu/sys/select.h" 1 3 4 # 30 "/usr/include/s390x-linux-gnu/sys/select.h" 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/select.h" 1 3 4 # 31 "/usr/include/s390x-linux-gnu/sys/select.h" 2 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/sigset.h" 1 3 4 # 22 "/usr/include/s390x-linux-gnu/bits/sigset.h" 3 4 typedef int __sig_atomic_t; typedef struct { unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; } __sigset_t; # 34 "/usr/include/s390x-linux-gnu/sys/select.h" 2 3 4 typedef __sigset_t sigset_t; # 1 "/usr/include/time.h" 1 3 4 # 120 "/usr/include/time.h" 3 4 struct timespec { __time_t tv_sec; __syscall_slong_t tv_nsec; }; # 44 "/usr/include/s390x-linux-gnu/sys/select.h" 2 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/time.h" 1 3 4 # 30 "/usr/include/s390x-linux-gnu/bits/time.h" 3 4 struct timeval { __time_t tv_sec; __suseconds_t tv_usec; }; # 46 "/usr/include/s390x-linux-gnu/sys/select.h" 2 3 4 typedef __suseconds_t suseconds_t; typedef long int __fd_mask; # 64 "/usr/include/s390x-linux-gnu/sys/select.h" 3 4 typedef struct { __fd_mask __fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; } fd_set; typedef __fd_mask fd_mask; # 96 "/usr/include/s390x-linux-gnu/sys/select.h" 3 4 # 106 "/usr/include/s390x-linux-gnu/sys/select.h" 3 4 extern int select (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout); # 118 "/usr/include/s390x-linux-gnu/sys/select.h" 3 4 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 "/usr/include/s390x-linux-gnu/bits/select2.h" 1 3 4 # 24 "/usr/include/s390x-linux-gnu/bits/select2.h" 3 4 extern long int __fdelt_chk (long int __d); extern long int __fdelt_warn (long int __d) __attribute__((__warning__ ("bit outside of fd_set selected"))); # 129 "/usr/include/s390x-linux-gnu/sys/select.h" 2 3 4 # 220 "/usr/include/s390x-linux-gnu/sys/types.h" 2 3 4 # 1 "/usr/include/s390x-linux-gnu/sys/sysmacros.h" 1 3 4 # 24 "/usr/include/s390x-linux-gnu/sys/sysmacros.h" 3 4 __extension__ extern unsigned int gnu_dev_major (unsigned long long int __dev) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); __extension__ extern unsigned int gnu_dev_minor (unsigned long long int __dev) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); __extension__ extern unsigned long long int gnu_dev_makedev (unsigned int __major, unsigned int __minor) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); __extension__ extern __inline __attribute__ ((__gnu_inline__)) __attribute__ ((__const__)) unsigned int __attribute__ ((__nothrow__ , __leaf__)) gnu_dev_major (unsigned long long int __dev) { return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); } __extension__ extern __inline __attribute__ ((__gnu_inline__)) __attribute__ ((__const__)) unsigned int __attribute__ ((__nothrow__ , __leaf__)) gnu_dev_minor (unsigned long long int __dev) { return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); } __extension__ extern __inline __attribute__ ((__gnu_inline__)) __attribute__ ((__const__)) unsigned long long int __attribute__ ((__nothrow__ , __leaf__)) gnu_dev_makedev (unsigned int __major, unsigned int __minor) { return ((__minor & 0xff) | ((__major & 0xfff) << 8) | (((unsigned long long int) (__minor & ~0xff)) << 12) | (((unsigned long long int) (__major & ~0xfff)) << 32)); } # 223 "/usr/include/s390x-linux-gnu/sys/types.h" 2 3 4 typedef __blksize_t blksize_t; typedef __blkcnt_t blkcnt_t; typedef __fsblkcnt_t fsblkcnt_t; typedef __fsfilcnt_t fsfilcnt_t; # 270 "/usr/include/s390x-linux-gnu/sys/types.h" 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/pthreadtypes.h" 1 3 4 # 21 "/usr/include/s390x-linux-gnu/bits/pthreadtypes.h" 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/wordsize.h" 1 3 4 # 22 "/usr/include/s390x-linux-gnu/bits/pthreadtypes.h" 2 3 4 # 48 "/usr/include/s390x-linux-gnu/bits/pthreadtypes.h" 3 4 typedef unsigned long int pthread_t; union pthread_attr_t { char __size[56]; long int __align; }; typedef union pthread_attr_t pthread_attr_t; typedef struct __pthread_internal_list { struct __pthread_internal_list *__prev; struct __pthread_internal_list *__next; } __pthread_list_t; # 78 "/usr/include/s390x-linux-gnu/bits/pthreadtypes.h" 3 4 typedef union { struct __pthread_mutex_s { int __lock; unsigned int __count; int __owner; unsigned int __nusers; int __kind; int __spins; __pthread_list_t __list; # 126 "/usr/include/s390x-linux-gnu/bits/pthreadtypes.h" 3 4 } __data; char __size[40]; long int __align; } pthread_mutex_t; typedef union { char __size[4]; int __align; } pthread_mutexattr_t; typedef union { struct { int __lock; unsigned int __futex; __extension__ unsigned long long int __total_seq; __extension__ unsigned long long int __wakeup_seq; __extension__ unsigned long long int __woken_seq; void *__mutex; unsigned int __nwaiters; unsigned int __broadcast_seq; } __data; char __size[48]; __extension__ long long int __align; } pthread_cond_t; typedef union { char __size[4]; int __align; } pthread_condattr_t; typedef unsigned int pthread_key_t; typedef int pthread_once_t; typedef union { struct { int __lock; unsigned int __nr_readers; unsigned int __readers_wakeup; unsigned int __writer_wakeup; unsigned int __nr_readers_queued; unsigned int __nr_writers_queued; int __writer; int __shared; unsigned long int __pad1; unsigned long int __pad2; unsigned int __flags; } __data; # 213 "/usr/include/s390x-linux-gnu/bits/pthreadtypes.h" 3 4 char __size[56]; long int __align; } pthread_rwlock_t; typedef union { char __size[8]; long int __align; } pthread_rwlockattr_t; typedef volatile int pthread_spinlock_t; typedef union { char __size[32]; long int __align; } pthread_barrier_t; typedef union { char __size[4]; int __align; } pthread_barrierattr_t; # 271 "/usr/include/s390x-linux-gnu/sys/types.h" 2 3 4 # 315 "/usr/include/stdlib.h" 2 3 4 extern long int random (void) __attribute__ ((__nothrow__ , __leaf__)); extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__)); extern char *initstate (unsigned int __seed, char *__statebuf, size_t __statelen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); struct random_data { int32_t *fptr; int32_t *rptr; int32_t *state; int rand_type; int rand_deg; int rand_sep; int32_t *end_ptr; }; extern int random_r (struct random_data *__restrict __buf, int32_t *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int srandom_r (unsigned int __seed, struct random_data *__buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); 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))); extern int setstate_r (char *__restrict __statebuf, struct random_data *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int rand (void) __attribute__ ((__nothrow__ , __leaf__)); extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__)); extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ , __leaf__)); extern double drand48 (void) __attribute__ ((__nothrow__ , __leaf__)); extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern long int lrand48 (void) __attribute__ ((__nothrow__ , __leaf__)); extern long int nrand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern long int mrand48 (void) __attribute__ ((__nothrow__ , __leaf__)); extern long int jrand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ , __leaf__)); extern unsigned short int *seed48 (unsigned short int __seed16v[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); struct drand48_data { unsigned short int __x[3]; unsigned short int __old_x[3]; unsigned short int __c; unsigned short int __init; __extension__ unsigned long long int __a; }; extern int drand48_r (struct drand48_data *__restrict __buffer, double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int erand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int lrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); 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))); extern int mrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); 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))); extern int srand48_r (long int __seedval, struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern int seed48_r (unsigned short int __seed16v[3], struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int lcong48_r (unsigned short int __param[7], struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern void *malloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); extern void *calloc (size_t __nmemb, size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); extern void *realloc (void *__ptr, size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern void free (void *__ptr) __attribute__ ((__nothrow__ , __leaf__)); extern void cfree (void *__ptr) __attribute__ ((__nothrow__ , __leaf__)); # 1 "/usr/include/alloca.h" 1 3 4 # 24 "/usr/include/alloca.h" 3 4 # 1 "/usr/lib/gcc/s390x-linux-gnu/5/include/stddef.h" 1 3 4 # 25 "/usr/include/alloca.h" 2 3 4 extern void *alloca (size_t __size) __attribute__ ((__nothrow__ , __leaf__)); # 493 "/usr/include/stdlib.h" 2 3 4 extern void *valloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern void *aligned_alloc (size_t __alignment, size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (2))) __attribute__ ((__warn_unused_result__)); extern void abort (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern void exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); extern void quick_exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); extern void _Exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); extern char *getenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 578 "/usr/include/stdlib.h" 3 4 extern int putenv (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int setenv (const char *__name, const char *__value, int __replace) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern int unsetenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int clearenv (void) __attribute__ ((__nothrow__ , __leaf__)); # 606 "/usr/include/stdlib.h" 3 4 extern char *mktemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); # 619 "/usr/include/stdlib.h" 3 4 extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 641 "/usr/include/stdlib.h" 3 4 extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 662 "/usr/include/stdlib.h" 3 4 extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 711 "/usr/include/stdlib.h" 3 4 extern int system (const char *__command) __attribute__ ((__warn_unused_result__)); # 733 "/usr/include/stdlib.h" 3 4 extern char *realpath (const char *__restrict __name, char *__restrict __resolved) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); typedef int (*__compar_fn_t) (const void *, const void *); # 751 "/usr/include/stdlib.h" 3 4 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 "/usr/include/s390x-linux-gnu/bits/stdlib-bsearch.h" 1 3 4 # 19 "/usr/include/s390x-linux-gnu/bits/stdlib-bsearch.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) void * bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) { size_t __l, __u, __idx; const void *__p; int __comparison; __l = 0; __u = __nmemb; while (__l < __u) { __idx = (__l + __u) / 2; __p = (void *) (((const char *) __base) + (__idx * __size)); __comparison = (*__compar) (__key, __p); if (__comparison < 0) __u = __idx; else if (__comparison > 0) __l = __idx + 1; else return (void *) __p; } return ((void *)0); } # 760 "/usr/include/stdlib.h" 2 3 4 extern void qsort (void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); # 774 "/usr/include/stdlib.h" 3 4 extern int abs (int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); extern long int labs (long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); __extension__ extern long long int llabs (long long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); extern div_t div (int __numer, int __denom) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); extern ldiv_t ldiv (long int __numer, long int __denom) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); __extension__ extern lldiv_t lldiv (long long int __numer, long long int __denom) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); # 811 "/usr/include/stdlib.h" 3 4 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); extern char *gcvt (double __value, int __ndigit, char *__buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); 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__)); 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__)); extern char *qgcvt (long double __value, int __ndigit, char *__buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); 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))); 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))); 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))); 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))); extern int mblen (const char *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)); extern int mbtowc (wchar_t *__restrict __pwc, const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)); extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ , __leaf__)); extern size_t mbstowcs (wchar_t *__restrict __pwcs, const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)); extern size_t wcstombs (char *__restrict __s, const wchar_t *__restrict __pwcs, size_t __n) __attribute__ ((__nothrow__ , __leaf__)); extern int rpmatch (const char *__response) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 898 "/usr/include/stdlib.h" 3 4 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__)); # 950 "/usr/include/stdlib.h" 3 4 extern int getloadavg (double __loadavg[], int __nelem) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); # 1 "/usr/include/s390x-linux-gnu/bits/stdlib-float.h" 1 3 4 # 24 "/usr/include/s390x-linux-gnu/bits/stdlib-float.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) double __attribute__ ((__nothrow__ , __leaf__)) atof (const char *__nptr) { return strtod (__nptr, (char **) ((void *)0)); } # 955 "/usr/include/stdlib.h" 2 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/stdlib.h" 1 3 4 # 23 "/usr/include/s390x-linux-gnu/bits/stdlib.h" 3 4 extern char *__realpath_chk (const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern char *__realpath_alias (const char *__restrict __name, char *__restrict __resolved) __asm__ ("" "realpath") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); 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"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * __attribute__ ((__nothrow__ , __leaf__)) realpath (const char *__restrict __name, char *__restrict __resolved) { if (__builtin_object_size (__resolved, 2 > 1) != (size_t) -1) { return __realpath_chk (__name, __resolved, __builtin_object_size (__resolved, 2 > 1)); } return __realpath_alias (__name, __resolved); } extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen, size_t __nreal) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) __asm__ ("" "ptsname_r") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); 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"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__ , __leaf__)) ptsname_r (int __fd, char *__buf, size_t __buflen) { if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__buflen)) return __ptsname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); if (__buflen > __builtin_object_size (__buf, 2 > 1)) return __ptsname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); } return __ptsname_r_alias (__fd, __buf, __buflen); } extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern int __wctomb_alias (char *__s, wchar_t __wchar) __asm__ ("" "wctomb") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) int __attribute__ ((__nothrow__ , __leaf__)) wctomb (char *__s, wchar_t __wchar) { if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1)) return __wctomb_chk (__s, __wchar, __builtin_object_size (__s, 2 > 1)); return __wctomb_alias (__s, __wchar); } extern size_t __mbstowcs_chk (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len, size_t __dstlen) __attribute__ ((__nothrow__ , __leaf__)); extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) __asm__ ("" "mbstowcs") __attribute__ ((__nothrow__ , __leaf__)) ; 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)"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t __attribute__ ((__nothrow__ , __leaf__)) mbstowcs (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) { if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__len)) return __mbstowcs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) return __mbstowcs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); } return __mbstowcs_alias (__dst, __src, __len); } extern size_t __wcstombs_chk (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len, size_t __dstlen) __attribute__ ((__nothrow__ , __leaf__)); extern size_t __wcstombs_alias (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) __asm__ ("" "wcstombs") __attribute__ ((__nothrow__ , __leaf__)) ; 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"))); extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t __attribute__ ((__nothrow__ , __leaf__)) wcstombs (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) { if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__len)) return __wcstombs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); if (__len > __builtin_object_size (__dst, 2 > 1)) return __wcstombs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); } return __wcstombs_alias (__dst, __src, __len); } # 959 "/usr/include/stdlib.h" 2 3 4 # 967 "/usr/include/stdlib.h" 3 4 # 19 "decode.c" 2 # 1 "/usr/include/string.h" 1 3 4 # 27 "/usr/include/string.h" 3 4 # 1 "/usr/lib/gcc/s390x-linux-gnu/5/include/stddef.h" 1 3 4 # 33 "/usr/include/string.h" 2 3 4 # 44 "/usr/include/string.h" 3 4 extern void *memcpy (void *__restrict __dest, const void *__restrict __src, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memmove (void *__dest, const void *__src, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memccpy (void *__restrict __dest, const void *__restrict __src, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int memcmp (const void *__s1, const void *__s2, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); # 96 "/usr/include/string.h" 3 4 extern void *memchr (const void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 127 "/usr/include/string.h" 3 4 extern char *strcpy (char *__restrict __dest, const char *__restrict __src) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strncpy (char *__restrict __dest, const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strcat (char *__restrict __dest, const char *__restrict __src) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strncat (char *__restrict __dest, const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int strcmp (const char *__s1, const char *__s2) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strncmp (const char *__s1, const char *__s2, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strcoll (const char *__s1, const char *__s2) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern size_t strxfrm (char *__restrict __dest, const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); # 1 "/usr/include/xlocale.h" 1 3 4 # 27 "/usr/include/xlocale.h" 3 4 typedef struct __locale_struct { struct __locale_data *__locales[13]; const unsigned short int *__ctype_b; const int *__ctype_tolower; const int *__ctype_toupper; const char *__names[13]; } *__locale_t; typedef __locale_t locale_t; # 164 "/usr/include/string.h" 2 3 4 extern int strcoll_l (const char *__s1, const char *__s2, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))); extern char *strdup (const char *__s) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); extern char *strndup (const char *__string, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); # 210 "/usr/include/string.h" 3 4 # 235 "/usr/include/string.h" 3 4 extern char *strchr (const char *__s, int __c) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 262 "/usr/include/string.h" 3 4 extern char *strrchr (const char *__s, int __c) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 281 "/usr/include/string.h" 3 4 extern size_t strcspn (const char *__s, const char *__reject) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern size_t strspn (const char *__s, const char *__accept) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); # 314 "/usr/include/string.h" 3 4 extern char *strpbrk (const char *__s, const char *__accept) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); # 341 "/usr/include/string.h" 3 4 extern char *strstr (const char *__haystack, const char *__needle) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strtok (char *__restrict __s, const char *__restrict __delim) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern char *__strtok_r (char *__restrict __s, const char *__restrict __delim, char **__restrict __save_ptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, char **__restrict __save_ptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); # 396 "/usr/include/string.h" 3 4 extern size_t strlen (const char *__s) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern size_t strnlen (const char *__string, size_t __maxlen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *strerror (int __errnum) __attribute__ ((__nothrow__ , __leaf__)); # 426 "/usr/include/string.h" 3 4 extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); # 444 "/usr/include/string.h" 3 4 extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)); extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern void bcopy (const void *__src, void *__dest, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int bcmp (const void *__s1, const void *__s2, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); # 488 "/usr/include/string.h" 3 4 extern char *index (const char *__s, int __c) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 516 "/usr/include/string.h" 3 4 extern char *rindex (const char *__s, int __c) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern int ffs (int __i) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); # 533 "/usr/include/string.h" 3 4 extern int strcasecmp (const char *__s1, const char *__s2) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); # 556 "/usr/include/string.h" 3 4 extern char *strsep (char **__restrict __stringp, const char *__restrict __delim) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__)); extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern char *__stpncpy (char *__restrict __dest, const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern char *stpncpy (char *__restrict __dest, const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); # 631 "/usr/include/string.h" 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/string.h" 1 3 4 # 632 "/usr/include/string.h" 2 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/string2.h" 1 3 4 # 393 "/usr/include/s390x-linux-gnu/bits/string2.h" 3 4 extern void *__rawmemchr (const void *__s, int __c); # 945 "/usr/include/s390x-linux-gnu/bits/string2.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c1 (const char *__s, int __reject); extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c1 (const char *__s, int __reject) { size_t __result = 0; while (__s[__result] != '\0' && __s[__result] != __reject) ++__result; return __result; } extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c2 (const char *__s, int __reject1, int __reject2); extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c2 (const char *__s, int __reject1, int __reject2) { size_t __result = 0; while (__s[__result] != '\0' && __s[__result] != __reject1 && __s[__result] != __reject2) ++__result; return __result; } extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c3 (const char *__s, int __reject1, int __reject2, int __reject3); extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c3 (const char *__s, int __reject1, int __reject2, int __reject3) { size_t __result = 0; while (__s[__result] != '\0' && __s[__result] != __reject1 && __s[__result] != __reject2 && __s[__result] != __reject3) ++__result; return __result; } # 1021 "/usr/include/s390x-linux-gnu/bits/string2.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c1 (const char *__s, int __accept); extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c1 (const char *__s, int __accept) { size_t __result = 0; while (__s[__result] == __accept) ++__result; return __result; } extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c2 (const char *__s, int __accept1, int __accept2); extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c2 (const char *__s, int __accept1, int __accept2) { size_t __result = 0; while (__s[__result] == __accept1 || __s[__result] == __accept2) ++__result; return __result; } extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c3 (const char *__s, int __accept1, int __accept2, int __accept3); extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c3 (const char *__s, int __accept1, int __accept2, int __accept3) { size_t __result = 0; while (__s[__result] == __accept1 || __s[__result] == __accept2 || __s[__result] == __accept3) ++__result; return __result; } # 1097 "/usr/include/s390x-linux-gnu/bits/string2.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) char *__strpbrk_c2 (const char *__s, int __accept1, int __accept2); extern __inline __attribute__ ((__gnu_inline__)) char * __strpbrk_c2 (const char *__s, int __accept1, int __accept2) { while (*__s != '\0' && *__s != __accept1 && *__s != __accept2) ++__s; return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s; } extern __inline __attribute__ ((__gnu_inline__)) char *__strpbrk_c3 (const char *__s, int __accept1, int __accept2, int __accept3); extern __inline __attribute__ ((__gnu_inline__)) char * __strpbrk_c3 (const char *__s, int __accept1, int __accept2, int __accept3) { while (*__s != '\0' && *__s != __accept1 && *__s != __accept2 && *__s != __accept3) ++__s; return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s; } # 1147 "/usr/include/s390x-linux-gnu/bits/string2.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) char *__strtok_r_1c (char *__s, char __sep, char **__nextp); extern __inline __attribute__ ((__gnu_inline__)) char * __strtok_r_1c (char *__s, char __sep, char **__nextp) { char *__result; if (__s == ((void *)0)) __s = *__nextp; while (*__s == __sep) ++__s; __result = ((void *)0); if (*__s != '\0') { __result = __s++; while (*__s != '\0') if (*__s++ == __sep) { __s[-1] = '\0'; break; } } *__nextp = __s; return __result; } # 1179 "/usr/include/s390x-linux-gnu/bits/string2.h" 3 4 extern char *__strsep_g (char **__stringp, const char *__delim); # 1197 "/usr/include/s390x-linux-gnu/bits/string2.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) char *__strsep_1c (char **__s, char __reject); extern __inline __attribute__ ((__gnu_inline__)) char * __strsep_1c (char **__s, char __reject) { char *__retval = *__s; 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)) *(*__s)++ = '\0'; return __retval; } extern __inline __attribute__ ((__gnu_inline__)) char *__strsep_2c (char **__s, char __reject1, char __reject2); extern __inline __attribute__ ((__gnu_inline__)) char * __strsep_2c (char **__s, char __reject1, char __reject2) { char *__retval = *__s; if (__retval != ((void *)0)) { char *__cp = __retval; while (1) { if (*__cp == '\0') { __cp = ((void *)0); break; } if (*__cp == __reject1 || *__cp == __reject2) { *__cp++ = '\0'; break; } ++__cp; } *__s = __cp; } return __retval; } extern __inline __attribute__ ((__gnu_inline__)) char *__strsep_3c (char **__s, char __reject1, char __reject2, char __reject3); extern __inline __attribute__ ((__gnu_inline__)) char * __strsep_3c (char **__s, char __reject1, char __reject2, char __reject3) { char *__retval = *__s; if (__retval != ((void *)0)) { char *__cp = __retval; while (1) { if (*__cp == '\0') { __cp = ((void *)0); break; } if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3) { *__cp++ = '\0'; break; } ++__cp; } *__s = __cp; } return __retval; } # 1278 "/usr/include/s390x-linux-gnu/bits/string2.h" 3 4 extern char *__strdup (const char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)); # 1297 "/usr/include/s390x-linux-gnu/bits/string2.h" 3 4 extern char *__strndup (const char *__string, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)); # 635 "/usr/include/string.h" 2 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/string3.h" 1 3 4 # 49 "/usr/include/s390x-linux-gnu/bits/string3.h" 3 4 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * __attribute__ ((__nothrow__ , __leaf__)) memcpy (void *__restrict __dest, const void *__restrict __src, size_t __len) { return __builtin___memcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * __attribute__ ((__nothrow__ , __leaf__)) memmove (void *__dest, const void *__src, size_t __len) { return __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); } # 77 "/usr/include/s390x-linux-gnu/bits/string3.h" 3 4 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * __attribute__ ((__nothrow__ , __leaf__)) memset (void *__dest, int __ch, size_t __len) { # 90 "/usr/include/s390x-linux-gnu/bits/string3.h" 3 4 return __builtin___memset_chk (__dest, __ch, __len, __builtin_object_size (__dest, 0)); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void __attribute__ ((__nothrow__ , __leaf__)) bcopy (const void *__src, void *__dest, size_t __len) { (void) __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void __attribute__ ((__nothrow__ , __leaf__)) bzero (void *__dest, size_t __len) { (void) __builtin___memset_chk (__dest, '\0', __len, __builtin_object_size (__dest, 0)); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * __attribute__ ((__nothrow__ , __leaf__)) strcpy (char *__restrict __dest, const char *__restrict __src) { return __builtin___strcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); } # 122 "/usr/include/s390x-linux-gnu/bits/string3.h" 3 4 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * __attribute__ ((__nothrow__ , __leaf__)) strncpy (char *__restrict __dest, const char *__restrict __src, size_t __len) { return __builtin___strncpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); } extern char *__stpncpy_chk (char *__dest, const char *__src, size_t __n, size_t __destlen) __attribute__ ((__nothrow__ , __leaf__)); extern char *__stpncpy_alias (char *__dest, const char *__src, size_t __n) __asm__ ("" "stpncpy") __attribute__ ((__nothrow__ , __leaf__)) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * __attribute__ ((__nothrow__ , __leaf__)) stpncpy (char *__dest, const char *__src, size_t __n) { if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1 && (!__builtin_constant_p (__n) || __n <= __builtin_object_size (__dest, 2 > 1))) return __stpncpy_chk (__dest, __src, __n, __builtin_object_size (__dest, 2 > 1)); return __stpncpy_alias (__dest, __src, __n); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * __attribute__ ((__nothrow__ , __leaf__)) strcat (char *__restrict __dest, const char *__restrict __src) { return __builtin___strcat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * __attribute__ ((__nothrow__ , __leaf__)) strncat (char *__restrict __dest, const char *__restrict __src, size_t __len) { return __builtin___strncat_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); } # 640 "/usr/include/string.h" 2 3 4 # 20 "decode.c" 2 # 1 "/usr/include/ogg/ogg.h" 1 3 4 # 24 "/usr/include/ogg/ogg.h" 3 4 # 1 "/usr/lib/gcc/s390x-linux-gnu/5/include/stddef.h" 1 3 4 # 149 "/usr/lib/gcc/s390x-linux-gnu/5/include/stddef.h" 3 4 typedef long int ptrdiff_t; # 426 "/usr/lib/gcc/s390x-linux-gnu/5/include/stddef.h" 3 4 typedef struct { long long __max_align_ll __attribute__((__aligned__(__alignof__(long long)))); long double __max_align_ld __attribute__((__aligned__(__alignof__(long double)))); } max_align_t; # 25 "/usr/include/ogg/ogg.h" 2 3 4 # 1 "/usr/include/ogg/os_types.h" 1 3 4 # 143 "/usr/include/ogg/os_types.h" 3 4 # 1 "/usr/include/ogg/config_types.h" 1 3 4 # 10 "/usr/include/ogg/config_types.h" 3 4 # 1 "/usr/include/inttypes.h" 1 3 4 # 27 "/usr/include/inttypes.h" 3 4 # 1 "/usr/lib/gcc/s390x-linux-gnu/5/include/stdint.h" 1 3 4 # 9 "/usr/lib/gcc/s390x-linux-gnu/5/include/stdint.h" 3 4 # 1 "/usr/include/stdint.h" 1 3 4 # 26 "/usr/include/stdint.h" 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/wchar.h" 1 3 4 # 27 "/usr/include/stdint.h" 2 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/wordsize.h" 1 3 4 # 28 "/usr/include/stdint.h" 2 3 4 # 48 "/usr/include/stdint.h" 3 4 typedef unsigned char uint8_t; typedef unsigned short int uint16_t; typedef unsigned int uint32_t; typedef unsigned long int uint64_t; # 65 "/usr/include/stdint.h" 3 4 typedef signed char int_least8_t; typedef short int int_least16_t; typedef int int_least32_t; typedef long int int_least64_t; typedef unsigned char uint_least8_t; typedef unsigned short int uint_least16_t; typedef unsigned int uint_least32_t; typedef unsigned long int uint_least64_t; # 90 "/usr/include/stdint.h" 3 4 typedef signed char int_fast8_t; typedef long int int_fast16_t; typedef long int int_fast32_t; typedef long int int_fast64_t; # 103 "/usr/include/stdint.h" 3 4 typedef unsigned char uint_fast8_t; typedef unsigned long int uint_fast16_t; typedef unsigned long int uint_fast32_t; typedef unsigned long int uint_fast64_t; # 119 "/usr/include/stdint.h" 3 4 typedef long int intptr_t; typedef unsigned long int uintptr_t; # 134 "/usr/include/stdint.h" 3 4 typedef long int intmax_t; typedef unsigned long int uintmax_t; # 10 "/usr/lib/gcc/s390x-linux-gnu/5/include/stdint.h" 2 3 4 # 28 "/usr/include/inttypes.h" 2 3 4 typedef int __gwchar_t; # 266 "/usr/include/inttypes.h" 3 4 typedef struct { long int quot; long int rem; } imaxdiv_t; # 290 "/usr/include/inttypes.h" 3 4 extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern intmax_t strtoimax (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)); extern uintmax_t strtoumax (const char *__restrict __nptr, char ** __restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)); extern intmax_t wcstoimax (const __gwchar_t *__restrict __nptr, __gwchar_t **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)); extern uintmax_t wcstoumax (const __gwchar_t *__restrict __nptr, __gwchar_t ** __restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)); 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__)); extern __inline __attribute__ ((__gnu_inline__)) intmax_t __attribute__ ((__nothrow__ , __leaf__)) strtoimax (const char *__restrict nptr, char **__restrict endptr, int base) { return __strtol_internal (nptr, endptr, base, 0); } 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__)); extern __inline __attribute__ ((__gnu_inline__)) uintmax_t __attribute__ ((__nothrow__ , __leaf__)) strtoumax (const char *__restrict nptr, char **__restrict endptr, int base) { return __strtoul_internal (nptr, endptr, base, 0); } 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__)); extern __inline __attribute__ ((__gnu_inline__)) intmax_t __attribute__ ((__nothrow__ , __leaf__)) wcstoimax (const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) { return __wcstol_internal (nptr, endptr, base, 0); } 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__)); extern __inline __attribute__ ((__gnu_inline__)) uintmax_t __attribute__ ((__nothrow__ , __leaf__)) wcstoumax (const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) { return __wcstoul_internal (nptr, endptr, base, 0); } # 432 "/usr/include/inttypes.h" 3 4 # 11 "/usr/include/ogg/config_types.h" 2 3 4 # 19 "/usr/include/ogg/config_types.h" 3 4 typedef int16_t ogg_int16_t; typedef uint16_t ogg_uint16_t; typedef int32_t ogg_int32_t; typedef uint32_t ogg_uint32_t; typedef int64_t ogg_int64_t; # 144 "/usr/include/ogg/os_types.h" 2 3 4 # 26 "/usr/include/ogg/ogg.h" 2 3 4 typedef struct { void *iov_base; size_t iov_len; } ogg_iovec_t; typedef struct { long endbyte; int endbit; unsigned char *buffer; unsigned char *ptr; long storage; } oggpack_buffer; typedef struct { unsigned char *header; long header_len; unsigned char *body; long body_len; } ogg_page; typedef struct { unsigned char *body_data; long body_storage; long body_fill; long body_returned; int *lacing_vals; ogg_int64_t *granule_vals; long lacing_storage; long lacing_fill; long lacing_packet; long lacing_returned; unsigned char header[282]; int header_fill; int e_o_s; int b_o_s; long serialno; long pageno; ogg_int64_t packetno; ogg_int64_t granulepos; } ogg_stream_state; typedef struct { unsigned char *packet; long bytes; long b_o_s; long e_o_s; ogg_int64_t granulepos; ogg_int64_t packetno; } ogg_packet; typedef struct { unsigned char *data; int storage; int fill; int returned; int unsynced; int headerbytes; int bodybytes; } ogg_sync_state; extern void oggpack_writeinit(oggpack_buffer *b); extern int oggpack_writecheck(oggpack_buffer *b); extern void oggpack_writetrunc(oggpack_buffer *b,long bits); extern void oggpack_writealign(oggpack_buffer *b); extern void oggpack_writecopy(oggpack_buffer *b,void *source,long bits); extern void oggpack_reset(oggpack_buffer *b); extern void oggpack_writeclear(oggpack_buffer *b); extern void oggpack_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); extern void oggpack_write(oggpack_buffer *b,unsigned long value,int bits); extern long oggpack_look(oggpack_buffer *b,int bits); extern long oggpack_look1(oggpack_buffer *b); extern void oggpack_adv(oggpack_buffer *b,int bits); extern void oggpack_adv1(oggpack_buffer *b); extern long oggpack_read(oggpack_buffer *b,int bits); extern long oggpack_read1(oggpack_buffer *b); extern long oggpack_bytes(oggpack_buffer *b); extern long oggpack_bits(oggpack_buffer *b); extern unsigned char *oggpack_get_buffer(oggpack_buffer *b); extern void oggpackB_writeinit(oggpack_buffer *b); extern int oggpackB_writecheck(oggpack_buffer *b); extern void oggpackB_writetrunc(oggpack_buffer *b,long bits); extern void oggpackB_writealign(oggpack_buffer *b); extern void oggpackB_writecopy(oggpack_buffer *b,void *source,long bits); extern void oggpackB_reset(oggpack_buffer *b); extern void oggpackB_writeclear(oggpack_buffer *b); extern void oggpackB_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); extern void oggpackB_write(oggpack_buffer *b,unsigned long value,int bits); extern long oggpackB_look(oggpack_buffer *b,int bits); extern long oggpackB_look1(oggpack_buffer *b); extern void oggpackB_adv(oggpack_buffer *b,int bits); extern void oggpackB_adv1(oggpack_buffer *b); extern long oggpackB_read(oggpack_buffer *b,int bits); extern long oggpackB_read1(oggpack_buffer *b); extern long oggpackB_bytes(oggpack_buffer *b); extern long oggpackB_bits(oggpack_buffer *b); extern unsigned char *oggpackB_get_buffer(oggpack_buffer *b); extern int ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op); extern int ogg_stream_iovecin(ogg_stream_state *os, ogg_iovec_t *iov, int count, long e_o_s, ogg_int64_t granulepos); extern int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og); extern int ogg_stream_pageout_fill(ogg_stream_state *os, ogg_page *og, int nfill); extern int ogg_stream_flush(ogg_stream_state *os, ogg_page *og); extern int ogg_stream_flush_fill(ogg_stream_state *os, ogg_page *og, int nfill); extern int ogg_sync_init(ogg_sync_state *oy); extern int ogg_sync_clear(ogg_sync_state *oy); extern int ogg_sync_reset(ogg_sync_state *oy); extern int ogg_sync_destroy(ogg_sync_state *oy); extern int ogg_sync_check(ogg_sync_state *oy); extern char *ogg_sync_buffer(ogg_sync_state *oy, long size); extern int ogg_sync_wrote(ogg_sync_state *oy, long bytes); extern long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og); extern int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og); extern int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og); extern int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op); extern int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op); extern int ogg_stream_init(ogg_stream_state *os,int serialno); extern int ogg_stream_clear(ogg_stream_state *os); extern int ogg_stream_reset(ogg_stream_state *os); extern int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno); extern int ogg_stream_destroy(ogg_stream_state *os); extern int ogg_stream_check(ogg_stream_state *os); extern int ogg_stream_eos(ogg_stream_state *os); extern void ogg_page_checksum_set(ogg_page *og); extern int ogg_page_version(const ogg_page *og); extern int ogg_page_continued(const ogg_page *og); extern int ogg_page_bos(const ogg_page *og); extern int ogg_page_eos(const ogg_page *og); extern ogg_int64_t ogg_page_granulepos(const ogg_page *og); extern int ogg_page_serialno(const ogg_page *og); extern long ogg_page_pageno(const ogg_page *og); extern int ogg_page_packets(const ogg_page *og); extern void ogg_packet_clear(ogg_packet *op); # 21 "decode.c" 2 # 1 "decint.h" 1 # 18 "decint.h" # 1 "/usr/lib/gcc/s390x-linux-gnu/5/include-fixed/limits.h" 1 3 4 # 34 "/usr/lib/gcc/s390x-linux-gnu/5/include-fixed/limits.h" 3 4 # 1 "/usr/lib/gcc/s390x-linux-gnu/5/include-fixed/syslimits.h" 1 3 4 # 1 "/usr/lib/gcc/s390x-linux-gnu/5/include-fixed/limits.h" 1 3 4 # 168 "/usr/lib/gcc/s390x-linux-gnu/5/include-fixed/limits.h" 3 4 # 1 "/usr/include/limits.h" 1 3 4 # 143 "/usr/include/limits.h" 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/posix1_lim.h" 1 3 4 # 160 "/usr/include/s390x-linux-gnu/bits/posix1_lim.h" 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/local_lim.h" 1 3 4 # 38 "/usr/include/s390x-linux-gnu/bits/local_lim.h" 3 4 # 1 "/usr/include/linux/limits.h" 1 3 4 # 39 "/usr/include/s390x-linux-gnu/bits/local_lim.h" 2 3 4 # 161 "/usr/include/s390x-linux-gnu/bits/posix1_lim.h" 2 3 4 # 144 "/usr/include/limits.h" 2 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/posix2_lim.h" 1 3 4 # 148 "/usr/include/limits.h" 2 3 4 # 169 "/usr/lib/gcc/s390x-linux-gnu/5/include-fixed/limits.h" 2 3 4 # 8 "/usr/lib/gcc/s390x-linux-gnu/5/include-fixed/syslimits.h" 2 3 4 # 35 "/usr/lib/gcc/s390x-linux-gnu/5/include-fixed/limits.h" 2 3 4 # 19 "decint.h" 2 # 1 "../include/theora/theoradec.h" 1 # 23 "../include/theora/theoradec.h" # 1 "/usr/lib/gcc/s390x-linux-gnu/5/include/stddef.h" 1 3 4 # 24 "../include/theora/theoradec.h" 2 # 1 "../include/theora/codec.h" 1 # 98 "../include/theora/codec.h" # 98 "../include/theora/codec.h" typedef enum{ TH_CS_UNSPECIFIED, TH_CS_ITU_REC_470M, TH_CS_ITU_REC_470BG, TH_CS_NSPACES }th_colorspace; typedef enum{ TH_PF_420, TH_PF_RSVD, TH_PF_422, TH_PF_444, TH_PF_NFORMATS }th_pixel_fmt; # 142 "../include/theora/codec.h" typedef struct{ int width; int height; int stride; unsigned char *data; }th_img_plane; # 168 "../include/theora/codec.h" typedef th_img_plane th_ycbcr_buffer[3]; # 204 "../include/theora/codec.h" typedef struct{ unsigned char version_major; unsigned char version_minor; unsigned char version_subminor; ogg_uint32_t frame_width; ogg_uint32_t frame_height; ogg_uint32_t pic_width; ogg_uint32_t pic_height; ogg_uint32_t pic_x; ogg_uint32_t pic_y; ogg_uint32_t fps_numerator; ogg_uint32_t fps_denominator; # 252 "../include/theora/codec.h" ogg_uint32_t aspect_numerator; ogg_uint32_t aspect_denominator; th_colorspace colorspace; th_pixel_fmt pixel_fmt; int target_bitrate; # 282 "../include/theora/codec.h" int quality; # 296 "../include/theora/codec.h" int keyframe_granule_shift; }th_info; # 323 "../include/theora/codec.h" typedef struct th_comment{ char **user_comments; int *comment_lengths; int comments; char *vendor; }th_comment; typedef unsigned char th_quant_base[64]; typedef struct{ int nranges; const int *sizes; const th_quant_base *base_matrices; }th_quant_ranges; # 409 "../include/theora/codec.h" typedef struct{ ogg_uint16_t dc_scale[64]; ogg_uint16_t ac_scale[64]; unsigned char loop_filter_limits[64]; th_quant_ranges qi_ranges[2][3]; }th_quant_info; # 438 "../include/theora/codec.h" typedef struct{ ogg_uint32_t pattern; int nbits; }th_huff_code; # 456 "../include/theora/codec.h" extern const char *th_version_string(void); # 466 "../include/theora/codec.h" extern ogg_uint32_t th_version_number(void); # 476 "../include/theora/codec.h" extern ogg_int64_t th_granule_frame(void *_encdec,ogg_int64_t _granpos); # 488 "../include/theora/codec.h" extern double th_granule_time(void *_encdec,ogg_int64_t _granpos); # 498 "../include/theora/codec.h" extern int th_packet_isheader(ogg_packet *_op); # 509 "../include/theora/codec.h" extern int th_packet_iskeyframe(ogg_packet *_op); # 519 "../include/theora/codec.h" extern void th_info_init(th_info *_info); extern void th_info_clear(th_info *_info); extern void th_comment_init(th_comment *_tc); # 540 "../include/theora/codec.h" extern void th_comment_add(th_comment *_tc, char *_comment); # 551 "../include/theora/codec.h" extern void th_comment_add_tag(th_comment *_tc,char *_tag,char *_val); # 567 "../include/theora/codec.h" extern char *th_comment_query(th_comment *_tc,char *_tag,int _count); extern int th_comment_query_count(th_comment *_tc,char *_tag); extern void th_comment_clear(th_comment *_tc); # 26 "../include/theora/theoradec.h" 2 # 138 "../include/theora/theoradec.h" typedef void (*th_stripe_decoded_func)(void *_ctx,th_ycbcr_buffer _buf, int _yfrag0,int _yfrag_end); typedef struct{ void *ctx; th_stripe_decoded_func stripe_decoded; }th_stripe_callback; # 159 "../include/theora/theoradec.h" typedef struct th_dec_ctx th_dec_ctx; typedef struct th_setup_info th_setup_info; # 231 "../include/theora/theoradec.h" extern int th_decode_headerin(th_info *_info,th_comment *_tc, th_setup_info **_setup,ogg_packet *_op); # 255 "../include/theora/theoradec.h" extern th_dec_ctx *th_decode_alloc(const th_info *_info, const th_setup_info *_setup); extern void th_setup_free(th_setup_info *_setup); # 271 "../include/theora/theoradec.h" extern int th_decode_ctl(th_dec_ctx *_dec,int _req,void *_buf, size_t _buf_sz); # 294 "../include/theora/theoradec.h" extern int th_decode_packetin(th_dec_ctx *_dec,const ogg_packet *_op, ogg_int64_t *_granpos); # 311 "../include/theora/theoradec.h" extern int th_decode_ycbcr_out(th_dec_ctx *_dec, th_ycbcr_buffer _ycbcr); extern void th_decode_free(th_dec_ctx *_dec); # 22 "decint.h" 2 # 1 "internal.h" 1 # 20 "internal.h" # 1 "/usr/lib/gcc/s390x-linux-gnu/5/include-fixed/limits.h" 1 3 4 # 21 "internal.h" 2 # 1 "../config.h" 1 # 23 "internal.h" 2 # 1 "../include/theora/codec.h" 1 # 25 "internal.h" 2 # 1 "../include/theora/theora.h" 1 # 26 "../include/theora/theora.h" # 1 "/usr/lib/gcc/s390x-linux-gnu/5/include/stddef.h" 1 3 4 # 27 "../include/theora/theora.h" 2 # 147 "../include/theora/theora.h" typedef struct { int y_width; int y_height; int y_stride; int uv_width; int uv_height; int uv_stride; unsigned char *y; unsigned char *u; unsigned char *v; } yuv_buffer; typedef enum { OC_CS_UNSPECIFIED, OC_CS_ITU_REC_470M, OC_CS_ITU_REC_470BG, OC_CS_NSPACES } theora_colorspace; # 178 "../include/theora/theora.h" typedef enum { OC_PF_420, OC_PF_RSVD, OC_PF_422, OC_PF_444, } theora_pixelformat; # 206 "../include/theora/theora.h" typedef struct { ogg_uint32_t width; ogg_uint32_t height; ogg_uint32_t frame_width; ogg_uint32_t frame_height; ogg_uint32_t offset_x; ogg_uint32_t offset_y; ogg_uint32_t fps_numerator; ogg_uint32_t fps_denominator; ogg_uint32_t aspect_numerator; ogg_uint32_t aspect_denominator; theora_colorspace colorspace; int target_bitrate; int quality; int quick_p; unsigned char version_major; unsigned char version_minor; unsigned char version_subminor; void *codec_setup; int dropframes_p; int keyframe_auto_p; ogg_uint32_t keyframe_frequency; ogg_uint32_t keyframe_frequency_force; ogg_uint32_t keyframe_data_target_bitrate; ogg_int32_t keyframe_auto_threshold; ogg_uint32_t keyframe_mindistance; ogg_int32_t noise_sensitivity; ogg_int32_t sharpness; theora_pixelformat pixelformat; } theora_info; typedef struct{ theora_info *i; ogg_int64_t granulepos; void *internal_encode; void *internal_decode; } theora_state; # 275 "../include/theora/theora.h" typedef struct theora_comment{ char **user_comments; int *comment_lengths; int comments; char *vendor; } theora_comment; # 431 "../include/theora/theora.h" extern const char *theora_version_string(void); # 442 "../include/theora/theora.h" extern ogg_uint32_t theora_version_number(void); extern int theora_encode_init(theora_state *th, theora_info *ti); # 462 "../include/theora/theora.h" extern int theora_encode_YUVin(theora_state *t, yuv_buffer *yuv); # 476 "../include/theora/theora.h" extern int theora_encode_packetout( theora_state *t, int last_p, ogg_packet *op); # 489 "../include/theora/theora.h" extern int theora_encode_header(theora_state *t, ogg_packet *op); # 502 "../include/theora/theora.h" extern int theora_encode_comment(theora_comment *tc, ogg_packet *op); # 514 "../include/theora/theora.h" extern int theora_encode_tables(theora_state *t, ogg_packet *op); # 557 "../include/theora/theora.h" extern int theora_decode_header(theora_info *ci, theora_comment *cc, ogg_packet *op); # 568 "../include/theora/theora.h" extern int theora_decode_init(theora_state *th, theora_info *c); # 577 "../include/theora/theora.h" extern int theora_decode_packetin(theora_state *th,ogg_packet *op); # 589 "../include/theora/theora.h" extern int theora_decode_YUVout(theora_state *th,yuv_buffer *yuv); # 603 "../include/theora/theora.h" extern int theora_packet_isheader(ogg_packet *op); # 615 "../include/theora/theora.h" extern int theora_packet_iskeyframe(ogg_packet *op); # 642 "../include/theora/theora.h" int theora_granule_shift(theora_info *ti); # 660 "../include/theora/theora.h" extern ogg_int64_t theora_granule_frame(theora_state *th,ogg_int64_t granulepos); # 677 "../include/theora/theora.h" extern double theora_granule_time(theora_state *th,ogg_int64_t granulepos); extern void theora_info_init(theora_info *c); extern void theora_info_clear(theora_info *c); extern void theora_clear(theora_state *t); extern void theora_comment_init(theora_comment *tc); # 718 "../include/theora/theora.h" extern void theora_comment_add(theora_comment *tc, char *comment); # 732 "../include/theora/theora.h" extern void theora_comment_add_tag(theora_comment *tc, char *tag, char *value); # 749 "../include/theora/theora.h" extern char *theora_comment_query(theora_comment *tc, char *tag, int count); # 760 "../include/theora/theora.h" extern int theora_comment_query_count(theora_comment *tc, char *tag); extern void theora_comment_clear(theora_comment *tc); # 776 "../include/theora/theora.h" extern int theora_control(theora_state *th,int req,void *buf,size_t buf_sz); # 26 "internal.h" 2 # 36 "internal.h" #pragma GCC diagnostic ignored "-Wparentheses" # 1 "ocintrin.h" 1 # 19 "ocintrin.h" # 1 "/usr/include/math.h" 1 3 4 # 28 "/usr/include/math.h" 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/huge_val.h" 1 3 4 # 33 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/huge_valf.h" 1 3 4 # 35 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/huge_vall.h" 1 3 4 # 36 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/inf.h" 1 3 4 # 39 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/nan.h" 1 3 4 # 42 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/mathdef.h" 1 3 4 # 27 "/usr/include/s390x-linux-gnu/bits/mathdef.h" 3 4 # 27 "/usr/include/s390x-linux-gnu/bits/mathdef.h" 3 4 typedef double float_t; typedef double double_t; # 46 "/usr/include/math.h" 2 3 4 # 69 "/usr/include/math.h" 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/mathcalls.h" 1 3 4 # 52 "/usr/include/s390x-linux-gnu/bits/mathcalls.h" 3 4 extern double acos (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __acos (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double asin (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __asin (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double atan (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __atan (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double atan2 (double __y, double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __atan2 (double __y, double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double cos (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __cos (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double sin (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __sin (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double tan (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __tan (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double cosh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __cosh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double sinh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __sinh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double tanh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __tanh (double __x) __attribute__ ((__nothrow__ , __leaf__)); # 86 "/usr/include/s390x-linux-gnu/bits/mathcalls.h" 3 4 extern double acosh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __acosh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double asinh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __asinh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double atanh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __atanh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double exp (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __exp (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double frexp (double __x, int *__exponent) __attribute__ ((__nothrow__ , __leaf__)); extern double __frexp (double __x, int *__exponent) __attribute__ ((__nothrow__ , __leaf__)); extern double ldexp (double __x, int __exponent) __attribute__ ((__nothrow__ , __leaf__)); extern double __ldexp (double __x, int __exponent) __attribute__ ((__nothrow__ , __leaf__)); extern double log (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __log (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double log10 (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __log10 (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double modf (double __x, double *__iptr) __attribute__ ((__nothrow__ , __leaf__)); extern double __modf (double __x, double *__iptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); # 126 "/usr/include/s390x-linux-gnu/bits/mathcalls.h" 3 4 extern double expm1 (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __expm1 (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double log1p (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __log1p (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double logb (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __logb (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double exp2 (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __exp2 (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double log2 (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __log2 (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double pow (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double __pow (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double sqrt (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __sqrt (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double hypot (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double __hypot (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double cbrt (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __cbrt (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double ceil (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __ceil (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double fabs (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __fabs (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double floor (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __floor (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double fmod (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double __fmod (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern int __isinf (double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int __finite (double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int isinf (double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int finite (double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double drem (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double __drem (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double significand (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __significand (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double copysign (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __copysign (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double nan (const char *__tagb) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __nan (const char *__tagb) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int __isnan (double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int isnan (double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double j0 (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __j0 (double) __attribute__ ((__nothrow__ , __leaf__)); extern double j1 (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __j1 (double) __attribute__ ((__nothrow__ , __leaf__)); extern double jn (int, double) __attribute__ ((__nothrow__ , __leaf__)); extern double __jn (int, double) __attribute__ ((__nothrow__ , __leaf__)); extern double y0 (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __y0 (double) __attribute__ ((__nothrow__ , __leaf__)); extern double y1 (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __y1 (double) __attribute__ ((__nothrow__ , __leaf__)); extern double yn (int, double) __attribute__ ((__nothrow__ , __leaf__)); extern double __yn (int, double) __attribute__ ((__nothrow__ , __leaf__)); extern double erf (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __erf (double) __attribute__ ((__nothrow__ , __leaf__)); extern double erfc (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __erfc (double) __attribute__ ((__nothrow__ , __leaf__)); extern double lgamma (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __lgamma (double) __attribute__ ((__nothrow__ , __leaf__)); extern double tgamma (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __tgamma (double) __attribute__ ((__nothrow__ , __leaf__)); extern double gamma (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __gamma (double) __attribute__ ((__nothrow__ , __leaf__)); extern double lgamma_r (double, int *__signgamp) __attribute__ ((__nothrow__ , __leaf__)); extern double __lgamma_r (double, int *__signgamp) __attribute__ ((__nothrow__ , __leaf__)); extern double rint (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __rint (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double nextafter (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double nexttoward (double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __nexttoward (double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double remainder (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double __remainder (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double scalbn (double __x, int __n) __attribute__ ((__nothrow__ , __leaf__)); extern double __scalbn (double __x, int __n) __attribute__ ((__nothrow__ , __leaf__)); extern int ilogb (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern int __ilogb (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double scalbln (double __x, long int __n) __attribute__ ((__nothrow__ , __leaf__)); extern double __scalbln (double __x, long int __n) __attribute__ ((__nothrow__ , __leaf__)); extern double nearbyint (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __nearbyint (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double round (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __round (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double trunc (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __trunc (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double remquo (double __x, double __y, int *__quo) __attribute__ ((__nothrow__ , __leaf__)); extern double __remquo (double __x, double __y, int *__quo) __attribute__ ((__nothrow__ , __leaf__)); extern long int lrint (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long int __lrint (double __x) __attribute__ ((__nothrow__ , __leaf__)); __extension__ extern long long int llrint (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long long int __llrint (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long int lround (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long int __lround (double __x) __attribute__ ((__nothrow__ , __leaf__)); __extension__ extern long long int llround (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long long int __llround (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double fdim (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double __fdim (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double fmax (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __fmax (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double fmin (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __fmin (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int __fpclassify (double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int __signbit (double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double fma (double __x, double __y, double __z) __attribute__ ((__nothrow__ , __leaf__)); extern double __fma (double __x, double __y, double __z) __attribute__ ((__nothrow__ , __leaf__)); # 371 "/usr/include/s390x-linux-gnu/bits/mathcalls.h" 3 4 extern double scalb (double __x, double __n) __attribute__ ((__nothrow__ , __leaf__)); extern double __scalb (double __x, double __n) __attribute__ ((__nothrow__ , __leaf__)); # 70 "/usr/include/math.h" 2 3 4 # 88 "/usr/include/math.h" 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/mathcalls.h" 1 3 4 # 52 "/usr/include/s390x-linux-gnu/bits/mathcalls.h" 3 4 extern float acosf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __acosf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float asinf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __asinf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float atanf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __atanf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float atan2f (float __y, float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __atan2f (float __y, float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float cosf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __cosf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float sinf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __sinf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float tanf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __tanf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float coshf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __coshf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float sinhf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __sinhf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float tanhf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __tanhf (float __x) __attribute__ ((__nothrow__ , __leaf__)); # 86 "/usr/include/s390x-linux-gnu/bits/mathcalls.h" 3 4 extern float acoshf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __acoshf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float asinhf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __asinhf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float atanhf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __atanhf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float expf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __expf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float frexpf (float __x, int *__exponent) __attribute__ ((__nothrow__ , __leaf__)); extern float __frexpf (float __x, int *__exponent) __attribute__ ((__nothrow__ , __leaf__)); extern float ldexpf (float __x, int __exponent) __attribute__ ((__nothrow__ , __leaf__)); extern float __ldexpf (float __x, int __exponent) __attribute__ ((__nothrow__ , __leaf__)); extern float logf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __logf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float log10f (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __log10f (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float modff (float __x, float *__iptr) __attribute__ ((__nothrow__ , __leaf__)); extern float __modff (float __x, float *__iptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); # 126 "/usr/include/s390x-linux-gnu/bits/mathcalls.h" 3 4 extern float expm1f (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __expm1f (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float log1pf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __log1pf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float logbf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __logbf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float exp2f (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __exp2f (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float log2f (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __log2f (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float powf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float __powf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float sqrtf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __sqrtf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float hypotf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float __hypotf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float cbrtf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __cbrtf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float ceilf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __ceilf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float fabsf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __fabsf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float floorf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __floorf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float fmodf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float __fmodf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern int __isinff (float __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int __finitef (float __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int isinff (float __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int finitef (float __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float dremf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float __dremf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float significandf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __significandf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float copysignf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float nanf (const char *__tagb) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __nanf (const char *__tagb) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int __isnanf (float __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int isnanf (float __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float j0f (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __j0f (float) __attribute__ ((__nothrow__ , __leaf__)); extern float j1f (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __j1f (float) __attribute__ ((__nothrow__ , __leaf__)); extern float jnf (int, float) __attribute__ ((__nothrow__ , __leaf__)); extern float __jnf (int, float) __attribute__ ((__nothrow__ , __leaf__)); extern float y0f (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __y0f (float) __attribute__ ((__nothrow__ , __leaf__)); extern float y1f (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __y1f (float) __attribute__ ((__nothrow__ , __leaf__)); extern float ynf (int, float) __attribute__ ((__nothrow__ , __leaf__)); extern float __ynf (int, float) __attribute__ ((__nothrow__ , __leaf__)); extern float erff (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __erff (float) __attribute__ ((__nothrow__ , __leaf__)); extern float erfcf (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __erfcf (float) __attribute__ ((__nothrow__ , __leaf__)); extern float lgammaf (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __lgammaf (float) __attribute__ ((__nothrow__ , __leaf__)); extern float tgammaf (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __tgammaf (float) __attribute__ ((__nothrow__ , __leaf__)); extern float gammaf (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __gammaf (float) __attribute__ ((__nothrow__ , __leaf__)); extern float lgammaf_r (float, int *__signgamp) __attribute__ ((__nothrow__ , __leaf__)); extern float __lgammaf_r (float, int *__signgamp) __attribute__ ((__nothrow__ , __leaf__)); extern float rintf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __rintf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float nextafterf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float nexttowardf (float __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __nexttowardf (float __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float remainderf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float __remainderf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float scalbnf (float __x, int __n) __attribute__ ((__nothrow__ , __leaf__)); extern float __scalbnf (float __x, int __n) __attribute__ ((__nothrow__ , __leaf__)); extern int ilogbf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern int __ilogbf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float scalblnf (float __x, long int __n) __attribute__ ((__nothrow__ , __leaf__)); extern float __scalblnf (float __x, long int __n) __attribute__ ((__nothrow__ , __leaf__)); extern float nearbyintf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __nearbyintf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float roundf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __roundf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float truncf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __truncf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float remquof (float __x, float __y, int *__quo) __attribute__ ((__nothrow__ , __leaf__)); extern float __remquof (float __x, float __y, int *__quo) __attribute__ ((__nothrow__ , __leaf__)); extern long int lrintf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern long int __lrintf (float __x) __attribute__ ((__nothrow__ , __leaf__)); __extension__ extern long long int llrintf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern long long int __llrintf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern long int lroundf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern long int __lroundf (float __x) __attribute__ ((__nothrow__ , __leaf__)); __extension__ extern long long int llroundf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern long long int __llroundf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float fdimf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float __fdimf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float fmaxf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __fmaxf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float fminf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __fminf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int __fpclassifyf (float __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int __signbitf (float __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float fmaf (float __x, float __y, float __z) __attribute__ ((__nothrow__ , __leaf__)); extern float __fmaf (float __x, float __y, float __z) __attribute__ ((__nothrow__ , __leaf__)); # 371 "/usr/include/s390x-linux-gnu/bits/mathcalls.h" 3 4 extern float scalbf (float __x, float __n) __attribute__ ((__nothrow__ , __leaf__)); extern float __scalbf (float __x, float __n) __attribute__ ((__nothrow__ , __leaf__)); # 89 "/usr/include/math.h" 2 3 4 # 133 "/usr/include/math.h" 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/mathcalls.h" 1 3 4 # 52 "/usr/include/s390x-linux-gnu/bits/mathcalls.h" 3 4 extern long double acosl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __acosl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double asinl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __asinl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double atanl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __atanl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double atan2l (long double __y, long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __atan2l (long double __y, long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double cosl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __cosl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double sinl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __sinl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double tanl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __tanl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double coshl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __coshl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double sinhl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __sinhl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double tanhl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __tanhl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); # 86 "/usr/include/s390x-linux-gnu/bits/mathcalls.h" 3 4 extern long double acoshl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __acoshl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double asinhl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __asinhl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double atanhl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __atanhl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double expl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __expl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double frexpl (long double __x, int *__exponent) __attribute__ ((__nothrow__ , __leaf__)); extern long double __frexpl (long double __x, int *__exponent) __attribute__ ((__nothrow__ , __leaf__)); extern long double ldexpl (long double __x, int __exponent) __attribute__ ((__nothrow__ , __leaf__)); extern long double __ldexpl (long double __x, int __exponent) __attribute__ ((__nothrow__ , __leaf__)); extern long double logl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __logl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double log10l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __log10l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double modfl (long double __x, long double *__iptr) __attribute__ ((__nothrow__ , __leaf__)); extern long double __modfl (long double __x, long double *__iptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); # 126 "/usr/include/s390x-linux-gnu/bits/mathcalls.h" 3 4 extern long double expm1l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __expm1l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double log1pl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __log1pl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double logbl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __logbl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double exp2l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __exp2l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double log2l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __log2l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double powl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double __powl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double sqrtl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __sqrtl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double hypotl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double __hypotl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double cbrtl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __cbrtl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double ceill (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __ceill (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double fabsl (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __fabsl (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double floorl (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __floorl (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double fmodl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double __fmodl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern int __isinfl (long double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int __finitel (long double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int isinfl (long double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int finitel (long double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double dreml (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double __dreml (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double significandl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __significandl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double copysignl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double nanl (const char *__tagb) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __nanl (const char *__tagb) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int __isnanl (long double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int isnanl (long double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double j0l (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __j0l (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double j1l (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __j1l (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double jnl (int, long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __jnl (int, long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double y0l (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __y0l (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double y1l (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __y1l (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double ynl (int, long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __ynl (int, long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double erfl (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __erfl (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double erfcl (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __erfcl (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double lgammal (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __lgammal (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double tgammal (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __tgammal (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double gammal (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __gammal (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double lgammal_r (long double, int *__signgamp) __attribute__ ((__nothrow__ , __leaf__)); extern long double __lgammal_r (long double, int *__signgamp) __attribute__ ((__nothrow__ , __leaf__)); extern long double rintl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __rintl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double nextafterl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __nextafterl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double nexttowardl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __nexttowardl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double remainderl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double __remainderl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double scalbnl (long double __x, int __n) __attribute__ ((__nothrow__ , __leaf__)); extern long double __scalbnl (long double __x, int __n) __attribute__ ((__nothrow__ , __leaf__)); extern int ilogbl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern int __ilogbl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double scalblnl (long double __x, long int __n) __attribute__ ((__nothrow__ , __leaf__)); extern long double __scalblnl (long double __x, long int __n) __attribute__ ((__nothrow__ , __leaf__)); extern long double nearbyintl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __nearbyintl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double roundl (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __roundl (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double truncl (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __truncl (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double remquol (long double __x, long double __y, int *__quo) __attribute__ ((__nothrow__ , __leaf__)); extern long double __remquol (long double __x, long double __y, int *__quo) __attribute__ ((__nothrow__ , __leaf__)); extern long int lrintl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long int __lrintl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); __extension__ extern long long int llrintl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long long int __llrintl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long int lroundl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long int __lroundl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); __extension__ extern long long int llroundl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long long int __llroundl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double fdiml (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double __fdiml (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double fmaxl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __fmaxl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double fminl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __fminl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int __fpclassifyl (long double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int __signbitl (long double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double fmal (long double __x, long double __y, long double __z) __attribute__ ((__nothrow__ , __leaf__)); extern long double __fmal (long double __x, long double __y, long double __z) __attribute__ ((__nothrow__ , __leaf__)); # 371 "/usr/include/s390x-linux-gnu/bits/mathcalls.h" 3 4 extern long double scalbl (long double __x, long double __n) __attribute__ ((__nothrow__ , __leaf__)); extern long double __scalbl (long double __x, long double __n) __attribute__ ((__nothrow__ , __leaf__)); # 134 "/usr/include/math.h" 2 3 4 # 149 "/usr/include/math.h" 3 4 extern int signgam; # 190 "/usr/include/math.h" 3 4 enum { FP_NAN = 0, FP_INFINITE = 1, FP_ZERO = 2, FP_SUBNORMAL = 3, FP_NORMAL = 4 }; # 302 "/usr/include/math.h" 3 4 typedef enum { _IEEE_ = -1, _SVID_, _XOPEN_, _POSIX_, _ISOC_ } _LIB_VERSION_TYPE; extern _LIB_VERSION_TYPE _LIB_VERSION; # 327 "/usr/include/math.h" 3 4 struct exception { int type; char *name; double arg1; double arg2; double retval; }; extern int matherr (struct exception *__exc); # 427 "/usr/include/math.h" 3 4 # 1 "/usr/include/s390x-linux-gnu/bits/mathinline.h" 1 3 4 # 35 "/usr/include/s390x-linux-gnu/bits/mathinline.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) __signbitf (float __x) { __extension__ union { float __f; int __i; } __u = { __f: __x }; return __u.__i < 0; } extern __inline __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) __signbit (double __x) { __extension__ union { double __d; long __i; } __u = { __d: __x }; return __u.__i < 0; } extern __inline __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) __signbitl (long double __x) { __extension__ union { long double __l; int __i[4]; } __u = { __l: __x }; return __u.__i[0] < 0; } # 428 "/usr/include/math.h" 2 3 4 # 489 "/usr/include/math.h" 3 4 # 20 "ocintrin.h" 2 # 41 "internal.h" 2 # 1 "huffman.h" 1 # 21 "huffman.h" # 1 "ocintrin.h" 1 # 22 "huffman.h" 2 # 68 "huffman.h" # 68 "huffman.h" extern const unsigned char OC_DCT_TOKEN_EXTRA_BITS[(32)]; # 42 "internal.h" 2 # 1 "quant.h" 1 # 21 "quant.h" # 1 "ocintrin.h" 1 # 22 "quant.h" 2 typedef ogg_uint16_t oc_quant_table[64]; void oc_dequant_tables_init(ogg_uint16_t *_dequant[64][3][2], int _pp_dc_scale[64],const th_quant_info *_qinfo); # 43 "internal.h" 2 # 63 "internal.h" typedef struct oc_sb_flags oc_sb_flags; typedef struct oc_border_info oc_border_info; typedef struct oc_fragment oc_fragment; typedef struct oc_fragment_plane oc_fragment_plane; typedef struct oc_base_opt_vtable oc_base_opt_vtable; typedef struct oc_base_opt_data oc_base_opt_data; typedef struct oc_state_dispatch_vtable oc_state_dispatch_vtable; typedef struct oc_theora_state oc_theora_state; # 186 "internal.h" typedef ptrdiff_t oc_sb_map_quad[4]; typedef oc_sb_map_quad oc_sb_map[4]; typedef ptrdiff_t oc_mb_map_plane[4]; typedef oc_mb_map_plane oc_mb_map[3]; typedef signed char oc_mv[2]; struct oc_sb_flags{ unsigned char coded_fully:1; unsigned char coded_partially:1; unsigned char quad_valid:4; }; struct oc_border_info{ ogg_int64_t mask; int npixels; }; struct oc_fragment{ unsigned coded:1; unsigned invalid:1; unsigned qii:6; unsigned mb_mode:3; signed int borderi:5; signed int dc:16; }; struct oc_fragment_plane{ int nhfrags; int nvfrags; ptrdiff_t froffset; ptrdiff_t nfrags; unsigned nhsbs; unsigned nvsbs; unsigned sboffset; unsigned nsbs; }; struct oc_base_opt_vtable{ void (*frag_copy)(unsigned char *_dst, const unsigned char *_src,int _ystride); void (*frag_recon_intra)(unsigned char *_dst,int _ystride, const ogg_int16_t _residue[64]); void (*frag_recon_inter)(unsigned char *_dst, const unsigned char *_src,int _ystride,const ogg_int16_t _residue[64]); void (*frag_recon_inter2)(unsigned char *_dst,const unsigned char *_src1, const unsigned char *_src2,int _ystride,const ogg_int16_t _residue[64]); void (*idct8x8)(ogg_int16_t _y[64],int _last_zzi); void (*state_frag_recon)(const oc_theora_state *_state,ptrdiff_t _fragi, int _pli,ogg_int16_t _dct_coeffs[64],int _last_zzi,ogg_uint16_t _dc_quant); void (*state_frag_copy_list)(const oc_theora_state *_state, const ptrdiff_t *_fragis,ptrdiff_t _nfragis, int _dst_frame,int _src_frame,int _pli); void (*state_loop_filter_frag_rows)(const oc_theora_state *_state, int _bv[256],int _refi,int _pli,int _fragy0,int _fragy_end); void (*restore_fpu)(void); }; struct oc_base_opt_data{ const unsigned char *dct_fzig_zag; }; struct oc_theora_state{ th_info info; oc_base_opt_vtable opt_vtable; oc_base_opt_data opt_data; ogg_uint32_t cpu_flags; oc_fragment_plane fplanes[3]; oc_fragment *frags; ptrdiff_t *frag_buf_offs; oc_mv *frag_mvs; ptrdiff_t nfrags; oc_sb_map *sb_maps; oc_sb_flags *sb_flags; unsigned nsbs; oc_mb_map *mb_maps; signed char *mb_modes; unsigned nhmbs; unsigned nvmbs; size_t nmbs; ptrdiff_t *coded_fragis; ptrdiff_t ncoded_fragis[3]; ptrdiff_t ntotal_coded_fragis; int ref_frame_idx[4]; th_ycbcr_buffer ref_frame_bufs[4]; unsigned char *ref_frame_data[4]; int ref_ystride[3]; int nborders; oc_border_info borders[16]; ogg_int64_t keyframe_num; ogg_int64_t curframe_num; ogg_int64_t granpos; unsigned char frame_type; unsigned char granpos_bias; unsigned char nqis; unsigned char qis[3]; ogg_uint16_t *dequant_tables[64][3][2]; oc_quant_table dequant_table_data[64][3][2]; unsigned char loop_filter_limits[64]; }; # 393 "internal.h" typedef void (*oc_set_chroma_mvs_func)(oc_mv _cbmvs[4],const oc_mv _lbmvs[4]); extern const unsigned char OC_FZIG_ZAG[128]; extern const unsigned char OC_IZIG_ZAG[64]; extern const unsigned char OC_MB_MAP[2][2]; extern const unsigned char OC_MB_MAP_IDXS[TH_PF_NFORMATS][12]; extern const unsigned char OC_MB_MAP_NIDXS[TH_PF_NFORMATS]; extern const oc_set_chroma_mvs_func OC_SET_CHROMA_MVS_TABLE[TH_PF_NFORMATS]; int oc_ilog(unsigned _v); void **oc_malloc_2d(size_t _height,size_t _width,size_t _sz); void **oc_calloc_2d(size_t _height,size_t _width,size_t _sz); void oc_free_2d(void *_ptr); void oc_ycbcr_buffer_flip(th_ycbcr_buffer _dst, const th_ycbcr_buffer _src); int oc_state_init(oc_theora_state *_state,const th_info *_info,int _nrefs); void oc_state_clear(oc_theora_state *_state); void oc_state_vtable_init_c(oc_theora_state *_state); void oc_state_borders_fill_rows(oc_theora_state *_state,int _refi,int _pli, int _y0,int _yend); void oc_state_borders_fill_caps(oc_theora_state *_state,int _refi,int _pli); void oc_state_borders_fill(oc_theora_state *_state,int _refi); void oc_state_fill_buffer_ptrs(oc_theora_state *_state,int _buf_idx, th_ycbcr_buffer _img); int oc_state_mbi_for_pos(oc_theora_state *_state,int _mbx,int _mby); int oc_state_get_mv_offsets(const oc_theora_state *_state,int _offsets[2], int _pli,int _dx,int _dy); int oc_state_loop_filter_init(oc_theora_state *_state,int *_bv); void oc_state_loop_filter(oc_theora_state *_state,int _frame); void oc_frag_copy(const oc_theora_state *_state,unsigned char *_dst, const unsigned char *_src,int _ystride); void oc_frag_recon_intra(const oc_theora_state *_state, unsigned char *_dst,int _dst_ystride,const ogg_int16_t _residue[64]); void oc_frag_recon_inter(const oc_theora_state *_state,unsigned char *_dst, const unsigned char *_src,int _ystride,const ogg_int16_t _residue[64]); void oc_frag_recon_inter2(const oc_theora_state *_state, unsigned char *_dst,const unsigned char *_src1,const unsigned char *_src2, int _ystride,const ogg_int16_t _residue[64]); void oc_idct8x8(const oc_theora_state *_state,ogg_int16_t _y[64],int _last_zzi); void oc_state_frag_recon(const oc_theora_state *_state,ptrdiff_t _fragi, int _pli,ogg_int16_t _dct_coeffs[64],int _last_zzi,ogg_uint16_t _dc_quant); void oc_state_frag_copy_list(const oc_theora_state *_state, const ptrdiff_t *_fragis,ptrdiff_t _nfragis, int _dst_frame,int _src_frame,int _pli); void oc_state_loop_filter_frag_rows(const oc_theora_state *_state, int _bv[256],int _refi,int _pli,int _fragy0,int _fragy_end); void oc_restore_fpu(const oc_theora_state *_state); void oc_frag_copy_c(unsigned char *_dst, const unsigned char *_src,int _src_ystride); void oc_frag_recon_intra_c(unsigned char *_dst,int _dst_ystride, const ogg_int16_t _residue[64]); void oc_frag_recon_inter_c(unsigned char *_dst, const unsigned char *_src,int _ystride,const ogg_int16_t _residue[64]); void oc_frag_recon_inter2_c(unsigned char *_dst,const unsigned char *_src1, const unsigned char *_src2,int _ystride,const ogg_int16_t _residue[64]); void oc_idct8x8_c(ogg_int16_t _y[64],int _last_zzi); void oc_state_frag_recon_c(const oc_theora_state *_state,ptrdiff_t _fragi, int _pli,ogg_int16_t _dct_coeffs[64],int _last_zzi,ogg_uint16_t _dc_quant); void oc_state_frag_copy_list_c(const oc_theora_state *_state, const ptrdiff_t *_fragis,ptrdiff_t _nfragis, int _dst_frame,int _src_frame,int _pli); void oc_state_loop_filter_frag_rows_c(const oc_theora_state *_state, int _bv[256],int _refi,int _pli,int _fragy0,int _fragy_end); void oc_restore_fpu_c(void); # 493 "internal.h" typedef void (*oc_state_clear_func)(theora_state *_th); typedef int (*oc_state_control_func)(theora_state *th,int _req, void *_buf,size_t _buf_sz); typedef ogg_int64_t (*oc_state_granule_frame_func)(theora_state *_th, ogg_int64_t _granulepos); typedef double (*oc_state_granule_time_func)(theora_state *_th, ogg_int64_t _granulepos); struct oc_state_dispatch_vtable{ oc_state_clear_func clear; oc_state_control_func control; oc_state_granule_frame_func granule_frame; oc_state_granule_time_func granule_time; }; # 23 "decint.h" 2 # 1 "bitpack.h" 1 # 19 "bitpack.h" # 1 "/usr/lib/gcc/s390x-linux-gnu/5/include-fixed/limits.h" 1 3 4 # 20 "bitpack.h" 2 typedef unsigned long oc_pb_window; typedef struct oc_pack_buf oc_pack_buf; # 36 "bitpack.h" struct oc_pack_buf{ oc_pb_window window; const unsigned char *ptr; const unsigned char *stop; int bits; int eof; }; void oc_pack_readinit(oc_pack_buf *_b,unsigned char *_buf,long _bytes); int oc_pack_look1(oc_pack_buf *_b); void oc_pack_adv1(oc_pack_buf *_b); long oc_pack_read(oc_pack_buf *_b,int _bits); int oc_pack_read1(oc_pack_buf *_b); long oc_pack_bytes_left(oc_pack_buf *_b); # 24 "decint.h" 2 typedef struct th_setup_info oc_setup_info; typedef struct th_dec_ctx oc_dec_ctx; # 1 "huffdec.h" 1 # 20 "huffdec.h" # 1 "huffman.h" 1 # 21 "huffman.h" # 1 "ocintrin.h" 1 # 22 "huffman.h" 2 # 68 "huffman.h" extern const unsigned char OC_DCT_TOKEN_EXTRA_BITS[(32)]; # 21 "huffdec.h" 2 typedef struct oc_huff_node oc_huff_node; # 60 "huffdec.h" struct oc_huff_node{ unsigned char nbits; unsigned char token; unsigned char depth; oc_huff_node *nodes[2]; }; int oc_huff_trees_unpack(oc_pack_buf *_opb, oc_huff_node *_nodes[(80)]); int oc_huff_trees_copy(oc_huff_node *_dst[(80)], const oc_huff_node *const _src[(80)]); void oc_huff_trees_clear(oc_huff_node *_nodes[(80)]); int oc_huff_token_decode(oc_pack_buf *_opb,const oc_huff_node *_node); # 29 "decint.h" 2 # 1 "dequant.h" 1 # 23 "dequant.h" int oc_quant_params_unpack(oc_pack_buf *_opb, th_quant_info *_qinfo); void oc_quant_params_clear(th_quant_info *_qinfo); # 30 "decint.h" 2 # 38 "decint.h" struct th_setup_info{ oc_huff_node *huff_tables[(80)]; th_quant_info qinfo; }; struct th_dec_ctx{ oc_theora_state state; int packet_state; oc_pack_buf opb; oc_huff_node *huff_tables[(80)]; ptrdiff_t ti0[3][64]; ptrdiff_t eob_runs[3][64]; unsigned char *dct_tokens; unsigned char *extra_bits; int dct_tokens_count; int pp_level; int pp_dc_scale[64]; int pp_sharp_mod[64]; unsigned char *dc_qis; int *variances; unsigned char *pp_frame_data; int pp_frame_state; th_ycbcr_buffer pp_frame_buf; th_stripe_callback stripe_cb; # 105 "decint.h" }; # 22 "decode.c" 2 # 54 "decode.c" static const unsigned char OC_MODE_ALPHABETS[7][(8)]={ { (3),(4),(2), (0),(1),(5),(6), (7) }, { (3),(4),(0), (2),(1),(5),(6), (7) }, { (3),(2),(4), (0),(1),(5),(6), (7) }, { (3),(2),(0), (4),(1),(5), (6),(7) }, { (0),(3),(4), (2),(1),(5),(6), (7) }, { (0),(5),(3), (4),(2),(1),(6), (7) }, { (0),(1),(2),(3), (4),(5),(6), (7) } }; # 115 "decode.c" static const unsigned char OC_INTERNAL_DCT_TOKEN_EXTRA_BITS[15]={ 12,4,3,3,4,4,5,5,8,8,8,8,3,3,6 }; # 171 "decode.c" static const ogg_int32_t OC_DCT_CODE_WORD[92]={ (0), ((16)<<(8)| (0)<<(0)| (0)<<(20)| (0)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (13)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (1)<<(20)| (13)-(1)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (21)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (1)<<(20)| (21)-(1)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (37)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (1)<<(20)| (37)-(1)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (69)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (325)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (1)<<(20)| (69)-(1)<<(21)), ((0)<<(8)| (0)<<(0)| (1)<<(20)| (325)-(1)<<(21)), ((0)<<(8)| (10)<<(0)| (0)<<(20)| (+1)-(0)<<(21)), ((0)<<(8)| (10)<<(0)| (0)<<(20)| (-1)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (1)<<(20)| (0)-(1)<<(21)), ((1)<<(8)| (0)<<(0)| (0)<<(20)| (0)-(0)<<(21)), ((2)<<(8)| (0)<<(0)| (0)<<(20)| (0)-(0)<<(21)), ((3)<<(8)| (0)<<(0)| (0)<<(20)| (0)-(0)<<(21)), ((0)<<(8)| (1)<<(0)| (0)<<(20)| (+1)-(0)<<(21)), ((0)<<(8)| (1)<<(0)| (0)<<(20)| (-1)-(0)<<(21)), ((0)<<(8)| (2)<<(0)| (0)<<(20)| (+1)-(0)<<(21)), ((0)<<(8)| (2)<<(0)| (0)<<(20)| (-1)-(0)<<(21)), ((0)<<(8)| (3)<<(0)| (0)<<(20)| (+1)-(0)<<(21)), ((0)<<(8)| (3)<<(0)| (0)<<(20)| (-1)-(0)<<(21)), ((0)<<(8)| (4)<<(0)| (0)<<(20)| (+1)-(0)<<(21)), ((0)<<(8)| (4)<<(0)| (0)<<(20)| (-1)-(0)<<(21)), ((0)<<(8)| (5)<<(0)| (0)<<(20)| (+1)-(0)<<(21)), ((0)<<(8)| (5)<<(0)| (0)<<(20)| (-1)-(0)<<(21)), ((0)<<(8)| (1)<<(0)| (0)<<(20)| (+2)-(0)<<(21)), ((0)<<(8)| (1)<<(0)| (0)<<(20)| (+3)-(0)<<(21)), ((0)<<(8)| (1)<<(0)| (0)<<(20)| (-2)-(0)<<(21)), ((0)<<(8)| (1)<<(0)| (0)<<(20)| (-3)-(0)<<(21)), ((0)<<(8)| (6)<<(0)| (0)<<(20)| (+1)-(0)<<(21)), ((0)<<(8)| (7)<<(0)| (0)<<(20)| (+1)-(0)<<(21)), ((0)<<(8)| (8)<<(0)| (0)<<(20)| (+1)-(0)<<(21)), ((0)<<(8)| (9)<<(0)| (0)<<(20)| (+1)-(0)<<(21)), ((0)<<(8)| (6)<<(0)| (0)<<(20)| (-1)-(0)<<(21)), ((0)<<(8)| (7)<<(0)| (0)<<(20)| (-1)-(0)<<(21)), ((0)<<(8)| (8)<<(0)| (0)<<(20)| (-1)-(0)<<(21)), ((0)<<(8)| (9)<<(0)| (0)<<(20)| (-1)-(0)<<(21)), ((0)<<(8)| (2)<<(0)| (0)<<(20)| (+2)-(0)<<(21)), ((0)<<(8)| (3)<<(0)| (0)<<(20)| (+2)-(0)<<(21)), ((0)<<(8)| (2)<<(0)| (0)<<(20)| (+3)-(0)<<(21)), ((0)<<(8)| (3)<<(0)| (0)<<(20)| (+3)-(0)<<(21)), ((0)<<(8)| (2)<<(0)| (0)<<(20)| (-2)-(0)<<(21)), ((0)<<(8)| (3)<<(0)| (0)<<(20)| (-2)-(0)<<(21)), ((0)<<(8)| (2)<<(0)| (0)<<(20)| (-3)-(0)<<(21)), ((0)<<(8)| (3)<<(0)| (0)<<(20)| (-3)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (1)<<(20)| (0)-(1)<<(21)), ((0)<<(8)| (1)<<(0)| (0)<<(20)| (0)-(0)<<(21)), ((0)<<(8)| (2)<<(0)| (0)<<(20)| (0)-(0)<<(21)), ((0)<<(8)| (3)<<(0)| (0)<<(20)| (0)-(0)<<(21)), ((0)<<(8)| (4)<<(0)| (0)<<(20)| (0)-(0)<<(21)), ((0)<<(8)| (5)<<(0)| (0)<<(20)| (0)-(0)<<(21)), ((0)<<(8)| (6)<<(0)| (0)<<(20)| (0)-(0)<<(21)), ((0)<<(8)| (7)<<(0)| (0)<<(20)| (0)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (+1)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (-1)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (+2)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (-2)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (+3)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (-3)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (+4)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (-4)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (+5)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (-5)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (+6)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (-6)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (+7)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (+8)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (-7)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (-8)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (+9)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (+10)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (+11)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (+12)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (-9)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (-10)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (-11)-(0)<<(21)), ((0)<<(8)| (0)<<(0)| (0)<<(20)| (-12)-(0)<<(21)), ((8)<<(8)| (0)<<(0)| (0)<<(20)| (0)-(0)<<(21)), ((9)<<(8)| (0)<<(0)| (0)<<(20)| (0)-(0)<<(21)), ((10)<<(8)| (0)<<(0)| (0)<<(20)| (0)-(0)<<(21)), ((11)<<(8)| (0)<<(0)| (0)<<(20)| (0)-(0)<<(21)), ((12)<<(8)| (0)<<(0)| (0)<<(20)| (0)-(0)<<(21)), ((13)<<(8)| (0)<<(0)| (0)<<(20)| (0)-(0)<<(21)), ((14)<<(8)| (0)<<(0)| (0)<<(20)| (0)-(0)<<(21)), ((15)<<(8)| (0)<<(0)| (0)<<(20)| (0)-(0)<<(21)), ((4)<<(8)| (0)<<(0)| (0)<<(20)| (0)-(0)<<(21)), ((5)<<(8)| (0)<<(0)| (0)<<(20)| (0)-(0)<<(21)), ((6)<<(8)| (0)<<(0)| (0)<<(20)| (0)-(0)<<(21)), ((7)<<(8)| (0)<<(0)| (0)<<(20)| (0)-(0)<<(21)), }; static int oc_sb_run_unpack(oc_pack_buf *_opb){ long bits; int ret; # 311 "decode.c" bits=oc_pack_read1(_opb); if(bits==0)return 1; bits=oc_pack_read(_opb,2); if((bits&2)==0)return 2+(int)bits; else if((bits&1)==0){ bits=oc_pack_read1(_opb); return 4+(int)bits; } bits=oc_pack_read(_opb,3); if((bits&4)==0)return 6+(int)bits; else if((bits&2)==0){ ret=10+((bits&1)<<2); bits=oc_pack_read(_opb,2); return ret+(int)bits; } else if((bits&1)==0){ bits=oc_pack_read(_opb,4); return 18+(int)bits; } bits=oc_pack_read(_opb,12); return 34+(int)bits; } static int oc_block_run_unpack(oc_pack_buf *_opb){ long bits; long bits2; # 345 "decode.c" bits=oc_pack_read(_opb,2); if((bits&2)==0)return 1+(int)bits; else if((bits&1)==0){ bits=oc_pack_read1(_opb); return 3+(int)bits; } bits=oc_pack_read(_opb,2); if((bits&2)==0)return 5+(int)bits; else if((bits&1)==0){ bits=oc_pack_read(_opb,2); return 7+(int)bits; } bits=oc_pack_read(_opb,3); if((bits&4)==0)return 11+bits; bits2=oc_pack_read(_opb,2); return 15+((bits&3)<<2)+bits2; } static int oc_dec_init(oc_dec_ctx *_dec,const th_info *_info, const th_setup_info *_setup){ int qti; int pli; int qi; int ret; ret=oc_state_init(&_dec->state,_info,3); if(ret<0)return ret; ret=oc_huff_trees_copy(_dec->huff_tables, (const oc_huff_node *const *)_setup->huff_tables); if(ret<0){ oc_state_clear(&_dec->state); return ret; } _dec->dct_tokens=(unsigned char *) # 383 "decode.c" 3 4 malloc # 383 "decode.c" ((64+64+1)* _dec->state.nfrags*sizeof(_dec->dct_tokens[0])); if(_dec->dct_tokens== # 385 "decode.c" 3 4 ((void *)0) # 385 "decode.c" ){ oc_huff_trees_clear(_dec->huff_tables); oc_state_clear(&_dec->state); return (-1); } for(qi=0;qi<64;qi++)for(pli=0;pli<3;pli++)for(qti=0;qti<2;qti++){ _dec->state.dequant_tables[qi][pli][qti]= _dec->state.dequant_table_data[qi][pli][qti]; } oc_dequant_tables_init(_dec->state.dequant_tables,_dec->pp_dc_scale, &_setup->qinfo); for(qi=0;qi<64;qi++){ int qsum; qsum=0; for(qti=0;qti<2;qti++)for(pli=0;pli<3;pli++){ qsum+=_dec->state.dequant_tables[qti][pli][qi][12]+ _dec->state.dequant_tables[qti][pli][qi][17]+ _dec->state.dequant_tables[qti][pli][qi][18]+ _dec->state.dequant_tables[qti][pli][qi][24]<<(pli==0); } _dec->pp_sharp_mod[qi]=-(qsum>>11); } memcpy(_dec->state.loop_filter_limits,_setup->qinfo.loop_filter_limits, sizeof(_dec->state.loop_filter_limits)); _dec->pp_level=(0); _dec->dc_qis= # 410 "decode.c" 3 4 ((void *)0) # 410 "decode.c" ; _dec->variances= # 411 "decode.c" 3 4 ((void *)0) # 411 "decode.c" ; _dec->pp_frame_data= # 412 "decode.c" 3 4 ((void *)0) # 412 "decode.c" ; _dec->stripe_cb.ctx= # 413 "decode.c" 3 4 ((void *)0) # 413 "decode.c" ; _dec->stripe_cb.stripe_decoded= # 414 "decode.c" 3 4 ((void *)0) # 414 "decode.c" ; # 423 "decode.c" return 0; } static void oc_dec_clear(oc_dec_ctx *_dec){ # 430 "decode.c" 3 4 free # 430 "decode.c" (_dec->pp_frame_data); # 431 "decode.c" 3 4 free # 431 "decode.c" (_dec->variances); # 432 "decode.c" 3 4 free # 432 "decode.c" (_dec->dc_qis); # 433 "decode.c" 3 4 free # 433 "decode.c" (_dec->dct_tokens); oc_huff_trees_clear(_dec->huff_tables); oc_state_clear(&_dec->state); } static int oc_dec_frame_header_unpack(oc_dec_ctx *_dec){ long val; val=oc_pack_read1(&_dec->opb); if(val!=0)return (-24); val=oc_pack_read1(&_dec->opb); _dec->state.frame_type=(int)val; val=oc_pack_read(&_dec->opb,6); _dec->state.qis[0]=(unsigned char)val; val=oc_pack_read1(&_dec->opb); if(!val)_dec->state.nqis=1; else{ val=oc_pack_read(&_dec->opb,6); _dec->state.qis[1]=(unsigned char)val; val=oc_pack_read1(&_dec->opb); if(!val)_dec->state.nqis=2; else{ val=oc_pack_read(&_dec->opb,6); _dec->state.qis[2]=(unsigned char)val; _dec->state.nqis=3; } } if(_dec->state.frame_type==(0)){ val=oc_pack_read(&_dec->opb,3); if(val!=0)return (-23); } return 0; } static void oc_dec_mark_all_intra(oc_dec_ctx *_dec){ const oc_sb_map *sb_maps; const oc_sb_flags *sb_flags; oc_fragment *frags; ptrdiff_t *coded_fragis; ptrdiff_t ncoded_fragis; ptrdiff_t prev_ncoded_fragis; unsigned nsbs; unsigned sbi; int pli; coded_fragis=_dec->state.coded_fragis; prev_ncoded_fragis=ncoded_fragis=0; sb_maps=(const oc_sb_map *)_dec->state.sb_maps; sb_flags=_dec->state.sb_flags; frags=_dec->state.frags; sbi=nsbs=0; for(pli=0;pli<3;pli++){ nsbs+=_dec->state.fplanes[pli].nsbs; for(;sbi=0){ frags[fragi].coded=1; frags[fragi].mb_mode=(1); coded_fragis[ncoded_fragis++]=fragi; } } } } _dec->state.ncoded_fragis[pli]=ncoded_fragis-prev_ncoded_fragis; prev_ncoded_fragis=ncoded_fragis; } _dec->state.ntotal_coded_fragis=ncoded_fragis; } static unsigned oc_dec_partial_sb_flags_unpack(oc_dec_ctx *_dec){ oc_sb_flags *sb_flags; unsigned nsbs; unsigned sbi; unsigned npartial; unsigned run_count; long val; int flag; val=oc_pack_read1(&_dec->opb); flag=(int)val; sb_flags=_dec->state.sb_flags; nsbs=_dec->state.nsbs; sbi=npartial=0; while(sbiopb); full_run=run_count>=4129; do{ sb_flags[sbi].coded_partially=flag; sb_flags[sbi].coded_fully=0; npartial+=flag; sbi++; } while(--run_count>0&&sbiopb); flag=(int)val; } else flag=!flag; } return npartial; } static void oc_dec_coded_sb_flags_unpack(oc_dec_ctx *_dec){ oc_sb_flags *sb_flags; unsigned nsbs; unsigned sbi; unsigned run_count; long val; int flag; sb_flags=_dec->state.sb_flags; nsbs=_dec->state.nsbs; for(sbi=0;sb_flags[sbi].coded_partially;sbi++); val=oc_pack_read1(&_dec->opb); flag=(int)val; do{ int full_run; run_count=oc_sb_run_unpack(&_dec->opb); full_run=run_count>=4129; for(;sbiopb); flag=(int)val; } else flag=!flag; } while(sbistate.nsbs)oc_dec_coded_sb_flags_unpack(_dec); if(npartial>0){ val=oc_pack_read1(&_dec->opb); flag=!(int)val; } else flag=0; sb_maps=(const oc_sb_map *)_dec->state.sb_maps; sb_flags=_dec->state.sb_flags; frags=_dec->state.frags; sbi=nsbs=run_count=0; coded_fragis=_dec->state.coded_fragis; uncoded_fragis=coded_fragis+_dec->state.nfrags; prev_ncoded_fragis=ncoded_fragis=nuncoded_fragis=0; for(pli=0;pli<3;pli++){ nsbs+=_dec->state.fplanes[pli].nsbs; for(;sbi=0){ int coded; if(sb_flags[sbi].coded_fully)coded=1; else if(!sb_flags[sbi].coded_partially)coded=0; else{ if(run_count<=0){ run_count=oc_block_run_unpack(&_dec->opb); flag=!flag; } run_count--; coded=flag; } if(coded)coded_fragis[ncoded_fragis++]=fragi; else *(uncoded_fragis-++nuncoded_fragis)=fragi; frags[fragi].coded=coded; } } } } _dec->state.ncoded_fragis[pli]=ncoded_fragis-prev_ncoded_fragis; prev_ncoded_fragis=ncoded_fragis; } _dec->state.ntotal_coded_fragis=ncoded_fragis; } typedef int (*oc_mode_unpack_func)(oc_pack_buf *_opb); static int oc_vlc_mode_unpack(oc_pack_buf *_opb){ long val; int i; for(i=0;i<7;i++){ val=oc_pack_read1(_opb); if(!val)break; } return i; } static int oc_clc_mode_unpack(oc_pack_buf *_opb){ long val; val=oc_pack_read(_opb,3); return (int)val; } static void oc_dec_mb_modes_unpack(oc_dec_ctx *_dec){ const oc_mb_map *mb_maps; signed char *mb_modes; const oc_fragment *frags; const unsigned char *alphabet; unsigned char scheme0_alphabet[8]; oc_mode_unpack_func mode_unpack; size_t nmbs; size_t mbi; long val; int mode_scheme; val=oc_pack_read(&_dec->opb,3); mode_scheme=(int)val; if(mode_scheme==0){ int mi; for(mi=0;mi<(8);mi++)scheme0_alphabet[mi]=(0); for(mi=0;mi<(8);mi++){ val=oc_pack_read(&_dec->opb,3); scheme0_alphabet[val]=OC_MODE_ALPHABETS[6][mi]; } alphabet=scheme0_alphabet; } else alphabet=OC_MODE_ALPHABETS[mode_scheme-1]; if(mode_scheme==7)mode_unpack=oc_clc_mode_unpack; else mode_unpack=oc_vlc_mode_unpack; mb_modes=_dec->state.mb_modes; mb_maps=(const oc_mb_map *)_dec->state.mb_maps; nmbs=_dec->state.nmbs; frags=_dec->state.frags; for(mbi=0;mbiopb)]; else mb_modes[mbi]=(0); } } } typedef int (*oc_mv_comp_unpack_func)(oc_pack_buf *_opb); static int oc_vlc_mv_comp_unpack(oc_pack_buf *_opb){ long bits; int mask; int mv; bits=oc_pack_read(_opb,3); switch(bits){ case 0:return 0; case 1:return 1; case 2:return -1; case 3: case 4:{ mv=(int)(bits-1); bits=oc_pack_read1(_opb); }break; default:{ mv=1<>1); bits&=1; }break; } mask=-(int)bits; return mv+mask^mask; } static int oc_clc_mv_comp_unpack(oc_pack_buf *_opb){ long bits; int mask; int mv; bits=oc_pack_read(_opb,6); mv=(int)bits>>1; mask=-((int)bits&1); return mv+mask^mask; } static void oc_dec_mv_unpack_and_frag_modes_fill(oc_dec_ctx *_dec){ const oc_mb_map *mb_maps; const signed char *mb_modes; oc_set_chroma_mvs_func set_chroma_mvs; oc_mv_comp_unpack_func mv_comp_unpack; oc_fragment *frags; oc_mv *frag_mvs; const unsigned char *map_idxs; int map_nidxs; oc_mv last_mv[2]; oc_mv cbmvs[4]; size_t nmbs; size_t mbi; long val; set_chroma_mvs=OC_SET_CHROMA_MVS_TABLE[_dec->state.info.pixel_fmt]; val=oc_pack_read1(&_dec->opb); mv_comp_unpack=val?oc_clc_mv_comp_unpack:oc_vlc_mv_comp_unpack; map_idxs=OC_MB_MAP_IDXS[_dec->state.info.pixel_fmt]; map_nidxs=OC_MB_MAP_NIDXS[_dec->state.info.pixel_fmt]; memset(last_mv,0,sizeof(last_mv)); frags=_dec->state.frags; frag_mvs=_dec->state.frag_mvs; mb_maps=(const oc_mb_map *)_dec->state.mb_maps; mb_modes=_dec->state.mb_modes; nmbs=_dec->state.nmbs; for(mbi=0;mbi>2][mapi&3]; if(frags[fragi].coded)coded[ncoded++]=mapi; } while(++mapiiopb); lbmvs[bi][1]=(signed char)(*mv_comp_unpack)(&_dec->opb); memcpy(frag_mvs[fragi],lbmvs[bi],sizeof(lbmvs[bi])); } else lbmvs[bi][0]=lbmvs[bi][1]=0; } if(codedi>0){ memcpy(last_mv[1],last_mv[0],sizeof(last_mv[1])); memcpy(last_mv[0],lbmvs[coded[codedi-1]],sizeof(last_mv[0])); } if(codedi>2][bi]; frags[fragi].mb_mode=mb_mode; memcpy(frag_mvs[fragi],cbmvs[bi],sizeof(cbmvs[bi])); } } }break; case (2):{ memcpy(last_mv[1],last_mv[0],sizeof(last_mv[1])); mbmv[0]=last_mv[0][0]=(signed char)(*mv_comp_unpack)(&_dec->opb); mbmv[1]=last_mv[0][1]=(signed char)(*mv_comp_unpack)(&_dec->opb); }break; case (3):memcpy(mbmv,last_mv[0],sizeof(mbmv));break; case (4):{ memcpy(mbmv,last_mv[1],sizeof(mbmv)); memcpy(last_mv[1],last_mv[0],sizeof(last_mv[1])); memcpy(last_mv[0],mbmv,sizeof(last_mv[0])); }break; case (6):{ mbmv[0]=(signed char)(*mv_comp_unpack)(&_dec->opb); mbmv[1]=(signed char)(*mv_comp_unpack)(&_dec->opb); }break; default:memset(mbmv,0,sizeof(mbmv));break; } if(mb_mode!=(7)){ for(codedi=0;codedi>2][mapi&3]; frags[fragi].mb_mode=mb_mode; memcpy(frag_mvs[fragi],mbmv,sizeof(mbmv)); } } } } } static void oc_dec_block_qis_unpack(oc_dec_ctx *_dec){ oc_fragment *frags; const ptrdiff_t *coded_fragis; ptrdiff_t ncoded_fragis; ptrdiff_t fragii; ptrdiff_t fragi; ncoded_fragis=_dec->state.ntotal_coded_fragis; if(ncoded_fragis<=0)return; frags=_dec->state.frags; coded_fragis=_dec->state.coded_fragis; if(_dec->state.nqis==1){ for(fragii=0;fragiiopb); flag=(int)val; nqi1=0; fragii=0; while(fragiiopb); full_run=run_count>=4129; do{ frags[coded_fragis[fragii++]].qii=flag; nqi1+=flag; } while(--run_count>0&&fragiiopb); flag=(int)val; } else flag=!flag; } if(_dec->state.nqis==3&&nqi1>0){ for(fragii=0;frags[coded_fragis[fragii]].qii==0;fragii++); val=oc_pack_read1(&_dec->opb); flag=(int)val; do{ int full_run; run_count=oc_sb_run_unpack(&_dec->opb); full_run=run_count>=4129; for(;fragiiopb); flag=(int)val; } else flag=!flag; } while(fragiidct_tokens; frags=_dec->state.frags; coded_fragis=_dec->state.coded_fragis; ncoded_fragis=fragii=eobs=ti=0; for(pli=0;pli<3;pli++){ ptrdiff_t run_counts[64]; ptrdiff_t eob_count; ptrdiff_t eobi; int rli; ncoded_fragis+=_dec->state.ncoded_fragis[pli]; memset(run_counts,0,sizeof(run_counts)); _dec->eob_runs[pli][0]=eobs; _dec->ti0[pli][0]=ti; eobi=eobs; if(ncoded_fragis-fragii0)frags[coded_fragis[fragii++]].dc=0; while(fragiiopb, _dec->huff_tables[_huff_idxs[pli+1>>1]]); dct_tokens[ti++]=(unsigned char)token; if((token<(sizeof(OC_INTERNAL_DCT_TOKEN_EXTRA_BITS)/ sizeof(*OC_INTERNAL_DCT_TOKEN_EXTRA_BITS)))){ eb=(int)oc_pack_read(&_dec->opb, OC_INTERNAL_DCT_TOKEN_EXTRA_BITS[token]); dct_tokens[ti++]=(unsigned char)eb; if(token==(0))dct_tokens[ti++]=(unsigned char)(eb>>8); eb<<=(((8)-(21)&-((token)<2)) +((21)&-((token)<12))); } else eb=0; cw=OC_DCT_CODE_WORD[token]+eb; eobs=cw>>(8)&0xFFF; if(cw==(0))eobs=(~(size_t)0>>1); if(eobs){ eobi=((eobs)+((ncoded_fragis-fragii)-(eobs)&-((ncoded_fragis-fragii)<(eobs)))); eob_count+=eobi; eobs-=eobi; while(eobi-->0)frags[coded_fragis[fragii++]].dc=0; } else{ int coeff; skip=(unsigned char)(cw>>(0)); cw^=-(cw&1<<(20)); coeff=cw>>(21); if(skip)coeff=0; run_counts[skip]++; frags[coded_fragis[fragii++]].dc=coeff; } } run_counts[63]+=eob_count; for(rli=63;rli-->0;)run_counts[rli]+=run_counts[rli+1]; for(rli=64;rli-->0;)_ntoks_left[pli][rli]-=run_counts[rli]; } _dec->dct_tokens_count=ti; return eobs; } # 1058 "decode.c" static int oc_dec_ac_coeff_unpack(oc_dec_ctx *_dec,int _zzi,int _huff_idxs[2], ptrdiff_t _ntoks_left[3][64],ptrdiff_t _eobs){ unsigned char *dct_tokens; ptrdiff_t ti; int pli; dct_tokens=_dec->dct_tokens; ti=_dec->dct_tokens_count; for(pli=0;pli<3;pli++){ ptrdiff_t run_counts[64]; ptrdiff_t eob_count; size_t ntoks_left; size_t ntoks; int rli; _dec->eob_runs[pli][_zzi]=_eobs; _dec->ti0[pli][_zzi]=ti; ntoks_left=_ntoks_left[pli][_zzi]; memset(run_counts,0,sizeof(run_counts)); eob_count=0; ntoks=0; while(ntoks+_eobsopb, _dec->huff_tables[_huff_idxs[pli+1>>1]]); dct_tokens[ti++]=(unsigned char)token; if((token<(sizeof(OC_INTERNAL_DCT_TOKEN_EXTRA_BITS)/ sizeof(*OC_INTERNAL_DCT_TOKEN_EXTRA_BITS)))){ eb=(int)oc_pack_read(&_dec->opb, OC_INTERNAL_DCT_TOKEN_EXTRA_BITS[token]); dct_tokens[ti++]=(unsigned char)eb; if(token==(0))dct_tokens[ti++]=(unsigned char)(eb>>8); eb<<=(((8)-(21)&-((token)<2)) +((21)&-((token)<12))); } else eb=0; cw=OC_DCT_CODE_WORD[token]+eb; skip=(unsigned char)(cw>>(0)); _eobs=cw>>(8)&0xFFF; if(cw==(0))_eobs=(~(size_t)0>>1); if(_eobs==0){ run_counts[skip]++; ntoks++; } } eob_count+=ntoks_left-ntoks; _eobs-=ntoks_left-ntoks; run_counts[63]+=eob_count; for(rli=63;rli-->0;)run_counts[rli]+=run_counts[rli+1]; for(rli=64-_zzi;rli-->0;)_ntoks_left[pli][_zzi+rli]-=run_counts[rli]; } _dec->dct_tokens_count=ti; return _eobs; } # 1143 "decode.c" static void oc_dec_residual_tokens_unpack(oc_dec_ctx *_dec){ static const unsigned char OC_HUFF_LIST_MAX[5]={1,6,15,28,64}; ptrdiff_t ntoks_left[3][64]; int huff_idxs[2]; ptrdiff_t eobs; long val; int pli; int zzi; int hgi; for(pli=0;pli<3;pli++)for(zzi=0;zzi<64;zzi++){ ntoks_left[pli][zzi]=_dec->state.ncoded_fragis[pli]; } val=oc_pack_read(&_dec->opb,4); huff_idxs[0]=(int)val; val=oc_pack_read(&_dec->opb,4); huff_idxs[1]=(int)val; _dec->eob_runs[0][0]=0; eobs=oc_dec_dc_coeff_unpack(_dec,huff_idxs,ntoks_left); val=oc_pack_read(&_dec->opb,4); huff_idxs[0]=(int)val; val=oc_pack_read(&_dec->opb,4); huff_idxs[1]=(int)val; zzi=1; for(hgi=1;hgi<5;hgi++){ huff_idxs[0]+=16; huff_idxs[1]+=16; for(;zzipp_level<=(0)){ if(_dec->dc_qis!= # 1186 "decode.c" 3 4 ((void *)0) # 1186 "decode.c" ){ # 1187 "decode.c" 3 4 free # 1187 "decode.c" (_dec->dc_qis); _dec->dc_qis= # 1188 "decode.c" 3 4 ((void *)0) # 1188 "decode.c" ; # 1189 "decode.c" 3 4 free # 1189 "decode.c" (_dec->variances); _dec->variances= # 1190 "decode.c" 3 4 ((void *)0) # 1190 "decode.c" ; # 1191 "decode.c" 3 4 free # 1191 "decode.c" (_dec->pp_frame_data); _dec->pp_frame_data= # 1192 "decode.c" 3 4 ((void *)0) # 1192 "decode.c" ; } return 1; } if(_dec->dc_qis== # 1196 "decode.c" 3 4 ((void *)0) # 1196 "decode.c" ){ if(_dec->state.frame_type!=(0))return 1; _dec->dc_qis=(unsigned char *) # 1200 "decode.c" 3 4 malloc # 1200 "decode.c" ( _dec->state.nfrags*sizeof(_dec->dc_qis[0])); if(_dec->dc_qis== # 1202 "decode.c" 3 4 ((void *)0) # 1202 "decode.c" )return 1; memset(_dec->dc_qis,_dec->state.qis[0],_dec->state.nfrags); } else{ unsigned char *dc_qis; const ptrdiff_t *coded_fragis; ptrdiff_t ncoded_fragis; ptrdiff_t fragii; unsigned char qi0; dc_qis=_dec->dc_qis; coded_fragis=_dec->state.coded_fragis; ncoded_fragis=_dec->state.ncoded_fragis[0]+ _dec->state.ncoded_fragis[1]+_dec->state.ncoded_fragis[2]; qi0=(unsigned char)_dec->state.qis[0]; for(fragii=0;fragiipp_level<=(1)){ if(_dec->variances!= # 1223 "decode.c" 3 4 ((void *)0) # 1223 "decode.c" ){ # 1224 "decode.c" 3 4 free # 1224 "decode.c" (_dec->variances); _dec->variances= # 1225 "decode.c" 3 4 ((void *)0) # 1225 "decode.c" ; # 1226 "decode.c" 3 4 free # 1226 "decode.c" (_dec->pp_frame_data); _dec->pp_frame_data= # 1227 "decode.c" 3 4 ((void *)0) # 1227 "decode.c" ; } return 1; } if(_dec->variances== # 1231 "decode.c" 3 4 ((void *)0) # 1231 "decode.c" ){ size_t frame_sz; size_t c_sz; int c_w; int c_h; frame_sz=_dec->state.info.frame_width*(size_t)_dec->state.info.frame_height; c_w=_dec->state.info.frame_width>>!(_dec->state.info.pixel_fmt&1); c_h=_dec->state.info.frame_height>>!(_dec->state.info.pixel_fmt&2); c_sz=c_w*(size_t)c_h; frame_sz+=c_sz<<1; _dec->pp_frame_data=(unsigned char *) # 1244 "decode.c" 3 4 malloc # 1244 "decode.c" ( frame_sz*sizeof(_dec->pp_frame_data[0])); _dec->variances=(int *) # 1246 "decode.c" 3 4 malloc # 1246 "decode.c" ( _dec->state.nfrags*sizeof(_dec->variances[0])); if(_dec->variances== # 1248 "decode.c" 3 4 ((void *)0) # 1248 "decode.c" ||_dec->pp_frame_data== # 1248 "decode.c" 3 4 ((void *)0) # 1248 "decode.c" ){ # 1249 "decode.c" 3 4 free # 1249 "decode.c" (_dec->pp_frame_data); _dec->pp_frame_data= # 1250 "decode.c" 3 4 ((void *)0) # 1250 "decode.c" ; # 1251 "decode.c" 3 4 free # 1251 "decode.c" (_dec->variances); _dec->variances= # 1252 "decode.c" 3 4 ((void *)0) # 1252 "decode.c" ; return 1; } _dec->pp_frame_state=0; } if(_dec->pp_frame_state!=1+(_dec->pp_level>=(5))){ if(_dec->pp_level<(5)){ _dec->pp_frame_buf[0].width=_dec->state.info.frame_width; _dec->pp_frame_buf[0].height=_dec->state.info.frame_height; _dec->pp_frame_buf[0].stride=-_dec->pp_frame_buf[0].width; _dec->pp_frame_buf[0].data=_dec->pp_frame_data+ (1-_dec->pp_frame_buf[0].height)*(ptrdiff_t)_dec->pp_frame_buf[0].stride; } else{ size_t y_sz; size_t c_sz; int c_w; int c_h; y_sz=_dec->state.info.frame_width*(size_t)_dec->state.info.frame_height; c_w=_dec->state.info.frame_width>>!(_dec->state.info.pixel_fmt&1); c_h=_dec->state.info.frame_height>>!(_dec->state.info.pixel_fmt&2); c_sz=c_w*(size_t)c_h; _dec->pp_frame_buf[0].width=_dec->state.info.frame_width; _dec->pp_frame_buf[0].height=_dec->state.info.frame_height; _dec->pp_frame_buf[0].stride=_dec->pp_frame_buf[0].width; _dec->pp_frame_buf[0].data=_dec->pp_frame_data; _dec->pp_frame_buf[1].width=c_w; _dec->pp_frame_buf[1].height=c_h; _dec->pp_frame_buf[1].stride=_dec->pp_frame_buf[1].width; _dec->pp_frame_buf[1].data=_dec->pp_frame_buf[0].data+y_sz; _dec->pp_frame_buf[2].width=c_w; _dec->pp_frame_buf[2].height=c_h; _dec->pp_frame_buf[2].stride=_dec->pp_frame_buf[2].width; _dec->pp_frame_buf[2].data=_dec->pp_frame_buf[1].data+c_sz; oc_ycbcr_buffer_flip(_dec->pp_frame_buf,_dec->pp_frame_buf); } _dec->pp_frame_state=1+(_dec->pp_level>=(5)); } if(_dec->pp_level<(5)){ memcpy(_dec->pp_frame_buf+1, _dec->state.ref_frame_bufs[_dec->state.ref_frame_idx[(2)]]+1, sizeof(_dec->pp_frame_buf[1])*2); } return 0; } typedef struct{ int bounding_values[256]; ptrdiff_t ti[3][64]; ptrdiff_t eob_runs[3][64]; const ptrdiff_t *coded_fragis[3]; const ptrdiff_t *uncoded_fragis[3]; ptrdiff_t ncoded_fragis[3]; ptrdiff_t nuncoded_fragis[3]; const ogg_uint16_t *dequant[3][3][2]; int fragy0[3]; int fragy_end[3]; int pred_last[3][3]; int mcu_nvfrags; int loop_filter; int pp_level; }oc_dec_pipeline_state; static void oc_dec_pipeline_init(oc_dec_ctx *_dec, oc_dec_pipeline_state *_pipe){ const ptrdiff_t *coded_fragis; const ptrdiff_t *uncoded_fragis; int pli; int qii; int qti; _pipe->mcu_nvfrags=4<state.info.pixel_fmt&2); memcpy(_pipe->ti,_dec->ti0,sizeof(_pipe->ti)); memcpy(_pipe->eob_runs,_dec->eob_runs,sizeof(_pipe->eob_runs)); coded_fragis=_dec->state.coded_fragis; uncoded_fragis=coded_fragis+_dec->state.nfrags; for(pli=0;pli<3;pli++){ ptrdiff_t ncoded_fragis; _pipe->coded_fragis[pli]=coded_fragis; _pipe->uncoded_fragis[pli]=uncoded_fragis; ncoded_fragis=_dec->state.ncoded_fragis[pli]; coded_fragis+=ncoded_fragis; uncoded_fragis+=ncoded_fragis-_dec->state.fplanes[pli].nfrags; } for(pli=0;pli<3;pli++){ for(qii=0;qii<_dec->state.nqis;qii++){ for(qti=0;qti<2;qti++){ _pipe->dequant[pli][qii][qti]= _dec->state.dequant_tables[_dec->state.qis[qii]][pli][qti]; } } } memset(_pipe->pred_last,0,sizeof(_pipe->pred_last)); _pipe->loop_filter=!oc_state_loop_filter_init(&_dec->state, _pipe->bounding_values); if(!oc_dec_postprocess_init(_dec))_pipe->pp_level=_dec->pp_level; else{ _pipe->pp_level=(0); memcpy(_dec->pp_frame_buf, _dec->state.ref_frame_bufs[_dec->state.ref_frame_idx[(2)]], sizeof(_dec->pp_frame_buf[0])*3); } } static void oc_dec_dc_unpredict_mcu_plane(oc_dec_ctx *_dec, oc_dec_pipeline_state *_pipe,int _pli){ const oc_fragment_plane *fplane; oc_fragment *frags; int *pred_last; ptrdiff_t ncoded_fragis; ptrdiff_t fragi; int fragx; int fragy; int fragy0; int fragy_end; int nhfrags; fplane=_dec->state.fplanes+_pli; fragy0=_pipe->fragy0[_pli]; fragy_end=_pipe->fragy_end[_pli]; nhfrags=fplane->nhfrags; pred_last=_pipe->pred_last[_pli]; frags=_dec->state.frags; ncoded_fragis=0; fragi=fplane->froffset+fragy0*(ptrdiff_t)nhfrags; for(fragy=fragy0;fragy>((frags[fragi].mb_mode))*4)&0xF); pred_last[ref]=frags[fragi].dc+=pred_last[ref]; ncoded_fragis++; } } } else{ oc_fragment *u_frags; int l_ref; int ul_ref; int u_ref; u_frags=frags-nhfrags; l_ref=-1; ul_ref=-1; u_ref=u_frags[fragi].coded?(((((1))&0xF|(((2))&0xF)<<4|(((1))&0xF)<<8|(((1))&0xF)<<12| (((1))&0xF)<<16|(((0))&0xF)<<20|(((0))&0xF)<<24|(((1))&0xF)<<28)>>((u_frags[fragi].mb_mode))*4)&0xF):-1; for(fragx=0;fragx=nhfrags)ur_ref=-1; else{ ur_ref=u_frags[fragi+1].coded? (((((1))&0xF|(((2))&0xF)<<4|(((1))&0xF)<<8|(((1))&0xF)<<12| (((1))&0xF)<<16|(((0))&0xF)<<20|(((0))&0xF)<<24|(((1))&0xF)<<28)>>((u_frags[fragi+1].mb_mode))*4)&0xF):-1; } if(frags[fragi].coded){ int pred; int ref; ref=(((((1))&0xF|(((2))&0xF)<<4|(((1))&0xF)<<8|(((1))&0xF)<<12| (((1))&0xF)<<16|(((0))&0xF)<<20|(((0))&0xF)<<24|(((1))&0xF)<<28)>>((frags[fragi].mb_mode))*4)&0xF); switch((l_ref==ref)|(ul_ref==ref)<<1| (u_ref==ref)<<2|(ur_ref==ref)<<3){ default:pred=pred_last[ref];break; case 1: case 3:pred=frags[fragi-1].dc;break; case 2:pred=u_frags[fragi-1].dc;break; case 4: case 6: case 12:pred=u_frags[fragi].dc;break; case 5:pred=(frags[fragi-1].dc+u_frags[fragi].dc)/2;break; case 8:pred=u_frags[fragi+1].dc;break; case 9: case 11: case 13:{ pred=(75*frags[fragi-1].dc+53*u_frags[fragi+1].dc)/128; }break; case 10:pred=(u_frags[fragi-1].dc+u_frags[fragi+1].dc)/2;break; case 14:{ pred=(3*(u_frags[fragi-1].dc+u_frags[fragi+1].dc) +10*u_frags[fragi].dc)/16; }break; case 7: case 15:{ int p0; int p1; int p2; p0=frags[fragi-1].dc; p1=u_frags[fragi-1].dc; p2=u_frags[fragi].dc; pred=(29*(p0+p2)-26*p1)/32; if(abs(pred-p2)>128)pred=p2; else if(abs(pred-p0)>128)pred=p0; else if(abs(pred-p1)>128)pred=p1; }break; } pred_last[ref]=frags[fragi].dc+=pred; ncoded_fragis++; l_ref=ref; } else l_ref=-1; ul_ref=u_ref; u_ref=ur_ref; } } } _pipe->ncoded_fragis[_pli]=ncoded_fragis; _pipe->nuncoded_fragis[_pli]= (fragy_end-fragy0)*(ptrdiff_t)nhfrags-ncoded_fragis; } # 1504 "decode.c" static void oc_dec_frags_recon_mcu_plane(oc_dec_ctx *_dec, oc_dec_pipeline_state *_pipe,int _pli){ unsigned char *dct_tokens; const unsigned char *dct_fzig_zag; ogg_uint16_t dc_quant[2]; const oc_fragment *frags; const ptrdiff_t *coded_fragis; ptrdiff_t ncoded_fragis; ptrdiff_t fragii; ptrdiff_t *ti; ptrdiff_t *eob_runs; int qti; dct_tokens=_dec->dct_tokens; dct_fzig_zag=_dec->state.opt_data.dct_fzig_zag; frags=_dec->state.frags; coded_fragis=_pipe->coded_fragis[_pli]; ncoded_fragis=_pipe->ncoded_fragis[_pli]; ti=_pipe->ti[_pli]; eob_runs=_pipe->eob_runs[_pli]; for(qti=0;qti<2;qti++)dc_quant[qti]=_pipe->dequant[_pli][0][qti][0]; for(fragii=0;fragiidequant[_pli][frags[fragi].qii][qti]; for(zzi=0;zzi<64;){ int token; last_zzi=zzi; if(eob_runs[zzi]){ eob_runs[zzi]--; break; } else{ ptrdiff_t eob; int cw; int rlen; int coeff; int lti; lti=ti[zzi]; token=dct_tokens[lti++]; cw=OC_DCT_CODE_WORD[token]; if((token<(sizeof(OC_INTERNAL_DCT_TOKEN_EXTRA_BITS)/ sizeof(*OC_INTERNAL_DCT_TOKEN_EXTRA_BITS)))){ cw+=dct_tokens[lti++]<<(((8)-(21)&-((token)<2)) +((21)&-((token)<12))); } eob=cw>>(8)&0xFFF; if(token==(0)){ eob+=dct_tokens[lti++]<<8; if(eob==0)eob=(~(size_t)0>>1); } rlen=(unsigned char)(cw>>(0)); cw^=-(cw&1<<(20)); coeff=cw>>(21); eob_runs[zzi]=eob; ti[zzi]=lti; zzi+=rlen; dct_coeffs[dct_fzig_zag[zzi]]=(ogg_int16_t)(coeff*(int)ac_quant[zzi]); zzi+=!eob; } } zzi=((zzi)+((64)-(zzi)&-((64)<(zzi)))); dct_coeffs[0]=(ogg_int16_t)frags[fragi].dc; oc_state_frag_recon(&_dec->state,fragi,_pli, dct_coeffs,last_zzi,dc_quant[qti]); } _pipe->coded_fragis[_pli]+=ncoded_fragis; # 1596 "decode.c" _pipe->uncoded_fragis[_pli]-=_pipe->nuncoded_fragis[_pli]; oc_state_frag_copy_list(&_dec->state,_pipe->uncoded_fragis[_pli], _pipe->nuncoded_fragis[_pli],(2),(1),_pli); } static void oc_filter_hedge(unsigned char *_dst,int _dst_ystride, const unsigned char *_src,int _src_ystride,int _qstep,int _flimit, int *_variance0,int *_variance1){ unsigned char *rdst; const unsigned char *rsrc; unsigned char *cdst; const unsigned char *csrc; int r[10]; int sum0; int sum1; int bx; int by; rdst=_dst; rsrc=_src; for(bx=0;bx<8;bx++){ cdst=rdst; csrc=rsrc; for(by=0;by<10;by++){ r[by]=*csrc; csrc+=_src_ystride; } sum0=sum1=0; for(by=0;by<4;by++){ sum0+=abs(r[by+1]-r[by]); sum1+=abs(r[by+5]-r[by+6]); } *_variance0+=((255)+((sum0)-(255)&-((sum0)<(255)))); *_variance1+=((255)+((sum1)-(255)&-((sum1)<(255)))); if(sum0<_flimit&&sum1<_flimit&&r[5]-r[4]<_qstep&&r[4]-r[5]<_qstep){ *cdst=(unsigned char)(r[0]*3+r[1]*2+r[2]+r[3]+r[4]+4>>3); cdst+=_dst_ystride; *cdst=(unsigned char)(r[0]*2+r[1]+r[2]*2+r[3]+r[4]+r[5]+4>>3); cdst+=_dst_ystride; for(by=0;by<4;by++){ *cdst=(unsigned char)(r[by]+r[by+1]+r[by+2]+r[by+3]*2+ r[by+4]+r[by+5]+r[by+6]+4>>3); cdst+=_dst_ystride; } *cdst=(unsigned char)(r[4]+r[5]+r[6]+r[7]*2+r[8]+r[9]*2+4>>3); cdst+=_dst_ystride; *cdst=(unsigned char)(r[5]+r[6]+r[7]+r[8]*2+r[9]*3+4>>3); } else{ for(by=1;by<=8;by++){ *cdst=(unsigned char)r[by]; cdst+=_dst_ystride; } } rdst++; rsrc++; } } static void oc_filter_vedge(unsigned char *_dst,int _dst_ystride, int _qstep,int _flimit,int *_variances){ unsigned char *rdst; const unsigned char *rsrc; unsigned char *cdst; int r[10]; int sum0; int sum1; int bx; int by; cdst=_dst; for(by=0;by<8;by++){ rsrc=cdst-1; rdst=cdst; for(bx=0;bx<10;bx++)r[bx]=*rsrc++; sum0=sum1=0; for(bx=0;bx<4;bx++){ sum0+=abs(r[bx+1]-r[bx]); sum1+=abs(r[bx+5]-r[bx+6]); } _variances[0]+=((255)+((sum0)-(255)&-((sum0)<(255)))); _variances[1]+=((255)+((sum1)-(255)&-((sum1)<(255)))); if(sum0<_flimit&&sum1<_flimit&&r[5]-r[4]<_qstep&&r[4]-r[5]<_qstep){ *rdst++=(unsigned char)(r[0]*3+r[1]*2+r[2]+r[3]+r[4]+4>>3); *rdst++=(unsigned char)(r[0]*2+r[1]+r[2]*2+r[3]+r[4]+r[5]+4>>3); for(bx=0;bx<4;bx++){ *rdst++=(unsigned char)(r[bx]+r[bx+1]+r[bx+2]+r[bx+3]*2+ r[bx+4]+r[bx+5]+r[bx+6]+4>>3); } *rdst++=(unsigned char)(r[4]+r[5]+r[6]+r[7]*2+r[8]+r[9]*2+4>>3); *rdst=(unsigned char)(r[5]+r[6]+r[7]+r[8]*2+r[9]*3+4>>3); } cdst+=_dst_ystride; } } static void oc_dec_deblock_frag_rows(oc_dec_ctx *_dec, th_img_plane *_dst,th_img_plane *_src,int _pli,int _fragy0, int _fragy_end){ oc_fragment_plane *fplane; int *variance; unsigned char *dc_qi; unsigned char *dst; const unsigned char *src; ptrdiff_t froffset; int dst_ystride; int src_ystride; int nhfrags; int width; int notstart; int notdone; int flimit; int qstep; int y_end; int y; int x; _dst+=_pli; _src+=_pli; fplane=_dec->state.fplanes+_pli; nhfrags=fplane->nhfrags; froffset=fplane->froffset+_fragy0*(ptrdiff_t)nhfrags; variance=_dec->variances+froffset; dc_qi=_dec->dc_qis+froffset; notstart=_fragy0>0; notdone=_fragy_endnvfrags; memset(variance+(nhfrags&-notstart),0, (_fragy_end+notdone-_fragy0-notstart)*(nhfrags*sizeof(variance[0]))); y=(_fragy0<<3)+(notstart<<2); dst_ystride=_dst->stride; src_ystride=_src->stride; dst=_dst->data+y*(ptrdiff_t)dst_ystride; src=_src->data+y*(ptrdiff_t)src_ystride; width=_dst->width; for(;y<4;y++){ memcpy(dst,src,width*sizeof(dst[0])); dst+=dst_ystride; src+=src_ystride; } y_end=_fragy_end-!notdone<<3; for(;ypp_dc_scale[*dc_qi]; flimit=(qstep*3)>>2; oc_filter_hedge(dst,dst_ystride,src-src_ystride,src_ystride, qstep,flimit,variance,variance+nhfrags); variance++; dc_qi++; for(x=8;xpp_dc_scale[*dc_qi]; flimit=(qstep*3)>>2; oc_filter_hedge(dst+x,dst_ystride,src+x-src_ystride,src_ystride, qstep,flimit,variance,variance+nhfrags); oc_filter_vedge(dst+x-(dst_ystride<<2)-4,dst_ystride, qstep,flimit,variance-1); variance++; dc_qi++; } dst+=dst_ystride<<3; src+=src_ystride<<3; } if(!notdone){ int height; height=_dst->height; for(;ypp_dc_scale[*dc_qi++]; flimit=(qstep*3)>>2; oc_filter_vedge(dst+x-(dst_ystride<<3)-4,dst_ystride, qstep,flimit,variance++); } } } static void oc_dering_block(unsigned char *_idata,int _ystride,int _b, int _dc_scale,int _sharp_mod,int _strong){ static const unsigned char OC_MOD_MAX[2]={24,32}; static const unsigned char OC_MOD_SHIFT[2]={1,0}; const unsigned char *psrc; const unsigned char *src; const unsigned char *nsrc; unsigned char *dst; int vmod[72]; int hmod[72]; int mod_hi; int by; int bx; mod_hi=((3*_dc_scale)+((OC_MOD_MAX[_strong])-(3*_dc_scale)&-((OC_MOD_MAX[_strong])<(3*_dc_scale)))); dst=_idata; src=dst; psrc=src-(_ystride&-!(_b&4)); for(by=0;by<9;by++){ for(bx=0;bx<8;bx++){ int mod; mod=32+_dc_scale-(abs(src[bx]-psrc[bx])<(0))))); } psrc=src; src+=_ystride&-(!(_b&8)|by<7); } nsrc=dst; psrc=dst-!(_b&1); for(bx=0;bx<9;bx++){ src=nsrc; for(by=0;by<8;by++){ int mod; mod=32+_dc_scale-(abs(*src-*psrc)<(0))))); psrc+=_ystride; src+=_ystride; } psrc=nsrc; nsrc+=!(_b&2)|bx<7; } src=dst; psrc=src-(_ystride&-!(_b&4)); nsrc=src+_ystride; for(by=0;by<8;by++){ int a; int b; int w; a=128; b=64; w=hmod[by]; a-=w; b+=w**(src-!(_b&1)); w=vmod[by<<3]; a-=w; b+=w*psrc[0]; w=vmod[by+1<<3]; a-=w; b+=w*nsrc[0]; w=hmod[(1<<3)+by]; a-=w; b+=w*src[1]; dst[0]=((unsigned char)((((a*src[0]+b>>7)<0)-1)&((a*src[0]+b>>7)|-((a*src[0]+b>>7)>255)))); for(bx=1;bx<7;bx++){ a=128; b=64; w=hmod[(bx<<3)+by]; a-=w; b+=w*src[bx-1]; w=vmod[(by<<3)+bx]; a-=w; b+=w*psrc[bx]; w=vmod[(by+1<<3)+bx]; a-=w; b+=w*nsrc[bx]; w=hmod[(bx+1<<3)+by]; a-=w; b+=w*src[bx+1]; dst[bx]=((unsigned char)((((a*src[bx]+b>>7)<0)-1)&((a*src[bx]+b>>7)|-((a*src[bx]+b>>7)>255)))); } a=128; b=64; w=hmod[(7<<3)+by]; a-=w; b+=w*src[6]; w=vmod[(by<<3)+7]; a-=w; b+=w*psrc[7]; w=vmod[(by+1<<3)+7]; a-=w; b+=w*nsrc[7]; w=hmod[(8<<3)+by]; a-=w; b+=w*src[7+!(_b&2)]; dst[7]=((unsigned char)((((a*src[7]+b>>7)<0)-1)&((a*src[7]+b>>7)|-((a*src[7]+b>>7)>255)))); dst+=_ystride; psrc=src; src=nsrc; nsrc+=_ystride&-(!(_b&8)|by<6); } } static void oc_dec_dering_frag_rows(oc_dec_ctx *_dec,th_img_plane *_img, int _pli,int _fragy0,int _fragy_end){ th_img_plane *iplane; oc_fragment_plane *fplane; oc_fragment *frag; int *variance; unsigned char *idata; ptrdiff_t froffset; int ystride; int nhfrags; int sthresh; int strong; int y_end; int width; int height; int y; int x; iplane=_img+_pli; fplane=_dec->state.fplanes+_pli; nhfrags=fplane->nhfrags; froffset=fplane->froffset+_fragy0*(ptrdiff_t)nhfrags; variance=_dec->variances+froffset; frag=_dec->state.frags+froffset; strong=_dec->pp_level>=(_pli?(7):(4)); sthresh=_pli?(10*(384)):(5*(384)); y=_fragy0<<3; ystride=iplane->stride; idata=iplane->data+y*(ptrdiff_t)ystride; y_end=_fragy_end<<3; width=iplane->width; height=iplane->height; for(;ystate.qis[frag->qii]; var=*variance; b=(x<=0)|(x+8>=width)<<1|(y<=0)<<2|(y+8>=height)<<3; if(strong&&var>sthresh){ oc_dering_block(idata+x,ystride,b, _dec->pp_dc_scale[qi],_dec->pp_sharp_mod[qi],1); if(_pli||!(b&1)&&*(variance-1)>(10*(384))|| !(b&2)&&variance[1]>(10*(384))|| !(b&4)&&*(variance-nhfrags)>(10*(384))|| !(b&8)&&variance[nhfrags]>(10*(384))){ oc_dering_block(idata+x,ystride,b, _dec->pp_dc_scale[qi],_dec->pp_sharp_mod[qi],1); oc_dering_block(idata+x,ystride,b, _dec->pp_dc_scale[qi],_dec->pp_sharp_mod[qi],1); } } else if(var>(4*(384))){ oc_dering_block(idata+x,ystride,b, _dec->pp_dc_scale[qi],_dec->pp_sharp_mod[qi],1); } else if(var>(384)){ oc_dering_block(idata+x,ystride,b, _dec->pp_dc_scale[qi],_dec->pp_sharp_mod[qi],0); } frag++; variance++; } idata+=ystride<<3; } } th_dec_ctx *th_decode_alloc(const th_info *_info,const th_setup_info *_setup){ oc_dec_ctx *dec; if(_info== # 1955 "decode.c" 3 4 ((void *)0) # 1955 "decode.c" ||_setup== # 1955 "decode.c" 3 4 ((void *)0) # 1955 "decode.c" )return # 1955 "decode.c" 3 4 ((void *)0) # 1955 "decode.c" ; dec= # 1956 "decode.c" 3 4 malloc # 1956 "decode.c" (sizeof(*dec)); if(dec== # 1957 "decode.c" 3 4 ((void *)0) # 1957 "decode.c" ||oc_dec_init(dec,_info,_setup)<0){ # 1958 "decode.c" 3 4 free # 1958 "decode.c" (dec); return # 1959 "decode.c" 3 4 ((void *)0) # 1959 "decode.c" ; } dec->state.curframe_num=0; return dec; } void th_decode_free(th_dec_ctx *_dec){ if(_dec!= # 1966 "decode.c" 3 4 ((void *)0) # 1966 "decode.c" ){ oc_dec_clear(_dec); # 1968 "decode.c" 3 4 free # 1968 "decode.c" (_dec); } } int th_decode_ctl(th_dec_ctx *_dec,int _req,void *_buf, size_t _buf_sz){ switch(_req){ case (1):{ if(_dec== # 1976 "decode.c" 3 4 ((void *)0) # 1976 "decode.c" ||_buf== # 1976 "decode.c" 3 4 ((void *)0) # 1976 "decode.c" )return (-1); if(_buf_sz!=sizeof(int))return (-10); (*(int *)_buf)=(7); return 0; }break; case (3):{ int pp_level; if(_dec== # 1983 "decode.c" 3 4 ((void *)0) # 1983 "decode.c" ||_buf== # 1983 "decode.c" 3 4 ((void *)0) # 1983 "decode.c" )return (-1); if(_buf_sz!=sizeof(int))return (-10); pp_level=*(int *)_buf; if(pp_level<0||pp_level>(7))return (-10); _dec->pp_level=pp_level; return 0; }break; case (5):{ ogg_int64_t granpos; if(_dec== # 1992 "decode.c" 3 4 ((void *)0) # 1992 "decode.c" ||_buf== # 1992 "decode.c" 3 4 ((void *)0) # 1992 "decode.c" )return (-1); if(_buf_sz!=sizeof(ogg_int64_t))return (-10); granpos=*(ogg_int64_t *)_buf; if(granpos<0)return (-10); _dec->state.granpos=granpos; _dec->state.keyframe_num=(granpos>>_dec->state.info.keyframe_granule_shift) -_dec->state.granpos_bias; _dec->state.curframe_num=_dec->state.keyframe_num +(granpos&(1<<_dec->state.info.keyframe_granule_shift)-1); return 0; }break; case (7):{ th_stripe_callback *cb; if(_dec== # 2005 "decode.c" 3 4 ((void *)0) # 2005 "decode.c" ||_buf== # 2005 "decode.c" 3 4 ((void *)0) # 2005 "decode.c" )return (-1); if(_buf_sz!=sizeof(th_stripe_callback))return (-10); cb=(th_stripe_callback *)_buf; _dec->stripe_cb.ctx=cb->ctx; _dec->stripe_cb.stripe_decoded=cb->stripe_decoded; return 0; }break; # 2042 "decode.c" default:return (-23); } } static void oc_dec_init_dummy_frame(th_dec_ctx *_dec){ th_info *info; size_t yplane_sz; size_t cplane_sz; int yhstride; int yheight; int chstride; int cheight; _dec->state.ref_frame_idx[(0)]=0; _dec->state.ref_frame_idx[(1)]=0; _dec->state.ref_frame_idx[(2)]=1; info=&_dec->state.info; yhstride=info->frame_width+2*(16); yheight=info->frame_height+2*(16); chstride=yhstride>>!(info->pixel_fmt&1); cheight=yheight>>!(info->pixel_fmt&2); yplane_sz=yhstride*(size_t)yheight; cplane_sz=chstride*(size_t)cheight; memset(_dec->state.ref_frame_data[0],0x80,yplane_sz+2*cplane_sz); } int th_decode_packetin(th_dec_ctx *_dec,const ogg_packet *_op, ogg_int64_t *_granpos){ int ret; if(_dec== # 2073 "decode.c" 3 4 ((void *)0) # 2073 "decode.c" ||_op== # 2073 "decode.c" 3 4 ((void *)0) # 2073 "decode.c" )return (-1); if(_op->bytes!=0){ oc_dec_pipeline_state pipe; th_ycbcr_buffer stripe_buf; int stripe_fragy; int refi; int pli; int notstart; int notdone; oc_pack_readinit(&_dec->opb,_op->packet,_op->bytes); ret=oc_dec_frame_header_unpack(_dec); if(ret<0)return ret; if(_dec->state.frame_type!=(0)&& (_dec->state.ref_frame_idx[(0)]<0|| _dec->state.ref_frame_idx[(1)]<0)){ oc_dec_init_dummy_frame(_dec); refi=_dec->state.ref_frame_idx[(2)]; } else{ for(refi=0;refi==_dec->state.ref_frame_idx[(0)]|| refi==_dec->state.ref_frame_idx[(1)];refi++); _dec->state.ref_frame_idx[(2)]=refi; } if(_dec->state.frame_type==(0)){ oc_dec_mark_all_intra(_dec); _dec->state.keyframe_num=_dec->state.curframe_num; } else{ oc_dec_coded_flags_unpack(_dec); oc_dec_mb_modes_unpack(_dec); oc_dec_mv_unpack_and_frag_modes_fill(_dec); } oc_dec_block_qis_unpack(_dec); oc_dec_residual_tokens_unpack(_dec); _dec->state.granpos=(_dec->state.keyframe_num+_dec->state.granpos_bias<< _dec->state.info.keyframe_granule_shift) +(_dec->state.curframe_num-_dec->state.keyframe_num); _dec->state.curframe_num++; if(_granpos!= # 2140 "decode.c" 3 4 ((void *)0) # 2140 "decode.c" )*_granpos=_dec->state.granpos; # 2163 "decode.c" oc_dec_pipeline_init(_dec,&pipe); oc_ycbcr_buffer_flip(stripe_buf,_dec->pp_frame_buf); notstart=0; notdone=1; for(stripe_fragy=0;notdone;stripe_fragy+=pipe.mcu_nvfrags){ int avail_fragy0; int avail_fragy_end; avail_fragy0=avail_fragy_end=_dec->state.fplanes[0].nvfrags; notdone=stripe_fragy+pipe.mcu_nvfragsstate.fplanes+pli; frag_shift=pli!=0&&!(_dec->state.info.pixel_fmt&2); pipe.fragy0[pli]=stripe_fragy>>frag_shift; pipe.fragy_end[pli]=((fplane->nvfrags)+((pipe.fragy0[pli]+(pipe.mcu_nvfrags>>frag_shift))-(fplane->nvfrags)&-((pipe.fragy0[pli]+(pipe.mcu_nvfrags>>frag_shift))<(fplane->nvfrags)))) ; oc_dec_dc_unpredict_mcu_plane(_dec,&pipe,pli); oc_dec_frags_recon_mcu_plane(_dec,&pipe,pli); sdelay=edelay=0; if(pipe.loop_filter){ sdelay+=notstart; edelay+=notdone; oc_state_loop_filter_frag_rows(&_dec->state,pipe.bounding_values, refi,pli,pipe.fragy0[pli]-sdelay,pipe.fragy_end[pli]-edelay); } oc_state_borders_fill_rows(&_dec->state,refi,pli, (pipe.fragy0[pli]-sdelay<<3)-(sdelay<<1), (pipe.fragy_end[pli]-edelay<<3)-(edelay<<1)); pp_offset=3*(pli!=0); if(pipe.pp_level>=(2)+pp_offset){ sdelay+=notstart; edelay+=notdone; oc_dec_deblock_frag_rows(_dec,_dec->pp_frame_buf, _dec->state.ref_frame_bufs[refi],pli, pipe.fragy0[pli]-sdelay,pipe.fragy_end[pli]-edelay); if(pipe.pp_level>=(3)+pp_offset){ sdelay+=notstart; edelay+=notdone; oc_dec_dering_frag_rows(_dec,_dec->pp_frame_buf,pli, pipe.fragy0[pli]-sdelay,pipe.fragy_end[pli]-edelay); } } else if(pipe.loop_filter){ sdelay+=notstart; edelay+=notdone; } avail_fragy0=((avail_fragy0)+((pipe.fragy0[pli]-sdelay<stripe_cb.stripe_decoded!= # 2233 "decode.c" 3 4 ((void *)0) # 2233 "decode.c" ){ oc_restore_fpu(&_dec->state); (*_dec->stripe_cb.stripe_decoded)(_dec->stripe_cb.ctx,stripe_buf, _dec->state.fplanes[0].nvfrags-avail_fragy_end, _dec->state.fplanes[0].nvfrags-avail_fragy0); } notstart=1; } for(pli=0;pli<3;pli++)oc_state_borders_fill_caps(&_dec->state,refi,pli); if(_dec->state.frame_type==(0)){ _dec->state.ref_frame_idx[(0)]= _dec->state.ref_frame_idx[(1)]= _dec->state.ref_frame_idx[(2)]; } else{ _dec->state.ref_frame_idx[(1)]= _dec->state.ref_frame_idx[(2)]; } oc_restore_fpu(&_dec->state); return 0; } else{ if(_dec->state.ref_frame_idx[(0)]<0|| _dec->state.ref_frame_idx[(1)]<0){ int refi; oc_dec_init_dummy_frame(_dec); refi=_dec->state.ref_frame_idx[(1)]; _dec->state.ref_frame_idx[(2)]=refi; memcpy(_dec->pp_frame_buf,_dec->state.ref_frame_bufs[refi], sizeof(_dec->pp_frame_buf[0])*3); } _dec->state.granpos=(_dec->state.keyframe_num+_dec->state.granpos_bias<< _dec->state.info.keyframe_granule_shift) +(_dec->state.curframe_num-_dec->state.keyframe_num); _dec->state.curframe_num++; if(_granpos!= # 2286 "decode.c" 3 4 ((void *)0) # 2286 "decode.c" )*_granpos=_dec->state.granpos; return (1); } } int th_decode_ycbcr_out(th_dec_ctx *_dec,th_ycbcr_buffer _ycbcr){ if(_dec== # 2292 "decode.c" 3 4 ((void *)0) # 2292 "decode.c" ||_ycbcr== # 2292 "decode.c" 3 4 ((void *)0) # 2292 "decode.c" )return (-1); oc_ycbcr_buffer_flip(_ycbcr,_dec->pp_frame_buf); # 2942 "decode.c" return 0; }