// /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/cc1 -quiet -I. -I. -I.. -I ../utils -I .. -MD motion.d -MF .deps/motion.Tpo -MP -MT motion.o -MQ motion.o -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=5 -DHAVE_CONFIG_H motion.c -fPIE -fstack-protector -fstack-protector-all -quiet -dumpbase motion.c -march=athlon-xp -mno-sse2 -auxbase-strip motion.o -O2 -funroll-all-loops -finline-functions -ffast-math -frerun-cse-after-loop -frerun-loop-opt -fexpensive-optimizations -fmove-all-movables -o - -frandom-seed=0 # 1 "motion.c" # 1 "" # 1 "" # 1 "motion.c" # 1 "../config.h" 1 # 3 "motion.c" 2 # 1 "/usr/include/stdio.h" 1 3 4 # 28 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/features.h" 1 3 4 # 296 "/usr/include/features.h" 3 4 # 1 "/usr/include/sys/cdefs.h" 1 3 4 # 297 "/usr/include/features.h" 2 3 4 # 319 "/usr/include/features.h" 3 4 # 1 "/usr/include/gnu/stubs.h" 1 3 4 # 320 "/usr/include/features.h" 2 3 4 # 29 "/usr/include/stdio.h" 2 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stddef.h" 1 3 4 # 213 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stddef.h" 3 4 typedef unsigned int size_t; # 35 "/usr/include/stdio.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 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stddef.h" 1 3 4 # 32 "/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; __extension__ typedef signed long long int __int64_t; __extension__ typedef unsigned long long int __uint64_t; __extension__ typedef long long int __quad_t; __extension__ typedef unsigned long long int __u_quad_t; # 129 "/usr/include/bits/types.h" 3 4 # 1 "/usr/include/bits/typesizes.h" 1 3 4 # 130 "/usr/include/bits/types.h" 2 3 4 __extension__ typedef unsigned long long int __dev_t; __extension__ typedef unsigned int __uid_t; __extension__ typedef unsigned int __gid_t; __extension__ typedef unsigned long int __ino_t; __extension__ typedef unsigned long long int __ino64_t; __extension__ typedef unsigned int __mode_t; __extension__ typedef unsigned int __nlink_t; __extension__ typedef long int __off_t; __extension__ typedef long long int __off64_t; __extension__ typedef int __pid_t; __extension__ typedef struct { int __val[2]; } __fsid_t; __extension__ typedef long int __clock_t; __extension__ typedef unsigned long int __rlim_t; __extension__ typedef unsigned long long int __rlim64_t; __extension__ typedef unsigned int __id_t; __extension__ typedef long int __time_t; __extension__ typedef unsigned int __useconds_t; __extension__ typedef long int __suseconds_t; __extension__ typedef int __daddr_t; __extension__ typedef long int __swblk_t; __extension__ typedef int __key_t; __extension__ typedef int __clockid_t; __extension__ typedef void * __timer_t; __extension__ typedef long int __blksize_t; __extension__ typedef long int __blkcnt_t; __extension__ typedef long long int __blkcnt64_t; __extension__ typedef unsigned long int __fsblkcnt_t; __extension__ typedef unsigned long long int __fsblkcnt64_t; __extension__ typedef unsigned long int __fsfilcnt_t; __extension__ typedef unsigned long long int __fsfilcnt64_t; __extension__ typedef int __ssize_t; typedef __off64_t __loff_t; typedef __quad_t *__qaddr_t; typedef char *__caddr_t; __extension__ typedef int __intptr_t; __extension__ typedef unsigned int __socklen_t; # 37 "/usr/include/stdio.h" 2 3 4 typedef struct _IO_FILE FILE; # 62 "/usr/include/stdio.h" 3 4 typedef struct _IO_FILE __FILE; # 72 "/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 # 14 "/usr/include/_G_config.h" 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stddef.h" 1 3 4 # 325 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stddef.h" 3 4 typedef long int wchar_t; # 354 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stddef.h" 3 4 typedef unsigned int wint_t; # 15 "/usr/include/_G_config.h" 2 3 4 # 24 "/usr/include/_G_config.h" 3 4 # 1 "/usr/include/wchar.h" 1 3 4 # 48 "/usr/include/wchar.h" 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stddef.h" 1 3 4 # 49 "/usr/include/wchar.h" 2 3 4 # 1 "/usr/include/bits/wchar.h" 1 3 4 # 51 "/usr/include/wchar.h" 2 3 4 # 76 "/usr/include/wchar.h" 3 4 typedef struct { int __count; union { wint_t __wch; char __wchb[4]; } __value; } __mbstate_t; # 25 "/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; # 44 "/usr/include/_G_config.h" 3 4 # 1 "/usr/include/gconv.h" 1 3 4 # 28 "/usr/include/gconv.h" 3 4 # 1 "/usr/include/wchar.h" 1 3 4 # 48 "/usr/include/wchar.h" 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stddef.h" 1 3 4 # 49 "/usr/include/wchar.h" 2 3 4 # 29 "/usr/include/gconv.h" 2 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stddef.h" 1 3 4 # 32 "/usr/include/gconv.h" 2 3 4 enum { __GCONV_OK = 0, __GCONV_NOCONV, __GCONV_NODB, __GCONV_NOMEM, __GCONV_EMPTY_INPUT, __GCONV_FULL_OUTPUT, __GCONV_ILLEGAL_INPUT, __GCONV_INCOMPLETE_INPUT, __GCONV_ILLEGAL_DESCRIPTOR, __GCONV_INTERNAL_ERROR }; enum { __GCONV_IS_LAST = 0x0001, __GCONV_IGNORE_ERRORS = 0x0002 }; struct __gconv_step; struct __gconv_step_data; struct __gconv_loaded_object; struct __gconv_trans_data; typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *, __const unsigned char **, __const unsigned char *, unsigned char **, size_t *, int, int); typedef wint_t (*__gconv_btowc_fct) (struct __gconv_step *, unsigned char); typedef int (*__gconv_init_fct) (struct __gconv_step *); typedef void (*__gconv_end_fct) (struct __gconv_step *); typedef int (*__gconv_trans_fct) (struct __gconv_step *, struct __gconv_step_data *, void *, __const unsigned char *, __const unsigned char **, __const unsigned char *, unsigned char **, size_t *); typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *, __const unsigned char *, unsigned char *, unsigned char *); typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***, size_t *); typedef int (*__gconv_trans_init_fct) (void **, const char *); typedef void (*__gconv_trans_end_fct) (void *); struct __gconv_trans_data { __gconv_trans_fct __trans_fct; __gconv_trans_context_fct __trans_context_fct; __gconv_trans_end_fct __trans_end_fct; void *__data; struct __gconv_trans_data *__next; }; struct __gconv_step { struct __gconv_loaded_object *__shlib_handle; __const char *__modname; int __counter; char *__from_name; char *__to_name; __gconv_fct __fct; __gconv_btowc_fct __btowc_fct; __gconv_init_fct __init_fct; __gconv_end_fct __end_fct; int __min_needed_from; int __max_needed_from; int __min_needed_to; int __max_needed_to; int __stateful; void *__data; }; struct __gconv_step_data { unsigned char *__outbuf; unsigned char *__outbufend; int __flags; int __invocation_counter; int __internal_use; __mbstate_t *__statep; __mbstate_t __state; struct __gconv_trans_data *__trans; }; typedef struct __gconv_info { size_t __nsteps; struct __gconv_step *__steps; __extension__ struct __gconv_step_data __data []; } *__gconv_t; # 45 "/usr/include/_G_config.h" 2 3 4 typedef union { struct __gconv_info __cd; struct { struct __gconv_info __cd; struct __gconv_step_data __data; } __combined; } _G_iconv_t; 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-lib/i686-pc-linux-gnu/3.3.5/include/stdarg.h" 1 3 4 # 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stdarg.h" 3 4 typedef __builtin_va_list __gnuc_va_list; # 54 "/usr/include/libio.h" 2 3 4 # 163 "/usr/include/libio.h" 3 4 struct _IO_jump_t; struct _IO_FILE; # 173 "/usr/include/libio.h" 3 4 typedef void _IO_lock_t; struct _IO_marker { struct _IO_marker *_next; struct _IO_FILE *_sbuf; int _pos; # 196 "/usr/include/libio.h" 3 4 }; enum __codecvt_result { __codecvt_ok, __codecvt_partial, __codecvt_error, __codecvt_noconv }; # 264 "/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; # 312 "/usr/include/libio.h" 3 4 __off64_t _offset; void *__pad1; void *__pad2; int _mode; char _unused2[15 * sizeof (int) - 2 * sizeof (void *)]; }; 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_; # 351 "/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); typedef __io_read_fn cookie_read_function_t; typedef __io_write_fn cookie_write_function_t; typedef __io_seek_fn cookie_seek_function_t; typedef __io_close_fn cookie_close_function_t; typedef struct { __io_read_fn *read; __io_write_fn *write; __io_seek_fn *seek; __io_close_fn *close; } _IO_cookie_io_functions_t; typedef _IO_cookie_io_functions_t cookie_io_functions_t; struct _IO_cookie_file; extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, void *__cookie, _IO_cookie_io_functions_t __fns); extern int __underflow (_IO_FILE *) ; extern int __uflow (_IO_FILE *) ; extern int __overflow (_IO_FILE *, int) ; extern wint_t __wunderflow (_IO_FILE *) ; extern wint_t __wuflow (_IO_FILE *) ; extern wint_t __woverflow (_IO_FILE *, wint_t) ; # 441 "/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) ; extern int _IO_ferror (_IO_FILE *__fp) ; extern int _IO_peekc_locked (_IO_FILE *__fp) ; extern void _IO_flockfile (_IO_FILE *) ; extern void _IO_funlockfile (_IO_FILE *) ; extern int _IO_ftrylockfile (_IO_FILE *) ; # 471 "/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 *) ; # 73 "/usr/include/stdio.h" 2 3 4 typedef __gnuc_va_list va_list; # 86 "/usr/include/stdio.h" 3 4 typedef _G_fpos64_t fpos_t; typedef _G_fpos64_t fpos64_t; # 138 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4 # 139 "/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) ; extern int rename (__const char *__old, __const char *__new) ; # 167 "/usr/include/stdio.h" 3 4 extern FILE *tmpfile (void) __asm__ ("" "tmpfile64"); extern FILE *tmpfile64 (void); extern char *tmpnam (char *__s) ; extern char *tmpnam_r (char *__s) ; # 196 "/usr/include/stdio.h" 3 4 extern char *tempnam (__const char *__dir, __const char *__pfx) __attribute__ ((__malloc__)); extern int fclose (FILE *__stream); extern int fflush (FILE *__stream); # 221 "/usr/include/stdio.h" 3 4 extern int fflush_unlocked (FILE *__stream); # 231 "/usr/include/stdio.h" 3 4 extern int fcloseall (void); # 252 "/usr/include/stdio.h" 3 4 extern FILE *fopen (__const char *__restrict __filename, __const char *__restrict __modes) __asm__ ("" "fopen64"); extern FILE *freopen (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream) __asm__ ("" "freopen64"); extern FILE *fopen64 (__const char *__restrict __filename, __const char *__restrict __modes); extern FILE *freopen64 (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream); extern FILE *fdopen (int __fd, __const char *__modes) ; extern FILE *fopencookie (void *__restrict __magic_cookie, __const char *__restrict __modes, _IO_cookie_io_functions_t __io_funcs) ; extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes) ; extern FILE *open_memstream (char **__restrict __bufloc, size_t *__restrict __sizeloc) ; extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) ; extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, int __modes, size_t __n) ; extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, size_t __size) ; extern void setlinebuf (FILE *__stream) ; 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, ...) ; 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) ; extern int snprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, ...) __attribute__ ((__format__ (__printf__, 3, 4))); extern int vsnprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__printf__, 3, 0))); extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f, __gnuc_va_list __arg) __attribute__ ((__format__ (__printf__, 2, 0))); extern int __asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3))); extern int asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3))); extern int vdprintf (int __fd, __const char *__restrict __fmt, __gnuc_va_list __arg) __attribute__ ((__format__ (__printf__, 2, 0))); extern int dprintf (int __fd, __const char *__restrict __fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3))); 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, ...) ; extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 2, 0))); extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 1, 0))); extern int vsscanf (__const char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 2, 0))); extern int fgetc (FILE *__stream); extern int getc (FILE *__stream); extern int getchar (void); # 454 "/usr/include/stdio.h" 3 4 extern int getc_unlocked (FILE *__stream); extern int getchar_unlocked (void); # 465 "/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); # 498 "/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); # 543 "/usr/include/stdio.h" 3 4 extern char *fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream); # 559 "/usr/include/stdio.h" 3 4 extern __ssize_t __getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream); extern __ssize_t getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream); extern __ssize_t getline (char **__restrict __lineptr, size_t *__restrict __n, FILE *__restrict __stream); 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); # 620 "/usr/include/stdio.h" 3 4 extern int fputs_unlocked (__const char *__restrict __s, FILE *__restrict __stream); # 631 "/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); # 675 "/usr/include/stdio.h" 3 4 extern int fseeko (FILE *__stream, __off64_t __off, int __whence) __asm__ ("" "fseeko64"); extern __off64_t ftello (FILE *__stream) __asm__ ("" "ftello64"); # 700 "/usr/include/stdio.h" 3 4 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos) __asm__ ("" "fgetpos64"); extern int fsetpos (FILE *__stream, __const fpos_t *__pos) __asm__ ("" "fsetpos64"); extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); extern __off64_t ftello64 (FILE *__stream); extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos); extern void clearerr (FILE *__stream) ; extern int feof (FILE *__stream) ; extern int ferror (FILE *__stream) ; extern void clearerr_unlocked (FILE *__stream) ; extern int feof_unlocked (FILE *__stream) ; extern int ferror_unlocked (FILE *__stream) ; 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[]; extern int _sys_nerr; extern __const char *__const _sys_errlist[]; # 748 "/usr/include/stdio.h" 2 3 4 extern int fileno (FILE *__stream) ; extern int fileno_unlocked (FILE *__stream) ; # 767 "/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) ; extern char *cuserid (char *__s); struct obstack; extern int obstack_printf (struct obstack *__restrict __obstack, __const char *__restrict __format, ...) __attribute__ ((__format__ (__printf__, 2, 3))); extern int obstack_vprintf (struct obstack *__restrict __obstack, __const char *__restrict __format, __gnuc_va_list __args) __attribute__ ((__format__ (__printf__, 2, 0))); extern void flockfile (FILE *__stream) ; extern int ftrylockfile (FILE *__stream) ; extern void funlockfile (FILE *__stream) ; # 828 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/bits/stdio.h" 1 3 4 # 33 "/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 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))); } extern __inline __ssize_t getline (char **__lineptr, size_t *__n, FILE *__stream) { return __getdelim (__lineptr, __n, '\n', __stream); } extern __inline int feof_unlocked (FILE *__stream) { return (((__stream)->_flags & 0x10) != 0); } extern __inline int ferror_unlocked (FILE *__stream) { return (((__stream)->_flags & 0x20) != 0); } # 829 "/usr/include/stdio.h" 2 3 4 # 6 "motion.c" 2 # 1 "/usr/include/stdlib.h" 1 3 4 # 33 "/usr/include/stdlib.h" 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stddef.h" 1 3 4 # 34 "/usr/include/stdlib.h" 2 3 4 # 1 "/usr/include/bits/waitflags.h" 1 3 4 # 43 "/usr/include/stdlib.h" 2 3 4 # 1 "/usr/include/bits/waitstatus.h" 1 3 4 # 63 "/usr/include/bits/waitstatus.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 # 64 "/usr/include/bits/waitstatus.h" 2 3 4 union wait { int w_status; struct { unsigned int __w_termsig:7; unsigned int __w_coredump:1; unsigned int __w_retcode:8; unsigned int:16; } __wait_terminated; struct { unsigned int __w_stopval:8; unsigned int __w_stopsig:8; unsigned int:16; } __wait_stopped; }; # 44 "/usr/include/stdlib.h" 2 3 4 # 68 "/usr/include/stdlib.h" 3 4 typedef union { union wait *__uptr; int *__iptr; } __WAIT_STATUS __attribute__ ((__transparent_union__)); # 93 "/usr/include/stdlib.h" 3 4 typedef struct { int quot; int rem; } div_t; typedef struct { long int quot; long int rem; } ldiv_t; __extension__ typedef struct { long long int quot; long long int rem; } lldiv_t; # 137 "/usr/include/stdlib.h" 3 4 extern size_t __ctype_get_mb_cur_max (void) ; extern double atof (__const char *__nptr) __attribute__ ((__pure__)); extern int atoi (__const char *__nptr) __attribute__ ((__pure__)); extern long int atol (__const char *__nptr) __attribute__ ((__pure__)); __extension__ extern long long int atoll (__const char *__nptr) __attribute__ ((__pure__)); extern double strtod (__const char *__restrict __nptr, char **__restrict __endptr) ; extern float strtof (__const char *__restrict __nptr, char **__restrict __endptr) ; extern long double strtold (__const char *__restrict __nptr, char **__restrict __endptr) ; extern long int strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ; extern unsigned long int strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ; __extension__ extern long long int strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ; __extension__ extern unsigned long long int strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ; __extension__ extern long long int strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ; __extension__ extern unsigned long long int strtoull (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ; # 225 "/usr/include/stdlib.h" 3 4 # 1 "/usr/include/xlocale.h" 1 3 4 # 28 "/usr/include/xlocale.h" 3 4 typedef struct __locale_struct { struct locale_data *__locales[13]; const unsigned short int *__ctype_b; const int *__ctype_tolower; const int *__ctype_toupper; const char *__names[13]; } *__locale_t; # 226 "/usr/include/stdlib.h" 2 3 4 extern long int strtol_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) ; extern unsigned long int strtoul_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) ; __extension__ extern long long int strtoll_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) ; __extension__ extern unsigned long long int strtoull_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) ; extern double strtod_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) ; extern float strtof_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) ; extern long double strtold_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) ; extern double __strtod_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) ; extern float __strtof_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) ; extern long double __strtold_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) ; extern long int __strtol_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) ; extern unsigned long int __strtoul_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) ; __extension__ extern long long int __strtoll_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) ; __extension__ extern unsigned long long int __strtoull_internal (__const char * __restrict __nptr, char **__restrict __endptr, int __base, int __group) ; extern __inline double strtod (__const char *__restrict __nptr, char **__restrict __endptr) { return __strtod_internal (__nptr, __endptr, 0); } extern __inline long int strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) { return __strtol_internal (__nptr, __endptr, __base, 0); } extern __inline unsigned long int strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) { return __strtoul_internal (__nptr, __endptr, __base, 0); } extern __inline float strtof (__const char *__restrict __nptr, char **__restrict __endptr) { return __strtof_internal (__nptr, __endptr, 0); } extern __inline long double strtold (__const char *__restrict __nptr, char **__restrict __endptr) { return __strtold_internal (__nptr, __endptr, 0); } __extension__ extern __inline long long int strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) { return __strtoll_internal (__nptr, __endptr, __base, 0); } __extension__ extern __inline unsigned long long int strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) { return __strtoull_internal (__nptr, __endptr, __base, 0); } __extension__ extern __inline long long int strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) { return __strtoll_internal (__nptr, __endptr, __base, 0); } __extension__ extern __inline unsigned long long int strtoull (__const char * __restrict __nptr, char **__restrict __endptr, int __base) { return __strtoull_internal (__nptr, __endptr, __base, 0); } extern __inline double atof (__const char *__nptr) { return strtod (__nptr, (char **) ((void *)0)); } extern __inline int atoi (__const char *__nptr) { return (int) strtol (__nptr, (char **) ((void *)0), 10); } extern __inline long int atol (__const char *__nptr) { return strtol (__nptr, (char **) ((void *)0), 10); } __extension__ extern __inline long long int atoll (__const char *__nptr) { return strtoll (__nptr, (char **) ((void *)0), 10); } # 408 "/usr/include/stdlib.h" 3 4 extern char *l64a (long int __n) ; extern long int a64l (__const char *__s) __attribute__ ((__pure__)); # 1 "/usr/include/sys/types.h" 1 3 4 # 29 "/usr/include/sys/types.h" 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 __ino64_t ino_t; typedef __ino64_t ino64_t; 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 __off64_t off_t; typedef __off64_t off64_t; 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 # 58 "/usr/include/time.h" 3 4 typedef __clock_t clock_t; # 74 "/usr/include/time.h" 3 4 typedef __time_t time_t; # 92 "/usr/include/time.h" 3 4 typedef __clockid_t clockid_t; # 104 "/usr/include/time.h" 3 4 typedef __timer_t timer_t; # 134 "/usr/include/sys/types.h" 2 3 4 typedef __useconds_t useconds_t; typedef __suseconds_t suseconds_t; # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stddef.h" 1 3 4 # 148 "/usr/include/sys/types.h" 2 3 4 typedef unsigned long int ulong; typedef unsigned short int ushort; typedef unsigned int uint; # 191 "/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__))); # 216 "/usr/include/sys/types.h" 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 # 23 "/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 # 118 "/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 # 55 "/usr/include/sys/select.h" 3 4 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); # 217 "/usr/include/sys/types.h" 2 3 4 # 1 "/usr/include/sys/sysmacros.h" 1 3 4 # 29 "/usr/include/sys/sysmacros.h" 3 4 __extension__ extern __inline unsigned int gnu_dev_major (unsigned long long int __dev) ; __extension__ extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev) ; __extension__ extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major, unsigned int __minor) ; __extension__ extern __inline unsigned int gnu_dev_major (unsigned long long int __dev) { return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); } __extension__ extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev) { return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); } __extension__ extern __inline unsigned long long int 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)); } # 220 "/usr/include/sys/types.h" 2 3 4 typedef __blksize_t blksize_t; # 244 "/usr/include/sys/types.h" 3 4 typedef __blkcnt64_t blkcnt_t; typedef __fsblkcnt64_t fsblkcnt_t; typedef __fsfilcnt64_t fsfilcnt_t; typedef __blkcnt64_t blkcnt64_t; typedef __fsblkcnt64_t fsblkcnt64_t; typedef __fsfilcnt64_t fsfilcnt64_t; # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 # 36 "/usr/include/bits/pthreadtypes.h" 3 4 typedef unsigned long int pthread_t; typedef union { char __size[36]; long int __align; } pthread_attr_t; typedef union { struct { int __lock; unsigned int __count; int __owner; int __kind; unsigned int __nusers; int __spins; } __data; char __size[24]; long int __align; } pthread_mutex_t; typedef union { char __size[4]; long int __align; } pthread_mutexattr_t; typedef union { struct { int __lock; unsigned int __futex; unsigned long long int __total_seq; unsigned long long int __wakeup_seq; unsigned long long int __woken_seq; void *__mutex; int __clock; unsigned int __broadcast_seq; } __data; char __size[48]; long long int __align; } pthread_cond_t; typedef union { char __size[4]; long 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; unsigned int __flags; int __writer; } __data; char __size[32]; 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[20]; long int __align; } pthread_barrier_t; typedef union { char __size[4]; int __align; } pthread_barrierattr_t; # 267 "/usr/include/sys/types.h" 2 3 4 # 417 "/usr/include/stdlib.h" 2 3 4 extern long int random (void) ; extern void srandom (unsigned int __seed) ; extern char *initstate (unsigned int __seed, char *__statebuf, size_t __statelen) ; extern char *setstate (char *__statebuf) ; 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) ; extern int srandom_r (unsigned int __seed, struct random_data *__buf) ; extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, size_t __statelen, struct random_data *__restrict __buf) ; extern int setstate_r (char *__restrict __statebuf, struct random_data *__restrict __buf) ; extern int rand (void) ; extern void srand (unsigned int __seed) ; extern int rand_r (unsigned int *__seed) ; extern double drand48 (void) ; extern double erand48 (unsigned short int __xsubi[3]) ; extern long int lrand48 (void) ; extern long int nrand48 (unsigned short int __xsubi[3]) ; extern long int mrand48 (void) ; extern long int jrand48 (unsigned short int __xsubi[3]) ; extern void srand48 (long int __seedval) ; extern unsigned short int *seed48 (unsigned short int __seed16v[3]) ; extern void lcong48 (unsigned short int __param[7]) ; 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) ; extern int erand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, double *__restrict __result) ; extern int lrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) ; extern int nrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) ; extern int mrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) ; extern int jrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) ; extern int srand48_r (long int __seedval, struct drand48_data *__buffer) ; extern int seed48_r (unsigned short int __seed16v[3], struct drand48_data *__buffer) ; extern int lcong48_r (unsigned short int __param[7], struct drand48_data *__buffer) ; extern void *malloc (size_t __size) __attribute__ ((__malloc__)); extern void *calloc (size_t __nmemb, size_t __size) __attribute__ ((__malloc__)); extern void *realloc (void *__ptr, size_t __size) __attribute__ ((__malloc__)); extern void free (void *__ptr) ; extern void cfree (void *__ptr) ; # 1 "/usr/include/alloca.h" 1 3 4 # 25 "/usr/include/alloca.h" 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stddef.h" 1 3 4 # 26 "/usr/include/alloca.h" 2 3 4 extern void *alloca (size_t __size) ; # 579 "/usr/include/stdlib.h" 2 3 4 extern void *valloc (size_t __size) __attribute__ ((__malloc__)); extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) __attribute__ ((__malloc__)); extern void abort (void) __attribute__ ((__noreturn__)); extern int atexit (void (*__func) (void)) ; extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) ; extern void exit (int __status) __attribute__ ((__noreturn__)); extern void _Exit (int __status) __attribute__ ((__noreturn__)); extern char *getenv (__const char *__name) ; extern char *__secure_getenv (__const char *__name) ; extern int putenv (char *__string) ; extern int setenv (__const char *__name, __const char *__value, int __replace) ; extern int unsetenv (__const char *__name) ; extern int clearenv (void) ; # 663 "/usr/include/stdlib.h" 3 4 extern char *mktemp (char *__template) ; # 677 "/usr/include/stdlib.h" 3 4 extern int mkstemp (char *__template) __asm__ ("" "mkstemp64"); extern int mkstemp64 (char *__template); # 693 "/usr/include/stdlib.h" 3 4 extern char *mkdtemp (char *__template) ; extern int system (__const char *__command); extern char *canonicalize_file_name (__const char *__name) ; # 720 "/usr/include/stdlib.h" 3 4 extern char *realpath (__const char *__restrict __name, char *__restrict __resolved) ; typedef int (*__compar_fn_t) (__const void *, __const void *); typedef __compar_fn_t comparison_fn_t; extern void *bsearch (__const void *__key, __const void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar); extern void qsort (void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar); extern int abs (int __x) __attribute__ ((__const__)); extern long int labs (long int __x) __attribute__ ((__const__)); __extension__ extern long long int llabs (long long int __x) __attribute__ ((__const__)); extern div_t div (int __numer, int __denom) __attribute__ ((__const__)); extern ldiv_t ldiv (long int __numer, long int __denom) __attribute__ ((__const__)); __extension__ extern lldiv_t lldiv (long long int __numer, long long int __denom) __attribute__ ((__const__)); # 784 "/usr/include/stdlib.h" 3 4 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) ; extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) ; extern char *gcvt (double __value, int __ndigit, char *__buf) ; extern char *qecvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) ; extern char *qfcvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) ; extern char *qgcvt (long double __value, int __ndigit, char *__buf) ; extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) ; extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) ; extern int qecvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) ; extern int qfcvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) ; extern int mblen (__const char *__s, size_t __n) ; extern int mbtowc (wchar_t *__restrict __pwc, __const char *__restrict __s, size_t __n) ; extern int wctomb (char *__s, wchar_t __wchar) ; extern size_t mbstowcs (wchar_t *__restrict __pwcs, __const char *__restrict __s, size_t __n) ; extern size_t wcstombs (char *__restrict __s, __const wchar_t *__restrict __pwcs, size_t __n) ; extern int rpmatch (__const char *__response) ; # 866 "/usr/include/stdlib.h" 3 4 extern int getsubopt (char **__restrict __optionp, char *__const *__restrict __tokens, char **__restrict __valuep) ; extern void setkey (__const char *__key) ; extern int posix_openpt (int __oflag); extern int grantpt (int __fd) ; extern int unlockpt (int __fd) ; extern char *ptsname (int __fd) ; extern int ptsname_r (int __fd, char *__buf, size_t __buflen) ; extern int getpt (void); extern int getloadavg (double __loadavg[], int __nelem) ; # 7 "motion.c" 2 # 1 "/usr/include/unistd.h" 1 3 4 # 28 "/usr/include/unistd.h" 3 4 # 171 "/usr/include/unistd.h" 3 4 # 1 "/usr/include/bits/posix_opt.h" 1 3 4 # 172 "/usr/include/unistd.h" 2 3 4 # 1 "/usr/include/bits/environments.h" 1 3 4 # 23 "/usr/include/bits/environments.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 24 "/usr/include/bits/environments.h" 2 3 4 # 176 "/usr/include/unistd.h" 2 3 4 # 195 "/usr/include/unistd.h" 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/stddef.h" 1 3 4 # 196 "/usr/include/unistd.h" 2 3 4 # 236 "/usr/include/unistd.h" 3 4 typedef __intptr_t intptr_t; typedef __socklen_t socklen_t; # 256 "/usr/include/unistd.h" 3 4 extern int access (__const char *__name, int __type) ; extern int euidaccess (__const char *__name, int __type) ; # 289 "/usr/include/unistd.h" 3 4 extern __off64_t lseek (int __fd, __off64_t __offset, int __whence) __asm__ ("" "lseek64"); # 298 "/usr/include/unistd.h" 3 4 extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) ; extern int close (int __fd); extern ssize_t read (int __fd, void *__buf, size_t __nbytes); extern ssize_t write (int __fd, __const void *__buf, size_t __n); # 340 "/usr/include/unistd.h" 3 4 extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) __asm__ ("" "pread64"); extern ssize_t pwrite (int __fd, __const void *__buf, size_t __nbytes, __off64_t __offset) __asm__ ("" "pwrite64"); # 356 "/usr/include/unistd.h" 3 4 extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, __off64_t __offset); extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n, __off64_t __offset); extern int pipe (int __pipedes[2]) ; # 378 "/usr/include/unistd.h" 3 4 extern unsigned int alarm (unsigned int __seconds) ; # 390 "/usr/include/unistd.h" 3 4 extern unsigned int sleep (unsigned int __seconds); extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval) ; extern int usleep (__useconds_t __useconds); # 414 "/usr/include/unistd.h" 3 4 extern int pause (void); extern int chown (__const char *__file, __uid_t __owner, __gid_t __group) ; extern int fchown (int __fd, __uid_t __owner, __gid_t __group) ; extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group) ; extern int chdir (__const char *__path) ; extern int fchdir (int __fd) ; # 448 "/usr/include/unistd.h" 3 4 extern char *getcwd (char *__buf, size_t __size) ; extern char *get_current_dir_name (void) ; extern char *getwd (char *__buf) ; extern int dup (int __fd) ; extern int dup2 (int __fd, int __fd2) ; extern char **__environ; extern char **environ; extern int execve (__const char *__path, char *__const __argv[], char *__const __envp[]) ; extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[]) ; extern int execv (__const char *__path, char *__const __argv[]) ; extern int execle (__const char *__path, __const char *__arg, ...) ; extern int execl (__const char *__path, __const char *__arg, ...) ; extern int execvp (__const char *__file, char *__const __argv[]) ; extern int execlp (__const char *__file, __const char *__arg, ...) ; extern int nice (int __inc) ; extern void _exit (int __status) __attribute__ ((__noreturn__)); # 1 "/usr/include/bits/confname.h" 1 3 4 # 26 "/usr/include/bits/confname.h" 3 4 enum { _PC_LINK_MAX, _PC_MAX_CANON, _PC_MAX_INPUT, _PC_NAME_MAX, _PC_PATH_MAX, _PC_PIPE_BUF, _PC_CHOWN_RESTRICTED, _PC_NO_TRUNC, _PC_VDISABLE, _PC_SYNC_IO, _PC_ASYNC_IO, _PC_PRIO_IO, _PC_SOCK_MAXBUF, _PC_FILESIZEBITS, _PC_REC_INCR_XFER_SIZE, _PC_REC_MAX_XFER_SIZE, _PC_REC_MIN_XFER_SIZE, _PC_REC_XFER_ALIGN, _PC_ALLOC_SIZE_MIN, _PC_SYMLINK_MAX, _PC_2_SYMLINKS }; enum { _SC_ARG_MAX, _SC_CHILD_MAX, _SC_CLK_TCK, _SC_NGROUPS_MAX, _SC_OPEN_MAX, _SC_STREAM_MAX, _SC_TZNAME_MAX, _SC_JOB_CONTROL, _SC_SAVED_IDS, _SC_REALTIME_SIGNALS, _SC_PRIORITY_SCHEDULING, _SC_TIMERS, _SC_ASYNCHRONOUS_IO, _SC_PRIORITIZED_IO, _SC_SYNCHRONIZED_IO, _SC_FSYNC, _SC_MAPPED_FILES, _SC_MEMLOCK, _SC_MEMLOCK_RANGE, _SC_MEMORY_PROTECTION, _SC_MESSAGE_PASSING, _SC_SEMAPHORES, _SC_SHARED_MEMORY_OBJECTS, _SC_AIO_LISTIO_MAX, _SC_AIO_MAX, _SC_AIO_PRIO_DELTA_MAX, _SC_DELAYTIMER_MAX, _SC_MQ_OPEN_MAX, _SC_MQ_PRIO_MAX, _SC_VERSION, _SC_PAGESIZE, _SC_RTSIG_MAX, _SC_SEM_NSEMS_MAX, _SC_SEM_VALUE_MAX, _SC_SIGQUEUE_MAX, _SC_TIMER_MAX, _SC_BC_BASE_MAX, _SC_BC_DIM_MAX, _SC_BC_SCALE_MAX, _SC_BC_STRING_MAX, _SC_COLL_WEIGHTS_MAX, _SC_EQUIV_CLASS_MAX, _SC_EXPR_NEST_MAX, _SC_LINE_MAX, _SC_RE_DUP_MAX, _SC_CHARCLASS_NAME_MAX, _SC_2_VERSION, _SC_2_C_BIND, _SC_2_C_DEV, _SC_2_FORT_DEV, _SC_2_FORT_RUN, _SC_2_SW_DEV, _SC_2_LOCALEDEF, _SC_PII, _SC_PII_XTI, _SC_PII_SOCKET, _SC_PII_INTERNET, _SC_PII_OSI, _SC_POLL, _SC_SELECT, _SC_UIO_MAXIOV, _SC_IOV_MAX = _SC_UIO_MAXIOV, _SC_PII_INTERNET_STREAM, _SC_PII_INTERNET_DGRAM, _SC_PII_OSI_COTS, _SC_PII_OSI_CLTS, _SC_PII_OSI_M, _SC_T_IOV_MAX, _SC_THREADS, _SC_THREAD_SAFE_FUNCTIONS, _SC_GETGR_R_SIZE_MAX, _SC_GETPW_R_SIZE_MAX, _SC_LOGIN_NAME_MAX, _SC_TTY_NAME_MAX, _SC_THREAD_DESTRUCTOR_ITERATIONS, _SC_THREAD_KEYS_MAX, _SC_THREAD_STACK_MIN, _SC_THREAD_THREADS_MAX, _SC_THREAD_ATTR_STACKADDR, _SC_THREAD_ATTR_STACKSIZE, _SC_THREAD_PRIORITY_SCHEDULING, _SC_THREAD_PRIO_INHERIT, _SC_THREAD_PRIO_PROTECT, _SC_THREAD_PROCESS_SHARED, _SC_NPROCESSORS_CONF, _SC_NPROCESSORS_ONLN, _SC_PHYS_PAGES, _SC_AVPHYS_PAGES, _SC_ATEXIT_MAX, _SC_PASS_MAX, _SC_XOPEN_VERSION, _SC_XOPEN_XCU_VERSION, _SC_XOPEN_UNIX, _SC_XOPEN_CRYPT, _SC_XOPEN_ENH_I18N, _SC_XOPEN_SHM, _SC_2_CHAR_TERM, _SC_2_C_VERSION, _SC_2_UPE, _SC_XOPEN_XPG2, _SC_XOPEN_XPG3, _SC_XOPEN_XPG4, _SC_CHAR_BIT, _SC_CHAR_MAX, _SC_CHAR_MIN, _SC_INT_MAX, _SC_INT_MIN, _SC_LONG_BIT, _SC_WORD_BIT, _SC_MB_LEN_MAX, _SC_NZERO, _SC_SSIZE_MAX, _SC_SCHAR_MAX, _SC_SCHAR_MIN, _SC_SHRT_MAX, _SC_SHRT_MIN, _SC_UCHAR_MAX, _SC_UINT_MAX, _SC_ULONG_MAX, _SC_USHRT_MAX, _SC_NL_ARGMAX, _SC_NL_LANGMAX, _SC_NL_MSGMAX, _SC_NL_NMAX, _SC_NL_SETMAX, _SC_NL_TEXTMAX, _SC_XBS5_ILP32_OFF32, _SC_XBS5_ILP32_OFFBIG, _SC_XBS5_LP64_OFF64, _SC_XBS5_LPBIG_OFFBIG, _SC_XOPEN_LEGACY, _SC_XOPEN_REALTIME, _SC_XOPEN_REALTIME_THREADS, _SC_ADVISORY_INFO, _SC_BARRIERS, _SC_BASE, _SC_C_LANG_SUPPORT, _SC_C_LANG_SUPPORT_R, _SC_CLOCK_SELECTION, _SC_CPUTIME, _SC_THREAD_CPUTIME, _SC_DEVICE_IO, _SC_DEVICE_SPECIFIC, _SC_DEVICE_SPECIFIC_R, _SC_FD_MGMT, _SC_FIFO, _SC_PIPE, _SC_FILE_ATTRIBUTES, _SC_FILE_LOCKING, _SC_FILE_SYSTEM, _SC_MONOTONIC_CLOCK, _SC_MULTI_PROCESS, _SC_SINGLE_PROCESS, _SC_NETWORKING, _SC_READER_WRITER_LOCKS, _SC_SPIN_LOCKS, _SC_REGEXP, _SC_REGEX_VERSION, _SC_SHELL, _SC_SIGNALS, _SC_SPAWN, _SC_SPORADIC_SERVER, _SC_THREAD_SPORADIC_SERVER, _SC_SYSTEM_DATABASE, _SC_SYSTEM_DATABASE_R, _SC_TIMEOUTS, _SC_TYPED_MEMORY_OBJECTS, _SC_USER_GROUPS, _SC_USER_GROUPS_R, _SC_2_PBS, _SC_2_PBS_ACCOUNTING, _SC_2_PBS_LOCATE, _SC_2_PBS_MESSAGE, _SC_2_PBS_TRACK, _SC_SYMLOOP_MAX, _SC_STREAMS, _SC_2_PBS_CHECKPOINT, _SC_V6_ILP32_OFF32, _SC_V6_ILP32_OFFBIG, _SC_V6_LP64_OFF64, _SC_V6_LPBIG_OFFBIG, _SC_HOST_NAME_MAX, _SC_TRACE, _SC_TRACE_EVENT_FILTER, _SC_TRACE_INHERIT, _SC_TRACE_LOG, _SC_LEVEL1_ICACHE_SIZE, _SC_LEVEL1_ICACHE_ASSOC, _SC_LEVEL1_ICACHE_LINESIZE, _SC_LEVEL1_DCACHE_SIZE, _SC_LEVEL1_DCACHE_ASSOC, _SC_LEVEL1_DCACHE_LINESIZE, _SC_LEVEL2_CACHE_SIZE, _SC_LEVEL2_CACHE_ASSOC, _SC_LEVEL2_CACHE_LINESIZE, _SC_LEVEL3_CACHE_SIZE, _SC_LEVEL3_CACHE_ASSOC, _SC_LEVEL3_CACHE_LINESIZE, _SC_LEVEL4_CACHE_SIZE, _SC_LEVEL4_CACHE_ASSOC, _SC_LEVEL4_CACHE_LINESIZE }; enum { _CS_PATH, _CS_V6_WIDTH_RESTRICTED_ENVS, _CS_GNU_LIBC_VERSION, _CS_GNU_LIBPTHREAD_VERSION, _CS_LFS_CFLAGS = 1000, _CS_LFS_LDFLAGS, _CS_LFS_LIBS, _CS_LFS_LINTFLAGS, _CS_LFS64_CFLAGS, _CS_LFS64_LDFLAGS, _CS_LFS64_LIBS, _CS_LFS64_LINTFLAGS, _CS_XBS5_ILP32_OFF32_CFLAGS = 1100, _CS_XBS5_ILP32_OFF32_LDFLAGS, _CS_XBS5_ILP32_OFF32_LIBS, _CS_XBS5_ILP32_OFF32_LINTFLAGS, _CS_XBS5_ILP32_OFFBIG_CFLAGS, _CS_XBS5_ILP32_OFFBIG_LDFLAGS, _CS_XBS5_ILP32_OFFBIG_LIBS, _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, _CS_XBS5_LP64_OFF64_CFLAGS, _CS_XBS5_LP64_OFF64_LDFLAGS, _CS_XBS5_LP64_OFF64_LIBS, _CS_XBS5_LP64_OFF64_LINTFLAGS, _CS_XBS5_LPBIG_OFFBIG_CFLAGS, _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, _CS_XBS5_LPBIG_OFFBIG_LIBS, _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, _CS_POSIX_V6_ILP32_OFF32_CFLAGS, _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, _CS_POSIX_V6_ILP32_OFF32_LIBS, _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, _CS_POSIX_V6_ILP32_OFFBIG_LIBS, _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, _CS_POSIX_V6_LP64_OFF64_CFLAGS, _CS_POSIX_V6_LP64_OFF64_LDFLAGS, _CS_POSIX_V6_LP64_OFF64_LIBS, _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS }; # 526 "/usr/include/unistd.h" 2 3 4 extern long int pathconf (__const char *__path, int __name) ; extern long int fpathconf (int __fd, int __name) ; extern long int sysconf (int __name) __attribute__ ((__const__)); extern size_t confstr (int __name, char *__buf, size_t __len) ; extern __pid_t getpid (void) ; extern __pid_t getppid (void) ; extern __pid_t getpgrp (void) ; # 561 "/usr/include/unistd.h" 3 4 extern __pid_t __getpgid (__pid_t __pid) ; extern __pid_t getpgid (__pid_t __pid) ; extern int setpgid (__pid_t __pid, __pid_t __pgid) ; # 587 "/usr/include/unistd.h" 3 4 extern int setpgrp (void) ; # 605 "/usr/include/unistd.h" 3 4 extern __pid_t setsid (void) ; extern __pid_t getsid (__pid_t __pid) ; extern __uid_t getuid (void) ; extern __uid_t geteuid (void) ; extern __gid_t getgid (void) ; extern __gid_t getegid (void) ; extern int getgroups (int __size, __gid_t __list[]) ; extern int group_member (__gid_t __gid) ; extern int setuid (__uid_t __uid) ; extern int setreuid (__uid_t __ruid, __uid_t __euid) ; extern int seteuid (__uid_t __uid) ; extern int setgid (__gid_t __gid) ; extern int setregid (__gid_t __rgid, __gid_t __egid) ; extern int setegid (__gid_t __gid) ; extern int getresuid (__uid_t *__euid, __uid_t *__ruid, __uid_t *__suid); extern int getresgid (__gid_t *__egid, __gid_t *__rgid, __gid_t *__sgid); extern int setresuid (__uid_t __euid, __uid_t __ruid, __uid_t __suid); extern int setresgid (__gid_t __egid, __gid_t __rgid, __gid_t __sgid); extern __pid_t fork (void) ; extern __pid_t vfork (void) ; extern char *ttyname (int __fd) ; extern int ttyname_r (int __fd, char *__buf, size_t __buflen) ; extern int isatty (int __fd) ; extern int ttyslot (void) ; extern int link (__const char *__from, __const char *__to) ; extern int symlink (__const char *__from, __const char *__to) ; extern int readlink (__const char *__restrict __path, char *__restrict __buf, size_t __len) ; extern int unlink (__const char *__name) ; extern int rmdir (__const char *__path) ; extern __pid_t tcgetpgrp (int __fd) ; extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) ; extern char *getlogin (void); extern int getlogin_r (char *__name, size_t __name_len); extern int setlogin (__const char *__name) ; # 775 "/usr/include/unistd.h" 3 4 # 1 "/usr/include/getopt.h" 1 3 4 # 59 "/usr/include/getopt.h" 3 4 extern char *optarg; # 73 "/usr/include/getopt.h" 3 4 extern int optind; extern int opterr; extern int optopt; # 152 "/usr/include/getopt.h" 3 4 extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) ; # 776 "/usr/include/unistd.h" 2 3 4 extern int gethostname (char *__name, size_t __len) ; extern int sethostname (__const char *__name, size_t __len) ; extern int sethostid (long int __id) ; extern int getdomainname (char *__name, size_t __len) ; extern int setdomainname (__const char *__name, size_t __len) ; extern int vhangup (void) ; extern int revoke (__const char *__file) ; extern int profil (unsigned short int *__sample_buffer, size_t __size, size_t __offset, unsigned int __scale) ; extern int acct (__const char *__name) ; extern char *getusershell (void) ; extern void endusershell (void) ; extern void setusershell (void) ; extern int daemon (int __nochdir, int __noclose) ; extern int chroot (__const char *__path) ; extern char *getpass (__const char *__prompt); # 857 "/usr/include/unistd.h" 3 4 extern int fsync (int __fd); extern long int gethostid (void); extern void sync (void) ; extern int getpagesize (void) __attribute__ ((__const__)); extern int truncate (__const char *__file, __off64_t __length) __asm__ ("" "truncate64"); extern int truncate64 (__const char *__file, __off64_t __length) ; extern int ftruncate (int __fd, __off64_t __length) __asm__ ("" "ftruncate64"); extern int ftruncate64 (int __fd, __off64_t __length) ; extern int getdtablesize (void) ; # 918 "/usr/include/unistd.h" 3 4 extern int brk (void *__addr) ; extern void *sbrk (intptr_t __delta) ; # 939 "/usr/include/unistd.h" 3 4 extern long int syscall (long int __sysno, ...) ; # 965 "/usr/include/unistd.h" 3 4 extern int lockf (int __fd, int __cmd, __off64_t __len) __asm__ ("" "lockf64"); extern int lockf64 (int __fd, int __cmd, __off64_t __len); # 993 "/usr/include/unistd.h" 3 4 extern int fdatasync (int __fildes) ; extern char *crypt (__const char *__key, __const char *__salt) ; extern void encrypt (char *__block, int __edflag) ; extern void swab (__const void *__restrict __from, void *__restrict __to, ssize_t __n) ; extern char *ctermid (char *__s) ; # 8 "motion.c" 2 # 1 "../utils/mjpeg_types.h" 1 # 32 "../utils/mjpeg_types.h" # 1 "/usr/include/stdint.h" 1 3 4 # 28 "/usr/include/stdint.h" 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; __extension__ typedef unsigned long long int uint64_t; typedef signed char int_least8_t; typedef short int int_least16_t; typedef int int_least32_t; __extension__ typedef long long int int_least64_t; typedef unsigned char uint_least8_t; typedef unsigned short int uint_least16_t; typedef unsigned int uint_least32_t; __extension__ typedef unsigned long long int uint_least64_t; typedef signed char int_fast8_t; typedef int int_fast16_t; typedef int int_fast32_t; __extension__ typedef long long int int_fast64_t; typedef unsigned char uint_fast8_t; typedef unsigned int uint_fast16_t; typedef unsigned int uint_fast32_t; __extension__ typedef unsigned long long int uint_fast64_t; # 129 "/usr/include/stdint.h" 3 4 typedef unsigned int uintptr_t; # 138 "/usr/include/stdint.h" 3 4 __extension__ typedef long long int intmax_t; __extension__ typedef unsigned long long int uintmax_t; # 33 "../utils/mjpeg_types.h" 2 # 9 "motion.c" 2 # 1 "global.h" 1 # 34 "global.h" struct DNSR_GLOBAL { uint8_t mode; uint8_t radius; uint8_t thresholdY; uint8_t thresholdCb; uint8_t thresholdCr; uint8_t chroma_flicker; uint8_t pp_threshold; uint8_t delayY; uint8_t delayCb; uint8_t delayCr; uint8_t deinterlace; uint16_t postprocess; uint16_t luma_contrast; uint16_t chroma_contrast; uint16_t sharpen; struct { int32_t w; int32_t h; int32_t Cw; int32_t Ch; uint8_t ss_h; uint8_t ss_v; uint8_t *io[3]; uint8_t *ref[3]; uint8_t *avg[3]; uint8_t *dif[3]; uint8_t *dif2[3]; uint8_t *avg2[3]; uint8_t *tmp[3]; uint8_t *sub2ref[3]; uint8_t *sub2avg[3]; uint8_t *sub4ref[3]; uint8_t *sub4avg[3]; } frame; struct { uint16_t x; uint16_t y; int16_t w; int16_t h; } border; }; struct DNSR_VECTOR { int8_t x; int8_t y; uint32_t SAD; }; uint8_t luma_contrast_vector[256]; # 10 "motion.c" 2 # 1 "motion.h" 1 void subsample_frame (uint8_t * dst[3], uint8_t * src[3], int w, int h); void mb_search_44 (uint16_t x, uint16_t y); void mb_search_22 (uint16_t x, uint16_t y); void mb_search_11 (uint16_t x, uint16_t y); void mb_search_00 (uint16_t x, uint16_t y); uint32_t calc_SAD_noaccel (uint8_t * frm, uint8_t * ref); uint32_t calc_SAD_uv_noaccel (uint8_t * frm, uint8_t * ref); uint32_t calc_SAD_half_noaccel (uint8_t * ref, uint8_t * frm1, uint8_t * frm2); uint32_t calc_SAD_mmxe (uint8_t * frm, uint8_t * ref); uint32_t calc_SAD_uv420_mmxe (uint8_t * frm, uint8_t * ref); uint32_t calc_SAD_uv411_mmxe (uint8_t * frm, uint8_t * ref); uint32_t calc_SAD_half_mmxe (uint8_t * ref, uint8_t * frm1, uint8_t * frm2); uint32_t calc_SAD_mmx (uint8_t * frm, uint8_t * ref); uint32_t calc_SAD_uv420_mmx (uint8_t * frm, uint8_t * ref); uint32_t calc_SAD_uv411_mmx (uint8_t * frm, uint8_t * ref); uint32_t calc_SAD_half_mmx (uint8_t * ref, uint8_t * frm1, uint8_t * frm2); # 11 "motion.c" 2 uint32_t (*calc_SAD) (uint8_t * , uint8_t * ); uint32_t (*calc_SAD_uv) (uint8_t * , uint8_t * ); uint32_t (*calc_SAD_half) (uint8_t * , uint8_t * ,uint8_t *); extern struct DNSR_GLOBAL denoiser; struct DNSR_VECTOR vector; struct DNSR_VECTOR varray44[8]; struct DNSR_VECTOR varray22[8]; # 34 "motion.c" void subsample_frame (uint8_t * dst[3], uint8_t * src[3], int w, int h) { int x, y; int Cw=w/(denoiser.frame.ss_h); int Ch=h/(denoiser.frame.ss_v); uint8_t *s = src[0]; uint8_t *s2 = src[0]+(denoiser.frame.w); uint8_t *d = dst[0]; for (y = 0; y < (h>>1); y += 1) { for (x = 0; x < w; x += 2) { *(d + (x>>1)) = ( *(s + x ) + *(s + x + 1) + *(s2 + x ) + *(s2 + x + 1) + 2 )>>2; } s+=2*(denoiser.frame.w); s2+=2*(denoiser.frame.w); d+=(denoiser.frame.w); } s = src[1]; s2 = src[1]+(denoiser.frame.Cw); d = dst[1]; for (y = 0; y < (Ch>>1); y += 1) { for (x = 0; x < Cw; x += 2) { *(d + (x>>1)) = ( *(s + x ) + *(s + x + 1) + *(s2 + x ) + *(s2 + x + 1) +2 )>>2; } s+=2*(denoiser.frame.Cw); s2+=2*(denoiser.frame.Cw); d+=(denoiser.frame.Cw); } s = src[2]; s2 = src[2]+(denoiser.frame.Cw); d = dst[2]; for (y = 0; y < (Ch>>1); y += 1) { for (x = 0; x < Cw; x += 2) { *(d + (x>>1)) = ( *(s + x ) + *(s + x + 1) + *(s2 + x ) + *(s2 + x + 1) + 2 )>>2; } s+=2*(denoiser.frame.Cw); s2+=2*(denoiser.frame.Cw); d+=(denoiser.frame.Cw); } } # 114 "motion.c" uint32_t calc_SAD_noaccel (uint8_t * frm, uint8_t * ref) { uint8_t dx = 0; uint8_t dy = 0; int32_t Y = 0; uint32_t d = 0; for(dy=0;dy<8;dy++) for(dx=0;dx<8;dx++) { Y=*(frm+dx+dy*denoiser.frame.w)-*(ref+dx+dy*denoiser.frame.w); d+=(Y<0)? -Y:Y; } return d; } uint32_t calc_SAD_mmx (uint8_t * frm, uint8_t * ref) { static uint16_t a[4]; __asm__ __volatile__ ( " pxor %%mm0 , %%mm0; /* clear mm0 */\n" " pxor %%mm7 , %%mm7; /* clear mm7 */\n" " /* */\n" " movl %1 , %%eax; /* load frameadress into eax */\n" " movl %2 , %%ebx; /* load frameadress into ebx */\n" " movl %3 , %%ecx; /* load width into ecx */\n" " /* */\n" ".rept 8 ; /* Loop for 8 lines */\n" " movq (%%eax), %%mm1; /* 8 Pixels from filtered frame to mm1 */\n" " movq (%%ebx), %%mm2; /* 8 Pixels from reference frame to mm2 */\n" " movq %%mm2 , %%mm3; /* hold a copy of mm2 in mm3 */\n" " psubusb %%mm1 , %%mm3; /* positive differences between mm2 and mm1 */\n" " psubusb %%mm2 , %%mm1; /* positive differences between mm1 and mm3 */\n" " paddusb %%mm3 , %%mm1; /* mm1 now contains abs(mm1-mm2) */\n" " movq %%mm1 , %%mm2; /* copy mm1 to mm2 */\n" " punpcklbw %%mm7 , %%mm1; /* unpack mm1 into mm1 and mm2 */\n" " punpckhbw %%mm7 , %%mm2; /* */\n" " paddusw %%mm1 , %%mm0; /* add mm1 (stored in mm1 and mm2...) */\n" " paddusw %%mm2 , %%mm0; /* to mm0 */\n" " addl %%ecx , %%eax; /* add framewidth to frameaddress */\n" " addl %%ecx , %%ebx; /* add framewidth to frameaddress */\n" " .endr /* end loop */\n" " /* */\n" " movq %%mm0 , %0 ; /* make mm0 available to gcc ... */\n" :"=m" (a) :"m" (frm), "m" (ref), "m" (denoiser.frame.w) :"%eax", "%ebx", "%ecx" ); return (uint32_t)(a[0]+a[1]+a[2]+a[3]); } uint32_t calc_SAD_mmxe (uint8_t * frm, uint8_t * ref) { static uint32_t a; __asm__ __volatile__ ( " pxor %%mm0 , %%mm0; /* clear mm0 */\n" " movl %1 , %%eax; /* load frameadress into eax */\n" " movl %2 , %%ebx; /* load frameadress into ebx */\n" " movl %3 , %%ecx; /* load width into ecx */\n" " ; /* */\n" " .rept 8 ; /* */\n" " movq (%%eax), %%mm1; /* 8 Pixels from filtered frame to mm1 */\n" " psadbw (%%ebx), %%mm1; /* 8 Pixels difference to mm1 */\n" " paddusw %%mm1 , %%mm0; /* add result to mm0 */\n" " addl %%ecx , %%eax; /* add framewidth to frameaddress */\n" " addl %%ecx , %%ebx; /* add framewidth to frameaddress */\n" " .endr ; /* */\n" " /* */\n" " movq %%mm0 , %0 ; /* make mm0 available to gcc ... */\n" :"=m" (a) :"m" (frm), "m" (ref), "m" (denoiser.frame.w) :"%eax", "%ebx", "%ecx" ); return a; } # 221 "motion.c" uint32_t calc_SAD_uv_noaccel (uint8_t * frm, uint8_t * ref) { register uint8_t dx = 0; register uint8_t dy = 0; int32_t Y = 0; uint32_t d = 0; for(dy=0;dy<8/(denoiser.frame.ss_v);dy++) for(dx=0;dx<8/(denoiser.frame.ss_h);dx++) { Y=*(frm+dx+dy*(denoiser.frame.Cw))-*(ref+dx+dy*(denoiser.frame.Cw)); d+=(Y<0)? -Y:Y; } return d; } uint32_t calc_SAD_uv420_mmx (uint8_t * frm, uint8_t * ref) { static uint16_t a[4]; int32_t halfwidth = denoiser.frame.w / 2; __asm__ __volatile__ ( " pxor %%mm0 , %%mm0; /* clear mm0 */\n" " pxor %%mm7 , %%mm7; /* clear mm7 */\n" " /* */\n" " movl %1 , %%eax; /* load frameadress into eax */\n" " movl %2 , %%ebx; /* load frameadress into ebx */\n" " movl %3 , %%ecx; /* load width into ecx */\n" " /* */\n" ".rept 4 ; /* Loop for 4 lines */\n" " movd (%%eax), %%mm1; /* 4 Pixels from filtered frame to mm1 */\n" " movd (%%ebx), %%mm2; /* 4 Pixels from reference frame to mm2 */\n" " movq %%mm2 , %%mm3; /* hold a copy of mm2 in mm3 */\n" " psubusb %%mm1 , %%mm3; /* positive differences between mm2 and mm1 */\n" " psubusb %%mm2 , %%mm1; /* positive differences between mm1 and mm3 */\n" " paddusb %%mm3 , %%mm1; /* mm2 now contains abs(mm1-mm2) */\n" " movq %%mm1 , %%mm2; /* copy mm1 to mm2 */\n" " punpcklbw %%mm7 , %%mm1; /* unpack mm1 into mm1 and mm2 */\n" " punpckhbw %%mm7 , %%mm2; /* */\n" " paddusw %%mm1 , %%mm2; /* add mm1 (stored in mm1 and mm2...) */\n" " paddusw %%mm2 , %%mm0; /* to mm0 */\n" " addl %%ecx , %%eax; /* add framewidth to frameaddress */\n" " addl %%ecx , %%ebx; /* add framewidth to frameaddress */\n" " .endr /* end loop */\n" " /* */\n" " movq %%mm0 , %0 ; /* make mm0 available to gcc ... */\n" :"=m" (a) :"m" (frm), "m" (ref), "m" (halfwidth) :"%eax", "%ebx", "%ecx" ); return (uint32_t)(a[0]+a[1]+a[2]+a[3]); } uint32_t calc_SAD_uv411_mmx (uint8_t * frm, uint8_t * ref) { static uint16_t a[8]; __asm__ __volatile__ ( " pxor %%mm0 , %%mm0; /* clear mm0 */\n" " pxor %%mm7 , %%mm7; /* clear mm7 */\n" " /* */\n" " movl %1 , %%eax; /* load frameadress into eax */\n" " movl %2 , %%ebx; /* load frameadress into ebx */\n" " movl %3 , %%ecx; /* load width into ecx */\n" " /* */\n" ".rept 8 ; /* Loop for 8 lines */\n" " movw (%%eax), %%dx; /* */\n" " movd %%edx , %%mm1; /* 2 Pixels from filtered frame to mm1 */\n" " movw (%%ebx), %%dx; /* */\n" " movd %%edx , %%mm2; /* 2 Pixels from reference frame to mm2 */\n" " movq %%mm2 , %%mm3; /* hold a copy of mm2 in mm3 */\n" " psubusb %%mm1 , %%mm3; /* positive differences between mm2 and mm1 */\n" " psubusb %%mm2 , %%mm1; /* positive differences between mm1 and mm3 */\n" " paddusb %%mm3 , %%mm1; /* mm2 now contains abs(mm1-mm2) */\n" " movq %%mm1 , %%mm2; /* copy mm1 to mm2 */\n" " punpcklbw %%mm7 , %%mm1; /* unpack mm1 into mm1 and mm2 */\n" " punpckhbw %%mm7 , %%mm2; /* */\n" " paddusw %%mm1 , %%mm2; /* add mm1 (stored in mm1 and mm2...) */\n" " paddusw %%mm2 , %%mm0; /* to mm0 */\n" " addl %%ecx , %%eax; /* add framewidth to frameaddress */\n" " addl %%ecx , %%ebx; /* add framewidth to frameaddress */\n" " .endr /* end loop */\n" " /* */\n" " movq %%mm0 , %0 ; /* make mm0 available to gcc ... */\n" :"=m" (a) :"m" (frm), "m" (ref), "m" ((denoiser.frame.Cw)) :"%eax", "%ebx", "%ecx" ); return (uint32_t)(a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]); } # 340 "motion.c" uint32_t calc_SAD_uv420_mmxe (uint8_t * frm, uint8_t * ref) { static uint32_t a; int32_t halfwidth = denoiser.frame.w / 2; __asm__ __volatile__ ( " pxor %%mm0 , %%mm0; /* clear mm0 */\n" " movl %1 , %%eax; /* load frameadress into eax */\n" " movl %2 , %%ebx; /* load frameadress into ebx */\n" " movl %3 , %%ecx; /* load width into ecx */\n" " ; /* */\n" " .rept 4 ; /* */\n" " movd (%%eax), %%mm1; /* 4 Pixels from filtered frame to mm1 */\n" " movd (%%ebx), %%mm2; /* 4 Pixels from filtered frame to mm2 */\n" " psadbw %%mm2 , %%mm1; /* 4 Pixels difference to mm1 */\n" " paddusw %%mm1 , %%mm0; /* add result to mm0 */\n" " addl %%ecx , %%eax; /* add framewidth to frameaddress */\n" " addl %%ecx , %%ebx; /* add framewidth to frameaddress */\n" " .endr ; /* */\n" " /* */\n" " movq %%mm0 , %0 ; /* make mm0 available to gcc ... */\n" :"=m" (a) :"m" (frm), "m" (ref), "m" (halfwidth) :"%eax", "%ebx", "%ecx" ); return a; } uint32_t calc_SAD_uv411_mmxe (uint8_t * frm, uint8_t * ref) { static uint32_t a; __asm__ __volatile__ ( " pxor %%mm0 , %%mm0; /* clear mm0 */\n" " movl %1 , %%eax; /* load frameadress into eax */\n" " movl %2 , %%ebx; /* load frameadress into ebx */\n" " movl %3 , %%ecx; /* load width into ecx */\n" " ; /* */\n" " .rept 8 ; /* */\n" " movw (%%eax), %%dx; /* */\n" " movd %%edx , %%mm1; /* 2 Pixels from filtered frame to mm1 */\n" " movw (%%ebx), %%dx; /* */\n" " movd %%edx , %%mm2; /* 2 Pixels from filtered frame to mm2 */\n" " psadbw %%mm2 , %%mm1; /* 2 Pixels difference to mm1 */\n" " paddusw %%mm1 , %%mm0; /* add result to mm0 */\n" " addl %%ecx , %%eax; /* add framewidth to frameaddress */\n" " addl %%ecx , %%ebx; /* add framewidth to frameaddress */\n" " .endr ; /* */\n" " /* */\n" " movq %%mm0 , %0 ; /* make mm0 available to gcc ... */\n" :"=m" (a) :"m" (frm), "m" (ref), "m" ((denoiser.frame.Cw)) :"%eax", "%ebx", "%ecx" ); return a; } uint32_t calc_SAD_half_noaccel (uint8_t * ref, uint8_t * frm1, uint8_t * frm2) { uint8_t dx = 0; uint8_t dy = 0; int32_t Y = 0; uint32_t d = 0; for(dy=0;dy<8;dy++) for(dx=0;dx<8;dx++) { Y=((*(frm1+dx+dy*denoiser.frame.w)+*(frm2+dx+dy*denoiser.frame.w))>>1)-*(ref+dx+dy*denoiser.frame.w); d+=(Y<0)? -Y:Y; } return d; } uint32_t calc_SAD_half_mmx (uint8_t * ref, uint8_t * frm1, uint8_t * frm2) { static uint32_t a; static uint32_t bit_mask[2] = {0x7f7f7f7f,0x7f7f7f7f}; __asm__ __volatile__ ( " pxor %%mm0 , %%mm0; /* clear mm0 */" " movl %1 , %%eax; /* load frameadress into eax */" " movl %2 , %%ebx; /* load frameadress into ebx */" " movl %3 , %%ecx; /* load frameadress into ecx */" " movl %4 , %%edx; /* load width into edx */" " ; /* */" " .rept 8 ; /* */" " movq (%%eax), %%mm1; /* 8 Pixels from filtered frame to mm1 */" " movq (%%ebx), %%mm2; /* 8 Pixels from filtered frame to mm2 (displaced) */" " movq (%%ecx), %%mm3; /* reference to mm3 */" " psrlq $1 , %%mm1; /* average source pixels */" " psrlq $1 , %%mm2; /* shift right by one (divide by two) */" " pand %5 , %%mm1; /* kill downshifted bits */" " pand %5 , %%mm2; /* kill downshifted bits */" " paddusw %%mm2 , %%mm1; /* add up ... */" " movq %%mm3 , %%mm4; /* copy reference to mm4 */" " psubusb %%mm1 , %%mm3; /* positive differences between mm2 and mm1 */" " psubusb %%mm4 , %%mm1; /* positive differences between mm1 and mm3 */" " paddusb %%mm3 , %%mm1; /* mm1 now contains abs(mm1-mm2) */" " paddusw %%mm1 , %%mm0; /* add result to mm0 */" " addl %%edx , %%eax; /* add framewidth to frameaddress */" " addl %%edx , %%ebx; /* add framewidth to frameaddress */" " addl %%edx , %%ecx; /* add framewidth to frameaddress */" " .endr ; /* */" " /* */" " movq %%mm0 , %0 ; /* make mm0 available to gcc ... */" :"=m" (a) :"m" (frm1),"m" (frm2), "m" (ref), "m" (denoiser.frame.w), "m" (*bit_mask) :"%eax", "%ebx", "%ecx", "%edx" ); return a; } uint32_t calc_SAD_half_mmxe (uint8_t * ref, uint8_t * frm1, uint8_t * frm2) { static uint32_t a; __asm__ __volatile__ ( " pxor %%mm0 , %%mm0; /* clear mm0 */\n" " movl %1 , %%eax; /* load frameadress into eax */\n" " movl %2 , %%ebx; /* load frameadress into ebx */\n" " movl %3 , %%ecx; /* load frameadress into ecx */\n" " movl %4 , %%edx; /* load width into edx */\n" " ; /* */\n" " .rept 8 ; /* */\n" " movq (%%eax), %%mm1; /* 8 Pixels from filtered frame to mm1 */\n" " movq (%%ebx), %%mm2; /* 8 Pixels from filtered frame to mm2 (displaced) */\n" " movq (%%ecx), %%mm3; /* 8 Pixels from reference frame to mm3 */\n" " pavgb %%mm2 , %%mm1; /* average source pixels */\n" " psadbw %%mm3 , %%mm1; /* 8 Pixels difference to mm1 */\n" " paddusw %%mm1 , %%mm0; /* add result to mm0 */\n" " addl %%edx , %%eax; /* add framewidth to frameaddress */\n" " addl %%edx , %%ebx; /* add framewidth to frameaddress */\n" " addl %%edx , %%ecx; /* add framewidth to frameaddress */\n" " .endr ; /* */\n" " /* */\n" " movq %%mm0 , %0 ; /* make mm0 available to gcc ... */\n" :"=m" (a) :"m" (frm1),"m" (frm2), "m" (ref), "m" (denoiser.frame.w) :"%eax", "%ebx", "%ecx", "%edx" ); return a; } void mb_search_44 (uint16_t x, uint16_t y) { uint32_t best_SAD=0x00ffffff; uint32_t SAD=0x00ffffff; uint32_t SAD_uv=0x00ffffff; uint8_t radius = denoiser.radius>>2; int32_t MB_ref_offset = denoiser.frame.w * (y>>2) + (x>>2); int32_t MB_avg_offset; int32_t MB_ref_offset_uv = (denoiser.frame.Cw) * (y>>2)/(denoiser.frame.ss_v) + (x>>2)/(denoiser.frame.ss_h); int32_t MB_avg_offset_uv; int32_t last_uv_offset=0; int16_t xx; int16_t yy; SAD = calc_SAD ( denoiser.frame.sub4ref[0]+MB_ref_offset, denoiser.frame.sub4avg[0]+MB_ref_offset ); SAD += calc_SAD_uv ( denoiser.frame.sub4ref[1]+MB_ref_offset_uv, denoiser.frame.sub4avg[1]+MB_ref_offset_uv ); SAD += calc_SAD_uv ( denoiser.frame.sub4ref[2]+MB_ref_offset_uv, denoiser.frame.sub4avg[2]+MB_ref_offset_uv ); for(yy=-radius;yy<=radius;yy++) for(xx=-radius;xx<=radius;xx++) { MB_avg_offset = MB_ref_offset+(xx)+(yy*denoiser.frame.w); MB_avg_offset_uv = MB_ref_offset_uv+(xx/(denoiser.frame.ss_h))+((yy/(denoiser.frame.ss_v))*denoiser.frame.Cw); SAD = calc_SAD ( denoiser.frame.sub4ref[0]+MB_ref_offset, denoiser.frame.sub4avg[0]+MB_avg_offset ); if(MB_ref_offset_uv != last_uv_offset) { last_uv_offset=MB_ref_offset_uv; SAD_uv = calc_SAD_uv ( denoiser.frame.sub4ref[1]+MB_ref_offset_uv, denoiser.frame.sub4avg[1]+MB_avg_offset_uv ); SAD_uv += calc_SAD_uv ( denoiser.frame.sub4ref[2]+MB_ref_offset_uv, denoiser.frame.sub4avg[2]+MB_avg_offset_uv ); } SAD += SAD_uv; SAD += xx*xx + yy*yy; if(SAD<=best_SAD) { best_SAD = SAD; vector.x = xx; vector.y = yy; } } } void mb_search_22 (uint16_t x, uint16_t y) { uint32_t best_SAD=0x00ffffff; uint32_t SAD=0x00ffffff; uint32_t SAD_uv=0x00ffffff; int32_t MB_ref_offset = denoiser.frame.w * (y>>1) + (x>>1); int32_t MB_avg_offset; int32_t MB_ref_offset_uv = (denoiser.frame.Cw) * (y>>1)/(denoiser.frame.ss_v) + (x>>1)/(denoiser.frame.ss_h); int32_t MB_avg_offset_uv; int32_t last_uv_offset=0; int16_t xx; int16_t yy; int16_t vx=vector.x<<1; int16_t vy=vector.y<<1; for(yy=-2;yy<=2;yy++) for(xx=-2;xx<=2;xx++) { MB_avg_offset=MB_ref_offset+(xx+vx)+((yy+vy)*denoiser.frame.w); MB_avg_offset_uv = MB_ref_offset_uv+((xx+vx)/(denoiser.frame.ss_h))+((yy+vy)/(denoiser.frame.ss_v))*(denoiser.frame.Cw); SAD = calc_SAD ( denoiser.frame.sub2ref[0]+MB_ref_offset, denoiser.frame.sub2avg[0]+MB_avg_offset ); if(MB_ref_offset_uv != last_uv_offset) { last_uv_offset=MB_ref_offset_uv; SAD_uv = calc_SAD_uv ( denoiser.frame.sub2ref[1]+MB_ref_offset_uv, denoiser.frame.sub2avg[1]+MB_avg_offset_uv ); SAD_uv += calc_SAD_uv ( denoiser.frame.sub2ref[2]+MB_ref_offset_uv, denoiser.frame.sub2avg[2]+MB_avg_offset_uv ); } SAD += SAD_uv; if(SAD<=best_SAD) { best_SAD = SAD; varray22[2]=varray22[1]; varray22[1]=varray22[0]; varray22[0].x = xx+vx; varray22[0].y = yy+vy; vector.x = xx+vx; vector.y = yy+vy; } } } # 652 "motion.c" void mb_search_11 (uint16_t x, uint16_t y) { uint32_t best_SAD = 0x00ffffff; uint32_t SAD=0x00ffffff; uint32_t SAD_uv=0x00ffffff; int32_t MB_ref_offset = denoiser.frame.w * (y) + (x); int32_t MB_avg_offset; int32_t MB_ref_offset_uv = (denoiser.frame.Cw) * y/(denoiser.frame.ss_v) + x/(denoiser.frame.ss_h); int32_t MB_avg_offset_uv; int32_t last_uv_offset=0; int16_t xx; int16_t yy; int16_t vx=vector.x<<1; int16_t vy=vector.y<<1; for(yy=-2;yy<=2;yy++) for(xx=-2;xx<=2;xx++) { MB_avg_offset=MB_ref_offset+(xx+vx)+((yy+vy)*denoiser.frame.w); MB_avg_offset_uv = MB_ref_offset_uv+((xx+vx)/(denoiser.frame.ss_h))+((yy+vy)/(denoiser.frame.ss_v))*(denoiser.frame.Cw); SAD = calc_SAD ( denoiser.frame.ref[0]+MB_ref_offset, denoiser.frame.avg[0]+MB_avg_offset ); if(MB_ref_offset_uv != last_uv_offset) { last_uv_offset=MB_ref_offset_uv; SAD_uv = calc_SAD_uv ( denoiser.frame.sub2ref[1]+MB_ref_offset_uv, denoiser.frame.sub2avg[1]+MB_avg_offset_uv ); SAD_uv += calc_SAD_uv ( denoiser.frame.sub2ref[2]+MB_ref_offset_uv, denoiser.frame.sub2avg[2]+MB_avg_offset_uv ); } SAD += SAD_uv; if(SAD