Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 209078 Details for
Bug 291614
[3.4/ICE] media-sound/wavpack-4.50.1-r1 extra2.c:320: internal compiler error: in trunc_int_for_mode, at explow.c:54
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
Preprocessed source
cceaJKj7.out (text/plain), 133.44 KB, created by
Gustavo Arzola
on 2009-11-02 18:44:48 UTC
(
hide
)
Description:
Preprocessed source
Filename:
MIME Type:
Creator:
Gustavo Arzola
Created:
2009-11-02 18:44:48 UTC
Size:
133.44 KB
patch
obsolete
>// /usr/libexec/gcc/x86_64-pc-linux-gnu/3.4.6/cc1 -quiet -I. -MD .libs/libwavpack_la-extra2.d -MF .deps/libwavpack_la-extra2.Tpo -MP -MT libwavpack_la-extra2.lo -MQ .libs/libwavpack_la-extra2.o -DPACKAGE_NAME="wavpack" -DPACKAGE_TARNAME="wavpack" -DPACKAGE_VERSION="4.50.1" -DPACKAGE_STRING="wavpack 4.50.1" -DPACKAGE_BUGREPORT="bryant@wavpack.com" -DLIBWAVPACK_MAJOR=4 -DLIBWAVPACK_MINOR=50 -DLIBWAVPACK_MICRO=1 -DLIBWAVPACK_VERSION_STRING="4.50.1" -DVERSION_OS="Linux" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DOPT_MMX=1 -DPIC extra2.c -fstack-protector -fstack-protector-all -quiet -dumpbase extra2.c -mmmx -march=nocona -auxbase-strip .libs/libwavpack_la-extra2.o -O2 -fforce-addr -fPIC -o - -frandom-seed=0 ># 1 "extra2.c" ># 1 "<built-in>" ># 1 "<command line>" ># 1 "extra2.c" ># 14 "extra2.c" ># 1 "wavpack_local.h" 1 ># 26 "wavpack_local.h" ># 1 "/usr/include/sys/types.h" 1 3 4 ># 27 "/usr/include/sys/types.h" 3 4 ># 1 "/usr/include/features.h" 1 3 4 ># 330 "/usr/include/features.h" 3 4 ># 1 "/usr/include/sys/cdefs.h" 1 3 4 ># 348 "/usr/include/sys/cdefs.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 349 "/usr/include/sys/cdefs.h" 2 3 4 ># 331 "/usr/include/features.h" 2 3 4 ># 354 "/usr/include/features.h" 3 4 ># 1 "/usr/include/gnu/stubs.h" 1 3 4 > > > ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 5 "/usr/include/gnu/stubs.h" 2 3 4 > > > > ># 1 "/usr/include/gnu/stubs-64.h" 1 3 4 ># 10 "/usr/include/gnu/stubs.h" 2 3 4 ># 355 "/usr/include/features.h" 2 3 4 ># 28 "/usr/include/sys/types.h" 2 3 4 > > > ># 1 "/usr/include/bits/types.h" 1 3 4 ># 28 "/usr/include/bits/types.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 29 "/usr/include/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; ># 131 "/usr/include/bits/types.h" 3 4 ># 1 "/usr/include/bits/typesizes.h" 1 3 4 ># 132 "/usr/include/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 long int __swblk_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 __ssize_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; ># 32 "/usr/include/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; ># 62 "/usr/include/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; ># 100 "/usr/include/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; ># 133 "/usr/include/sys/types.h" 3 4 ># 1 "/usr/include/time.h" 1 3 4 ># 75 "/usr/include/time.h" 3 4 > > >typedef __time_t time_t; > > > ># 93 "/usr/include/time.h" 3 4 >typedef __clockid_t clockid_t; ># 105 "/usr/include/time.h" 3 4 >typedef __timer_t timer_t; ># 134 "/usr/include/sys/types.h" 2 3 4 ># 147 "/usr/include/sys/types.h" 3 4 ># 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/include/stddef.h" 1 3 4 ># 213 "/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/include/stddef.h" 3 4 >typedef long unsigned int size_t; ># 148 "/usr/include/sys/types.h" 2 3 4 > > > >typedef unsigned long int ulong; >typedef unsigned short int ushort; >typedef unsigned int uint; ># 195 "/usr/include/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__))); ># 217 "/usr/include/sys/types.h" 3 4 ># 1 "/usr/include/endian.h" 1 3 4 ># 37 "/usr/include/endian.h" 3 4 ># 1 "/usr/include/bits/endian.h" 1 3 4 ># 38 "/usr/include/endian.h" 2 3 4 ># 61 "/usr/include/endian.h" 3 4 ># 1 "/usr/include/bits/byteswap.h" 1 3 4 ># 28 "/usr/include/bits/byteswap.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 29 "/usr/include/bits/byteswap.h" 2 3 4 ># 62 "/usr/include/endian.h" 2 3 4 ># 218 "/usr/include/sys/types.h" 2 3 4 > > ># 1 "/usr/include/sys/select.h" 1 3 4 ># 31 "/usr/include/sys/select.h" 3 4 ># 1 "/usr/include/bits/select.h" 1 3 4 ># 32 "/usr/include/sys/select.h" 2 3 4 > > ># 1 "/usr/include/bits/sigset.h" 1 3 4 ># 24 "/usr/include/bits/sigset.h" 3 4 >typedef int __sig_atomic_t; > > > > >typedef struct > { > unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; > } __sigset_t; ># 35 "/usr/include/sys/select.h" 2 3 4 > > > >typedef __sigset_t sigset_t; > > > > > ># 1 "/usr/include/time.h" 1 3 4 ># 121 "/usr/include/time.h" 3 4 >struct timespec > { > __time_t tv_sec; > long int tv_nsec; > }; ># 45 "/usr/include/sys/select.h" 2 3 4 > ># 1 "/usr/include/bits/time.h" 1 3 4 ># 69 "/usr/include/bits/time.h" 3 4 >struct timeval > { > __time_t tv_sec; > __suseconds_t tv_usec; > }; ># 47 "/usr/include/sys/select.h" 2 3 4 > > >typedef __suseconds_t suseconds_t; > > > > > >typedef long int __fd_mask; ># 67 "/usr/include/sys/select.h" 3 4 >typedef struct > { > > > > > > > __fd_mask __fds_bits[1024 / (8 * sizeof (__fd_mask))]; > > > } fd_set; > > > > > > >typedef __fd_mask fd_mask; ># 99 "/usr/include/sys/select.h" 3 4 > ># 109 "/usr/include/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); ># 121 "/usr/include/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); > > > ># 221 "/usr/include/sys/types.h" 2 3 4 > > ># 1 "/usr/include/sys/sysmacros.h" 1 3 4 ># 30 "/usr/include/sys/sysmacros.h" 3 4 >__extension__ >extern unsigned int gnu_dev_major (unsigned long long int __dev) > __attribute__ ((__nothrow__)); >__extension__ >extern unsigned int gnu_dev_minor (unsigned long long int __dev) > __attribute__ ((__nothrow__)); >__extension__ >extern unsigned long long int gnu_dev_makedev (unsigned int __major, > unsigned int __minor) > __attribute__ ((__nothrow__)); > > >__extension__ extern __inline unsigned int >__attribute__ ((__nothrow__)) gnu_dev_major (unsigned long long int __dev) >{ > return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); >} > >__extension__ extern __inline unsigned int >__attribute__ ((__nothrow__)) gnu_dev_minor (unsigned long long int __dev) >{ > return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); >} > >__extension__ extern __inline unsigned long long int >__attribute__ ((__nothrow__)) 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)); >} ># 224 "/usr/include/sys/types.h" 2 3 4 ># 235 "/usr/include/sys/types.h" 3 4 >typedef __blkcnt_t blkcnt_t; > > > >typedef __fsblkcnt_t fsblkcnt_t; > > > >typedef __fsfilcnt_t fsfilcnt_t; ># 270 "/usr/include/sys/types.h" 3 4 ># 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 ># 23 "/usr/include/bits/pthreadtypes.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 24 "/usr/include/bits/pthreadtypes.h" 2 3 4 ># 50 "/usr/include/bits/pthreadtypes.h" 3 4 >typedef unsigned long int pthread_t; > > >typedef union >{ > char __size[56]; > long int __align; >} pthread_attr_t; > > > >typedef struct __pthread_internal_list >{ > struct __pthread_internal_list *__prev; > struct __pthread_internal_list *__next; >} __pthread_list_t; ># 76 "/usr/include/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; ># 101 "/usr/include/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; ># 187 "/usr/include/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/sys/types.h" 2 3 4 > > > ># 27 "wavpack_local.h" 2 ># 42 "wavpack_local.h" ># 1 "/usr/include/inttypes.h" 1 3 4 ># 28 "/usr/include/inttypes.h" 3 4 ># 1 "/usr/include/stdint.h" 1 3 4 ># 27 "/usr/include/stdint.h" 3 4 ># 1 "/usr/include/bits/wchar.h" 1 3 4 ># 28 "/usr/include/stdint.h" 2 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 29 "/usr/include/stdint.h" 2 3 4 ># 49 "/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; ># 66 "/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; ># 91 "/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; ># 104 "/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; ># 120 "/usr/include/stdint.h" 3 4 >typedef long int intptr_t; > > >typedef unsigned long int uintptr_t; ># 135 "/usr/include/stdint.h" 3 4 >typedef long int intmax_t; >typedef unsigned long int uintmax_t; ># 29 "/usr/include/inttypes.h" 2 3 4 > > > > > > >typedef int __gwchar_t; ># 274 "/usr/include/inttypes.h" 3 4 > > > > > >typedef struct > { > long int quot; > long int rem; > } imaxdiv_t; ># 298 "/usr/include/inttypes.h" 3 4 >extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom) > __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern intmax_t strtoimax (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)); > > >extern uintmax_t strtoumax (__const char *__restrict __nptr, > char ** __restrict __endptr, int __base) __attribute__ ((__nothrow__)); > > >extern intmax_t wcstoimax (__const __gwchar_t *__restrict __nptr, > __gwchar_t **__restrict __endptr, int __base) > __attribute__ ((__nothrow__)); > > >extern uintmax_t wcstoumax (__const __gwchar_t *__restrict __nptr, > __gwchar_t ** __restrict __endptr, int __base) > __attribute__ ((__nothrow__)); > > > > > >extern long int __strtol_internal (__const char *__restrict __nptr, > char **__restrict __endptr, > int __base, int __group) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > >extern __inline intmax_t >__attribute__ ((__nothrow__)) 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__)) __attribute__ ((__nonnull__ (1))) ; > >extern __inline uintmax_t >__attribute__ ((__nothrow__)) 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__)) __attribute__ ((__nonnull__ (1))) ; > >extern __inline intmax_t >__attribute__ ((__nothrow__)) 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__)) __attribute__ ((__nonnull__ (1))) ; > >extern __inline uintmax_t >__attribute__ ((__nothrow__)) wcstoumax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) > >{ > return __wcstoul_internal (nptr, endptr, base, 0); >} ># 442 "/usr/include/inttypes.h" 3 4 > ># 43 "wavpack_local.h" 2 > > >typedef unsigned char uchar; ># 61 "wavpack_local.h" >typedef int32_t f32; ># 71 "wavpack_local.h" ># 1 "/usr/include/stdio.h" 1 3 4 ># 30 "/usr/include/stdio.h" 3 4 > > > > ># 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/include/stddef.h" 1 3 4 ># 35 "/usr/include/stdio.h" 2 3 4 ># 45 "/usr/include/stdio.h" 3 4 >struct _IO_FILE; > > > >typedef struct _IO_FILE FILE; > > > > > ># 65 "/usr/include/stdio.h" 3 4 >typedef struct _IO_FILE __FILE; ># 75 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/libio.h" 1 3 4 ># 32 "/usr/include/libio.h" 3 4 ># 1 "/usr/include/_G_config.h" 1 3 4 ># 15 "/usr/include/_G_config.h" 3 4 ># 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/include/stddef.h" 1 3 4 ># 16 "/usr/include/_G_config.h" 2 3 4 > > > > ># 1 "/usr/include/wchar.h" 1 3 4 ># 78 "/usr/include/wchar.h" 3 4 >typedef struct >{ > int __count; > union > { > > unsigned int __wch; > > > > char __wchb[4]; > } __value; >} __mbstate_t; ># 21 "/usr/include/_G_config.h" 2 3 4 > >typedef struct >{ > __off_t __pos; > __mbstate_t __state; >} _G_fpos_t; >typedef struct >{ > __off64_t __pos; > __mbstate_t __state; >} _G_fpos64_t; ># 53 "/usr/include/_G_config.h" 3 4 >typedef int _G_int16_t __attribute__ ((__mode__ (__HI__))); >typedef int _G_int32_t __attribute__ ((__mode__ (__SI__))); >typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__))); >typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__))); ># 33 "/usr/include/libio.h" 2 3 4 ># 53 "/usr/include/libio.h" 3 4 ># 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/include/stdarg.h" 1 3 4 ># 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/include/stdarg.h" 3 4 >typedef __builtin_va_list __gnuc_va_list; ># 54 "/usr/include/libio.h" 2 3 4 ># 170 "/usr/include/libio.h" 3 4 >struct _IO_jump_t; struct _IO_FILE; ># 180 "/usr/include/libio.h" 3 4 >typedef void _IO_lock_t; > > > > > >struct _IO_marker { > struct _IO_marker *_next; > struct _IO_FILE *_sbuf; > > > > int _pos; ># 203 "/usr/include/libio.h" 3 4 >}; > > >enum __codecvt_result >{ > __codecvt_ok, > __codecvt_partial, > __codecvt_error, > __codecvt_noconv >}; ># 271 "/usr/include/libio.h" 3 4 >struct _IO_FILE { > int _flags; > > > > > char* _IO_read_ptr; > char* _IO_read_end; > char* _IO_read_base; > char* _IO_write_base; > char* _IO_write_ptr; > char* _IO_write_end; > char* _IO_buf_base; > char* _IO_buf_end; > > char *_IO_save_base; > char *_IO_backup_base; > char *_IO_save_end; > > struct _IO_marker *_markers; > > struct _IO_FILE *_chain; > > int _fileno; > > > > int _flags2; > > __off_t _old_offset; > > > > unsigned short _cur_column; > signed char _vtable_offset; > char _shortbuf[1]; > > > > _IO_lock_t *_lock; ># 319 "/usr/include/libio.h" 3 4 > __off64_t _offset; ># 328 "/usr/include/libio.h" 3 4 > void *__pad1; > void *__pad2; > void *__pad3; > void *__pad4; > size_t __pad5; > > int _mode; > > char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; > >}; > > >typedef struct _IO_FILE _IO_FILE; > > >struct _IO_FILE_plus; > >extern struct _IO_FILE_plus _IO_2_1_stdin_; >extern struct _IO_FILE_plus _IO_2_1_stdout_; >extern struct _IO_FILE_plus _IO_2_1_stderr_; ># 364 "/usr/include/libio.h" 3 4 >typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); > > > > > > > >typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf, > size_t __n); > > > > > > > >typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w); > > >typedef int __io_close_fn (void *__cookie); ># 416 "/usr/include/libio.h" 3 4 >extern int __underflow (_IO_FILE *); >extern int __uflow (_IO_FILE *); >extern int __overflow (_IO_FILE *, int); ># 458 "/usr/include/libio.h" 3 4 >extern int _IO_getc (_IO_FILE *__fp); >extern int _IO_putc (int __c, _IO_FILE *__fp); >extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__)); >extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__)); > >extern int _IO_peekc_locked (_IO_FILE *__fp); > > > > > >extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__)); >extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__)); >extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__)); ># 488 "/usr/include/libio.h" 3 4 >extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, > __gnuc_va_list, int *__restrict); >extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, > __gnuc_va_list); >extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t); >extern size_t _IO_sgetn (_IO_FILE *, void *, size_t); > >extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int); >extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int); > >extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__)); ># 76 "/usr/include/stdio.h" 2 3 4 ># 89 "/usr/include/stdio.h" 3 4 > > >typedef _G_fpos_t fpos_t; > > > > ># 141 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/bits/stdio_lim.h" 1 3 4 ># 142 "/usr/include/stdio.h" 2 3 4 > > > >extern struct _IO_FILE *stdin; >extern struct _IO_FILE *stdout; >extern struct _IO_FILE *stderr; > > > > > > > >extern int remove (__const char *__filename) __attribute__ ((__nothrow__)); > >extern int rename (__const char *__old, __const char *__new) __attribute__ ((__nothrow__)); > > > > > > > > > > > > > > >extern FILE *tmpfile (void) ; ># 186 "/usr/include/stdio.h" 3 4 >extern char *tmpnam (char *__s) __attribute__ ((__nothrow__)) ; > > > > > >extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__)) ; ># 204 "/usr/include/stdio.h" 3 4 >extern char *tempnam (__const char *__dir, __const char *__pfx) > __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; > > > > > > > > >extern int fclose (FILE *__stream); > > > > >extern int fflush (FILE *__stream); > ># 229 "/usr/include/stdio.h" 3 4 >extern int fflush_unlocked (FILE *__stream); ># 243 "/usr/include/stdio.h" 3 4 > > > > > > >extern FILE *fopen (__const char *__restrict __filename, > __const char *__restrict __modes) ; > > > > >extern FILE *freopen (__const char *__restrict __filename, > __const char *__restrict __modes, > FILE *__restrict __stream) ; ># 272 "/usr/include/stdio.h" 3 4 > ># 283 "/usr/include/stdio.h" 3 4 >extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__)) ; ># 304 "/usr/include/stdio.h" 3 4 > > > >extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__)); > > > >extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, > int __modes, size_t __n) __attribute__ ((__nothrow__)); > > > > > >extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, > size_t __size) __attribute__ ((__nothrow__)); > > >extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__)); > > > > > > > > >extern int fprintf (FILE *__restrict __stream, > __const char *__restrict __format, ...); > > > > >extern int printf (__const char *__restrict __format, ...); > >extern int sprintf (char *__restrict __s, > __const char *__restrict __format, ...) __attribute__ ((__nothrow__)); > > > > > >extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format, > __gnuc_va_list __arg); > > > > >extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg); > >extern int vsprintf (char *__restrict __s, __const char *__restrict __format, > __gnuc_va_list __arg) __attribute__ ((__nothrow__)); > > > > > >extern int snprintf (char *__restrict __s, size_t __maxlen, > __const char *__restrict __format, ...) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4))); > >extern int vsnprintf (char *__restrict __s, size_t __maxlen, > __const char *__restrict __format, __gnuc_va_list __arg) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0))); > ># 398 "/usr/include/stdio.h" 3 4 > > > > > >extern int fscanf (FILE *__restrict __stream, > __const char *__restrict __format, ...) ; > > > > >extern int scanf (__const char *__restrict __format, ...) ; > >extern int sscanf (__const char *__restrict __s, > __const char *__restrict __format, ...) __attribute__ ((__nothrow__)); ># 441 "/usr/include/stdio.h" 3 4 > ># 504 "/usr/include/stdio.h" 3 4 > > > > > >extern int fgetc (FILE *__stream); >extern int getc (FILE *__stream); > > > > > >extern int getchar (void); > ># 528 "/usr/include/stdio.h" 3 4 >extern int getc_unlocked (FILE *__stream); >extern int getchar_unlocked (void); ># 539 "/usr/include/stdio.h" 3 4 >extern int fgetc_unlocked (FILE *__stream); > > > > > > > > > > > >extern int fputc (int __c, FILE *__stream); >extern int putc (int __c, FILE *__stream); > > > > > >extern int putchar (int __c); > ># 572 "/usr/include/stdio.h" 3 4 >extern int fputc_unlocked (int __c, FILE *__stream); > > > > > > > >extern int putc_unlocked (int __c, FILE *__stream); >extern int putchar_unlocked (int __c); > > > > > > >extern int getw (FILE *__stream); > > >extern int putw (int __w, FILE *__stream); > > > > > > > > >extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) > ; > > > > > > >extern char *gets (char *__s) ; > ># 653 "/usr/include/stdio.h" 3 4 > > > > > >extern int fputs (__const char *__restrict __s, FILE *__restrict __stream); > > > > > >extern int puts (__const char *__s); > > > > > > >extern int ungetc (int __c, FILE *__stream); > > > > > > >extern size_t fread (void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream) ; > > > > >extern size_t fwrite (__const void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __s) ; > ># 706 "/usr/include/stdio.h" 3 4 >extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream) ; >extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream) ; > > > > > > > > >extern int fseek (FILE *__stream, long int __off, int __whence); > > > > >extern long int ftell (FILE *__stream) ; > > > > >extern void rewind (FILE *__stream); > ># 742 "/usr/include/stdio.h" 3 4 >extern int fseeko (FILE *__stream, __off_t __off, int __whence); > > > > >extern __off_t ftello (FILE *__stream) ; ># 761 "/usr/include/stdio.h" 3 4 > > > > > > >extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); > > > > >extern int fsetpos (FILE *__stream, __const fpos_t *__pos); ># 784 "/usr/include/stdio.h" 3 4 > ># 793 "/usr/include/stdio.h" 3 4 > > >extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__)); > >extern int feof (FILE *__stream) __attribute__ ((__nothrow__)) ; > >extern int ferror (FILE *__stream) __attribute__ ((__nothrow__)) ; > > > > >extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__)); >extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ; >extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ; > > > > > > > > >extern void perror (__const char *__s); > > > > > > ># 1 "/usr/include/bits/sys_errlist.h" 1 3 4 ># 27 "/usr/include/bits/sys_errlist.h" 3 4 >extern int sys_nerr; >extern __const char *__const sys_errlist[]; ># 823 "/usr/include/stdio.h" 2 3 4 > > > > >extern int fileno (FILE *__stream) __attribute__ ((__nothrow__)) ; > > > > >extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ; ># 842 "/usr/include/stdio.h" 3 4 >extern FILE *popen (__const char *__command, __const char *__modes) ; > > > > > >extern int pclose (FILE *__stream); > > > > > >extern char *ctermid (char *__s) __attribute__ ((__nothrow__)); ># 882 "/usr/include/stdio.h" 3 4 >extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__)); > > > >extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__)) ; > > >extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__)); ># 903 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/bits/stdio.h" 1 3 4 ># 36 "/usr/include/bits/stdio.h" 3 4 >extern __inline int >vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg) >{ > return vfprintf (stdout, __fmt, __arg); >} > > > >extern __inline int >getchar (void) >{ > return _IO_getc (stdin); >} > > > > >extern __inline int >fgetc_unlocked (FILE *__fp) >{ > return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); >} > > > > > >extern __inline int >getc_unlocked (FILE *__fp) >{ > return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); >} > > >extern __inline int >getchar_unlocked (void) >{ > return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); >} > > > > >extern __inline int >putchar (int __c) >{ > return _IO_putc (__c, stdout); >} > > > > >extern __inline int >fputc_unlocked (int __c, FILE *__stream) >{ > return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); >} > > > > > >extern __inline int >putc_unlocked (int __c, FILE *__stream) >{ > return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); >} > > >extern __inline int >putchar_unlocked (int __c) >{ > return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); >} ># 125 "/usr/include/bits/stdio.h" 3 4 >extern __inline int >__attribute__ ((__nothrow__)) feof_unlocked (FILE *__stream) >{ > return (((__stream)->_flags & 0x10) != 0); >} > > >extern __inline int >__attribute__ ((__nothrow__)) ferror_unlocked (FILE *__stream) >{ > return (((__stream)->_flags & 0x20) != 0); >} ># 904 "/usr/include/stdio.h" 2 3 4 ># 912 "/usr/include/stdio.h" 3 4 > ># 72 "wavpack_local.h" 2 > > > > > > >typedef struct { > char tag_id [3], title [30], artist [30], album [30]; > char year [4], comment [30], genre; >} ID3_Tag; > >typedef struct { > char ID [8]; > int32_t version, length, item_count, flags; > char res [8]; >} APE_Tag_Hdr; > > > >typedef struct { > int32_t tag_file_pos; > ID3_Tag id3_tag; > APE_Tag_Hdr ape_tag_hdr; > unsigned char *ape_tag_data; >} M_Tag; > > > > >typedef struct { > char ckID [4]; > uint32_t ckSize; > char formType [4]; >} RiffChunkHeader; > >typedef struct { > char ckID [4]; > uint32_t ckSize; >} ChunkHeader; > > > >typedef struct { > ushort FormatTag, NumChannels; > uint32_t SampleRate, BytesPerSecond; > ushort BlockAlign, BitsPerSample; > ushort cbSize, ValidBitsPerSample; > int32_t ChannelMask; > ushort SubFormat; > char GUID [14]; >} WaveHeader; ># 132 "wavpack_local.h" >typedef struct { > char ckID [4]; > uint32_t ckSize; > short version; > uchar track_no, index_no; > uint32_t total_samples, block_index, block_samples, flags, crc; >} WavpackHeader; ># 186 "wavpack_local.h" >typedef struct { > int32_t byte_length; > void *data; > uchar id; >} WavpackMetadata; ># 226 "wavpack_local.h" >typedef struct { > float bitrate, shaping_weight; > int bits_per_sample, bytes_per_sample; > int qmode, flags, xmode, num_channels, float_norm_exp; > int32_t block_samples, extra_flags, sample_rate, channel_mask; > uchar md5_checksum [16], md5_read; > int num_tag_strings; > char **tag_strings; >} WavpackConfig; ># 302 "wavpack_local.h" >typedef struct bs { > > > > unsigned char *buf, *end, *ptr; > > void (*wrap)(struct bs *bs); > int error, bc; > uint32_t sr; >} Bitstream; > > > > > > >struct decorr_pass { > int term, delta, weight_A, weight_B; > int32_t samples_A [8], samples_B [8]; > int32_t aweight_A, aweight_B; > int32_t sum_A, sum_B; >}; > >typedef struct { > char joint_stereo, delta, terms [16 +1]; >} WavpackDecorrSpec; > >struct entropy_data { > uint32_t median [3], slow_level, error_limit; >}; > >struct words_data { > uint32_t bitrate_delta [2], bitrate_acc [2]; > uint32_t pend_data, holding_one, zeros_acc; > int holding_zero, pend_count; > struct entropy_data c [2]; >}; > >typedef struct { > WavpackHeader wphdr; > struct words_data w; > > uchar *blockbuff, *blockend; > uchar *block2buff, *block2end; > int32_t *sample_buffer; > > int bits, num_terms, mute_error, joint_stereo, false_stereo, shift; > int num_decorrs, num_passes, best_decorr, mask_decorr; > uint32_t sample_index, crc, crc_x, crc_wvx; > Bitstream wvbits, wvcbits, wvxbits; > int init_done, wvc_skip; > float delta_decay; > > uchar int32_sent_bits, int32_zeros, int32_ones, int32_dups; > uchar float_flags, float_shift, float_max_exp, float_norm_exp; > > struct { > int32_t shaping_acc [2], shaping_delta [2], error [2]; > double noise_sum, noise_ave, noise_max; > short *shaping_data, *shaping_array; > int32_t shaping_samples; > } dc; > > struct decorr_pass decorr_passes [16], analysis_pass; > const WavpackDecorrSpec *decorr_specs; >} WavpackStream; ># 384 "wavpack_local.h" >typedef struct { > int32_t (*read_bytes)(void *id, void *data, int32_t bcount); > uint32_t (*get_pos)(void *id); > int (*set_pos_abs)(void *id, uint32_t pos); > int (*set_pos_rel)(void *id, int32_t delta, int mode); > int (*push_back_byte)(void *id, int c); > uint32_t (*get_length)(void *id); > int (*can_seek)(void *id); > > > int32_t (*write_bytes)(void *id, void *data, int32_t bcount); >} WavpackStreamReader; > >typedef int (*WavpackBlockOutput)(void *id, void *data, int32_t bcount); > >typedef struct { > WavpackConfig config; > > WavpackMetadata *metadata; > uint32_t metabytes; > int metacount; > > uchar *wrapper_data; > uint32_t wrapper_bytes; > > WavpackBlockOutput blockout; > void *wv_out, *wvc_out; > > WavpackStreamReader *reader; > void *wv_in, *wvc_in; > > uint32_t filelen, file2len, filepos, file2pos, total_samples, crc_errors, first_flags; > int wvc_flag, open_flags, norm_offset, reduced_channels, lossy_blocks, close_files; > uint32_t block_samples, ave_block_samples, block_boundary, max_samples, acc_samples, initial_index; > int riff_header_added, riff_header_created; > M_Tag m_tag; > > int current_stream, num_streams, stream_version; > WavpackStream *streams [8]; > void *stream3; > > char error_message [80]; >} WavpackContext; ># 477 "wavpack_local.h" >void bs_open_read (Bitstream *bs, void *buffer_start, void *buffer_end); >void bs_open_write (Bitstream *bs, void *buffer_start, void *buffer_end); >uint32_t bs_close_read (Bitstream *bs); >uint32_t bs_close_write (Bitstream *bs); > >int DoReadFile (FILE *hFile, void *lpBuffer, uint32_t nNumberOfBytesToRead, uint32_t *lpNumberOfBytesRead); >int DoWriteFile (FILE *hFile, void *lpBuffer, uint32_t nNumberOfBytesToWrite, uint32_t *lpNumberOfBytesWritten); >uint32_t DoGetFileSize (FILE *hFile), DoGetFilePosition (FILE *hFile); >int DoSetFilePositionRelative (FILE *hFile, int32_t pos, int mode); >int DoSetFilePositionAbsolute (FILE *hFile, uint32_t pos); >int DoUngetc (int c, FILE *hFile), DoDeleteFile (char *filename); >int DoCloseHandle (FILE *hFile), DoTruncateFile (FILE *hFile); ># 551 "wavpack_local.h" >void little_endian_to_native (void *data, char *format); >void native_to_little_endian (void *data, char *format); > > > >void pack_init (WavpackContext *wpc); >int pack_block (WavpackContext *wpc, int32_t *buffer); >double WavpackGetEncodedNoise (WavpackContext *wpc, double *peak); > > > >int unpack_init (WavpackContext *wpc); >int init_wv_bitstream (WavpackStream *wps, WavpackMetadata *wpmd); >int init_wvc_bitstream (WavpackStream *wps, WavpackMetadata *wpmd); >int init_wvx_bitstream (WavpackStream *wps, WavpackMetadata *wpmd); >int read_decorr_terms (WavpackStream *wps, WavpackMetadata *wpmd); >int read_decorr_weights (WavpackStream *wps, WavpackMetadata *wpmd); >int read_decorr_samples (WavpackStream *wps, WavpackMetadata *wpmd); >int read_shaping_info (WavpackStream *wps, WavpackMetadata *wpmd); >int read_float_info (WavpackStream *wps, WavpackMetadata *wpmd); >int read_int32_info (WavpackStream *wps, WavpackMetadata *wpmd); >int read_channel_info (WavpackContext *wpc, WavpackMetadata *wpmd); >int read_config_info (WavpackContext *wpc, WavpackMetadata *wpmd); >int read_sample_rate (WavpackContext *wpc, WavpackMetadata *wpmd); >int read_wrapper_data (WavpackContext *wpc, WavpackMetadata *wpmd); >int32_t unpack_samples (WavpackContext *wpc, int32_t *buffer, uint32_t sample_count); >int check_crc_error (WavpackContext *wpc); > > > >WavpackContext *open_file3 (WavpackContext *wpc, char *error); >int32_t unpack_samples3 (WavpackContext *wpc, int32_t *buffer, uint32_t sample_count); >int seek_sample3 (WavpackContext *wpc, uint32_t desired_index); >uint32_t get_sample_index3 (WavpackContext *wpc); >void free_stream3 (WavpackContext *wpc); >int get_version3 (WavpackContext *wpc); > > > >int read_metadata_buff (WavpackMetadata *wpmd, uchar *blockbuff, uchar **buffptr); >int write_metadata_block (WavpackContext *wpc); >int copy_metadata (WavpackMetadata *wpmd, uchar *buffer_start, uchar *buffer_end); >int add_to_metadata (WavpackContext *wpc, void *data, uint32_t bcount, uchar id); >int process_metadata (WavpackContext *wpc, WavpackMetadata *wpmd); >void free_metadata (WavpackMetadata *wpmd); > > > >void init_words (WavpackStream *wps); >void word_set_bitrate (WavpackStream *wps); >void write_entropy_vars (WavpackStream *wps, WavpackMetadata *wpmd); >void write_hybrid_profile (WavpackStream *wps, WavpackMetadata *wpmd); >int read_entropy_vars (WavpackStream *wps, WavpackMetadata *wpmd); >int read_hybrid_profile (WavpackStream *wps, WavpackMetadata *wpmd); >int32_t send_word (WavpackStream *wps, int32_t value, int chan); >void send_words_lossless (WavpackStream *wps, int32_t *buffer, int32_t nsamples); >int32_t get_word (WavpackStream *wps, int chan, int32_t *correction); >int32_t get_words_lossless (WavpackStream *wps, int32_t *buffer, int32_t nsamples); >void flush_word (WavpackStream *wps); >int32_t nosend_word (WavpackStream *wps, int32_t value, int chan); >void scan_word (WavpackStream *wps, int32_t *samples, uint32_t num_samples, int dir); > >int log2s (int32_t value); >int32_t exp2s (int log); >uint32_t log2buffer (int32_t *samples, uint32_t num_samples, int limit); > >signed char store_weight (int weight); >int restore_weight (signed char weight); > > > > > >void write_float_info (WavpackStream *wps, WavpackMetadata *wpmd); >int scan_float_data (WavpackStream *wps, f32 *values, int32_t num_values); >void send_float_data (WavpackStream *wps, f32 *values, int32_t num_values); >int read_float_info (WavpackStream *wps, WavpackMetadata *wpmd); >void float_values (WavpackStream *wps, int32_t *values, int32_t num_values); >void WavpackFloatNormalize (int32_t *values, int32_t num_values, int delta_exp); > > > > > >void execute_stereo (WavpackContext *wpc, int32_t *samples, int no_history, int do_samples); >void execute_mono (WavpackContext *wpc, int32_t *samples, int no_history, int do_samples); > > > >WavpackContext *WavpackOpenFileInputEx (WavpackStreamReader *reader, void *wv_id, void *wvc_id, char *error, int flags, int norm_offset); >WavpackContext *WavpackOpenFileInput (const char *infilename, char *error, int flags, int norm_offset); ># 652 "wavpack_local.h" >int WavpackGetMode (WavpackContext *wpc); ># 669 "wavpack_local.h" >char *WavpackGetErrorMessage (WavpackContext *wpc); >int WavpackGetVersion (WavpackContext *wpc); >uint32_t WavpackUnpackSamples (WavpackContext *wpc, int32_t *buffer, uint32_t samples); >uint32_t WavpackGetNumSamples (WavpackContext *wpc); >uint32_t WavpackGetSampleIndex (WavpackContext *wpc); >int WavpackGetNumErrors (WavpackContext *wpc); >int WavpackLossyBlocks (WavpackContext *wpc); >int WavpackSeekSample (WavpackContext *wpc, uint32_t sample); >WavpackContext *WavpackCloseFile (WavpackContext *wpc); >uint32_t WavpackGetSampleRate (WavpackContext *wpc); >int WavpackGetBitsPerSample (WavpackContext *wpc); >int WavpackGetBytesPerSample (WavpackContext *wpc); >int WavpackGetNumChannels (WavpackContext *wpc); >int WavpackGetChannelMask (WavpackContext *wpc); >int WavpackGetReducedChannels (WavpackContext *wpc); >int WavpackGetFloatNormExp (WavpackContext *wpc); >int WavpackGetMD5Sum (WavpackContext *wpc, uchar data [16]); >uint32_t WavpackGetWrapperBytes (WavpackContext *wpc); >uchar *WavpackGetWrapperData (WavpackContext *wpc); >void WavpackFreeWrapper (WavpackContext *wpc); >void WavpackSeekTrailingWrapper (WavpackContext *wpc); >double WavpackGetProgress (WavpackContext *wpc); >uint32_t WavpackGetFileSize (WavpackContext *wpc); >double WavpackGetRatio (WavpackContext *wpc); >double WavpackGetAverageBitrate (WavpackContext *wpc, int count_wvc); >double WavpackGetInstantBitrate (WavpackContext *wpc); >int WavpackGetNumTagItems (WavpackContext *wpc); >int WavpackGetTagItem (WavpackContext *wpc, const char *item, char *value, int size); >int WavpackGetTagItemIndexed (WavpackContext *wpc, int index, char *item, int size); >int WavpackAppendTagItem (WavpackContext *wpc, const char *item, const char *value, int vsize); >int WavpackDeleteTagItem (WavpackContext *wpc, const char *item); >int WavpackWriteTag (WavpackContext *wpc); > >WavpackContext *WavpackOpenFileOutput (WavpackBlockOutput blockout, void *wv_id, void *wvc_id); >int WavpackSetConfiguration (WavpackContext *wpc, WavpackConfig *config, uint32_t total_samples); >int WavpackAddWrapper (WavpackContext *wpc, void *data, uint32_t bcount); >int WavpackStoreMD5Sum (WavpackContext *wpc, uchar data [16]); >int WavpackPackInit (WavpackContext *wpc); >int WavpackPackSamples (WavpackContext *wpc, int32_t *sample_buffer, uint32_t sample_count); >int WavpackFlushSamples (WavpackContext *wpc); >void WavpackUpdateNumSamples (WavpackContext *wpc, void *first_block); >void *WavpackGetWrapperLocation (void *first_block, uint32_t *size); > >void WavpackLittleEndianToNative (void *data, char *format); >void WavpackNativeToLittleEndian (void *data, char *format); > >uint32_t WavpackGetLibraryVersion (void); >const char *WavpackGetLibraryVersionString (void); ># 726 "wavpack_local.h" >typedef int __di __attribute__ ((__mode__ (__DI__))); >typedef int __m64 __attribute__ ((__mode__ (__V2SI__))); >typedef int __v4hi __attribute__ ((__mode__ (__V4HI__))); ># 15 "extra2.c" 2 > ># 1 "/usr/include/stdlib.h" 1 3 4 ># 33 "/usr/include/stdlib.h" 3 4 ># 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/include/stddef.h" 1 3 4 ># 325 "/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/include/stddef.h" 3 4 >typedef int wchar_t; ># 34 "/usr/include/stdlib.h" 2 3 4 > > ># 96 "/usr/include/stdlib.h" 3 4 > > >typedef struct > { > int quot; > int rem; > } div_t; > > > >typedef struct > { > long int quot; > long int rem; > } ldiv_t; > > > ># 140 "/usr/include/stdlib.h" 3 4 >extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)) ; > > > > >extern double atof (__const char *__nptr) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; > >extern int atoi (__const char *__nptr) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; > >extern long int atol (__const char *__nptr) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; > > > > > >__extension__ extern long long int atoll (__const char *__nptr) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; > > > > > >extern double strtod (__const char *__restrict __nptr, > char **__restrict __endptr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > ># 182 "/usr/include/stdlib.h" 3 4 > > >extern long int strtol (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > >extern unsigned long int strtoul (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > > > > >__extension__ >extern long long int strtoq (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > >__extension__ >extern unsigned long long int strtouq (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > > > > > >__extension__ >extern long long int strtoll (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > >__extension__ >extern unsigned long long int strtoull (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > ># 277 "/usr/include/stdlib.h" 3 4 > >extern __inline double >__attribute__ ((__nothrow__)) atof (__const char *__nptr) >{ > return strtod (__nptr, (char **) ((void *)0)); >} >extern __inline int >__attribute__ ((__nothrow__)) atoi (__const char *__nptr) >{ > return (int) strtol (__nptr, (char **) ((void *)0), 10); >} >extern __inline long int >__attribute__ ((__nothrow__)) atol (__const char *__nptr) >{ > return strtol (__nptr, (char **) ((void *)0), 10); >} > > > > >__extension__ extern __inline long long int >__attribute__ ((__nothrow__)) atoll (__const char *__nptr) >{ > return strtoll (__nptr, (char **) ((void *)0), 10); >} > ># 311 "/usr/include/stdlib.h" 3 4 >extern char *l64a (long int __n) __attribute__ ((__nothrow__)) ; > > >extern long int a64l (__const char *__s) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; ># 327 "/usr/include/stdlib.h" 3 4 >extern long int random (void) __attribute__ ((__nothrow__)); > > >extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__)); > > > > > >extern char *initstate (unsigned int __seed, char *__statebuf, > size_t __statelen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > > > >extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__)) __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__)) __attribute__ ((__nonnull__ (1, 2))); > >extern int srandom_r (unsigned int __seed, struct random_data *__buf) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > >extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, > size_t __statelen, > struct random_data *__restrict __buf) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))); > >extern int setstate_r (char *__restrict __statebuf, > struct random_data *__restrict __buf) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern int rand (void) __attribute__ ((__nothrow__)); > >extern void srand (unsigned int __seed) __attribute__ ((__nothrow__)); > > > > >extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__)); > > > > > > > >extern double drand48 (void) __attribute__ ((__nothrow__)); >extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern long int lrand48 (void) __attribute__ ((__nothrow__)); >extern long int nrand48 (unsigned short int __xsubi[3]) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern long int mrand48 (void) __attribute__ ((__nothrow__)); >extern long int jrand48 (unsigned short int __xsubi[3]) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern void srand48 (long int __seedval) __attribute__ ((__nothrow__)); >extern unsigned short int *seed48 (unsigned short int __seed16v[3]) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); >extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__)) __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; > unsigned long long int __a; > }; > > >extern int drand48_r (struct drand48_data *__restrict __buffer, > double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); >extern int erand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int lrand48_r (struct drand48_data *__restrict __buffer, > long int *__restrict __result) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); >extern int nrand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > long int *__restrict __result) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int mrand48_r (struct drand48_data *__restrict __buffer, > long int *__restrict __result) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); >extern int jrand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > long int *__restrict __result) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int srand48_r (long int __seedval, struct drand48_data *__buffer) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > >extern int seed48_r (unsigned short int __seed16v[3], > struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > >extern int lcong48_r (unsigned short int __param[7], > struct drand48_data *__buffer) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > > > > > >extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; > >extern void *calloc (size_t __nmemb, size_t __size) > __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; > > > > > > > > > > >extern void *realloc (void *__ptr, size_t __size) > __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > >extern void free (void *__ptr) __attribute__ ((__nothrow__)); > > > > >extern void cfree (void *__ptr) __attribute__ ((__nothrow__)); > > > ># 1 "/usr/include/alloca.h" 1 3 4 ># 25 "/usr/include/alloca.h" 3 4 ># 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/include/stddef.h" 1 3 4 ># 26 "/usr/include/alloca.h" 2 3 4 > > > > > > > >extern void *alloca (size_t __size) __attribute__ ((__nothrow__)); > > > > > > ># 498 "/usr/include/stdlib.h" 2 3 4 > > > > >extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; > > > > >extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > > > > >extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); > > > >extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); > ># 543 "/usr/include/stdlib.h" 3 4 > > >extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > > > > >extern char *__secure_getenv (__const char *__name) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; > > > > > >extern int putenv (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern int setenv (__const char *__name, __const char *__value, int __replace) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > > >extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__)); > > > > > > >extern int clearenv (void) __attribute__ ((__nothrow__)); ># 583 "/usr/include/stdlib.h" 3 4 >extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; ># 594 "/usr/include/stdlib.h" 3 4 >extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ; ># 614 "/usr/include/stdlib.h" 3 4 >extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; ># 640 "/usr/include/stdlib.h" 3 4 > > > > > >extern int system (__const char *__command) ; > ># 662 "/usr/include/stdlib.h" 3 4 >extern char *realpath (__const char *__restrict __name, > char *__restrict __resolved) __attribute__ ((__nothrow__)) ; > > > > > > >typedef int (*__compar_fn_t) (__const void *, __const void *); ># 680 "/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))) ; > > > >extern void qsort (void *__base, size_t __nmemb, size_t __size, > __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); ># 699 "/usr/include/stdlib.h" 3 4 >extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; >extern long int labs (long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; > > > > > > > > > > > > >extern div_t div (int __numer, int __denom) > __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; >extern ldiv_t ldiv (long int __numer, long int __denom) > __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; > ># 735 "/usr/include/stdlib.h" 3 4 >extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; > > > > >extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; > > > > >extern char *gcvt (double __value, int __ndigit, char *__buf) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ; > > > > >extern char *qecvt (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; >extern char *qfcvt (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; >extern char *qgcvt (long double __value, int __ndigit, char *__buf) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ; > > > > >extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign, char *__restrict __buf, > size_t __len) __attribute__ ((__nothrow__)) __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__)) __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__)) __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__)) __attribute__ ((__nonnull__ (3, 4, 5))); > > > > > > > >extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__)) ; > > >extern int mbtowc (wchar_t *__restrict __pwc, > __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)) ; > > >extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__)) ; > > > >extern size_t mbstowcs (wchar_t *__restrict __pwcs, > __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)); > >extern size_t wcstombs (char *__restrict __s, > __const wchar_t *__restrict __pwcs, size_t __n) > __attribute__ ((__nothrow__)); > > > > > > > > >extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; ># 840 "/usr/include/stdlib.h" 3 4 >extern int posix_openpt (int __oflag) ; ># 875 "/usr/include/stdlib.h" 3 4 >extern int getloadavg (double __loadavg[], int __nelem) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); ># 891 "/usr/include/stdlib.h" 3 4 > ># 17 "extra2.c" 2 > ># 1 "/usr/include/string.h" 1 3 4 ># 28 "/usr/include/string.h" 3 4 > > > > > ># 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/include/stddef.h" 1 3 4 ># 34 "/usr/include/string.h" 2 3 4 > > > > >extern void *memcpy (void *__restrict __dest, > __const void *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern void *memmove (void *__dest, __const void *__src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern void *memccpy (void *__restrict __dest, __const void *__restrict __src, > int __c, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int memcmp (__const void *__s1, __const void *__s2, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern void *memchr (__const void *__s, int __c, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > ># 82 "/usr/include/string.h" 3 4 > > >extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strncpy (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern char *strcat (char *__restrict __dest, __const char *__restrict __src) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strncat (char *__restrict __dest, __const char *__restrict __src, > size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strcmp (__const char *__s1, __const char *__s2) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strcoll (__const char *__s1, __const char *__s2) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern size_t strxfrm (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > ># 130 "/usr/include/string.h" 3 4 >extern char *strdup (__const char *__s) > __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); ># 165 "/usr/include/string.h" 3 4 > > >extern char *strchr (__const char *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > >extern char *strrchr (__const char *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > ># 181 "/usr/include/string.h" 3 4 > > > >extern size_t strcspn (__const char *__s, __const char *__reject) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern size_t strspn (__const char *__s, __const char *__accept) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strpbrk (__const char *__s, __const char *__accept) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strstr (__const char *__haystack, __const char *__needle) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > >extern char *strtok (char *__restrict __s, __const char *__restrict __delim) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > > > > >extern char *__strtok_r (char *__restrict __s, > __const char *__restrict __delim, > char **__restrict __save_ptr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); > >extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, > char **__restrict __save_ptr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); ># 240 "/usr/include/string.h" 3 4 > > >extern size_t strlen (__const char *__s) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > ># 254 "/usr/include/string.h" 3 4 > > >extern char *strerror (int __errnum) __attribute__ ((__nothrow__)); > ># 270 "/usr/include/string.h" 3 4 >extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); ># 294 "/usr/include/string.h" 3 4 >extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > >extern void bcopy (__const void *__src, void *__dest, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int bcmp (__const void *__s1, __const void *__s2, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern char *index (__const char *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > >extern char *rindex (__const char *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > >extern int ffs (int __i) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); ># 331 "/usr/include/string.h" 3 4 >extern int strcasecmp (__const char *__s1, __const char *__s2) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); ># 354 "/usr/include/string.h" 3 4 >extern char *strsep (char **__restrict __stringp, > __const char *__restrict __delim) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); ># 420 "/usr/include/string.h" 3 4 ># 1 "/usr/include/bits/string.h" 1 3 4 ># 421 "/usr/include/string.h" 2 3 4 > > ># 1 "/usr/include/bits/string2.h" 1 3 4 ># 394 "/usr/include/bits/string2.h" 3 4 >extern void *__rawmemchr (const void *__s, int __c); ># 969 "/usr/include/bits/string2.h" 3 4 >extern __inline size_t __strcspn_c1 (__const char *__s, int __reject); >extern __inline size_t >__strcspn_c1 (__const char *__s, int __reject) >{ > register size_t __result = 0; > while (__s[__result] != '\0' && __s[__result] != __reject) > ++__result; > return __result; >} > >extern __inline size_t __strcspn_c2 (__const char *__s, int __reject1, > int __reject2); >extern __inline size_t >__strcspn_c2 (__const char *__s, int __reject1, int __reject2) >{ > register size_t __result = 0; > while (__s[__result] != '\0' && __s[__result] != __reject1 > && __s[__result] != __reject2) > ++__result; > return __result; >} > >extern __inline size_t __strcspn_c3 (__const char *__s, int __reject1, > int __reject2, int __reject3); >extern __inline size_t >__strcspn_c3 (__const char *__s, int __reject1, int __reject2, > int __reject3) >{ > register size_t __result = 0; > while (__s[__result] != '\0' && __s[__result] != __reject1 > && __s[__result] != __reject2 && __s[__result] != __reject3) > ++__result; > return __result; >} ># 1045 "/usr/include/bits/string2.h" 3 4 >extern __inline size_t __strspn_c1 (__const char *__s, int __accept); >extern __inline size_t >__strspn_c1 (__const char *__s, int __accept) >{ > register size_t __result = 0; > > while (__s[__result] == __accept) > ++__result; > return __result; >} > >extern __inline size_t __strspn_c2 (__const char *__s, int __accept1, > int __accept2); >extern __inline size_t >__strspn_c2 (__const char *__s, int __accept1, int __accept2) >{ > register size_t __result = 0; > > while (__s[__result] == __accept1 || __s[__result] == __accept2) > ++__result; > return __result; >} > >extern __inline size_t __strspn_c3 (__const char *__s, int __accept1, > int __accept2, int __accept3); >extern __inline size_t >__strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3) >{ > register size_t __result = 0; > > while (__s[__result] == __accept1 || __s[__result] == __accept2 > || __s[__result] == __accept3) > ++__result; > return __result; >} ># 1121 "/usr/include/bits/string2.h" 3 4 >extern __inline char *__strpbrk_c2 (__const char *__s, int __accept1, > int __accept2); >extern __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 char *__strpbrk_c3 (__const char *__s, int __accept1, > int __accept2, int __accept3); >extern __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; >} ># 1172 "/usr/include/bits/string2.h" 3 4 >extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp); >extern __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; >} ># 1204 "/usr/include/bits/string2.h" 3 4 >extern char *__strsep_g (char **__stringp, __const char *__delim); ># 1222 "/usr/include/bits/string2.h" 3 4 >extern __inline char *__strsep_1c (char **__s, char __reject); >extern __inline char * >__strsep_1c (char **__s, char __reject) >{ > register 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 char *__strsep_2c (char **__s, char __reject1, char __reject2); >extern __inline char * >__strsep_2c (char **__s, char __reject1, char __reject2) >{ > register char *__retval = *__s; > if (__retval != ((void *)0)) > { > register 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 char *__strsep_3c (char **__s, char __reject1, char __reject2, > char __reject3); >extern __inline char * >__strsep_3c (char **__s, char __reject1, char __reject2, char __reject3) >{ > register char *__retval = *__s; > if (__retval != ((void *)0)) > { > register 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; >} ># 1303 "/usr/include/bits/string2.h" 3 4 >extern char *__strdup (__const char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); ># 1322 "/usr/include/bits/string2.h" 3 4 >extern char *__strndup (__const char *__string, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); ># 424 "/usr/include/string.h" 2 3 4 ># 432 "/usr/include/string.h" 3 4 > ># 19 "extra2.c" 2 ># 1 "/usr/include/math.h" 1 3 4 ># 30 "/usr/include/math.h" 3 4 > > > > ># 1 "/usr/include/bits/huge_val.h" 1 3 4 ># 35 "/usr/include/math.h" 2 3 4 ># 47 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathdef.h" 1 3 4 ># 48 "/usr/include/math.h" 2 3 4 ># 71 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathcalls.h" 1 3 4 ># 53 "/usr/include/bits/mathcalls.h" 3 4 > > >extern double acos (double __x) __attribute__ ((__nothrow__)); extern double __acos (double __x) __attribute__ ((__nothrow__)); > >extern double asin (double __x) __attribute__ ((__nothrow__)); extern double __asin (double __x) __attribute__ ((__nothrow__)); > >extern double atan (double __x) __attribute__ ((__nothrow__)); extern double __atan (double __x) __attribute__ ((__nothrow__)); > >extern double atan2 (double __y, double __x) __attribute__ ((__nothrow__)); extern double __atan2 (double __y, double __x) __attribute__ ((__nothrow__)); > > >extern double cos (double __x) __attribute__ ((__nothrow__)); extern double __cos (double __x) __attribute__ ((__nothrow__)); > >extern double sin (double __x) __attribute__ ((__nothrow__)); extern double __sin (double __x) __attribute__ ((__nothrow__)); > >extern double tan (double __x) __attribute__ ((__nothrow__)); extern double __tan (double __x) __attribute__ ((__nothrow__)); > > > > >extern double cosh (double __x) __attribute__ ((__nothrow__)); extern double __cosh (double __x) __attribute__ ((__nothrow__)); > >extern double sinh (double __x) __attribute__ ((__nothrow__)); extern double __sinh (double __x) __attribute__ ((__nothrow__)); > >extern double tanh (double __x) __attribute__ ((__nothrow__)); extern double __tanh (double __x) __attribute__ ((__nothrow__)); > ># 87 "/usr/include/bits/mathcalls.h" 3 4 > > >extern double acosh (double __x) __attribute__ ((__nothrow__)); extern double __acosh (double __x) __attribute__ ((__nothrow__)); > >extern double asinh (double __x) __attribute__ ((__nothrow__)); extern double __asinh (double __x) __attribute__ ((__nothrow__)); > >extern double atanh (double __x) __attribute__ ((__nothrow__)); extern double __atanh (double __x) __attribute__ ((__nothrow__)); > > > > > > > >extern double exp (double __x) __attribute__ ((__nothrow__)); extern double __exp (double __x) __attribute__ ((__nothrow__)); > > >extern double frexp (double __x, int *__exponent) __attribute__ ((__nothrow__)); extern double __frexp (double __x, int *__exponent) __attribute__ ((__nothrow__)); > > >extern double ldexp (double __x, int __exponent) __attribute__ ((__nothrow__)); extern double __ldexp (double __x, int __exponent) __attribute__ ((__nothrow__)); > > >extern double log (double __x) __attribute__ ((__nothrow__)); extern double __log (double __x) __attribute__ ((__nothrow__)); > > >extern double log10 (double __x) __attribute__ ((__nothrow__)); extern double __log10 (double __x) __attribute__ ((__nothrow__)); > > >extern double modf (double __x, double *__iptr) __attribute__ ((__nothrow__)); extern double __modf (double __x, double *__iptr) __attribute__ ((__nothrow__)); > ># 127 "/usr/include/bits/mathcalls.h" 3 4 > > >extern double expm1 (double __x) __attribute__ ((__nothrow__)); extern double __expm1 (double __x) __attribute__ ((__nothrow__)); > > >extern double log1p (double __x) __attribute__ ((__nothrow__)); extern double __log1p (double __x) __attribute__ ((__nothrow__)); > > >extern double logb (double __x) __attribute__ ((__nothrow__)); extern double __logb (double __x) __attribute__ ((__nothrow__)); > ># 152 "/usr/include/bits/mathcalls.h" 3 4 > > >extern double pow (double __x, double __y) __attribute__ ((__nothrow__)); extern double __pow (double __x, double __y) __attribute__ ((__nothrow__)); > > >extern double sqrt (double __x) __attribute__ ((__nothrow__)); extern double __sqrt (double __x) __attribute__ ((__nothrow__)); > > > > > >extern double hypot (double __x, double __y) __attribute__ ((__nothrow__)); extern double __hypot (double __x, double __y) __attribute__ ((__nothrow__)); > > > > > > >extern double cbrt (double __x) __attribute__ ((__nothrow__)); extern double __cbrt (double __x) __attribute__ ((__nothrow__)); > > > > > > > > >extern double ceil (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __ceil (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern double fabs (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __fabs (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern double floor (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __floor (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern double fmod (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fmod (double __x, double __y) __attribute__ ((__nothrow__)); > > > > >extern int __isinf (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern int __finite (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > > > >extern int isinf (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern int finite (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern double drem (double __x, double __y) __attribute__ ((__nothrow__)); extern double __drem (double __x, double __y) __attribute__ ((__nothrow__)); > > > >extern double significand (double __x) __attribute__ ((__nothrow__)); extern double __significand (double __x) __attribute__ ((__nothrow__)); > > > > > >extern double copysign (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __copysign (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > ># 231 "/usr/include/bits/mathcalls.h" 3 4 >extern int __isnan (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > >extern int isnan (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern double j0 (double) __attribute__ ((__nothrow__)); extern double __j0 (double) __attribute__ ((__nothrow__)); >extern double j1 (double) __attribute__ ((__nothrow__)); extern double __j1 (double) __attribute__ ((__nothrow__)); >extern double jn (int, double) __attribute__ ((__nothrow__)); extern double __jn (int, double) __attribute__ ((__nothrow__)); >extern double y0 (double) __attribute__ ((__nothrow__)); extern double __y0 (double) __attribute__ ((__nothrow__)); >extern double y1 (double) __attribute__ ((__nothrow__)); extern double __y1 (double) __attribute__ ((__nothrow__)); >extern double yn (int, double) __attribute__ ((__nothrow__)); extern double __yn (int, double) __attribute__ ((__nothrow__)); > > > > > > >extern double erf (double) __attribute__ ((__nothrow__)); extern double __erf (double) __attribute__ ((__nothrow__)); >extern double erfc (double) __attribute__ ((__nothrow__)); extern double __erfc (double) __attribute__ ((__nothrow__)); >extern double lgamma (double) __attribute__ ((__nothrow__)); extern double __lgamma (double) __attribute__ ((__nothrow__)); > ># 265 "/usr/include/bits/mathcalls.h" 3 4 >extern double gamma (double) __attribute__ ((__nothrow__)); extern double __gamma (double) __attribute__ ((__nothrow__)); > > > > > > >extern double lgamma_r (double, int *__signgamp) __attribute__ ((__nothrow__)); extern double __lgamma_r (double, int *__signgamp) __attribute__ ((__nothrow__)); > > > > > > > >extern double rint (double __x) __attribute__ ((__nothrow__)); extern double __rint (double __x) __attribute__ ((__nothrow__)); > > >extern double nextafter (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > > > >extern double remainder (double __x, double __y) __attribute__ ((__nothrow__)); extern double __remainder (double __x, double __y) __attribute__ ((__nothrow__)); > > > >extern double scalbn (double __x, int __n) __attribute__ ((__nothrow__)); extern double __scalbn (double __x, int __n) __attribute__ ((__nothrow__)); > > > >extern int ilogb (double __x) __attribute__ ((__nothrow__)); extern int __ilogb (double __x) __attribute__ ((__nothrow__)); ># 359 "/usr/include/bits/mathcalls.h" 3 4 > > > > > >extern double scalb (double __x, double __n) __attribute__ ((__nothrow__)); extern double __scalb (double __x, double __n) __attribute__ ((__nothrow__)); ># 72 "/usr/include/math.h" 2 3 4 ># 94 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathcalls.h" 1 3 4 ># 53 "/usr/include/bits/mathcalls.h" 3 4 > > >extern float acosf (float __x) __attribute__ ((__nothrow__)); extern float __acosf (float __x) __attribute__ ((__nothrow__)); > >extern float asinf (float __x) __attribute__ ((__nothrow__)); extern float __asinf (float __x) __attribute__ ((__nothrow__)); > >extern float atanf (float __x) __attribute__ ((__nothrow__)); extern float __atanf (float __x) __attribute__ ((__nothrow__)); > >extern float atan2f (float __y, float __x) __attribute__ ((__nothrow__)); extern float __atan2f (float __y, float __x) __attribute__ ((__nothrow__)); > > >extern float cosf (float __x) __attribute__ ((__nothrow__)); extern float __cosf (float __x) __attribute__ ((__nothrow__)); > >extern float sinf (float __x) __attribute__ ((__nothrow__)); extern float __sinf (float __x) __attribute__ ((__nothrow__)); > >extern float tanf (float __x) __attribute__ ((__nothrow__)); extern float __tanf (float __x) __attribute__ ((__nothrow__)); > > > > >extern float coshf (float __x) __attribute__ ((__nothrow__)); extern float __coshf (float __x) __attribute__ ((__nothrow__)); > >extern float sinhf (float __x) __attribute__ ((__nothrow__)); extern float __sinhf (float __x) __attribute__ ((__nothrow__)); > >extern float tanhf (float __x) __attribute__ ((__nothrow__)); extern float __tanhf (float __x) __attribute__ ((__nothrow__)); > ># 87 "/usr/include/bits/mathcalls.h" 3 4 > > >extern float acoshf (float __x) __attribute__ ((__nothrow__)); extern float __acoshf (float __x) __attribute__ ((__nothrow__)); > >extern float asinhf (float __x) __attribute__ ((__nothrow__)); extern float __asinhf (float __x) __attribute__ ((__nothrow__)); > >extern float atanhf (float __x) __attribute__ ((__nothrow__)); extern float __atanhf (float __x) __attribute__ ((__nothrow__)); > > > > > > > >extern float expf (float __x) __attribute__ ((__nothrow__)); extern float __expf (float __x) __attribute__ ((__nothrow__)); > > >extern float frexpf (float __x, int *__exponent) __attribute__ ((__nothrow__)); extern float __frexpf (float __x, int *__exponent) __attribute__ ((__nothrow__)); > > >extern float ldexpf (float __x, int __exponent) __attribute__ ((__nothrow__)); extern float __ldexpf (float __x, int __exponent) __attribute__ ((__nothrow__)); > > >extern float logf (float __x) __attribute__ ((__nothrow__)); extern float __logf (float __x) __attribute__ ((__nothrow__)); > > >extern float log10f (float __x) __attribute__ ((__nothrow__)); extern float __log10f (float __x) __attribute__ ((__nothrow__)); > > >extern float modff (float __x, float *__iptr) __attribute__ ((__nothrow__)); extern float __modff (float __x, float *__iptr) __attribute__ ((__nothrow__)); > ># 127 "/usr/include/bits/mathcalls.h" 3 4 > > >extern float expm1f (float __x) __attribute__ ((__nothrow__)); extern float __expm1f (float __x) __attribute__ ((__nothrow__)); > > >extern float log1pf (float __x) __attribute__ ((__nothrow__)); extern float __log1pf (float __x) __attribute__ ((__nothrow__)); > > >extern float logbf (float __x) __attribute__ ((__nothrow__)); extern float __logbf (float __x) __attribute__ ((__nothrow__)); > ># 152 "/usr/include/bits/mathcalls.h" 3 4 > > >extern float powf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __powf (float __x, float __y) __attribute__ ((__nothrow__)); > > >extern float sqrtf (float __x) __attribute__ ((__nothrow__)); extern float __sqrtf (float __x) __attribute__ ((__nothrow__)); > > > > > >extern float hypotf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __hypotf (float __x, float __y) __attribute__ ((__nothrow__)); > > > > > > >extern float cbrtf (float __x) __attribute__ ((__nothrow__)); extern float __cbrtf (float __x) __attribute__ ((__nothrow__)); > > > > > > > > >extern float ceilf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __ceilf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern float fabsf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __fabsf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern float floorf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __floorf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern float fmodf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fmodf (float __x, float __y) __attribute__ ((__nothrow__)); > > > > >extern int __isinff (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern int __finitef (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > > > >extern int isinff (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern int finitef (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern float dremf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __dremf (float __x, float __y) __attribute__ ((__nothrow__)); > > > >extern float significandf (float __x) __attribute__ ((__nothrow__)); extern float __significandf (float __x) __attribute__ ((__nothrow__)); > > > > > >extern float copysignf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > ># 231 "/usr/include/bits/mathcalls.h" 3 4 >extern int __isnanf (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > >extern int isnanf (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern float j0f (float) __attribute__ ((__nothrow__)); extern float __j0f (float) __attribute__ ((__nothrow__)); >extern float j1f (float) __attribute__ ((__nothrow__)); extern float __j1f (float) __attribute__ ((__nothrow__)); >extern float jnf (int, float) __attribute__ ((__nothrow__)); extern float __jnf (int, float) __attribute__ ((__nothrow__)); >extern float y0f (float) __attribute__ ((__nothrow__)); extern float __y0f (float) __attribute__ ((__nothrow__)); >extern float y1f (float) __attribute__ ((__nothrow__)); extern float __y1f (float) __attribute__ ((__nothrow__)); >extern float ynf (int, float) __attribute__ ((__nothrow__)); extern float __ynf (int, float) __attribute__ ((__nothrow__)); > > > > > > >extern float erff (float) __attribute__ ((__nothrow__)); extern float __erff (float) __attribute__ ((__nothrow__)); >extern float erfcf (float) __attribute__ ((__nothrow__)); extern float __erfcf (float) __attribute__ ((__nothrow__)); >extern float lgammaf (float) __attribute__ ((__nothrow__)); extern float __lgammaf (float) __attribute__ ((__nothrow__)); > ># 265 "/usr/include/bits/mathcalls.h" 3 4 >extern float gammaf (float) __attribute__ ((__nothrow__)); extern float __gammaf (float) __attribute__ ((__nothrow__)); > > > > > > >extern float lgammaf_r (float, int *__signgamp) __attribute__ ((__nothrow__)); extern float __lgammaf_r (float, int *__signgamp) __attribute__ ((__nothrow__)); > > > > > > > >extern float rintf (float __x) __attribute__ ((__nothrow__)); extern float __rintf (float __x) __attribute__ ((__nothrow__)); > > >extern float nextafterf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > > > >extern float remainderf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __remainderf (float __x, float __y) __attribute__ ((__nothrow__)); > > > >extern float scalbnf (float __x, int __n) __attribute__ ((__nothrow__)); extern float __scalbnf (float __x, int __n) __attribute__ ((__nothrow__)); > > > >extern int ilogbf (float __x) __attribute__ ((__nothrow__)); extern int __ilogbf (float __x) __attribute__ ((__nothrow__)); ># 359 "/usr/include/bits/mathcalls.h" 3 4 > > > > > >extern float scalbf (float __x, float __n) __attribute__ ((__nothrow__)); extern float __scalbf (float __x, float __n) __attribute__ ((__nothrow__)); ># 95 "/usr/include/math.h" 2 3 4 ># 141 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathcalls.h" 1 3 4 ># 53 "/usr/include/bits/mathcalls.h" 3 4 > > >extern long double acosl (long double __x) __attribute__ ((__nothrow__)); extern long double __acosl (long double __x) __attribute__ ((__nothrow__)); > >extern long double asinl (long double __x) __attribute__ ((__nothrow__)); extern long double __asinl (long double __x) __attribute__ ((__nothrow__)); > >extern long double atanl (long double __x) __attribute__ ((__nothrow__)); extern long double __atanl (long double __x) __attribute__ ((__nothrow__)); > >extern long double atan2l (long double __y, long double __x) __attribute__ ((__nothrow__)); extern long double __atan2l (long double __y, long double __x) __attribute__ ((__nothrow__)); > > >extern long double cosl (long double __x) __attribute__ ((__nothrow__)); extern long double __cosl (long double __x) __attribute__ ((__nothrow__)); > >extern long double sinl (long double __x) __attribute__ ((__nothrow__)); extern long double __sinl (long double __x) __attribute__ ((__nothrow__)); > >extern long double tanl (long double __x) __attribute__ ((__nothrow__)); extern long double __tanl (long double __x) __attribute__ ((__nothrow__)); > > > > >extern long double coshl (long double __x) __attribute__ ((__nothrow__)); extern long double __coshl (long double __x) __attribute__ ((__nothrow__)); > >extern long double sinhl (long double __x) __attribute__ ((__nothrow__)); extern long double __sinhl (long double __x) __attribute__ ((__nothrow__)); > >extern long double tanhl (long double __x) __attribute__ ((__nothrow__)); extern long double __tanhl (long double __x) __attribute__ ((__nothrow__)); > ># 87 "/usr/include/bits/mathcalls.h" 3 4 > > >extern long double acoshl (long double __x) __attribute__ ((__nothrow__)); extern long double __acoshl (long double __x) __attribute__ ((__nothrow__)); > >extern long double asinhl (long double __x) __attribute__ ((__nothrow__)); extern long double __asinhl (long double __x) __attribute__ ((__nothrow__)); > >extern long double atanhl (long double __x) __attribute__ ((__nothrow__)); extern long double __atanhl (long double __x) __attribute__ ((__nothrow__)); > > > > > > > >extern long double expl (long double __x) __attribute__ ((__nothrow__)); extern long double __expl (long double __x) __attribute__ ((__nothrow__)); > > >extern long double frexpl (long double __x, int *__exponent) __attribute__ ((__nothrow__)); extern long double __frexpl (long double __x, int *__exponent) __attribute__ ((__nothrow__)); > > >extern long double ldexpl (long double __x, int __exponent) __attribute__ ((__nothrow__)); extern long double __ldexpl (long double __x, int __exponent) __attribute__ ((__nothrow__)); > > >extern long double logl (long double __x) __attribute__ ((__nothrow__)); extern long double __logl (long double __x) __attribute__ ((__nothrow__)); > > >extern long double log10l (long double __x) __attribute__ ((__nothrow__)); extern long double __log10l (long double __x) __attribute__ ((__nothrow__)); > > >extern long double modfl (long double __x, long double *__iptr) __attribute__ ((__nothrow__)); extern long double __modfl (long double __x, long double *__iptr) __attribute__ ((__nothrow__)); > ># 127 "/usr/include/bits/mathcalls.h" 3 4 > > >extern long double expm1l (long double __x) __attribute__ ((__nothrow__)); extern long double __expm1l (long double __x) __attribute__ ((__nothrow__)); > > >extern long double log1pl (long double __x) __attribute__ ((__nothrow__)); extern long double __log1pl (long double __x) __attribute__ ((__nothrow__)); > > >extern long double logbl (long double __x) __attribute__ ((__nothrow__)); extern long double __logbl (long double __x) __attribute__ ((__nothrow__)); > ># 152 "/usr/include/bits/mathcalls.h" 3 4 > > >extern long double powl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __powl (long double __x, long double __y) __attribute__ ((__nothrow__)); > > >extern long double sqrtl (long double __x) __attribute__ ((__nothrow__)); extern long double __sqrtl (long double __x) __attribute__ ((__nothrow__)); > > > > > >extern long double hypotl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __hypotl (long double __x, long double __y) __attribute__ ((__nothrow__)); > > > > > > >extern long double cbrtl (long double __x) __attribute__ ((__nothrow__)); extern long double __cbrtl (long double __x) __attribute__ ((__nothrow__)); > > > > > > > > >extern long double ceill (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __ceill (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern long double fabsl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __fabsl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern long double floorl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __floorl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern long double fmodl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fmodl (long double __x, long double __y) __attribute__ ((__nothrow__)); > > > > >extern int __isinfl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern int __finitel (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > > > >extern int isinfl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern int finitel (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern long double dreml (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __dreml (long double __x, long double __y) __attribute__ ((__nothrow__)); > > > >extern long double significandl (long double __x) __attribute__ ((__nothrow__)); extern long double __significandl (long double __x) __attribute__ ((__nothrow__)); > > > > > >extern long double copysignl (long double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > ># 231 "/usr/include/bits/mathcalls.h" 3 4 >extern int __isnanl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > >extern int isnanl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern long double j0l (long double) __attribute__ ((__nothrow__)); extern long double __j0l (long double) __attribute__ ((__nothrow__)); >extern long double j1l (long double) __attribute__ ((__nothrow__)); extern long double __j1l (long double) __attribute__ ((__nothrow__)); >extern long double jnl (int, long double) __attribute__ ((__nothrow__)); extern long double __jnl (int, long double) __attribute__ ((__nothrow__)); >extern long double y0l (long double) __attribute__ ((__nothrow__)); extern long double __y0l (long double) __attribute__ ((__nothrow__)); >extern long double y1l (long double) __attribute__ ((__nothrow__)); extern long double __y1l (long double) __attribute__ ((__nothrow__)); >extern long double ynl (int, long double) __attribute__ ((__nothrow__)); extern long double __ynl (int, long double) __attribute__ ((__nothrow__)); > > > > > > >extern long double erfl (long double) __attribute__ ((__nothrow__)); extern long double __erfl (long double) __attribute__ ((__nothrow__)); >extern long double erfcl (long double) __attribute__ ((__nothrow__)); extern long double __erfcl (long double) __attribute__ ((__nothrow__)); >extern long double lgammal (long double) __attribute__ ((__nothrow__)); extern long double __lgammal (long double) __attribute__ ((__nothrow__)); > ># 265 "/usr/include/bits/mathcalls.h" 3 4 >extern long double gammal (long double) __attribute__ ((__nothrow__)); extern long double __gammal (long double) __attribute__ ((__nothrow__)); > > > > > > >extern long double lgammal_r (long double, int *__signgamp) __attribute__ ((__nothrow__)); extern long double __lgammal_r (long double, int *__signgamp) __attribute__ ((__nothrow__)); > > > > > > > >extern long double rintl (long double __x) __attribute__ ((__nothrow__)); extern long double __rintl (long double __x) __attribute__ ((__nothrow__)); > > >extern long double nextafterl (long double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __nextafterl (long double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > > > >extern long double remainderl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __remainderl (long double __x, long double __y) __attribute__ ((__nothrow__)); > > > >extern long double scalbnl (long double __x, int __n) __attribute__ ((__nothrow__)); extern long double __scalbnl (long double __x, int __n) __attribute__ ((__nothrow__)); > > > >extern int ilogbl (long double __x) __attribute__ ((__nothrow__)); extern int __ilogbl (long double __x) __attribute__ ((__nothrow__)); ># 359 "/usr/include/bits/mathcalls.h" 3 4 > > > > > >extern long double scalbl (long double __x, long double __n) __attribute__ ((__nothrow__)); extern long double __scalbl (long double __x, long double __n) __attribute__ ((__nothrow__)); ># 142 "/usr/include/math.h" 2 3 4 ># 157 "/usr/include/math.h" 3 4 >extern int signgam; ># 284 "/usr/include/math.h" 3 4 >typedef enum >{ > _IEEE_ = -1, > _SVID_, > _XOPEN_, > _POSIX_, > _ISOC_ >} _LIB_VERSION_TYPE; > > > > >extern _LIB_VERSION_TYPE _LIB_VERSION; ># 309 "/usr/include/math.h" 3 4 >struct exception > > { > int type; > char *name; > double arg1; > double arg2; > double retval; > }; > > > > >extern int matherr (struct exception *__exc); ># 409 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathinline.h" 1 3 4 ># 410 "/usr/include/math.h" 2 3 4 ># 465 "/usr/include/math.h" 3 4 > ># 20 "extra2.c" 2 ># 37 "extra2.c" >typedef struct { > int32_t *sampleptrs [16 +2]; > struct decorr_pass dps [16]; > int nterms, log_limit, gt16bit; > uint32_t best_bits; >} WavpackExtraInfo; > > > >static void decorr_stereo_pass (int32_t *in_samples, int32_t *out_samples, int32_t num_samples, struct decorr_pass *dpp, int dir) >{ > const __m64 > delta = { dpp->delta, dpp->delta }, > fill = { 0x7bff, 0x7bff }, > mask = { 0x7fff, 0x7fff }, > round = { 512, 512 }, > zero = { 0, 0 }; > __m64 > sum_AB = zero, > weight_AB = { restore_weight (store_weight (dpp->weight_A)), restore_weight (store_weight (dpp->weight_B)) }, > left_right, sam_AB, tmp0, tmp1, samples_AB [8]; > int k, m = 0; > > if (dir < 0) { > out_samples += (num_samples - 1) * 2; > in_samples += (num_samples - 1) * 2; > dir = -2; > } > else > dir = 2; > > for (k = 0; k < 8; ++k) { > ((int32_t *) samples_AB) [k * 2] = exp2s (log2s (dpp->samples_A [k])); > ((int32_t *) samples_AB) [k * 2 + 1] = exp2s (log2s (dpp->samples_B [k])); > } > > if (dpp->term > 0) { > if (dpp->term == 17) { > while (num_samples--) { > left_right = *(__m64 *) in_samples; > tmp0 = samples_AB [0]; > sam_AB = __builtin_ia32_paddd (tmp0, tmp0); > sam_AB = __builtin_ia32_psubd (sam_AB, samples_AB [1]); > samples_AB [0] = left_right; > samples_AB [1] = tmp0; > > tmp0 = __builtin_ia32_paddd (sam_AB, sam_AB); > tmp1 = (__m64) __builtin_ia32_pand ((__di) sam_AB, (__di) mask); > tmp0 = __builtin_ia32_psrld (tmp0, 16); > tmp1 = __builtin_ia32_pmaddwd ((__v4hi) tmp1, (__v4hi) weight_AB); > tmp0 = __builtin_ia32_pmaddwd ((__v4hi) tmp0, (__v4hi) weight_AB); > tmp1 = __builtin_ia32_paddd (tmp1, round); > tmp0 = __builtin_ia32_pslld (tmp0, 5); > tmp1 = __builtin_ia32_psrad (tmp1, 10); > left_right = __builtin_ia32_psubd (left_right, tmp0); > left_right = __builtin_ia32_psubd (left_right, tmp1); > > *(__m64 *) out_samples = left_right; > > tmp0 = (__m64) __builtin_ia32_pxor ((__di) sam_AB, (__di) left_right); > tmp0 = __builtin_ia32_psrad (tmp0, 31); > tmp1 = (__m64) __builtin_ia32_pxor ((__di) delta, (__di) tmp0); > tmp1 = __builtin_ia32_psubd (tmp1, tmp0); > sam_AB = __builtin_ia32_pcmpeqd (sam_AB, zero); > tmp0 = __builtin_ia32_pcmpeqd (left_right, zero); > tmp0 = (__m64) __builtin_ia32_por ((__di) tmp0, (__di) sam_AB); > tmp0 = (__m64) __builtin_ia32_pandn ((__di) tmp0, (__di) tmp1); > weight_AB = __builtin_ia32_paddd (weight_AB, tmp0); > > sum_AB = __builtin_ia32_paddd (sum_AB, weight_AB); > > in_samples += dir; > out_samples += dir; > } > } > else if (dpp->term == 18) { > while (num_samples--) { > left_right = *(__m64 *) in_samples; > tmp0 = samples_AB [0]; > sam_AB = __builtin_ia32_psubd (tmp0, samples_AB [1]); > sam_AB = __builtin_ia32_psrad (sam_AB, 1); > sam_AB = __builtin_ia32_paddd (sam_AB, tmp0); > samples_AB [0] = left_right; > samples_AB [1] = tmp0; > > tmp0 = __builtin_ia32_paddd (sam_AB, sam_AB); > tmp1 = (__m64) __builtin_ia32_pand ((__di) sam_AB, (__di) mask); > tmp0 = __builtin_ia32_psrld (tmp0, 16); > tmp1 = __builtin_ia32_pmaddwd ((__v4hi) tmp1, (__v4hi) weight_AB); > tmp0 = __builtin_ia32_pmaddwd ((__v4hi) tmp0, (__v4hi) weight_AB); > tmp1 = __builtin_ia32_paddd (tmp1, round); > tmp0 = __builtin_ia32_pslld (tmp0, 5); > tmp1 = __builtin_ia32_psrad (tmp1, 10); > left_right = __builtin_ia32_psubd (left_right, tmp0); > left_right = __builtin_ia32_psubd (left_right, tmp1); > > *(__m64 *) out_samples = left_right; > > tmp0 = (__m64) __builtin_ia32_pxor ((__di) sam_AB, (__di) left_right); > tmp0 = __builtin_ia32_psrad (tmp0, 31); > tmp1 = (__m64) __builtin_ia32_pxor ((__di) delta, (__di) tmp0); > tmp1 = __builtin_ia32_psubd (tmp1, tmp0); > sam_AB = __builtin_ia32_pcmpeqd (sam_AB, zero); > tmp0 = __builtin_ia32_pcmpeqd (left_right, zero); > tmp0 = (__m64) __builtin_ia32_por ((__di) tmp0, (__di) sam_AB); > tmp0 = (__m64) __builtin_ia32_pandn ((__di) tmp0, (__di) tmp1); > weight_AB = __builtin_ia32_paddd (weight_AB, tmp0); > > sum_AB = __builtin_ia32_paddd (sum_AB, weight_AB); > > in_samples += dir; > out_samples += dir; > } > } > else { > k = dpp->term & (8 - 1); > while (num_samples--) { > left_right = *(__m64 *) in_samples; > sam_AB = samples_AB [m]; > samples_AB [k] = left_right; > > tmp0 = __builtin_ia32_paddd (sam_AB, sam_AB); > tmp1 = (__m64) __builtin_ia32_pand ((__di) sam_AB, (__di) mask); > tmp0 = __builtin_ia32_psrld (tmp0, 16); > tmp1 = __builtin_ia32_pmaddwd ((__v4hi) tmp1, (__v4hi) weight_AB); > tmp0 = __builtin_ia32_pmaddwd ((__v4hi) tmp0, (__v4hi) weight_AB); > tmp1 = __builtin_ia32_paddd (tmp1, round); > tmp0 = __builtin_ia32_pslld (tmp0, 5); > tmp1 = __builtin_ia32_psrad (tmp1, 10); > left_right = __builtin_ia32_psubd (left_right, tmp0); > left_right = __builtin_ia32_psubd (left_right, tmp1); > > *(__m64 *) out_samples = left_right; > > tmp0 = (__m64) __builtin_ia32_pxor ((__di) sam_AB, (__di) left_right); > tmp0 = __builtin_ia32_psrad (tmp0, 31); > tmp1 = (__m64) __builtin_ia32_pxor ((__di) delta, (__di) tmp0); > tmp1 = __builtin_ia32_psubd (tmp1, tmp0); > sam_AB = __builtin_ia32_pcmpeqd (sam_AB, zero); > tmp0 = __builtin_ia32_pcmpeqd (left_right, zero); > tmp0 = (__m64) __builtin_ia32_por ((__di) tmp0, (__di) sam_AB); > tmp0 = (__m64) __builtin_ia32_pandn ((__di) tmp0, (__di) tmp1); > weight_AB = __builtin_ia32_paddd (weight_AB, tmp0); > > sum_AB = __builtin_ia32_paddd (sum_AB, weight_AB); > > in_samples += dir; > out_samples += dir; > k = (k + 1) & (8 - 1); > m = (m + 1) & (8 - 1); > } > } > } > else { > if (dpp->term == -1) { > while (num_samples--) { > left_right = *(__m64 *) in_samples; > sam_AB = samples_AB [0]; > samples_AB [0] = __builtin_ia32_punpckhdq (left_right, sam_AB); > sam_AB = __builtin_ia32_punpckldq (sam_AB, left_right); > > tmp0 = __builtin_ia32_paddd (sam_AB, sam_AB); > tmp1 = (__m64) __builtin_ia32_pand ((__di) sam_AB, (__di) mask); > tmp0 = __builtin_ia32_psrld (tmp0, 16); > tmp1 = __builtin_ia32_pmaddwd ((__v4hi) tmp1, (__v4hi) weight_AB); > tmp0 = __builtin_ia32_pmaddwd ((__v4hi) tmp0, (__v4hi) weight_AB); > tmp1 = __builtin_ia32_paddd (tmp1, round); > tmp0 = __builtin_ia32_pslld (tmp0, 5); > tmp1 = __builtin_ia32_psrad (tmp1, 10); > left_right = __builtin_ia32_psubd (left_right, tmp0); > left_right = __builtin_ia32_psubd (left_right, tmp1); > > *(__m64 *) out_samples = left_right; > > tmp0 = __builtin_ia32_pcmpeqd (sam_AB, zero); > tmp1 = __builtin_ia32_pcmpeqd (left_right, zero); > tmp0 = (__m64) __builtin_ia32_por ((__di) tmp0, (__di) tmp1); > tmp0 = (__m64) __builtin_ia32_pandn ((__di) tmp0, (__di) delta); > sam_AB = (__m64) __builtin_ia32_pxor ((__di) sam_AB, (__di) left_right); > sam_AB = __builtin_ia32_psrad (sam_AB, 31); > tmp1 = __builtin_ia32_psubd (fill, sam_AB); > weight_AB = (__m64) __builtin_ia32_pxor ((__di) weight_AB, (__di) sam_AB); > weight_AB = __builtin_ia32_paddd (weight_AB, tmp1); > weight_AB = (__m64) __builtin_ia32_paddsw ((__v4hi) weight_AB, (__v4hi) tmp0); > weight_AB = __builtin_ia32_psubd (weight_AB, tmp1); > weight_AB = (__m64) __builtin_ia32_pxor ((__di) weight_AB, (__di) sam_AB); > > sum_AB = __builtin_ia32_paddd (sum_AB, weight_AB); > > in_samples += dir; > out_samples += dir; > } > } > else if (dpp->term == -2) { > while (num_samples--) { > left_right = *(__m64 *) in_samples; > sam_AB = samples_AB [0]; > samples_AB [0] = __builtin_ia32_punpckldq (sam_AB, left_right); > sam_AB = __builtin_ia32_punpckhdq (left_right, sam_AB); > > tmp0 = __builtin_ia32_paddd (sam_AB, sam_AB); > tmp1 = (__m64) __builtin_ia32_pand ((__di) sam_AB, (__di) mask); > tmp0 = __builtin_ia32_psrld (tmp0, 16); > tmp1 = __builtin_ia32_pmaddwd ((__v4hi) tmp1, (__v4hi) weight_AB); > tmp0 = __builtin_ia32_pmaddwd ((__v4hi) tmp0, (__v4hi) weight_AB); > tmp1 = __builtin_ia32_paddd (tmp1, round); > tmp0 = __builtin_ia32_pslld (tmp0, 5); > tmp1 = __builtin_ia32_psrad (tmp1, 10); > left_right = __builtin_ia32_psubd (left_right, tmp0); > left_right = __builtin_ia32_psubd (left_right, tmp1); > > *(__m64 *) out_samples = left_right; > > tmp0 = __builtin_ia32_pcmpeqd (sam_AB, zero); > tmp1 = __builtin_ia32_pcmpeqd (left_right, zero); > tmp0 = (__m64) __builtin_ia32_por ((__di) tmp0, (__di) tmp1); > tmp0 = (__m64) __builtin_ia32_pandn ((__di) tmp0, (__di) delta); > sam_AB = (__m64) __builtin_ia32_pxor ((__di) sam_AB, (__di) left_right); > sam_AB = __builtin_ia32_psrad (sam_AB, 31); > tmp1 = __builtin_ia32_psubd (fill, sam_AB); > weight_AB = (__m64) __builtin_ia32_pxor ((__di) weight_AB, (__di) sam_AB); > weight_AB = __builtin_ia32_paddd (weight_AB, tmp1); > weight_AB = (__m64) __builtin_ia32_paddsw ((__v4hi) weight_AB, (__v4hi) tmp0); > weight_AB = __builtin_ia32_psubd (weight_AB, tmp1); > weight_AB = (__m64) __builtin_ia32_pxor ((__di) weight_AB, (__di) sam_AB); > > sum_AB = __builtin_ia32_paddd (sum_AB, weight_AB); > > in_samples += dir; > out_samples += dir; > } > } > else if (dpp->term == -3) { > while (num_samples--) { > left_right = *(__m64 *) in_samples; > sam_AB = samples_AB [0]; > tmp0 = __builtin_ia32_punpckhdq (left_right, left_right); > samples_AB [0] = __builtin_ia32_punpckldq (tmp0, left_right); > > tmp0 = __builtin_ia32_paddd (sam_AB, sam_AB); > tmp1 = (__m64) __builtin_ia32_pand ((__di) sam_AB, (__di) mask); > tmp0 = __builtin_ia32_psrld (tmp0, 16); > tmp1 = __builtin_ia32_pmaddwd ((__v4hi) tmp1, (__v4hi) weight_AB); > tmp0 = __builtin_ia32_pmaddwd ((__v4hi) tmp0, (__v4hi) weight_AB); > tmp1 = __builtin_ia32_paddd (tmp1, round); > tmp0 = __builtin_ia32_pslld (tmp0, 5); > tmp1 = __builtin_ia32_psrad (tmp1, 10); > left_right = __builtin_ia32_psubd (left_right, tmp0); > left_right = __builtin_ia32_psubd (left_right, tmp1); > > *(__m64 *) out_samples = left_right; > > tmp0 = __builtin_ia32_pcmpeqd (sam_AB, zero); > tmp1 = __builtin_ia32_pcmpeqd (left_right, zero); > tmp0 = (__m64) __builtin_ia32_por ((__di) tmp0, (__di) tmp1); > tmp0 = (__m64) __builtin_ia32_pandn ((__di) tmp0, (__di) delta); > sam_AB = (__m64) __builtin_ia32_pxor ((__di) sam_AB, (__di) left_right); > sam_AB = __builtin_ia32_psrad (sam_AB, 31); > tmp1 = __builtin_ia32_psubd (fill, sam_AB); > weight_AB = (__m64) __builtin_ia32_pxor ((__di) weight_AB, (__di) sam_AB); > weight_AB = __builtin_ia32_paddd (weight_AB, tmp1); > weight_AB = (__m64) __builtin_ia32_paddsw ((__v4hi) weight_AB, (__v4hi) tmp0); > weight_AB = __builtin_ia32_psubd (weight_AB, tmp1); > weight_AB = (__m64) __builtin_ia32_pxor ((__di) weight_AB, (__di) sam_AB); > > sum_AB = __builtin_ia32_paddd (sum_AB, weight_AB); > > in_samples += dir; > out_samples += dir; > } > } > } > dpp->sum_A = ((int32_t *) &sum_AB) [0]; > dpp->sum_B = ((int32_t *) &sum_AB) [1]; > dpp->weight_A = ((int32_t *) &weight_AB) [0]; > dpp->weight_B = ((int32_t *) &weight_AB) [1]; > > for (k = 0; k < 8; ++k) { > dpp->samples_A [k] = ((int32_t *) samples_AB) [m * 2]; > dpp->samples_B [k] = ((int32_t *) samples_AB) [m * 2 + 1]; > m = (m + 1) & (8 - 1); > } > __builtin_ia32_emms (); >} ># 518 "extra2.c" >static void decorr_stereo_pass_quick (int32_t *in_samples, int32_t *out_samples, int32_t num_samples, struct decorr_pass *dpp, int dir) >{ > int m = 0, i; > > if (dir < 0) { > out_samples += (num_samples - 1) * 2; > in_samples += (num_samples - 1) * 2; > dir = -2; > } > else > dir = 2; > > dpp->weight_A = restore_weight (store_weight (dpp->weight_A)); > dpp->weight_B = restore_weight (store_weight (dpp->weight_B)); > > for (i = 0; i < 8; ++i) { > dpp->samples_A [i] = exp2s (log2s (dpp->samples_A [i])); > dpp->samples_B [i] = exp2s (log2s (dpp->samples_B [i])); > } > > switch (dpp->term) { > > case 2: > while (num_samples--) { > int32_t sam, tmp; > > sam = dpp->samples_A [0]; > dpp->samples_A [0] = dpp->samples_A [1]; > out_samples [0] = tmp = (dpp->samples_A [1] = in_samples [0]) - ((dpp->weight_A * sam + 512) >> 10); > if (sam && tmp) { int32_t s = (int32_t) (sam ^ tmp) >> 31; dpp->weight_A = (dpp->delta ^ s) + (dpp->weight_A - s); }; > > sam = dpp->samples_B [0]; > dpp->samples_B [0] = dpp->samples_B [1]; > out_samples [1] = tmp = (dpp->samples_B [1] = in_samples [1]) - ((dpp->weight_B * sam + 512) >> 10); > if (sam && tmp) { int32_t s = (int32_t) (sam ^ tmp) >> 31; dpp->weight_B = (dpp->delta ^ s) + (dpp->weight_B - s); }; > > in_samples += dir; > out_samples += dir; > } > > break; > > case 17: > while (num_samples--) { > int32_t sam, tmp; > > sam = 2 * dpp->samples_A [0] - dpp->samples_A [1]; > dpp->samples_A [1] = dpp->samples_A [0]; > out_samples [0] = tmp = (dpp->samples_A [0] = in_samples [0]) - ((dpp->weight_A * sam + 512) >> 10); > if (sam && tmp) { int32_t s = (int32_t) (sam ^ tmp) >> 31; dpp->weight_A = (dpp->delta ^ s) + (dpp->weight_A - s); }; > > sam = 2 * dpp->samples_B [0] - dpp->samples_B [1]; > dpp->samples_B [1] = dpp->samples_B [0]; > out_samples [1] = tmp = (dpp->samples_B [0] = in_samples [1]) - ((dpp->weight_B * sam + 512) >> 10); > if (sam && tmp) { int32_t s = (int32_t) (sam ^ tmp) >> 31; dpp->weight_B = (dpp->delta ^ s) + (dpp->weight_B - s); }; > > in_samples += dir; > out_samples += dir; > } > > break; > > case 18: > while (num_samples--) { > int32_t sam, tmp; > > sam = dpp->samples_A [0] + ((dpp->samples_A [0] - dpp->samples_A [1]) >> 1); > dpp->samples_A [1] = dpp->samples_A [0]; > out_samples [0] = tmp = (dpp->samples_A [0] = in_samples [0]) - ((dpp->weight_A * sam + 512) >> 10); > if (sam && tmp) { int32_t s = (int32_t) (sam ^ tmp) >> 31; dpp->weight_A = (dpp->delta ^ s) + (dpp->weight_A - s); }; > > sam = dpp->samples_B [0] + ((dpp->samples_B [0] - dpp->samples_B [1]) >> 1); > dpp->samples_B [1] = dpp->samples_B [0]; > out_samples [1] = tmp = (dpp->samples_B [0] = in_samples [1]) - ((dpp->weight_B * sam + 512) >> 10); > if (sam && tmp) { int32_t s = (int32_t) (sam ^ tmp) >> 31; dpp->weight_B = (dpp->delta ^ s) + (dpp->weight_B - s); }; > > in_samples += dir; > out_samples += dir; > } > > break; > > default: { > int k = dpp->term & (8 - 1); > > while (num_samples--) { > int32_t sam, tmp; > > sam = dpp->samples_A [m]; > out_samples [0] = tmp = (dpp->samples_A [k] = in_samples [0]) - ((dpp->weight_A * sam + 512) >> 10); > if (sam && tmp) { int32_t s = (int32_t) (sam ^ tmp) >> 31; dpp->weight_A = (dpp->delta ^ s) + (dpp->weight_A - s); }; > > sam = dpp->samples_B [m]; > out_samples [1] = tmp = (dpp->samples_B [k] = in_samples [1]) - ((dpp->weight_B * sam + 512) >> 10); > if (sam && tmp) { int32_t s = (int32_t) (sam ^ tmp) >> 31; dpp->weight_B = (dpp->delta ^ s) + (dpp->weight_B - s); }; > > in_samples += dir; > out_samples += dir; > m = (m + 1) & (8 - 1); > k = (k + 1) & (8 - 1); > } > > if (m) { > int32_t temp_A [8], temp_B [8]; > int k; > > memcpy (temp_A, dpp->samples_A, sizeof (dpp->samples_A)); > memcpy (temp_B, dpp->samples_B, sizeof (dpp->samples_B)); > > for (k = 0; k < 8; k++) { > dpp->samples_A [k] = temp_A [m]; > dpp->samples_B [k] = temp_B [m]; > m = (m + 1) & (8 - 1); > } > } > > break; > } > > case -1: > while (num_samples--) { > int32_t sam_A, sam_B, tmp; > > sam_A = dpp->samples_A [0]; > out_samples [0] = tmp = (sam_B = in_samples [0]) - ((dpp->weight_A * sam_A + 512) >> 10); > if (sam_A && tmp) { const int32_t s = (sam_A ^ tmp) >> 31; if ((dpp->weight_A = (dpp->weight_A ^ s) + (dpp->delta - s)) > 1024) dpp->weight_A = 1024; dpp->weight_A = (dpp->weight_A ^ s) - s; }; > > out_samples [1] = tmp = (dpp->samples_A [0] = in_samples [1]) - ((dpp->weight_B * sam_B + 512) >> 10); > if (sam_B && tmp) { const int32_t s = (sam_B ^ tmp) >> 31; if ((dpp->weight_B = (dpp->weight_B ^ s) + (dpp->delta - s)) > 1024) dpp->weight_B = 1024; dpp->weight_B = (dpp->weight_B ^ s) - s; }; > > in_samples += dir; > out_samples += dir; > } > > break; > > case -2: > while (num_samples--) { > int32_t sam_A, sam_B, tmp; > > sam_B = dpp->samples_B [0]; > out_samples [1] = tmp = (sam_A = in_samples [1]) - ((dpp->weight_B * sam_B + 512) >> 10); > if (sam_B && tmp) { const int32_t s = (sam_B ^ tmp) >> 31; if ((dpp->weight_B = (dpp->weight_B ^ s) + (dpp->delta - s)) > 1024) dpp->weight_B = 1024; dpp->weight_B = (dpp->weight_B ^ s) - s; }; > > out_samples [0] = tmp = (dpp->samples_B [0] = in_samples [0]) - ((dpp->weight_A * sam_A + 512) >> 10); > if (sam_A && tmp) { const int32_t s = (sam_A ^ tmp) >> 31; if ((dpp->weight_A = (dpp->weight_A ^ s) + (dpp->delta - s)) > 1024) dpp->weight_A = 1024; dpp->weight_A = (dpp->weight_A ^ s) - s; }; > > in_samples += dir; > out_samples += dir; > } > > break; > > case -3: > while (num_samples--) { > int32_t sam_A, sam_B, tmp; > > sam_A = dpp->samples_A [0]; > sam_B = dpp->samples_B [0]; > > dpp->samples_A [0] = tmp = in_samples [1]; > out_samples [1] = tmp -= ((dpp->weight_B * sam_B + 512) >> 10); > if (sam_B && tmp) { const int32_t s = (sam_B ^ tmp) >> 31; if ((dpp->weight_B = (dpp->weight_B ^ s) + (dpp->delta - s)) > 1024) dpp->weight_B = 1024; dpp->weight_B = (dpp->weight_B ^ s) - s; }; > > dpp->samples_B [0] = tmp = in_samples [0]; > out_samples [0] = tmp -= ((dpp->weight_A * sam_A + 512) >> 10); > if (sam_A && tmp) { const int32_t s = (sam_A ^ tmp) >> 31; if ((dpp->weight_A = (dpp->weight_A ^ s) + (dpp->delta - s)) > 1024) dpp->weight_A = 1024; dpp->weight_A = (dpp->weight_A ^ s) - s; }; > > in_samples += dir; > out_samples += dir; > } > > break; > } >} > >static void reverse_decorr (struct decorr_pass *dpp) >{ > if (dpp->term > 8) { > int32_t sam_A, sam_B; > > if (dpp->term & 1) { > sam_A = 2 * dpp->samples_A [0] - dpp->samples_A [1]; > sam_B = 2 * dpp->samples_B [0] - dpp->samples_B [1]; > } > else { > sam_A = (3 * dpp->samples_A [0] - dpp->samples_A [1]) >> 1; > sam_B = (3 * dpp->samples_B [0] - dpp->samples_B [1]) >> 1; > } > > dpp->samples_A [1] = dpp->samples_A [0]; > dpp->samples_B [1] = dpp->samples_B [0]; > dpp->samples_A [0] = sam_A; > dpp->samples_B [0] = sam_B; > > if (dpp->term & 1) { > sam_A = 2 * dpp->samples_A [0] - dpp->samples_A [1]; > sam_B = 2 * dpp->samples_B [0] - dpp->samples_B [1]; > } > else { > sam_A = (3 * dpp->samples_A [0] - dpp->samples_A [1]) >> 1; > sam_B = (3 * dpp->samples_B [0] - dpp->samples_B [1]) >> 1; > } > > dpp->samples_A [1] = sam_A; > dpp->samples_B [1] = sam_B; > } > else if (dpp->term > 1) { > int i = 0, j = dpp->term - 1, cnt = dpp->term / 2; > > while (cnt--) { > i &= (8 - 1); > j &= (8 - 1); > dpp->samples_A [i] ^= dpp->samples_A [j]; > dpp->samples_A [j] ^= dpp->samples_A [i]; > dpp->samples_A [i] ^= dpp->samples_A [j]; > dpp->samples_B [i] ^= dpp->samples_B [j]; > dpp->samples_B [j] ^= dpp->samples_B [i]; > dpp->samples_B [i++] ^= dpp->samples_B [j--]; > } > } > else if (dpp->term == -1) { > } > else if (dpp->term == -2) { > } > else if (dpp->term == -3) { > } >} > >static void decorr_stereo_buffer (WavpackExtraInfo *info, int32_t *samples, int32_t *outsamples, int32_t num_samples, int tindex) >{ > struct decorr_pass dp, *dppi = info->dps + tindex; > int delta = dppi->delta, pre_delta; > int term = dppi->term; > > if (delta == 7) > pre_delta = 7; > else if (delta < 2) > pre_delta = 3; > else > pre_delta = delta + 1; > > memset (&dp, 0, sizeof (dp));; > dp.term = term; > dp.delta = pre_delta; > decorr_stereo_pass (samples, outsamples, num_samples > 2048 ? 2048 : num_samples, &dp, -1); > dp.delta = delta; > > if (tindex == 0) > reverse_decorr (&dp); > else { > memset (&dp.samples_A, 0, sizeof (dp.samples_A));; > memset (&dp.samples_B, 0, sizeof (dp.samples_B));; > } > > memcpy (dppi->samples_A, dp.samples_A, sizeof (dp.samples_A)); > memcpy (dppi->samples_B, dp.samples_B, sizeof (dp.samples_B)); > dppi->weight_A = dp.weight_A; > dppi->weight_B = dp.weight_B; > > if (delta == 0) { > dp.delta = 1; > decorr_stereo_pass (samples, outsamples, num_samples, &dp, 1); > dp.delta = 0; > memcpy (dp.samples_A, dppi->samples_A, sizeof (dp.samples_A)); > memcpy (dp.samples_B, dppi->samples_B, sizeof (dp.samples_B)); > dppi->weight_A = dp.weight_A = dp.sum_A / num_samples; > dppi->weight_B = dp.weight_B = dp.sum_B / num_samples; > } > > > > > if (info->gt16bit) > decorr_stereo_pass (samples, outsamples, num_samples, &dp, 1); > else > decorr_stereo_pass_quick (samples, outsamples, num_samples, &dp, 1); >} > >static int log2overhead (int first_term, int num_terms) >{ > > > > > > > return 0; > >} > >static void recurse_stereo (WavpackContext *wpc, WavpackExtraInfo *info, int depth, int delta, uint32_t input_bits) >{ > WavpackStream *wps = wpc->streams [wpc->current_stream]; > int term, branches = ((wpc->config.extra_flags & 0x1c0) >> 6) - depth; > int32_t *samples, *outsamples; > uint32_t term_bits [22], bits; > > if (branches < 1 || depth + 1 == info->nterms) > branches = 1; > > memset (&term_bits, 0, sizeof (term_bits));; > samples = info->sampleptrs [depth]; > outsamples = info->sampleptrs [depth + 1]; > > for (term = -3; term <= 18; ++term) { > if (!term || (term > 8 && term < 17)) > continue; > > if (term == 17 && branches == 1 && depth + 1 < info->nterms) > continue; > > if (term == -1 || term == -2) > if (!(wps->wphdr.flags & 0x20)) > continue; > > if ((wpc->config.flags & 0x200) && (term > 4 && term < 17)) > continue; > > info->dps [depth].term = term; > info->dps [depth].delta = delta; > decorr_stereo_buffer (info, samples, outsamples, wps->wphdr.block_samples, depth); > bits = log2buffer (outsamples, wps->wphdr.block_samples * 2, info->log_limit); > > if (bits != (uint32_t) -1) > bits += log2overhead (info->dps [0].term, depth + 1); > > if (bits < info->best_bits) { > info->best_bits = bits; > memset (&wps->decorr_passes, 0, sizeof (wps->decorr_passes));; > memcpy (wps->decorr_passes, info->dps, sizeof (info->dps [0]) * (depth + 1)); > memcpy (info->sampleptrs [info->nterms + 1], info->sampleptrs [depth + 1], wps->wphdr.block_samples * 8); > } > > term_bits [term + 3] = bits; > } > > while (depth + 1 < info->nterms && branches--) { > uint32_t local_best_bits = input_bits; > int best_term = 0, i; > > for (i = 0; i < 22; ++i) > if (term_bits [i] && term_bits [i] < local_best_bits) { > local_best_bits = term_bits [i]; > > best_term = i - 3; > } > > if (!best_term) > break; > > term_bits [best_term + 3] = 0; > > info->dps [depth].term = best_term; > info->dps [depth].delta = delta; > decorr_stereo_buffer (info, samples, outsamples, wps->wphdr.block_samples, depth); > > > > > recurse_stereo (wpc, info, depth + 1, delta, local_best_bits); > } >} > >static void delta_stereo (WavpackContext *wpc, WavpackExtraInfo *info) >{ > WavpackStream *wps = wpc->streams [wpc->current_stream]; > int lower = 0; > int delta, d; > uint32_t bits; > > if (wps->decorr_passes [0].term) > delta = wps->decorr_passes [0].delta; > else > return; > > for (d = delta - 1; d >= 0; --d) { > int i; > > if (!d && (wps->wphdr.flags & 8)) > break; > > for (i = 0; i < info->nterms && wps->decorr_passes [i].term; ++i) { > info->dps [i].term = wps->decorr_passes [i].term; > info->dps [i].delta = d; > decorr_stereo_buffer (info, info->sampleptrs [i], info->sampleptrs [i+1], wps->wphdr.block_samples, i); > } > > bits = log2buffer (info->sampleptrs [i], wps->wphdr.block_samples * 2, info->log_limit); > > if (bits != (uint32_t) -1) > bits += log2overhead (wps->decorr_passes [0].term, i); > > if (bits < info->best_bits) { > lower = 1; > info->best_bits = bits; > memset (&wps->decorr_passes, 0, sizeof (wps->decorr_passes));; > memcpy (wps->decorr_passes, info->dps, sizeof (info->dps [0]) * i); > memcpy (info->sampleptrs [info->nterms + 1], info->sampleptrs [i], wps->wphdr.block_samples * 8); > } > else > break; > } > > for (d = delta + 1; !lower && d <= 7; ++d) { > int i; > > for (i = 0; i < info->nterms && wps->decorr_passes [i].term; ++i) { > info->dps [i].term = wps->decorr_passes [i].term; > info->dps [i].delta = d; > decorr_stereo_buffer (info, info->sampleptrs [i], info->sampleptrs [i+1], wps->wphdr.block_samples, i); > } > > bits = log2buffer (info->sampleptrs [i], wps->wphdr.block_samples * 2, info->log_limit); > > if (bits != (uint32_t) -1) > bits += log2overhead (wps->decorr_passes [0].term, i); > > if (bits < info->best_bits) { > info->best_bits = bits; > memset (&wps->decorr_passes, 0, sizeof (wps->decorr_passes));; > memcpy (wps->decorr_passes, info->dps, sizeof (info->dps [0]) * i); > memcpy (info->sampleptrs [info->nterms + 1], info->sampleptrs [i], wps->wphdr.block_samples * 8); > } > else > break; > } >} > >static void sort_stereo (WavpackContext *wpc, WavpackExtraInfo *info) >{ > WavpackStream *wps = wpc->streams [wpc->current_stream]; > int reversed = 1; > uint32_t bits; > > while (reversed) { > int ri, i; > > memcpy (info->dps, wps->decorr_passes, sizeof (wps->decorr_passes)); > reversed = 0; > > for (ri = 0; ri < info->nterms && wps->decorr_passes [ri].term; ++ri) { > > if (ri + 1 >= info->nterms || !wps->decorr_passes [ri+1].term) > break; > > if (wps->decorr_passes [ri].term == wps->decorr_passes [ri+1].term) { > decorr_stereo_buffer (info, info->sampleptrs [ri], info->sampleptrs [ri+1], wps->wphdr.block_samples, ri); > continue; > } > > info->dps [ri] = wps->decorr_passes [ri+1]; > info->dps [ri+1] = wps->decorr_passes [ri]; > > for (i = ri; i < info->nterms && wps->decorr_passes [i].term; ++i) > decorr_stereo_buffer (info, info->sampleptrs [i], info->sampleptrs [i+1], wps->wphdr.block_samples, i); > > bits = log2buffer (info->sampleptrs [i], wps->wphdr.block_samples * 2, info->log_limit); > > if (bits != (uint32_t) -1) > bits += log2overhead (wps->decorr_passes [0].term, i); > > if (bits < info->best_bits) { > reversed = 1; > info->best_bits = bits; > memset (&wps->decorr_passes, 0, sizeof (wps->decorr_passes));; > memcpy (wps->decorr_passes, info->dps, sizeof (info->dps [0]) * i); > memcpy (info->sampleptrs [info->nterms + 1], info->sampleptrs [i], wps->wphdr.block_samples * 8); > } > else { > info->dps [ri] = wps->decorr_passes [ri]; > info->dps [ri+1] = wps->decorr_passes [ri+1]; > decorr_stereo_buffer (info, info->sampleptrs [ri], info->sampleptrs [ri+1], wps->wphdr.block_samples, ri); > } > } > } >} > >static const uint32_t xtable [] = { 91, 123, 187, 251 }; > >static void analyze_stereo (WavpackContext *wpc, int32_t *samples, int do_samples) >{ > WavpackStream *wps = wpc->streams [wpc->current_stream]; > WavpackExtraInfo info; > int i; > > info.gt16bit = ((wps->wphdr.flags & (0x1fL << 18)) >> 18) >= 16; > > > info.log_limit = (((wps->wphdr.flags & (0x1fL << 18)) >> 18) + 4) * 256; > > if (info.log_limit > 6912) > info.log_limit = 6912; > > > > > if (wpc->config.flags & (0x800 | 0x1000)) > wpc->config.extra_flags = xtable [wpc->config.xmode - 4]; > else > wpc->config.extra_flags = xtable [wpc->config.xmode - 3]; > > info.nterms = wps->num_terms; > > for (i = 0; i < info.nterms + 2; ++i) > info.sampleptrs [i] = malloc (wps->wphdr.block_samples * 8); > > memcpy (info.dps, wps->decorr_passes, sizeof (info.dps)); > memcpy (info.sampleptrs [0], samples, wps->wphdr.block_samples * 8); > > for (i = 0; i < info.nterms && info.dps [i].term; ++i) > if (info.gt16bit) > decorr_stereo_pass (info.sampleptrs [i], info.sampleptrs [i + 1], wps->wphdr.block_samples, info.dps + i, 1); > else > decorr_stereo_pass_quick (info.sampleptrs [i], info.sampleptrs [i + 1], wps->wphdr.block_samples, info.dps + i, 1); > > info.best_bits = log2buffer (info.sampleptrs [info.nterms], wps->wphdr.block_samples * 2, 0) * 1; > info.best_bits += log2overhead (info.dps [0].term, i); > memcpy (info.sampleptrs [info.nterms + 1], info.sampleptrs [i], wps->wphdr.block_samples * 8); > > if (wpc->config.extra_flags & 0x1c0) > recurse_stereo (wpc, &info, 0, (int) floor (wps->delta_decay + 0.5), > log2buffer (info.sampleptrs [0], wps->wphdr.block_samples * 2, 0)); > > if (wpc->config.extra_flags & 32) > sort_stereo (wpc, &info); > > if (wpc->config.extra_flags & 8) { > delta_stereo (wpc, &info); > > if ((wpc->config.extra_flags & 16) && wps->decorr_passes [0].term) > wps->delta_decay = (float)((wps->delta_decay * 2.0 + wps->decorr_passes [0].delta) / 3.0); > else > wps->delta_decay = 2.0; > } > > if (wpc->config.extra_flags & 32768) > sort_stereo (wpc, &info); > > if (do_samples) > memcpy (samples, info.sampleptrs [info.nterms + 1], wps->wphdr.block_samples * 8); > > for (i = 0; i < info.nterms; ++i) > if (!wps->decorr_passes [i].term) > break; > > wps->num_terms = i; > > for (i = 0; i < info.nterms + 2; ++i) > free (info.sampleptrs [i]); >} > >static void stereo_add_noise (WavpackStream *wps, int32_t *lptr, int32_t *rptr) >{ > int shaping_weight, new = wps->wphdr.flags & 0x20000000; > short *shaping_array = wps->dc.shaping_array; > int32_t error [2], temp, cnt; > > scan_word (wps, rptr, wps->wphdr.block_samples, -1); > cnt = wps->wphdr.block_samples; > memset (&error, 0, sizeof (error));; > > if (wps->wphdr.flags & 0x40) { > while (cnt--) { > if (shaping_array) > shaping_weight = *shaping_array++; > else > shaping_weight = (wps->dc.shaping_acc [0] += wps->dc.shaping_delta [0]) >> 16; > > temp = -(error [0] != (short) error [0] ? (((((error [0] & 0xffff) * shaping_weight) >> 9) + (((error [0] & ~0xffff) >> 9) * shaping_weight) + 1) >> 1) : ((shaping_weight * error [0] + 512) >> 10)); > > if (new && shaping_weight < 0 && temp) { > if (temp == error [0]) > temp = (temp < 0) ? temp + 1 : temp - 1; > > lptr [0] += (error [0] = nosend_word (wps, rptr [0], 0) - rptr [0] + temp); > } > else > lptr [0] += (error [0] = nosend_word (wps, rptr [0], 0) - rptr [0]) + temp; > > if (!shaping_array) > shaping_weight = (wps->dc.shaping_acc [1] += wps->dc.shaping_delta [1]) >> 16; > > temp = -(error [1] != (short) error [1] ? (((((error [1] & 0xffff) * shaping_weight) >> 9) + (((error [1] & ~0xffff) >> 9) * shaping_weight) + 1) >> 1) : ((shaping_weight * error [1] + 512) >> 10)); > > if (new && shaping_weight < 0 && temp) { > if (temp == error [1]) > temp = (temp < 0) ? temp + 1 : temp - 1; > > lptr [1] += (error [1] = nosend_word (wps, rptr [1], 1) - rptr [1] + temp); > } > else > lptr [1] += (error [1] = nosend_word (wps, rptr [1], 1) - rptr [1]) + temp; > > lptr += 2; > rptr += 2; > } > > if (!shaping_array) { > wps->dc.shaping_acc [0] -= wps->dc.shaping_delta [0] * wps->wphdr.block_samples; > wps->dc.shaping_acc [1] -= wps->dc.shaping_delta [1] * wps->wphdr.block_samples; > } > } > else > while (cnt--) { > lptr [0] += nosend_word (wps, rptr [0], 0) - rptr [0]; > lptr [1] += nosend_word (wps, rptr [1], 1) - rptr [1]; > lptr += 2; > rptr += 2; > } >} > >void execute_stereo (WavpackContext *wpc, int32_t *samples, int no_history, int do_samples) >{ > int32_t *temp_buffer [2], *best_buffer, *noisy_buffer = ((void *)0), *js_buffer = ((void *)0); > struct decorr_pass temp_decorr_pass, save_decorr_passes [16]; > WavpackStream *wps = wpc->streams [wpc->current_stream]; > int32_t num_samples = wps->wphdr.block_samples; > int32_t buf_size = sizeof (int32_t) * num_samples * 2; > uint32_t best_size = (uint32_t) -1, size; > int log_limit, force_js = 0, force_ts = 0, pi, i; > > for (i = 0; i < num_samples * 2; ++i) > if (samples [i]) > break; > > if (i == num_samples * 2) { > wps->wphdr.flags &= ~((uint32_t) 0x10); > memset (&wps->decorr_passes, 0, sizeof (wps->decorr_passes));; > wps->num_terms = 0; > init_words (wps); > return; > } > > > log_limit = (((wps->wphdr.flags & (0x1fL << 18)) >> 18) + 4) * 256; > > if (log_limit > 6912) > log_limit = 6912; > > > > > if (wpc->config.flags & 0x10000) { > if (wps->wphdr.flags & 0x10) > force_js = 1; > else > force_ts = 1; > } > > memset (&save_decorr_passes, 0, sizeof (save_decorr_passes));; > temp_buffer [0] = malloc (buf_size); > temp_buffer [1] = malloc (buf_size); > best_buffer = malloc (buf_size); > > if (wps->num_passes > 1 && (wps->wphdr.flags & 8)) { > memset (&temp_decorr_pass, 0, sizeof (temp_decorr_pass));; > temp_decorr_pass.delta = 2; > temp_decorr_pass.term = 18; > > decorr_stereo_pass (samples, temp_buffer [0], > num_samples > 2048 ? 2048 : num_samples, &temp_decorr_pass, -1); > > reverse_decorr (&temp_decorr_pass); > decorr_stereo_pass (samples, temp_buffer [0], num_samples, &temp_decorr_pass, 1); > memset (&temp_decorr_pass, 0, sizeof (temp_decorr_pass));; > temp_decorr_pass.delta = 2; > temp_decorr_pass.term = 17; > > decorr_stereo_pass (temp_buffer [0], temp_buffer [1], > num_samples > 2048 ? 2048 : num_samples, &temp_decorr_pass, -1); > > decorr_stereo_pass (temp_buffer [0], temp_buffer [1], num_samples, &temp_decorr_pass, 1); > noisy_buffer = malloc (buf_size); > memcpy (noisy_buffer, samples, buf_size); > stereo_add_noise (wps, noisy_buffer, temp_buffer [1]); > no_history = 1; > } > > if (no_history || wps->num_passes >= 7) > wps->best_decorr = wps->mask_decorr = 0; > > for (pi = 0; pi < wps->num_passes;) { > const WavpackDecorrSpec *wpds; > int nterms, c, j; > > if (!pi) > c = wps->best_decorr; > else { > if (wps->mask_decorr == 0) > c = 0; > else > c = (wps->best_decorr & (wps->mask_decorr - 1)) | wps->mask_decorr; > > if (c == wps->best_decorr) { > wps->mask_decorr = wps->mask_decorr ? ((wps->mask_decorr << 1) & (wps->num_decorrs - 1)) : 1; > continue; > } > } > > wpds = &wps->decorr_specs [c]; > nterms = (int) strlen (wpds->terms); > > while (1) { > if (force_js || (wpds->joint_stereo && !force_ts)) { > if (!js_buffer) { > int32_t *lptr, cnt = num_samples; > > lptr = js_buffer = malloc (buf_size); > memcpy (js_buffer, noisy_buffer ? noisy_buffer : samples, buf_size); > > while (cnt--) { > lptr [1] += ((lptr [0] -= lptr [1]) >> 1); > lptr += 2; > } > } > > memcpy (temp_buffer [0], js_buffer, buf_size); > } > else > memcpy (temp_buffer [0], noisy_buffer ? noisy_buffer : samples, buf_size); > > memset (&save_decorr_passes, 0, sizeof (save_decorr_passes));; > > for (j = 0; j < nterms; ++j) { > memset (&temp_decorr_pass, 0, sizeof (temp_decorr_pass));; > temp_decorr_pass.delta = wpds->delta; > temp_decorr_pass.term = wpds->terms [j]; > > if (temp_decorr_pass.term < 0 && !(wps->wphdr.flags & 0x20)) > temp_decorr_pass.term = -3; > > decorr_stereo_pass (temp_buffer [j&1], temp_buffer [~j&1], > num_samples > 2048 ? 2048 : num_samples, &temp_decorr_pass, -1); > > if (j) { > memset (&temp_decorr_pass.samples_A, 0, sizeof (temp_decorr_pass.samples_A));; > memset (&temp_decorr_pass.samples_B, 0, sizeof (temp_decorr_pass.samples_B));; > } > else > reverse_decorr (&temp_decorr_pass); > > memcpy (save_decorr_passes + j, &temp_decorr_pass, sizeof (struct decorr_pass)); > > if (((wps->wphdr.flags & (0x1fL << 18)) >> 18) >= 16) > decorr_stereo_pass (temp_buffer [j&1], temp_buffer [~j&1], num_samples, &temp_decorr_pass, 1); > else > decorr_stereo_pass_quick (temp_buffer [j&1], temp_buffer [~j&1], num_samples, &temp_decorr_pass, 1); > } > > size = log2buffer (temp_buffer [j&1], num_samples * 2, log_limit); > > if (size == (uint32_t) -1 && nterms) > nterms >>= 1; > else > break; > } > > size += log2overhead (wpds->terms [0], nterms); > > if (size < best_size) { > memcpy (best_buffer, temp_buffer [j&1], buf_size); > memcpy (wps->decorr_passes, save_decorr_passes, sizeof (struct decorr_pass) * 16); > wps->num_terms = nterms; > wps->best_decorr = c; > best_size = size; > } > > if (pi++) > wps->mask_decorr = wps->mask_decorr ? ((wps->mask_decorr << 1) & (wps->num_decorrs - 1)) : 1; > } > > if (force_js || (wps->decorr_specs [wps->best_decorr].joint_stereo && !force_ts)) > wps->wphdr.flags |= 0x10; > else > wps->wphdr.flags &= ~((uint32_t) 0x10); > > if (wpc->config.xmode > 3) { > if (wps->wphdr.flags & 0x10) { > analyze_stereo (wpc, js_buffer, do_samples); > > if (do_samples) > memcpy (samples, js_buffer, buf_size); > } > else if (noisy_buffer) { > analyze_stereo (wpc, noisy_buffer, do_samples); > > if (do_samples) > memcpy (samples, noisy_buffer, buf_size); > } > else > analyze_stereo (wpc, samples, do_samples); > } > else if (do_samples) > memcpy (samples, best_buffer, buf_size); > > if (wpc->config.xmode > 3 || no_history || wps->joint_stereo != wps->decorr_specs [wps->best_decorr].joint_stereo) { > wps->joint_stereo = wps->decorr_specs [wps->best_decorr].joint_stereo; > scan_word (wps, best_buffer, num_samples, -1); > } > > if (noisy_buffer) > free (noisy_buffer); > > if (js_buffer) > free (js_buffer); > > free (temp_buffer [1]); > free (temp_buffer [0]); > free (best_buffer); ># 1354 "extra2.c" >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 291614
:
209076
| 209078 |
209079