This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

gcc-3.0 bug


Hi All,

I have just found a gcc-3.0 bug. This is my first gcc buf report I hope
it's correct :)

- Gabor

-- 
 --[ Gábor Lénárt ]---[ Vivendi Telecom Hungary ]---------[ lgb@lgb.hu ]--
 U have 8 bit comp or chip of them and it's unused or to be sold? Call me!
 -------[ +36 30 2270823 ]------> LGB <-----[ Linux/UNIX/8bit 4ever ]-----
lgb@oxygene:~/src/MPlayer-dev/main$ gcc-3.0 -save-temps -c -march=k6 -mcpu=k6 -O4 -pipe -ffast-math -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -Iloader -Ilibvo  -I/usr/local/include -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include  -o mplayer.o mplayer.c
gcc-3.0: Warning: -pipe ignored because -save-temps specified
mplayer.c: In function `main':
mplayer.c:1962: Unrecognizable insn:
(insn 14588 1834 14589 (parallel[
            (set (reg:SI 1 edx [334])
                (const_int 0 [0x0]))
            (clobber (reg:CC 17 flags))
        ] ) -1 (nil)
    (expr_list:REG_UNUSED (reg:CC 17 flags)
        (nil)))
mplayer.c:1962: Internal compiler error in extract_insn, at recog.c:2218
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.

lgb@oxygene:~/src/MPlayer-dev/main$ gcc-3.0 -v
Reading specs from /usr/lib/gcc-lib/i386-linux/3.0.2/specs
Configured with: ../src/configure -v --enable-languages=c,c++,java,f77,proto,objc --prefix=/usr --infodir=/share/info --mandir=/share/man --enable-shared --with-gnu-as --with-gnu-ld --with-system-zlib --enable-long-long --enable-nls --without-included-gettext --disable-checking --enable-threads=posix --enable-java-gc=boehm --with-cpp-install-dir=bin --enable-objc-gc i386-linux
Thread model: posix
gcc version 3.0.2 20010922 (Debian prerelease)

lgb@oxygene:~/src/MPlayer-dev/main$ uname -a
Linux oxygene 2.4.10 #1 Sun Sep 23 22:58:53 CEST 2001 i686 unknown

lgb@oxygene:~/src/MPlayer-dev/main$ ld -v
GNU ld version 2.11.90.0.31 (with BFD 2.11.90.0.31)

lgb@oxygene:~/src/MPlayer-dev/main$ cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 6
model           : 3
model name      : AMD Duron(tm) Processor
stepping        : 0
cpu MHz         : 800.060
cache size      : 64 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr syscall mmxext 3dnowext 3dnow
bogomips        : 1595.80
# 3 "mplayer.c"
# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 1 3
# 37 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
# 1 "/usr/include/features.h" 1 3
# 283 "/usr/include/features.h" 3
# 1 "/usr/include/sys/cdefs.h" 1 3
# 284 "/usr/include/features.h" 2 3
# 312 "/usr/include/features.h" 3
# 1 "/usr/include/gnu/stubs.h" 1 3
# 313 "/usr/include/features.h" 2 3
# 38 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 2 3





# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 199 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 3
typedef unsigned int size_t;
# 44 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 2 3

# 1 "/usr/include/bits/types.h" 1 3
# 26 "/usr/include/bits/types.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/bits/types.h" 2 3


# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 30 "/usr/include/bits/types.h" 2 3


typedef unsigned char __u_char;
typedef unsigned short __u_short;
typedef unsigned int __u_int;
typedef unsigned long __u_long;

__extension__ typedef unsigned long long int __u_quad_t;
__extension__ typedef long long int __quad_t;
# 49 "/usr/include/bits/types.h" 3
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;

typedef __quad_t *__qaddr_t;

typedef __u_quad_t __dev_t;
typedef __u_int __uid_t;
typedef __u_int __gid_t;
typedef __u_long __ino_t;
typedef __u_int __mode_t;
typedef __u_int __nlink_t;
typedef long int __off_t;
typedef __quad_t __loff_t;
typedef int __pid_t;
typedef int __ssize_t;
typedef __u_long __rlim_t;
typedef __u_quad_t __rlim64_t;
typedef __u_int __id_t;

typedef struct
  {
    int __val[2];
  } __fsid_t;


typedef int __daddr_t;
typedef char *__caddr_t;
typedef long int __time_t;
typedef unsigned int __useconds_t;
typedef long int __suseconds_t;
typedef long int __swblk_t;

typedef long int __clock_t;


typedef int __clockid_t;


typedef int __timer_t;






typedef int __key_t;


typedef unsigned short int __ipc_pid_t;



typedef long int __blksize_t;




typedef long int __blkcnt_t;
typedef __quad_t __blkcnt64_t;


typedef __u_long __fsblkcnt_t;
typedef __u_quad_t __fsblkcnt64_t;


typedef __u_long __fsfilcnt_t;
typedef __u_quad_t __fsfilcnt64_t;


typedef __u_quad_t __ino64_t;


typedef __loff_t __off64_t;


typedef long int __t_scalar_t;
typedef unsigned long int __t_uscalar_t;


typedef int __intptr_t;


typedef unsigned int __socklen_t;




# 1 "/usr/include/bits/pthreadtypes.h" 1 3
# 23 "/usr/include/bits/pthreadtypes.h" 3
# 1 "/usr/include/bits/sched.h" 1 3
# 68 "/usr/include/bits/sched.h" 3
struct __sched_param
  {
    int __sched_priority;
  };
# 24 "/usr/include/bits/pthreadtypes.h" 2 3


struct _pthread_fastlock
{
  long int __status;
  int __spinlock;

};



typedef struct _pthread_descr_struct *_pthread_descr;





typedef struct __pthread_attr_s
{
  int __detachstate;
  int __schedpolicy;
  struct __sched_param __schedparam;
  int __inheritsched;
  int __scope;
  size_t __guardsize;
  int __stackaddr_set;
  void *__stackaddr;
  size_t __stacksize;
} pthread_attr_t;



typedef struct
{
  struct _pthread_fastlock __c_lock;
  _pthread_descr __c_waiting;
} pthread_cond_t;



typedef struct
{
  int __dummy;
} pthread_condattr_t;


typedef unsigned int pthread_key_t;





typedef struct
{
  int __m_reserved;
  int __m_count;
  _pthread_descr __m_owner;
  int __m_kind;
  struct _pthread_fastlock __m_lock;
} pthread_mutex_t;



typedef struct
{
  int __mutexkind;
} pthread_mutexattr_t;



typedef int pthread_once_t;
# 140 "/usr/include/bits/pthreadtypes.h" 3
typedef unsigned long int pthread_t;
# 144 "/usr/include/bits/types.h" 2 3
# 46 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 2 3
# 54 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
typedef struct _IO_FILE FILE;
# 64 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
typedef struct _IO_FILE __FILE;
# 74 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
# 1 "/usr/include/libio.h" 1 3
# 32 "/usr/include/libio.h" 3
# 1 "/usr/include/_G_config.h" 1 3
# 9 "/usr/include/_G_config.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 10 "/usr/include/_G_config.h" 2 3




# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 287 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 3
typedef long int wchar_t;
# 312 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 3
typedef unsigned int wint_t;
# 15 "/usr/include/_G_config.h" 2 3
# 24 "/usr/include/_G_config.h" 3
# 1 "/usr/include/wchar.h" 1 3
# 48 "/usr/include/wchar.h" 3
# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 49 "/usr/include/wchar.h" 2 3

# 1 "/usr/include/bits/wchar.h" 1 3
# 51 "/usr/include/wchar.h" 2 3
# 67 "/usr/include/wchar.h" 3
typedef struct
{
  int __count;
  union
  {
    wint_t __wch;
    char __wchb[4];
  } __value;
} __mbstate_t;
# 25 "/usr/include/_G_config.h" 2 3

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
# 1 "/usr/include/gconv.h" 1 3
# 26 "/usr/include/gconv.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/gconv.h" 2 3

# 1 "/usr/include/wchar.h" 1 3
# 48 "/usr/include/wchar.h" 3
# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 49 "/usr/include/wchar.h" 2 3

# 1 "/usr/include/bits/wchar.h" 1 3
# 51 "/usr/include/wchar.h" 2 3
# 29 "/usr/include/gconv.h" 2 3


# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 32 "/usr/include/gconv.h" 2 3





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 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_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
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
# 53 "/usr/include/libio.h" 3
# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdarg.h" 1 3
# 43 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdarg.h" 3
typedef __builtin_va_list __gnuc_va_list;
# 54 "/usr/include/libio.h" 2 3
# 160 "/usr/include/libio.h" 3
struct _IO_jump_t; struct _IO_FILE;
# 170 "/usr/include/libio.h" 3
typedef void _IO_lock_t;





struct _IO_marker {
  struct _IO_marker *_next;
  struct _IO_FILE *_sbuf;



  int _pos;
# 193 "/usr/include/libio.h" 3
};


enum __codecvt_result
{
  __codecvt_ok,
  __codecvt_partial,
  __codecvt_error,
  __codecvt_noconv
};
# 261 "/usr/include/libio.h" 3
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 _blksize;
  __off_t _old_offset;



  unsigned short _cur_column;
  signed char _vtable_offset;
  char _shortbuf[1];



  _IO_lock_t *_lock;
# 305 "/usr/include/libio.h" 3
  __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_;
# 344 "/usr/include/libio.h" 3
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);
# 396 "/usr/include/libio.h" 3
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) ;
# 426 "/usr/include/libio.h" 3
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 *) ;
# 456 "/usr/include/libio.h" 3
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 *) ;
# 75 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 2 3
# 91 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
typedef _G_fpos64_t fpos_t;


typedef _G_fpos64_t fpos64_t;
# 138 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
# 1 "/usr/include/bits/stdio_lim.h" 1 3
# 139 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 2 3



extern FILE *stdin;
extern FILE *stdout;
extern FILE *stderr;






extern int remove (__const char *__filename) ;

extern int rename (__const char *__old, __const char *__new) ;







extern FILE *tmpfile (void) __asm__ ("" "tmpfile64");





extern FILE *tmpfile64 (void) ;


extern char *tmpnam (char *__s) ;




extern char *tmpnam_r (char *__s) ;
# 187 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
extern char *tempnam (__const char *__dir, __const char *__pfx)
             __attribute__ ((__malloc__));




extern int fclose (FILE *__stream) ;

extern int fflush (FILE *__stream) ;



extern int fflush_unlocked (FILE *__stream) ;
# 218 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
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");
# 231 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
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) ;
# 263 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
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)));
# 334 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 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, ...) ;
# 360 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
extern int fgetc (FILE *__stream) ;
extern int getc (FILE *__stream) ;


extern int getchar (void) ;







extern int getc_unlocked (FILE *__stream) ;
extern int getchar_unlocked (void) ;




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) ;







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)
            ;
# 426 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
extern char *gets (char *__s) ;
# 450 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
extern int fputs (__const char *__restrict __s, FILE *__restrict __stream)
            ;
# 460 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
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) ;



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) ;
# 511 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
extern int fseeko (FILE *__stream, __off64_t __off, int __whence) __asm__ ("" "fseeko64");


extern __off64_t ftello (FILE *__stream) __asm__ ("" "ftello64");

extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos) __asm__ ("" "fgetpos64");

extern int fsetpos (FILE *__stream, __const fpos_t *__pos) __asm__ ("" "fsetpos64");
# 532 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
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) ;




extern int sys_nerr;
extern __const char *__const sys_errlist[];
# 571 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
extern int fileno (FILE *__stream) ;




extern int fileno_unlocked (FILE *__stream) ;






extern FILE *popen (__const char *__command, __const char *__modes) ;


extern int pclose (FILE *__stream) ;





extern char *ctermid (char *__s) ;
# 618 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
extern void flockfile (FILE *__stream) ;



extern int ftrylockfile (FILE *__stream) ;


extern void funlockfile (FILE *__stream) ;
# 639 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
# 1 "/usr/include/bits/stdio.h" 1 3
# 33 "/usr/include/bits/stdio.h" 3
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 ((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
}


extern __inline int
getchar_unlocked (void)
{
  return ((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end ? __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 (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
}





extern __inline int
putc_unlocked (int __c, FILE *__stream)
{
  return (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
}


extern __inline int
putchar_unlocked (int __c)
{
  return (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
}
# 111 "/usr/include/bits/stdio.h" 3
extern __inline int
feof_unlocked (FILE *__stream)
{
  return (((__stream)->_flags & 0x10) != 0);
}


extern __inline int
ferror_unlocked (FILE *__stream)
{
  return (((__stream)->_flags & 0x20) != 0);
}
# 640 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 2 3
# 4 "mplayer.c" 2
# 1 "/usr/include/stdlib.h" 1 3
# 25 "/usr/include/stdlib.h" 3
# 1 "/usr/include/features.h" 1 3
# 26 "/usr/include/stdlib.h" 2 3







# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 34 "/usr/include/stdlib.h" 2 3
# 94 "/usr/include/stdlib.h" 3
typedef struct
  {
    int quot;
    int rem;
  } div_t;



typedef struct
  {
    long int quot;
    long int rem;
  } ldiv_t;
# 133 "/usr/include/stdlib.h" 3
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) ;
# 163 "/usr/include/stdlib.h" 3
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)
            ;
# 250 "/usr/include/stdlib.h" 3
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);
}
# 325 "/usr/include/stdlib.h" 3
__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);
}
# 384 "/usr/include/stdlib.h" 3
extern char *l64a (long int __n) ;


extern long int a64l (__const char *__s) __attribute__ ((__pure__));


# 1 "/usr/include/sys/types.h" 1 3
# 26 "/usr/include/sys/types.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/sys/types.h" 2 3



# 1 "/usr/include/bits/types.h" 1 3
# 31 "/usr/include/sys/types.h" 2 3



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;
# 132 "/usr/include/sys/types.h" 3
# 1 "/usr/include/time.h" 1 3
# 67 "/usr/include/time.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 68 "/usr/include/time.h" 2 3


typedef __time_t time_t;
# 79 "/usr/include/time.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 80 "/usr/include/time.h" 2 3


typedef __clockid_t clockid_t;
# 91 "/usr/include/time.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 92 "/usr/include/time.h" 2 3


typedef __timer_t timer_t;
# 133 "/usr/include/sys/types.h" 2 3
# 146 "/usr/include/sys/types.h" 3
# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 147 "/usr/include/sys/types.h" 2 3



typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;
# 190 "/usr/include/sys/types.h" 3
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__)));
# 212 "/usr/include/sys/types.h" 3
# 1 "/usr/include/endian.h" 1 3
# 22 "/usr/include/endian.h" 3
# 1 "/usr/include/features.h" 1 3
# 23 "/usr/include/endian.h" 2 3
# 37 "/usr/include/endian.h" 3
# 1 "/usr/include/bits/endian.h" 1 3
# 38 "/usr/include/endian.h" 2 3
# 213 "/usr/include/sys/types.h" 2 3


# 1 "/usr/include/sys/select.h" 1 3
# 25 "/usr/include/sys/select.h" 3
# 1 "/usr/include/features.h" 1 3
# 26 "/usr/include/sys/select.h" 2 3


# 1 "/usr/include/bits/types.h" 1 3
# 29 "/usr/include/sys/select.h" 2 3


# 1 "/usr/include/bits/select.h" 1 3
# 32 "/usr/include/sys/select.h" 2 3


# 1 "/usr/include/bits/sigset.h" 1 3
# 23 "/usr/include/bits/sigset.h" 3
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



typedef __sigset_t sigset_t;





# 1 "/usr/include/time.h" 1 3
# 106 "/usr/include/time.h" 3
struct timespec
  {
    __time_t tv_sec;
    long int tv_nsec;
  };
# 45 "/usr/include/sys/select.h" 2 3

# 1 "/usr/include/bits/time.h" 1 3
# 63 "/usr/include/bits/time.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 64 "/usr/include/bits/time.h" 2 3



struct timeval
  {
    __time_t tv_sec;
    __suseconds_t tv_usec;
  };
# 47 "/usr/include/sys/select.h" 2 3


typedef __suseconds_t suseconds_t;





typedef long int __fd_mask;







typedef struct
  {






    __fd_mask __fds_bits[1024 / (8 * sizeof (__fd_mask))];


  } fd_set;






typedef __fd_mask fd_mask;
# 102 "/usr/include/sys/select.h" 3
extern int select (int __nfds, fd_set *__restrict __readfds,
                   fd_set *__restrict __writefds,
                   fd_set *__restrict __exceptfds,
                   struct timeval *__restrict __timeout) ;
# 216 "/usr/include/sys/types.h" 2 3


# 1 "/usr/include/sys/sysmacros.h" 1 3
# 219 "/usr/include/sys/types.h" 2 3
# 243 "/usr/include/sys/types.h" 3
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;
# 391 "/usr/include/stdlib.h" 2 3






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) ;
# 527 "/usr/include/stdlib.h" 3
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
# 22 "/usr/include/alloca.h" 3
# 1 "/usr/include/features.h" 1 3
# 23 "/usr/include/alloca.h" 2 3


# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 26 "/usr/include/alloca.h" 2 3







extern void *alloca (size_t __size) ;
# 547 "/usr/include/stdlib.h" 2 3




extern void *valloc (size_t __size) __attribute__ ((__malloc__));
# 561 "/usr/include/stdlib.h" 3
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__));
# 587 "/usr/include/stdlib.h" 3
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) ;
# 623 "/usr/include/stdlib.h" 3
extern char *mktemp (char *__template) ;
# 634 "/usr/include/stdlib.h" 3
extern int mkstemp (char *__template) __asm__ ("" "mkstemp64");





extern int mkstemp64 (char *__template) ;
# 650 "/usr/include/stdlib.h" 3
extern char *mkdtemp (char *__template) ;




extern int system (__const char *__command) ;
# 672 "/usr/include/stdlib.h" 3
extern char *realpath (__const char *__restrict __name,
                       char *__restrict __resolved) ;






typedef int (*__compar_fn_t) (__const void *, __const void *);
# 689 "/usr/include/stdlib.h" 3
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__));
# 710 "/usr/include/stdlib.h" 3
extern div_t div (int __numer, int __denom)
             __attribute__ ((__const__));
extern ldiv_t ldiv (long int __numer, long int __denom)
             __attribute__ ((__const__));
# 728 "/usr/include/stdlib.h" 3
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) ;
# 858 "/usr/include/stdlib.h" 3
extern int getloadavg (double __loadavg[], int __nelem) ;
# 5 "mplayer.c" 2
# 1 "/usr/include/string.h" 1 3
# 26 "/usr/include/string.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/string.h" 2 3






# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 34 "/usr/include/string.h" 2 3



extern void *memcpy (void *__restrict __dest,
                     __const void *__restrict __src, size_t __n) ;


extern void *memmove (void *__dest, __const void *__src, size_t __n)
            ;





extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
                      int __c, size_t __n)
            ;




extern void *memset (void *__s, int __c, size_t __n) ;


extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
             __attribute__ ((__pure__));


extern void *memchr (__const void *__s, int __c, size_t __n)
              __attribute__ ((__pure__));
# 77 "/usr/include/string.h" 3
extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
            ;

extern char *strncpy (char *__restrict __dest,
                      __const char *__restrict __src, size_t __n) ;


extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
            ;

extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
                      size_t __n) ;


extern int strcmp (__const char *__s1, __const char *__s2)
             __attribute__ ((__pure__));

extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
             __attribute__ ((__pure__));


extern int strcoll (__const char *__s1, __const char *__s2)
             __attribute__ ((__pure__));

extern size_t strxfrm (char *__restrict __dest,
                       __const char *__restrict __src, size_t __n) ;
# 120 "/usr/include/string.h" 3
extern char *strdup (__const char *__s) __attribute__ ((__malloc__));
# 155 "/usr/include/string.h" 3
extern char *strchr (__const char *__s, int __c) __attribute__ ((__pure__));

extern char *strrchr (__const char *__s, int __c) __attribute__ ((__pure__));
# 167 "/usr/include/string.h" 3
extern size_t strcspn (__const char *__s, __const char *__reject)
             __attribute__ ((__pure__));


extern size_t strspn (__const char *__s, __const char *__accept)
             __attribute__ ((__pure__));

extern char *strpbrk (__const char *__s, __const char *__accept)
             __attribute__ ((__pure__));

extern char *strstr (__const char *__haystack, __const char *__needle)
             __attribute__ ((__pure__));
# 187 "/usr/include/string.h" 3
extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
            ;



extern char *__strtok_r (char *__restrict __s,
                         __const char *__restrict __delim,
                         char **__restrict __save_ptr) ;

extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
                       char **__restrict __save_ptr) ;
# 218 "/usr/include/string.h" 3
extern size_t strlen (__const char *__s) __attribute__ ((__pure__));
# 229 "/usr/include/string.h" 3
extern char *strerror (int __errnum) ;



extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) ;




extern void __bzero (void *__s, size_t __n) ;



extern void bcopy (__const void *__src, void *__dest, size_t __n) ;


extern void bzero (void *__s, size_t __n) ;


extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
             __attribute__ ((__pure__));


extern char *index (__const char *__s, int __c) __attribute__ ((__pure__));


extern char *rindex (__const char *__s, int __c) __attribute__ ((__pure__));



extern int ffs (int __i) __attribute__ ((__const__));
# 272 "/usr/include/string.h" 3
extern int strcasecmp (__const char *__s1, __const char *__s2)
             __attribute__ ((__pure__));


extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
             __attribute__ ((__pure__));
# 294 "/usr/include/string.h" 3
extern char *strsep (char **__restrict __stringp,
                     __const char *__restrict __delim) ;
# 357 "/usr/include/string.h" 3
# 1 "/usr/include/bits/string.h" 1 3
# 358 "/usr/include/string.h" 2 3


# 1 "/usr/include/bits/string2.h" 1 3
# 52 "/usr/include/bits/string2.h" 3
# 1 "/usr/include/endian.h" 1 3
# 53 "/usr/include/bits/string2.h" 2 3
# 1 "/usr/include/bits/types.h" 1 3
# 54 "/usr/include/bits/string2.h" 2 3
# 371 "/usr/include/bits/string2.h" 3
extern void *__rawmemchr (const void *__s, int __c);
# 395 "/usr/include/bits/string2.h" 3
extern __inline char *__strcpy_small (char *, __uint16_t, __uint16_t,
                                      __uint32_t, __uint32_t, size_t);
extern __inline char *
__strcpy_small (char *__dest,
                __uint16_t __src0_2, __uint16_t __src4_2,
                __uint32_t __src0_4, __uint32_t __src4_4,
                size_t __srclen)
{
  union {
    __uint32_t __ui;
    __uint16_t __usi;
    unsigned char __uc;
  } *__u = (void *) __dest;
  switch ((unsigned int) __srclen)
    {
    case 1:
      __u->__uc = '\0';
      break;
    case 2:
      __u->__usi = __src0_2;
      break;
    case 3:
      __u->__usi = __src0_2;
      __u = __extension__ (void *)((char *) __u + 2);
      __u->__uc = '\0';
      break;
    case 4:
      __u->__ui = __src0_4;
      break;
    case 5:
      __u->__ui = __src0_4;
      __u = __extension__ (void *)((char *) __u + 4);
      __u->__uc = '\0';
      break;
    case 6:
      __u->__ui = __src0_4;
      __u = __extension__ (void *)((char *) __u + 4);
      __u->__usi = __src4_2;
      break;
    case 7:
      __u->__ui = __src0_4;
      __u = __extension__ (void *)((char *) __u + 4);
      __u->__usi = __src4_2;
      __u = __extension__ (void *)((char *) __u + 2);
      __u->__uc = '\0';
      break;
    case 8:
      __u->__ui = __src0_4;
      __u = __extension__ (void *)((char *) __u + 4);
      __u->__ui = __src4_4;
      break;
    }
  return __dest;
}
# 873 "/usr/include/bits/string2.h" 3
extern __inline size_t __strcspn_c1 (__const char *__s, char __reject);
extern __inline size_t
__strcspn_c1 (__const char *__s, char __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, char __reject1,
                                     char __reject2);
extern __inline size_t
__strcspn_c2 (__const char *__s, char __reject1, char __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, char __reject1,
                                     char __reject2, char __reject3);
extern __inline size_t
__strcspn_c3 (__const char *__s, char __reject1, char __reject2,
              char __reject3)
{
  register size_t __result = 0;
  while (__s[__result] != '\0' && __s[__result] != __reject1
         && __s[__result] != __reject2 && __s[__result] != __reject3)
    ++__result;
  return __result;
}
# 928 "/usr/include/bits/string2.h" 3
extern __inline size_t __strspn_c1 (__const char *__s, char __accept);
extern __inline size_t
__strspn_c1 (__const char *__s, char __accept)
{
  register size_t __result = 0;

  while (__s[__result] == __accept)
    ++__result;
  return __result;
}

extern __inline size_t __strspn_c2 (__const char *__s, char __accept1,
                                    char __accept2);
extern __inline size_t
__strspn_c2 (__const char *__s, char __accept1, char __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, char __accept1,
                                    char __accept2, char __accept3);
extern __inline size_t
__strspn_c3 (__const char *__s, char __accept1, char __accept2, char __accept3)
{
  register size_t __result = 0;

  while (__s[__result] == __accept1 || __s[__result] == __accept2
         || __s[__result] == __accept3)
    ++__result;
  return __result;
}
# 983 "/usr/include/bits/string2.h" 3
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;
}
# 1033 "/usr/include/bits/string2.h" 3
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;
  if (*__s == '\0')
    __result = ((void *)0);
  else
    {
      __result = __s;
      while (*__s != '\0')
        if (*__s++ == __sep)
          {
            __s[-1] = '\0';
            break;
          }
      *__nextp = __s;
    }
  return __result;
}
# 1081 "/usr/include/bits/string2.h" 3
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))
    return *__s = ((void *)0);
  if (*__retval == __reject)
    *(*__s)++ = '\0';
  else
    if ((*__s = (__extension__ (__builtin_constant_p (__reject) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : strchr (__retval, __reject)))) != ((void *)0))
      *(*__s)++ = '\0';
    else
      *__s = ((void *)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))
    return *__s = ((void *)0);
  if (*__retval == __reject1 || *__retval == __reject2)
    *(*__s)++ = '\0';
  else
    {
      register char *__cp = __retval;
      while (*__cp != '\0' && *__cp != __reject1 && *__cp != __reject2)
        ++__cp;
      if (*__cp != '\0')
        {
          *__s = __cp;
          *(*__s)++ = '\0';
        }
      else
        *__s = ((void *)0);
    }
  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))
    return *__s = ((void *)0);
  if (*__retval == __reject1 || *__retval == __reject2
      || *__retval == __reject3)
    *(*__s)++ = '\0';
  else
    {
      register char *__cp = __retval;
      while (*__cp != '\0' && *__cp != __reject1 && *__cp != __reject2
             && *__cp != __reject3)
        ++__cp;
      if (*__cp != '\0')
        {
          *__s = __cp;
          *(*__s)++ = '\0';
        }
      else
        *__s = ((void *)0);
    }
  return __retval;
}

extern __inline char *__strsep_g (char **__s, __const char *__reject);
extern __inline char *
__strsep_g (char **__s, __const char *__reject)
{
  register char *__retval = *__s;
  if (__retval == ((void *)0))
    return ((void *)0);
  if ((*__s = __extension__ ({ char __a0, __a1, __a2; (__builtin_constant_p (__reject) && ((size_t)(const void *)((__reject) + 1) - (size_t)(const void *)(__reject) == 1) ? ((__a0 = ((__const char *) (__reject))[0], __a0 == '\0') ? ((void) (__retval), ((void *)0)) : ((__a1 = ((__const char *) (__reject))[1], __a1 == '\0') ? (__extension__ (__builtin_constant_p (__a0) && (__a0) == '\0' ? (char *) __rawmemchr (__retval, __a0) : strchr (__retval, __a0))) : ((__a2 = ((__const char *) (__reject))[2], __a2 == '\0') ? __strpbrk_c2 (__retval, __a0, __a1) : (((__const char *) (__reject))[3] == '\0' ? __strpbrk_c3 (__retval, __a0, __a1, __a2) : strpbrk (__retval, __reject))))) : strpbrk (__retval, __reject)); })) != ((void *)0))
    *(*__s)++ = '\0';
  return __retval;
}
# 1174 "/usr/include/bits/string2.h" 3
# 1 "/usr/include/stdlib.h" 1 3
# 1175 "/usr/include/bits/string2.h" 2 3




extern char *__strdup (__const char *__string) __attribute__ ((__malloc__));
# 1198 "/usr/include/bits/string2.h" 3
extern char *__strndup (__const char *__string, size_t __n)
             __attribute__ ((__malloc__));
# 361 "/usr/include/string.h" 2 3
# 6 "mplayer.c" 2
# 1 "/usr/include/unistd.h" 1 3
# 26 "/usr/include/unistd.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/unistd.h" 2 3
# 175 "/usr/include/unistd.h" 3
# 1 "/usr/include/bits/posix_opt.h" 1 3
# 176 "/usr/include/unistd.h" 2 3
# 190 "/usr/include/unistd.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 191 "/usr/include/unistd.h" 2 3
# 199 "/usr/include/unistd.h" 3
# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 200 "/usr/include/unistd.h" 2 3
# 240 "/usr/include/unistd.h" 3
typedef __intptr_t intptr_t;






typedef __socklen_t socklen_t;
# 260 "/usr/include/unistd.h" 3
extern int access (__const char *__name, int __type) ;
# 293 "/usr/include/unistd.h" 3
extern __off64_t lseek (int __fd, __off64_t __offset, int __whence) __asm__ ("" "lseek64");
# 302 "/usr/include/unistd.h" 3
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) ;
# 353 "/usr/include/unistd.h" 3
extern int pipe (int __pipedes[2]) ;
# 362 "/usr/include/unistd.h" 3
extern unsigned int alarm (unsigned int __seconds) ;
# 371 "/usr/include/unistd.h" 3
extern unsigned int sleep (unsigned int __seconds) ;






extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
            ;



extern int usleep (__useconds_t __useconds) ;





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) ;
# 423 "/usr/include/unistd.h" 3
extern char *getcwd (char *__buf, size_t __size) ;
# 436 "/usr/include/unistd.h" 3
extern char *getwd (char *__buf) ;




extern int dup (int __fd) ;


extern int dup2 (int __fd, int __fd2) ;


extern char **__environ;







extern int execve (__const char *__path, char *__const __argv[],
                   char *__const __envp[]) ;
# 467 "/usr/include/unistd.h" 3
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
# 25 "/usr/include/bits/confname.h" 3
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

  };


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

  };





enum
  {
    _CS_PATH,




    _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,
# 563 "/usr/include/bits/confname.h" 3
    _CS_V6_WIDTH_RESTRICTED_ENVS,

  };
# 501 "/usr/include/unistd.h" 2 3


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) ;
# 536 "/usr/include/unistd.h" 3
extern __pid_t __getpgid (__pid_t __pid) ;
# 545 "/usr/include/unistd.h" 3
extern int setpgid (__pid_t __pid, __pid_t __pgid) ;
# 562 "/usr/include/unistd.h" 3
extern int setpgrp (void) ;
# 580 "/usr/include/unistd.h" 3
extern __pid_t setsid (void) ;







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[]) ;
# 613 "/usr/include/unistd.h" 3
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 __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) ;
# 717 "/usr/include/unistd.h" 3
extern int setlogin (__const char *__name) ;
# 726 "/usr/include/unistd.h" 3
# 1 "/usr/include/getopt.h" 1 3
# 47 "/usr/include/getopt.h" 3
extern char *optarg;
# 61 "/usr/include/getopt.h" 3
extern int optind;




extern int opterr;



extern int optopt;
# 145 "/usr/include/getopt.h" 3
extern int getopt (int ___argc, char *const *___argv, const char *__shortopts);
# 727 "/usr/include/unistd.h" 2 3







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) ;





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) ;
# 866 "/usr/include/unistd.h" 3
extern int brk (void *__addr) ;





extern void *sbrk (intptr_t __delta) ;
# 887 "/usr/include/unistd.h" 3
extern long int syscall (long int __sysno, ...) ;
# 910 "/usr/include/unistd.h" 3
extern int lockf (int __fd, int __cmd, __off64_t __len) __asm__ ("" "lockf64");






extern int lockf64 (int __fd, int __cmd, __off64_t __len) ;
# 938 "/usr/include/unistd.h" 3
extern int fdatasync (int __fildes) ;
# 983 "/usr/include/unistd.h" 3
extern int pthread_atfork (void (*__prepare) (void),
                           void (*__parent) (void),
                           void (*__child) (void)) ;
# 7 "mplayer.c" 2

# 1 "/usr/include/sys/ioctl.h" 1 3
# 22 "/usr/include/sys/ioctl.h" 3
# 1 "/usr/include/features.h" 1 3
# 23 "/usr/include/sys/ioctl.h" 2 3




# 1 "/usr/include/bits/ioctls.h" 1 3
# 24 "/usr/include/bits/ioctls.h" 3
# 1 "/usr/include/asm/ioctls.h" 1 3



# 1 "/usr/include/asm/ioctl.h" 1 3
# 5 "/usr/include/asm/ioctls.h" 2 3
# 25 "/usr/include/bits/ioctls.h" 2 3
# 28 "/usr/include/sys/ioctl.h" 2 3


# 1 "/usr/include/bits/ioctl-types.h" 1 3
# 25 "/usr/include/bits/ioctl-types.h" 3
# 1 "/usr/include/asm/ioctls.h" 1 3
# 26 "/usr/include/bits/ioctl-types.h" 2 3


struct winsize
  {
    unsigned short int ws_row;
    unsigned short int ws_col;
    unsigned short int ws_xpixel;
    unsigned short int ws_ypixel;
  };


struct termio
  {
    unsigned short int c_iflag;
    unsigned short int c_oflag;
    unsigned short int c_cflag;
    unsigned short int c_lflag;
    unsigned char c_line;
    unsigned char c_cc[8];
};
# 31 "/usr/include/sys/ioctl.h" 2 3






# 1 "/usr/include/sys/ttydefaults.h" 1 3
# 38 "/usr/include/sys/ioctl.h" 2 3




extern int ioctl (int __fd, unsigned long int __request, ...) ;
# 9 "mplayer.c" 2
# 1 "/usr/include/sys/mman.h" 1 3
# 23 "/usr/include/sys/mman.h" 3
# 1 "/usr/include/features.h" 1 3
# 24 "/usr/include/sys/mman.h" 2 3
# 1 "/usr/include/bits/types.h" 1 3
# 25 "/usr/include/sys/mman.h" 2 3

# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 27 "/usr/include/sys/mman.h" 2 3
# 42 "/usr/include/sys/mman.h" 3
# 1 "/usr/include/bits/mman.h" 1 3
# 43 "/usr/include/sys/mman.h" 2 3
# 62 "/usr/include/sys/mman.h" 3
extern void * mmap (void *__addr, size_t __len, int __prot, int __flags, int __fd, __off64_t __offset) __asm__ ("" "mmap64");
# 71 "/usr/include/sys/mman.h" 3
extern void *mmap64 (void *__addr, size_t __len, int __prot,
                     int __flags, int __fd, __off64_t __offset) ;




extern int munmap (void *__addr, size_t __len) ;




extern int mprotect (void *__addr, size_t __len, int __prot) ;




extern int msync (void *__addr, size_t __len, int __flags) ;




extern int madvise (void *__addr, size_t __len, int __advice) ;
# 101 "/usr/include/sys/mman.h" 3
extern int mlock (__const void *__addr, size_t __len) ;


extern int munlock (__const void *__addr, size_t __len) ;




extern int mlockall (int __flags) ;



extern int munlockall (void) ;





extern void *mremap (void *__addr, size_t __old_len, size_t __new_len,
                     int __may_move) ;






extern int mincore (void *__start, size_t __len, unsigned char *__vec);




extern int shm_open (__const char *__name, int __oflag, mode_t __mode);


extern int shm_unlink (__const char *__name);
# 10 "mplayer.c" 2
# 1 "/usr/include/sys/types.h" 1 3
# 11 "mplayer.c" 2
# 1 "/usr/include/sys/wait.h" 1 3
# 26 "/usr/include/sys/wait.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/sys/wait.h" 2 3



# 1 "/usr/include/signal.h" 1 3
# 29 "/usr/include/signal.h" 3
# 1 "/usr/include/features.h" 1 3
# 30 "/usr/include/signal.h" 2 3



# 1 "/usr/include/bits/sigset.h" 1 3
# 103 "/usr/include/bits/sigset.h" 3
extern int __sigismember (__const __sigset_t *, int);
extern int __sigaddset (__sigset_t *, int);
extern int __sigdelset (__sigset_t *, int);
# 117 "/usr/include/bits/sigset.h" 3
extern __inline int __sigismember (__const __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return (__set->__val[__word] & __mask) ? 1 : 0; }
extern __inline int __sigaddset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] |= __mask), 0); }
extern __inline int __sigdelset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] &= ~__mask), 0); }
# 34 "/usr/include/signal.h" 2 3






typedef __sig_atomic_t sig_atomic_t;
# 55 "/usr/include/signal.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 56 "/usr/include/signal.h" 2 3
# 1 "/usr/include/bits/signum.h" 1 3
# 57 "/usr/include/signal.h" 2 3
# 71 "/usr/include/signal.h" 3
typedef void (*__sighandler_t) (int);




extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler)
            ;
# 87 "/usr/include/signal.h" 3
extern __sighandler_t signal (int __sig, __sighandler_t __handler) ;
# 110 "/usr/include/signal.h" 3
extern int kill (__pid_t __pid, int __sig) ;






extern int killpg (__pid_t __pgrp, int __sig) ;



extern int raise (int __sig) ;



extern __sighandler_t ssignal (int __sig, __sighandler_t __handler) ;
extern int gsignal (int __sig) ;




extern void psignal (int __sig, __const char *__s) ;
# 140 "/usr/include/signal.h" 3
extern int __sigpause (int __sig_or_mask, int __is_sig) ;




extern int sigpause (int __mask) ;
# 168 "/usr/include/signal.h" 3
extern int sigblock (int __mask) ;


extern int sigsetmask (int __mask) ;


extern int siggetmask (void) ;
# 188 "/usr/include/signal.h" 3
typedef __sighandler_t sig_t;







# 1 "/usr/include/time.h" 1 3
# 197 "/usr/include/signal.h" 2 3


# 1 "/usr/include/bits/siginfo.h" 1 3
# 25 "/usr/include/bits/siginfo.h" 3
# 1 "/usr/include/bits/wordsize.h" 1 3
# 26 "/usr/include/bits/siginfo.h" 2 3







typedef union sigval
  {
    int sival_int;
    void *sival_ptr;
  } sigval_t;
# 51 "/usr/include/bits/siginfo.h" 3
typedef struct siginfo
  {
    int si_signo;
    int si_errno;

    int si_code;

    union
      {
        int _pad[((128 / sizeof (int)) - 3)];


        struct
          {
            __pid_t si_pid;
            __uid_t si_uid;
          } _kill;


        struct
          {
            unsigned int _timer1;
            unsigned int _timer2;
          } _timer;


        struct
          {
            __pid_t si_pid;
            __uid_t si_uid;
            sigval_t si_sigval;
          } _rt;


        struct
          {
            __pid_t si_pid;
            __uid_t si_uid;
            int si_status;
            __clock_t si_utime;
            __clock_t si_stime;
          } _sigchld;


        struct
          {
            void *si_addr;
          } _sigfault;


        struct
          {
            long int si_band;
            int si_fd;
          } _sigpoll;
      } _sifields;
  } siginfo_t;
# 128 "/usr/include/bits/siginfo.h" 3
enum
{
  SI_ASYNCNL = -6,

  SI_SIGIO,

  SI_ASYNCIO,

  SI_MESGQ,

  SI_TIMER,

  SI_QUEUE,

  SI_USER,

  SI_KERNEL = 0x80

};



enum
{
  ILL_ILLOPC = 1,

  ILL_ILLOPN,

  ILL_ILLADR,

  ILL_ILLTRP,

  ILL_PRVOPC,

  ILL_PRVREG,

  ILL_COPROC,

  ILL_BADSTK

};


enum
{
  FPE_INTDIV = 1,

  FPE_INTOVF,

  FPE_FLTDIV,

  FPE_FLTOVF,

  FPE_FLTUND,

  FPE_FLTRES,

  FPE_FLTINV,

  FPE_FLTSUB

};


enum
{
  SEGV_MAPERR = 1,

  SEGV_ACCERR

};


enum
{
  BUS_ADRALN = 1,

  BUS_ADRERR,

  BUS_OBJERR

};


enum
{
  TRAP_BRKPT = 1,

  TRAP_TRACE

};


enum
{
  CLD_EXITED = 1,

  CLD_KILLED,

  CLD_DUMPED,

  CLD_TRAPPED,

  CLD_STOPPED,

  CLD_CONTINUED

};


enum
{
  POLL_IN = 1,

  POLL_OUT,

  POLL_MSG,

  POLL_ERR,

  POLL_PRI,

  POLL_HUP

};
# 271 "/usr/include/bits/siginfo.h" 3
struct __pthread_attr_s;

typedef struct sigevent
  {
    sigval_t sigev_value;
    int sigev_signo;
    int sigev_notify;

    union
      {
        int _pad[((64 / sizeof (int)) - 3)];

        struct
          {
            void (*_function) (sigval_t);
            struct __pthread_attr_s *_attribute;
          } _sigev_thread;
      } _sigev_un;
  } sigevent_t;






enum
{
  SIGEV_SIGNAL = 0,

  SIGEV_NONE,

  SIGEV_THREAD

};
# 200 "/usr/include/signal.h" 2 3



extern int sigemptyset (sigset_t *__set) ;


extern int sigfillset (sigset_t *__set) ;


extern int sigaddset (sigset_t *__set, int __signo) ;


extern int sigdelset (sigset_t *__set, int __signo) ;


extern int sigismember (__const sigset_t *__set, int __signo) ;
# 232 "/usr/include/signal.h" 3
# 1 "/usr/include/bits/sigaction.h" 1 3
# 25 "/usr/include/bits/sigaction.h" 3
struct sigaction
  {


    union
      {

        __sighandler_t sa_handler;

        void (*sa_sigaction) (int, siginfo_t *, void *);
      }
    __sigaction_handler;







    __sigset_t sa_mask;


    int sa_flags;


    void (*sa_restorer) (void);
  };
# 233 "/usr/include/signal.h" 2 3


extern int sigprocmask (int __how, __const sigset_t *__restrict __set,
                        sigset_t *__restrict __oset) ;



extern int sigsuspend (__const sigset_t *__set) ;


extern int sigaction (int __sig, __const struct sigaction *__restrict __act,
                      struct sigaction *__restrict __oact) ;


extern int sigpending (sigset_t *__set) ;



extern int sigwait (__const sigset_t *__restrict __set, int *__restrict __sig)
            ;



extern int sigwaitinfo (__const sigset_t *__restrict __set,
                        siginfo_t *__restrict __info) ;



extern int sigtimedwait (__const sigset_t *__restrict __set,
                         siginfo_t *__restrict __info,
                         __const struct timespec *__restrict __timeout)
            ;



extern int sigqueue (__pid_t __pid, int __sig, __const union sigval __val)
            ;
# 278 "/usr/include/signal.h" 3
extern __const char *__const _sys_siglist[64];
extern __const char *__const sys_siglist[64];


struct sigvec
  {
    __sighandler_t sv_handler;
    int sv_mask;

    int sv_flags;

  };
# 302 "/usr/include/signal.h" 3
extern int sigvec (int __sig, __const struct sigvec *__vec,
                   struct sigvec *__ovec) ;



# 1 "/usr/include/bits/sigcontext.h" 1 3
# 28 "/usr/include/bits/sigcontext.h" 3
# 1 "/usr/include/asm/sigcontext.h" 1 3
# 18 "/usr/include/asm/sigcontext.h" 3
struct _fpreg {
        unsigned short significand[4];
        unsigned short exponent;
};

struct _fpxreg {
        unsigned short significand[4];
        unsigned short exponent;
        unsigned short padding[3];
};

struct _xmmreg {
        unsigned long element[4];
};

struct _fpstate {

        unsigned long cw;
        unsigned long sw;
        unsigned long tag;
        unsigned long ipoff;
        unsigned long cssel;
        unsigned long dataoff;
        unsigned long datasel;
        struct _fpreg _st[8];
        unsigned short status;
        unsigned short magic;


        unsigned long _fxsr_env[6];
        unsigned long mxcsr;
        unsigned long reserved;
        struct _fpxreg _fxsr_st[8];
        struct _xmmreg _xmm[8];
        unsigned long padding[56];
};



struct sigcontext {
        unsigned short gs, __gsh;
        unsigned short fs, __fsh;
        unsigned short es, __esh;
        unsigned short ds, __dsh;
        unsigned long edi;
        unsigned long esi;
        unsigned long ebp;
        unsigned long esp;
        unsigned long ebx;
        unsigned long edx;
        unsigned long ecx;
        unsigned long eax;
        unsigned long trapno;
        unsigned long err;
        unsigned long eip;
        unsigned short cs, __csh;
        unsigned long eflags;
        unsigned long esp_at_signal;
        unsigned short ss, __ssh;
        struct _fpstate * fpstate;
        unsigned long oldmask;
        unsigned long cr2;
};
# 29 "/usr/include/bits/sigcontext.h" 2 3
# 308 "/usr/include/signal.h" 2 3


extern int sigreturn (struct sigcontext *__scp) ;
# 320 "/usr/include/signal.h" 3
extern int siginterrupt (int __sig, int __interrupt) ;

# 1 "/usr/include/bits/sigstack.h" 1 3
# 26 "/usr/include/bits/sigstack.h" 3
struct sigstack
  {
    void *ss_sp;
    int ss_onstack;
  };



enum
{
  SS_ONSTACK = 1,

  SS_DISABLE

};
# 50 "/usr/include/bits/sigstack.h" 3
typedef struct sigaltstack
  {
    void *ss_sp;
    int ss_flags;
    size_t ss_size;
  } stack_t;
# 323 "/usr/include/signal.h" 2 3







extern int sigstack (struct sigstack *__ss, struct sigstack *__oss) ;



extern int sigaltstack (__const struct sigaltstack *__restrict __ss,
                        struct sigaltstack *__restrict __oss) ;
# 358 "/usr/include/signal.h" 3
# 1 "/usr/include/bits/sigthread.h" 1 3
# 31 "/usr/include/bits/sigthread.h" 3
extern int pthread_sigmask (int __how,
                            __const __sigset_t *__restrict __newmask,
                            __sigset_t *__restrict __oldmask);


extern int pthread_kill (pthread_t __thread, int __signo) ;
# 359 "/usr/include/signal.h" 2 3






extern int __libc_current_sigrtmin (void) ;

extern int __libc_current_sigrtmax (void) ;
# 31 "/usr/include/sys/wait.h" 2 3
# 1 "/usr/include/sys/resource.h" 1 3
# 22 "/usr/include/sys/resource.h" 3
# 1 "/usr/include/features.h" 1 3
# 23 "/usr/include/sys/resource.h" 2 3


# 1 "/usr/include/bits/resource.h" 1 3
# 24 "/usr/include/bits/resource.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 25 "/usr/include/bits/resource.h" 2 3







enum __rlimit_resource
{

  RLIMIT_CPU = 0,



  RLIMIT_FSIZE = 1,



  RLIMIT_DATA = 2,



  RLIMIT_STACK = 3,



  RLIMIT_CORE = 4,






  RLIMIT_RSS = 5,



  RLIMIT_NOFILE = 7,
  RLIMIT_OFILE = RLIMIT_NOFILE,




  RLIMIT_AS = 9,



  RLIMIT_NPROC = 6,



  RLIMIT_MEMLOCK = 8,



  RLIMIT_LOCKS = 10,


  RLIMIT_NLIMITS = 11,
  RLIM_NLIMITS = RLIMIT_NLIMITS


};
# 109 "/usr/include/bits/resource.h" 3
typedef __rlim64_t rlim_t;


typedef __rlim64_t rlim64_t;


struct rlimit
  {

    rlim_t rlim_cur;

    rlim_t rlim_max;
  };


struct rlimit64
  {

    rlim64_t rlim_cur;

    rlim64_t rlim_max;
 };



enum __rusage_who
{

  RUSAGE_SELF = 0,



  RUSAGE_CHILDREN = -1,



  RUSAGE_BOTH = -2

};


# 1 "/usr/include/bits/time.h" 1 3
# 151 "/usr/include/bits/resource.h" 2 3


struct rusage
  {

    struct timeval ru_utime;

    struct timeval ru_stime;

    long int ru_maxrss;


    long int ru_ixrss;

    long int ru_idrss;

    long int ru_isrss;


    long int ru_minflt;

    long int ru_majflt;

    long int ru_nswap;


    long int ru_inblock;

    long int ru_oublock;

    long int ru_msgsnd;

    long int ru_msgrcv;

    long int ru_nsignals;



    long int ru_nvcsw;


    long int ru_nivcsw;
  };







enum __priority_which
{
  PRIO_PROCESS = 0,

  PRIO_PGRP = 1,

  PRIO_USER = 2

};
# 26 "/usr/include/sys/resource.h" 2 3
# 43 "/usr/include/sys/resource.h" 3
typedef int __rlimit_resource_t;
typedef int __rusage_who_t;
typedef int __priority_which_t;
# 55 "/usr/include/sys/resource.h" 3
extern int getrlimit (__rlimit_resource_t __resource, struct rlimit *__rlimits) __asm__ ("" "getrlimit64");







extern int getrlimit64 (__rlimit_resource_t __resource,
                        struct rlimit64 *__rlimits) ;
# 75 "/usr/include/sys/resource.h" 3
extern int setrlimit (__rlimit_resource_t __resource, __const struct rlimit *__rlimits) __asm__ ("" "setrlimit64");







extern int setrlimit64 (__rlimit_resource_t __resource,
                        __const struct rlimit64 *__rlimits) ;




extern int getrusage (__rusage_who_t __who, struct rusage *__usage) ;





extern int getpriority (__priority_which_t __which, id_t __who) ;



extern int setpriority (__priority_which_t __which, id_t __who, int __prio)
            ;
# 32 "/usr/include/sys/wait.h" 2 3





# 1 "/usr/include/bits/waitflags.h" 1 3
# 38 "/usr/include/sys/wait.h" 2 3
# 62 "/usr/include/sys/wait.h" 3
typedef union
  {
    union wait *__uptr;
    int *__iptr;
  } __WAIT_STATUS __attribute__ ((__transparent_union__));
# 79 "/usr/include/sys/wait.h" 3
# 1 "/usr/include/bits/waitstatus.h" 1 3
# 63 "/usr/include/bits/waitstatus.h" 3
# 1 "/usr/include/endian.h" 1 3
# 64 "/usr/include/bits/waitstatus.h" 2 3

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;
  };
# 80 "/usr/include/sys/wait.h" 2 3
# 98 "/usr/include/sys/wait.h" 3
typedef enum
{
  P_ALL,
  P_PID,
  P_PGID
} idtype_t;





extern __pid_t wait (__WAIT_STATUS __stat_loc) ;
# 129 "/usr/include/sys/wait.h" 3
extern __pid_t waitpid (__pid_t __pid, int *__stat_loc, int __options) ;



# 1 "/usr/include/bits/siginfo.h" 1 3
# 25 "/usr/include/bits/siginfo.h" 3
# 1 "/usr/include/bits/wordsize.h" 1 3
# 26 "/usr/include/bits/siginfo.h" 2 3
# 134 "/usr/include/sys/wait.h" 2 3
# 142 "/usr/include/sys/wait.h" 3
extern int waitid (idtype_t __idtype, __id_t __id, siginfo_t *__infop,
                   int __options) ;





struct rusage;






extern __pid_t wait3 (__WAIT_STATUS __stat_loc, int __options,
                      struct rusage * __usage) ;





struct rusage;


extern __pid_t wait4 (__pid_t __pid, __WAIT_STATUS __stat_loc, int __options,
                      struct rusage *__usage) ;
# 12 "mplayer.c" 2
# 1 "/usr/include/sys/time.h" 1 3
# 22 "/usr/include/sys/time.h" 3
# 1 "/usr/include/features.h" 1 3
# 23 "/usr/include/sys/time.h" 2 3

# 1 "/usr/include/bits/types.h" 1 3
# 25 "/usr/include/sys/time.h" 2 3

# 1 "/usr/include/time.h" 1 3
# 27 "/usr/include/sys/time.h" 2 3

# 1 "/usr/include/bits/time.h" 1 3
# 29 "/usr/include/sys/time.h" 2 3

# 1 "/usr/include/sys/select.h" 1 3
# 31 "/usr/include/sys/time.h" 2 3
# 56 "/usr/include/sys/time.h" 3
struct timezone
  {
    int tz_minuteswest;
    int tz_dsttime;
  };

typedef struct timezone *__restrict __timezone_ptr_t;
# 72 "/usr/include/sys/time.h" 3
extern int gettimeofday (struct timeval *__restrict __tv,
                         __timezone_ptr_t __tz) ;




extern int settimeofday (__const struct timeval *__tv,
                         __const struct timezone *__tz) ;





extern int adjtime (__const struct timeval *__delta,
                    struct timeval *__olddelta) ;




enum __itimer_which
  {

    ITIMER_REAL = 0,


    ITIMER_VIRTUAL = 1,



    ITIMER_PROF = 2

  };



struct itimerval
  {

    struct timeval it_interval;

    struct timeval it_value;
  };






typedef int __itimer_which_t;




extern int getitimer (__itimer_which_t __which,
                      struct itimerval *__value) ;




extern int setitimer (__itimer_which_t __which,
                      __const struct itimerval *__restrict __new,
                      struct itimerval *__restrict __old) ;



extern int utimes (__const char *__file, __const struct timeval __tvp[2])
            ;
# 13 "mplayer.c" 2
# 1 "/usr/include/sys/stat.h" 1 3
# 26 "/usr/include/sys/stat.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/sys/stat.h" 2 3

# 1 "/usr/include/bits/types.h" 1 3
# 29 "/usr/include/sys/stat.h" 2 3
# 98 "/usr/include/sys/stat.h" 3
# 1 "/usr/include/bits/stat.h" 1 3
# 36 "/usr/include/bits/stat.h" 3
struct stat
  {
    __dev_t st_dev;
    unsigned short int __pad1;



    __ino_t __st_ino;

    __mode_t st_mode;
    __nlink_t st_nlink;
    __uid_t st_uid;
    __gid_t st_gid;
    __dev_t st_rdev;
    unsigned short int __pad2;



    __off64_t st_size;

    __blksize_t st_blksize;




    __blkcnt64_t st_blocks;

    __time_t st_atime;
    unsigned long int __unused1;
    __time_t st_mtime;
    unsigned long int __unused2;
    __time_t st_ctime;
    unsigned long int __unused3;




    __ino64_t st_ino;

  };


struct stat64
  {
    __dev_t st_dev;
    unsigned int __pad1;

    __ino_t __st_ino;
    __mode_t st_mode;
    __nlink_t st_nlink;
    __uid_t st_uid;
    __gid_t st_gid;
    __dev_t st_rdev;
    unsigned int __pad2;
    __off64_t st_size;
    __blksize_t st_blksize;

    __blkcnt64_t st_blocks;
    __time_t st_atime;
    unsigned long int __unused1;
    __time_t st_mtime;
    unsigned long int __unused2;
    __time_t st_ctime;
    unsigned long int __unused3;
    __ino64_t st_ino;
  };
# 99 "/usr/include/sys/stat.h" 2 3
# 208 "/usr/include/sys/stat.h" 3
extern int stat (__const char *__restrict __file, struct stat *__restrict __buf) __asm__ ("" "stat64");



extern int fstat (int __fd, struct stat *__buf) __asm__ ("" "fstat64");






extern int stat64 (__const char *__restrict __file,
                   struct stat64 *__restrict __buf) ;
extern int fstat64 (int __fd, struct stat64 *__buf) ;
# 232 "/usr/include/sys/stat.h" 3
extern int lstat (__const char *__restrict __file, struct stat *__restrict __buf) __asm__ ("" "lstat64");
# 241 "/usr/include/sys/stat.h" 3
extern int lstat64 (__const char *__restrict __file,
                    struct stat64 *__restrict __buf) ;






extern int chmod (__const char *__file, __mode_t __mode) ;



extern int fchmod (int __fd, __mode_t __mode) ;





extern __mode_t umask (__mode_t __mask) ;
# 268 "/usr/include/sys/stat.h" 3
extern int mkdir (__const char *__path, __mode_t __mode) ;





extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev)
            ;




extern int mkfifo (__const char *__path, __mode_t __mode) ;
# 313 "/usr/include/sys/stat.h" 3
extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf) __asm__ ("" "__fxstat64");


extern int __xstat (int __ver, __const char *__filename, struct stat *__stat_buf) __asm__ ("" "__xstat64");

extern int __lxstat (int __ver, __const char *__filename, struct stat *__stat_buf) __asm__ ("" "__lxstat64");
# 330 "/usr/include/sys/stat.h" 3
extern int __fxstat64 (int __ver, int __fildes, struct stat64 *__stat_buf)
            ;
extern int __xstat64 (int __ver, __const char *__filename,
                      struct stat64 *__stat_buf) ;
extern int __lxstat64 (int __ver, __const char *__filename,
                       struct stat64 *__stat_buf) ;

extern int __xmknod (int __ver, __const char *__path, __mode_t __mode,
                     __dev_t *__dev) ;




extern __inline__ int stat (__const char *__path,
                            struct stat *__statbuf)
{
  return __xstat (3, __path, __statbuf);
}


extern __inline__ int lstat (__const char *__path,
                             struct stat *__statbuf)
{
  return __lxstat (3, __path, __statbuf);
}


extern __inline__ int fstat (int __fd, struct stat *__statbuf)
{
  return __fxstat (3, __fd, __statbuf);
}


extern __inline__ int mknod (__const char *__path, __mode_t __mode,
                             __dev_t __dev)
{
  return __xmknod (1, __path, __mode, &__dev);
}





extern __inline__ int stat64 (__const char *__path,
                              struct stat64 *__statbuf)
{
  return __xstat64 (3, __path, __statbuf);
}


extern __inline__ int lstat64 (__const char *__path,
                               struct stat64 *__statbuf)
{
  return __lxstat64 (3, __path, __statbuf);
}


extern __inline__ int fstat64 (int __fd, struct stat64 *__statbuf)
{
  return __fxstat64 (3, __fd, __statbuf);
}
# 14 "mplayer.c" 2

# 1 "/usr/include/signal.h" 1 3
# 16 "mplayer.c" 2

# 1 "/usr/include/time.h" 1 3
# 28 "/usr/include/time.h" 3
# 1 "/usr/include/features.h" 1 3
# 29 "/usr/include/time.h" 2 3
# 38 "/usr/include/time.h" 3
# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 39 "/usr/include/time.h" 2 3



# 1 "/usr/include/bits/time.h" 1 3
# 39 "/usr/include/bits/time.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 40 "/usr/include/bits/time.h" 2 3
extern long int __sysconf (int);
# 43 "/usr/include/time.h" 2 3
# 56 "/usr/include/time.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 57 "/usr/include/time.h" 2 3


typedef __clock_t clock_t;
# 118 "/usr/include/time.h" 3
struct tm
{
  int tm_sec;
  int tm_min;
  int tm_hour;
  int tm_mday;
  int tm_mon;
  int tm_year;
  int tm_wday;
  int tm_yday;
  int tm_isdst;


  long int tm_gmtoff;
  __const char *tm_zone;




};




struct itimerspec
  {
    struct timespec it_interval;
    struct timespec it_value;
  };


struct sigevent;
# 163 "/usr/include/time.h" 3
extern clock_t clock (void) ;


extern time_t time (time_t *__timer) ;


extern double difftime (time_t __time1, time_t __time0)
             __attribute__ ((__const__));


extern time_t mktime (struct tm *__tp) ;





extern size_t strftime (char *__restrict __s, size_t __maxsize,
                        __const char *__restrict __format,
                        __const struct tm *__restrict __tp) ;
# 194 "/usr/include/time.h" 3
extern struct tm *gmtime (__const time_t *__timer) ;



extern struct tm *localtime (__const time_t *__timer) ;




extern struct tm *gmtime_r (__const time_t *__restrict __timer,
                            struct tm *__restrict __tp) ;



extern struct tm *localtime_r (__const time_t *__restrict __timer,
                               struct tm *__restrict __tp) ;




extern char *asctime (__const struct tm *__tp) ;


extern char *ctime (__const time_t *__timer) ;






extern char *asctime_r (__const struct tm *__restrict __tp,
                        char *__restrict __buf) ;


extern char *ctime_r (__const time_t *__restrict __timer,
                      char *__restrict __buf) ;




extern char *__tzname[2];
extern int __daylight;
extern long int __timezone;




extern char *tzname[2];



extern void tzset (void) ;



extern int daylight;
extern long int timezone;





extern int stime (__const time_t *__when) ;
# 271 "/usr/include/time.h" 3
extern time_t timegm (struct tm *__tp) ;


extern time_t timelocal (struct tm *__tp) ;


extern int dysize (int __year) __attribute__ ((__const__));





extern int nanosleep (__const struct timespec *__requested_time,
                      struct timespec *__remaining) ;



extern int clock_getres (clockid_t __clock_id, struct timespec *__res) ;


extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) ;


extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
            ;
# 309 "/usr/include/time.h" 3
extern int timer_create (clockid_t __clock_id,
                         struct sigevent *__restrict __evp,
                         timer_t *__restrict __timerid) ;


extern int timer_delete (timer_t __timerid) ;


extern int timer_settime (timer_t __timerid, int __flags,
                          __const struct itimerspec *__restrict __value,
                          struct itimerspec *__restrict __ovalue) ;


extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
            ;


extern int timer_getoverrun (timer_t __timerid) ;
# 18 "mplayer.c" 2

# 1 "/usr/include/fcntl.h" 1 3
# 26 "/usr/include/fcntl.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/fcntl.h" 2 3






# 1 "/usr/include/bits/fcntl.h" 1 3
# 25 "/usr/include/bits/fcntl.h" 3
# 1 "/usr/include/sys/types.h" 1 3
# 26 "/usr/include/bits/fcntl.h" 2 3
# 136 "/usr/include/bits/fcntl.h" 3
struct flock
  {
    short int l_type;
    short int l_whence;




    __off64_t l_start;
    __off64_t l_len;

    __pid_t l_pid;
  };


struct flock64
  {
    short int l_type;
    short int l_whence;
    __off64_t l_start;
    __off64_t l_len;
    __pid_t l_pid;
  };
# 34 "/usr/include/fcntl.h" 2 3
# 60 "/usr/include/fcntl.h" 3
extern int fcntl (int __fd, int __cmd, ...) ;
# 69 "/usr/include/fcntl.h" 3
extern int open (__const char *__file, int __oflag, ...) __asm__ ("" "open64");






extern int open64 (__const char *__file, int __oflag, ...) ;
# 86 "/usr/include/fcntl.h" 3
extern int creat (__const char *__file, __mode_t __mode) __asm__ ("" "creat64");






extern int creat64 (__const char *__file, __mode_t __mode) ;
# 20 "mplayer.c" 2

# 1 "version.h" 1
# 22 "mplayer.c" 2
# 1 "config.h" 1
# 23 "mplayer.c" 2

# 1 "mp_msg.h" 1

extern int verbose;
# 53 "mp_msg.h"
void mp_msg_init(int verbose);
void mp_msg_c( int x, const char *format, ... );
# 25 "mplayer.c" 2


# 1 "help_mp.h" 1
# 1 "help_mp-en.h" 1
# 9 "help_mp-en.h"
static char* banner_text=
"\n\n"
"MPlayer " "CVS-010929-10:07" "(C) 2000-2001 Arpad Gereoffy (see DOCS!)\n"
"\n";

static char help_text[]=

"Usage:   mplayer [-gui] [options] [path/]filename\n"



"\n"
"Options:\n"
" -vo <drv[:dev]> select video output driver & device (see '-vo help' for list)\n"
" -ao <drv[:dev]> select audio output driver & device (see '-ao help' for list)\n"
" -vcd <trackno>  play VCD (video cd) track from device instead of plain file\n"




" -dvd <titleno>  play DVD title/track from device instead of plain file\n"

" -ss <timepos>   seek to given (seconds or hh:mm:ss) position\n"
" -nosound        don't play sound\n"

" -stereo <mode>  select MPEG1 stereo output (0:stereo 1:left 2:right)\n"

" -fs -vm -zoom   fullscreen playing options (fullscr,vidmode chg,softw.scale)\n"
" -x <x> -y <y>   scale image to <x> * <y> resolution [if -vo driver supports!]\n"
" -sub <file>     specify subtitle file to use (see also -subfps, -subdelay)\n"
" -vid x -aid y   options to select video (x) and audio (y) stream to play\n"
" -fps x -srate y options to change video (x fps) and audio (y Hz) rate\n"
" -pp <quality>   enable postprocessing filter (0-4 for DivX, 0-63 for mpegs)\n"
" -nobps          use alternative A-V sync method for AVI files (may help!)\n"
" -framedrop      enable frame-dropping (for slow machines)\n"
"\n"
"Keys:\n"
" <-  or  ->      seek backward/forward 10 seconds\n"
" up or down      seek backward/forward  1 minute\n"
" p or SPACE      pause movie (press any key to continue)\n"
" q or ESC        stop playing and quit program\n"
" + or -          adjust audio delay by +/- 0.1 second\n"
" o               cycle OSD mode:  none / seekbar / seekbar+timer\n"
" * or /          increase or decrease volume (press 'm' to select master/pcm)\n"
" z or x          adjust subtitle delay by +/- 0.1 second\n"
"\n"
" * * * SEE MANPAGE FOR DETAILS, FURTHER (ADVANCED) OPTIONS AND KEYS ! * * *\n"
"\n";
# 2 "help_mp.h" 2
# 28 "mplayer.c" 2

# 1 "cfgparser.h" 1
# 31 "cfgparser.h"
struct config {
        char *name;
        void *p;
        unsigned int type :3;
        unsigned int flags:4;
        float min,max;
};

typedef int (*cfg_func_arg_param_t)(struct config *, char *, char *);
typedef int (*cfg_func_param_t)(struct config *, char *);
typedef int (*cfg_func_t)(struct config *);






int parse_config_file(struct config *conf, char *conffile);






int parse_command_line(struct config *conf, int argc, char **argv, char **envp, char ***filenames);
# 30 "mplayer.c" 2
# 1 "cfg-mplayer-def.h" 1
static char* default_config=
"# Write your default config options here!\n"
"\n"

"\n";
# 31 "mplayer.c" 2


# 1 "subreader.h" 1




extern int sub_uses_time;
extern int sub_errs;
extern int sub_num;
extern int sub_format;







typedef struct {

    int lines;

    unsigned long start;
    unsigned long end;

    char *text[5];
} subtitle;

subtitle* sub_read_file (char *filename);
char * sub_filename(char *path, char * fname );
# 34 "mplayer.c" 2





# 1 "libvo/video_out.h" 1
# 9 "libvo/video_out.h"
# 1 "/usr/include/inttypes.h" 1 3
# 26 "/usr/include/inttypes.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/inttypes.h" 2 3

# 1 "/usr/include/stdint.h" 1 3
# 26 "/usr/include/stdint.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/stdint.h" 2 3
# 1 "/usr/include/bits/wchar.h" 1 3
# 28 "/usr/include/stdint.h" 2 3
# 1 "/usr/include/bits/wordsize.h" 1 3
# 29 "/usr/include/stdint.h" 2 3
# 49 "/usr/include/stdint.h" 3
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
typedef unsigned int uintptr_t;
# 138 "/usr/include/stdint.h" 3
__extension__
typedef long long int intmax_t;
__extension__
typedef unsigned long long int uintmax_t;
# 29 "/usr/include/inttypes.h" 2 3






typedef long int __gwchar_t;
# 288 "/usr/include/inttypes.h" 3
typedef struct
  {
    long long int quot;
    long long int rem;
  } imaxdiv_t;





extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__const__));


extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom)
              __attribute__ ((__const__));


extern intmax_t strtoimax (__const char *__restrict __nptr,
                           char **__restrict __endptr, int __base) ;


extern uintmax_t strtoumax (__const char *__restrict __nptr,
                            char ** __restrict __endptr, int __base) ;


extern intmax_t wcstoimax (__const __gwchar_t *__restrict __nptr,
                           __gwchar_t **__restrict __endptr, int __base)
            ;


extern uintmax_t wcstoumax (__const __gwchar_t *__restrict __nptr,
                            __gwchar_t ** __restrict __endptr, int __base)
            ;
# 396 "/usr/include/inttypes.h" 3
extern __inline intmax_t
strtoimax (__const char *__restrict nptr, char **__restrict endptr,
           int base)
{
  return __strtoll_internal (nptr, endptr, base, 0);
}
# 414 "/usr/include/inttypes.h" 3
extern __inline uintmax_t
strtoumax (__const char *__restrict nptr, char **__restrict endptr,
           int base)
{
  return __strtoull_internal (nptr, endptr, base, 0);
}



__extension__
extern long long int __wcstoll_internal (__const __gwchar_t *
                                         __restrict __nptr,
                                         __gwchar_t **__restrict __endptr,
                                         int __base, int __group) ;


extern __inline intmax_t
wcstoimax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr,
           int base)
{
  return __wcstoll_internal (nptr, endptr, base, 0);
}




__extension__
extern unsigned long long int __wcstoull_internal (__const __gwchar_t *
                                                   __restrict __nptr,
                                                   __gwchar_t **
                                                   __restrict __endptr,
                                                   int __base,
                                                   int __group) ;


extern __inline uintmax_t
wcstoumax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr,
           int base)
{
  return __wcstoull_internal (nptr, endptr, base, 0);
}
# 10 "libvo/video_out.h" 2

# 1 "libvo/font_load.h" 1

typedef struct {
    unsigned char *bmp;
    unsigned char *pal;
    int w,h,c;
} raw_file;

typedef struct {
    char *name;
    char *fpath;
    int spacewidth;
    int charspace;
    int height;


    raw_file* pic_a[16];
    raw_file* pic_b[16];
    short font[65536];
    short start[65536];
    short width[65536];
} font_desc_t;

raw_file* load_raw(char *name,int verbose);
font_desc_t* read_font_desc(char* fname,float factor,int verbose);
# 12 "libvo/video_out.h" 2
# 1 "libvo/img_format.h" 1
# 56 "libvo/img_format.h"
typedef struct {
    void* data;
    int size;
    int id;
    int timestamp;
} vo_mpegpes_t;
# 13 "libvo/video_out.h" 2





typedef struct vo_info_s
{

        const char *name;

        const char *short_name;

        const char *author;

        const char *comment;
} vo_info_t;

typedef struct vo_functions_s
{
# 42 "libvo/video_out.h"
        uint32_t (*init)(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format);







        uint32_t (*query_format)(uint32_t format);





        const vo_info_t* (*get_info)(void);






        uint32_t (*draw_frame)(uint8_t *src[]);
# 73 "libvo/video_out.h"
        uint32_t (*draw_slice)(uint8_t *src[], int stride[], int w,int h, int x,int y);




        void (*draw_osd)(void);




        void (*flip_page)(void);





        void (*check_events)(void);




        void (*uninit)(void);

} vo_functions_t;

char *vo_format_name(int format);
int vo_init(void);


extern vo_functions_t* video_out_drivers[];


extern int vo_depthonscreen;
extern int vo_screenwidth;
extern int vo_screenheight;


extern int vo_dwidth;
extern int vo_dheight;
extern int vo_dbpp;

extern int vo_doublebuffering;
extern int vo_fsmode;

extern char *vo_subdevice;
# 40 "mplayer.c" 2
void* mDisplay;



# 1 "libvo/sub.h" 1
# 13 "libvo/sub.h"
# 1 "subreader.h" 1
# 14 "libvo/sub.h" 2

extern font_desc_t* vo_font;

extern unsigned char* vo_osd_text;

extern int vo_osd_progbar_type;
extern int vo_osd_progbar_value;

extern subtitle* vo_sub;
# 42 "libvo/sub.h"
static char * osd_names[]={
    "Seekbar",
    "Play",
    "Pause",
    "Stop",
    "Rewind",
    "Forward",
    "Clock",
    "Contrast",
    "Saturation",
    "Volume",
    "Brightness",
    "Hue"
};
static char * osd_names_short[] ={ "", "|>", "||", "[]", "<<" , ">>", "", "", "", "", "", ""};






extern void vo_draw_text(int dxs,int dys,void (*draw_alpha)(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride));
# 45 "mplayer.c" 2


# 1 "libao2/audio_out.h" 1
typedef struct ao_info_s
{

        const char *name;

        const char *short_name;

        const char *author;

        const char *comment;
} ao_info_t;

typedef struct ao_functions_s
{
        ao_info_t *info;
        int (*control)(int cmd,int arg);
        int (*init)(int rate,int channels,int format,int flags);
        void (*uninit)();
        void (*reset)();
        int (*get_space)();
        int (*play)(void* data,int len,int flags);
        int (*get_delay)();
        void (*pause)();
        void (*resume)();
} ao_functions_t;


extern char *audio_out_format_name(int format);


extern ao_functions_t* audio_out_drivers[];

extern int ao_samplerate;
extern int ao_channels;
extern int ao_format;
extern int ao_bps;
extern int ao_outburst;
extern int ao_buffersize;
extern char *ao_subdevice;
# 54 "libao2/audio_out.h"
typedef struct ao_control_vol_s {
        float left;
        float right;
} ao_control_vol_t;
# 48 "mplayer.c" 2

# 1 "libmpeg2/mpeg2.h" 1
# 24 "libmpeg2/mpeg2.h"
typedef struct mpeg2dec_s {



    struct picture_s * picture;

    uint32_t shift;
    int is_display_initialized;
    int is_sequence_needed;
    int drop_flag;
    int drop_frame;
    int in_slice;





    uint8_t * chunk_buffer;

    uint8_t * chunk_ptr;

    uint8_t code;


    int frame_rate_code;
} mpeg2dec_t ;


void mpeg2_init (void);

int mpeg2_decode_data (vo_functions_t *, uint8_t * data_start, uint8_t * data_end,int framedrop);
# 50 "mplayer.c" 2
# 1 "libmpeg2/mpeg2_internal.h" 1
# 48 "libmpeg2/mpeg2_internal.h"
typedef struct motion_s {
    uint8_t * ref[2][3];
    int pmv[2][2];
    int f_code[2];
} motion_t;

typedef struct vo_frame_s {
    uint8_t * base[3];
    void (* copy) (struct vo_frame_s * frame, uint8_t ** src);
    void* vo;




} vo_frame_t;

typedef struct picture_s {




    int16_t DCTblock[64];


    uint32_t bitstream_buf;
    int bitstream_bits;
    uint8_t * bitstream_ptr;




    motion_t b_motion;
    motion_t f_motion;


    int16_t dc_dct_pred[3];

    int quantizer_scale;
    int current_field;
    int v_offset;





    uint8_t intra_quantizer_matrix [64];
    uint8_t non_intra_quantizer_matrix [64];


    int coded_picture_width;
    int coded_picture_height;




    int picture_coding_type;




    int intra_dc_precision;

    int picture_structure;

    int frame_pred_frame_dct;


    int concealment_motion_vectors;

    int q_scale_type;

    int intra_vlc_format;

    int top_field_first;




    uint8_t * scan;

    struct vo_frame_s * current_frame;
    struct vo_frame_s * forward_reference_frame;
    struct vo_frame_s * backward_reference_frame;

    int second_field;

    int mpeg1;



    int aspect_ratio_information;
    int frame_rate_code;
    int progressive_sequence;
    int repeat_first_field;
    int progressive_frame;
    int bitrate;


    int display_picture_width;
    int display_picture_height;
    int pp_options;
    int repeat_count;

    struct vo_frame_s * display_frame;
    int slice;

} picture_t;

typedef struct mpeg2_config_s {

    uint32_t flags;
} mpeg2_config_t;



extern mpeg2_config_t config;




void header_state_init (picture_t * picture);
int header_process_picture_header (picture_t * picture, uint8_t * buffer);
int header_process_sequence_header (picture_t * picture, uint8_t * buffer);
int header_process_extension (picture_t * picture, uint8_t * buffer);


void idct_init (void);


void idct_block_copy_mlib (int16_t * block, uint8_t * dest, int stride);
void idct_block_add_mlib (int16_t * block, uint8_t * dest, int stride);


void idct_block_copy_mmxext (int16_t *block, uint8_t * dest, int stride);
void idct_block_add_mmxext (int16_t *block, uint8_t * dest, int stride);
void idct_block_copy_mmx (int16_t *block, uint8_t * dest, int stride);
void idct_block_add_mmx (int16_t *block, uint8_t * dest, int stride);
void idct_mmx_init (void);


void motion_comp_init (void);

typedef struct mc_functions_s
{
    void (* put [8]) (uint8_t *dst, uint8_t *, int32_t, int32_t);
    void (* avg [8]) (uint8_t *dst, uint8_t *, int32_t, int32_t);
} mc_functions_t;
# 204 "libmpeg2/mpeg2_internal.h"
extern mc_functions_t mc_functions_c;
extern mc_functions_t mc_functions_mmx;
extern mc_functions_t mc_functions_mmxext;
extern mc_functions_t mc_functions_3dnow;
extern mc_functions_t mc_functions_mlib;


int slice_process (picture_t *picture, uint8_t code, uint8_t * buffer);


void stats_header (uint8_t code, uint8_t * buffer);

void mpeg2_allocate_image_buffers(picture_t * picture);





extern int quant_store[36 +1][48 +1];
# 51 "mplayer.c" 2

# 1 "loader/loader.h" 1
# 11 "loader/loader.h"
# 1 "loader/wine/windef.h" 1
# 149 "loader/wine/windef.h"
typedef void VOID;
typedef int INT;
typedef unsigned int UINT;
typedef unsigned short WORD;
typedef unsigned long DWORD;
typedef unsigned long ULONG;
typedef unsigned char BYTE;
typedef long LONG;
typedef short SHORT;
typedef unsigned short USHORT;
typedef char CHAR;
typedef unsigned char UCHAR;

typedef LONG SCODE;


typedef unsigned short WCHAR;
typedef int WIN_BOOL;
typedef double DATE;
typedef double DOUBLE;
typedef long long LONGLONG;
typedef unsigned long long ULONGLONG;
# 182 "loader/wine/windef.h"
typedef UINT HANDLE;



typedef HANDLE *LPHANDLE;


typedef UINT WPARAM;
typedef LONG LPARAM;
typedef LONG HRESULT;
typedef LONG LRESULT;
typedef WORD ATOM;
typedef WORD CATCHBUF[9];
typedef WORD *LPCATCHBUF;
typedef HANDLE HHOOK;
typedef HANDLE HMONITOR;
typedef DWORD LCID;
typedef WORD LANGID;
typedef DWORD LCTYPE;
typedef float FLOAT;



typedef VOID *PVOID;
typedef const void *PCVOID;
typedef CHAR *PCHAR;
typedef UCHAR *PUCHAR;
typedef BYTE *PBYTE;
typedef WORD *PWORD;
typedef USHORT *PUSHORT;
typedef SHORT *PSHORT;
typedef ULONG *PULONG;
typedef LONG *PLONG;
typedef DWORD *PDWORD;

typedef CHAR *LPSTR;
typedef CHAR *PSTR;
typedef const CHAR *LPCSTR;
typedef const CHAR *PCSTR;
typedef WCHAR *LPWSTR;
typedef WCHAR *PWSTR;
typedef const WCHAR *LPCWSTR;
typedef const WCHAR *PCWSTR;
typedef BYTE *LPBYTE;
typedef WORD *LPWORD;
typedef DWORD *LPDWORD;
typedef LONG *LPLONG;
typedef VOID *LPVOID;
typedef const VOID *LPCVOID;
typedef INT *PINT;
typedef INT *LPINT;
typedef UINT *PUINT;
typedef UINT *LPUINT;
typedef FLOAT *PFLOAT;
typedef FLOAT *LPFLOAT;
typedef WIN_BOOL *PWIN_BOOL;
typedef WIN_BOOL *LPWIN_BOOL;






typedef void* SEGPTR;
# 262 "loader/wine/windef.h"
typedef HANDLE HACMDRIVERID; typedef HACMDRIVERID *PHACMDRIVERID; typedef HACMDRIVERID *LPHACMDRIVERID;
typedef HANDLE HACMDRIVER; typedef HACMDRIVER *PHACMDRIVER; typedef HACMDRIVER *LPHACMDRIVER;
typedef HANDLE HACMOBJ; typedef HACMOBJ *PHACMOBJ; typedef HACMOBJ *LPHACMOBJ;
typedef HANDLE HACMSTREAM; typedef HACMSTREAM *PHACMSTREAM; typedef HACMSTREAM *LPHACMSTREAM;
typedef HANDLE HMETAFILEPICT; typedef HMETAFILEPICT *PHMETAFILEPICT; typedef HMETAFILEPICT *LPHMETAFILEPICT;

typedef HANDLE HACCEL; typedef HACCEL *PHACCEL; typedef HACCEL *LPHACCEL;
typedef HANDLE HBITMAP; typedef HBITMAP *PHBITMAP; typedef HBITMAP *LPHBITMAP;
typedef HANDLE HBRUSH; typedef HBRUSH *PHBRUSH; typedef HBRUSH *LPHBRUSH;
typedef HANDLE HCOLORSPACE; typedef HCOLORSPACE *PHCOLORSPACE; typedef HCOLORSPACE *LPHCOLORSPACE;
typedef HANDLE HCURSOR; typedef HCURSOR *PHCURSOR; typedef HCURSOR *LPHCURSOR;
typedef HANDLE HDC; typedef HDC *PHDC; typedef HDC *LPHDC;
typedef HANDLE HDROP; typedef HDROP *PHDROP; typedef HDROP *LPHDROP;
typedef HANDLE HDRVR; typedef HDRVR *PHDRVR; typedef HDRVR *LPHDRVR;
typedef HANDLE HDWP; typedef HDWP *PHDWP; typedef HDWP *LPHDWP;
typedef HANDLE HENHMETAFILE; typedef HENHMETAFILE *PHENHMETAFILE; typedef HENHMETAFILE *LPHENHMETAFILE;
typedef HANDLE HFILE; typedef HFILE *PHFILE; typedef HFILE *LPHFILE;
typedef HANDLE HFONT; typedef HFONT *PHFONT; typedef HFONT *LPHFONT;
typedef HANDLE HICON; typedef HICON *PHICON; typedef HICON *LPHICON;
typedef HANDLE HINSTANCE; typedef HINSTANCE *PHINSTANCE; typedef HINSTANCE *LPHINSTANCE;
typedef HANDLE HKEY; typedef HKEY *PHKEY; typedef HKEY *LPHKEY;
typedef HANDLE HMENU; typedef HMENU *PHMENU; typedef HMENU *LPHMENU;
typedef HANDLE HMETAFILE; typedef HMETAFILE *PHMETAFILE; typedef HMETAFILE *LPHMETAFILE;
typedef HANDLE HMIDI; typedef HMIDI *PHMIDI; typedef HMIDI *LPHMIDI;
typedef HANDLE HMIDIIN; typedef HMIDIIN *PHMIDIIN; typedef HMIDIIN *LPHMIDIIN;
typedef HANDLE HMIDIOUT; typedef HMIDIOUT *PHMIDIOUT; typedef HMIDIOUT *LPHMIDIOUT;
typedef HANDLE HMIDISTRM; typedef HMIDISTRM *PHMIDISTRM; typedef HMIDISTRM *LPHMIDISTRM;
typedef HANDLE HMIXER; typedef HMIXER *PHMIXER; typedef HMIXER *LPHMIXER;
typedef HANDLE HMIXEROBJ; typedef HMIXEROBJ *PHMIXEROBJ; typedef HMIXEROBJ *LPHMIXEROBJ;
typedef HANDLE HMMIO; typedef HMMIO *PHMMIO; typedef HMMIO *LPHMMIO;
typedef HANDLE HPALETTE; typedef HPALETTE *PHPALETTE; typedef HPALETTE *LPHPALETTE;
typedef HANDLE HPEN; typedef HPEN *PHPEN; typedef HPEN *LPHPEN;
typedef HANDLE HQUEUE; typedef HQUEUE *PHQUEUE; typedef HQUEUE *LPHQUEUE;
typedef HANDLE HRGN; typedef HRGN *PHRGN; typedef HRGN *LPHRGN;
typedef HANDLE HRSRC; typedef HRSRC *PHRSRC; typedef HRSRC *LPHRSRC;
typedef HANDLE HTASK; typedef HTASK *PHTASK; typedef HTASK *LPHTASK;
typedef HANDLE HWAVE; typedef HWAVE *PHWAVE; typedef HWAVE *LPHWAVE;
typedef HANDLE HWAVEIN; typedef HWAVEIN *PHWAVEIN; typedef HWAVEIN *LPHWAVEIN;
typedef HANDLE HWAVEOUT; typedef HWAVEOUT *PHWAVEOUT; typedef HWAVEOUT *LPHWAVEOUT;
typedef HANDLE HWINSTA; typedef HWINSTA *PHWINSTA; typedef HWINSTA *LPHWINSTA;
typedef HANDLE HDESK; typedef HDESK *PHDESK; typedef HDESK *LPHDESK;
typedef HANDLE HWND; typedef HWND *PHWND; typedef HWND *LPHWND;
typedef HANDLE HKL; typedef HKL *PHKL; typedef HKL *LPHKL;
typedef HANDLE HIC; typedef HIC *PHIC; typedef HIC *LPHIC;
typedef HANDLE HRASCONN; typedef HRASCONN *PHRASCONN; typedef HRASCONN *LPHRASCONN;



typedef HINSTANCE HMODULE;
typedef HANDLE HGDIOBJ;
typedef HANDLE HGLOBAL;
typedef HANDLE HLOCAL;
typedef HANDLE GLOBALHANDLE;
typedef HANDLE LOCALHANDLE;




typedef WIN_BOOL __attribute__((__stdcall__)) (* DATEFMT_ENUMPROCA)(LPSTR);
typedef WIN_BOOL __attribute__((__stdcall__)) (* DATEFMT_ENUMPROCW)(LPWSTR);
typedef DATEFMT_ENUMPROCA DATEFMT_ENUMPROC;
typedef WIN_BOOL __attribute__((__stdcall__)) (*DLGPROC)(HWND,UINT,WPARAM,LPARAM);
typedef LRESULT __attribute__((__stdcall__)) (*DRIVERPROC)(DWORD,HDRVR,UINT,LPARAM,LPARAM);
typedef INT __attribute__((__stdcall__)) (*EDITWORDBREAKPROCA)(LPSTR,INT,INT,INT);
typedef INT __attribute__((__stdcall__)) (*EDITWORDBREAKPROCW)(LPWSTR,INT,INT,INT);
typedef EDITWORDBREAKPROCA EDITWORDBREAKPROC;
typedef LRESULT __attribute__((__stdcall__)) (*FARPROC)();
typedef INT __attribute__((__stdcall__)) (*PROC)();
typedef WIN_BOOL __attribute__((__stdcall__)) (*GRAYSTRINGPROC)(HDC,LPARAM,INT);
typedef LRESULT __attribute__((__stdcall__)) (*HOOKPROC)(INT,WPARAM,LPARAM);
typedef WIN_BOOL __attribute__((__stdcall__)) (*PROPENUMPROCA)(HWND,LPCSTR,HANDLE);
typedef WIN_BOOL __attribute__((__stdcall__)) (*PROPENUMPROCW)(HWND,LPCWSTR,HANDLE);
typedef PROPENUMPROCA PROPENUMPROC;
typedef WIN_BOOL __attribute__((__stdcall__)) (*PROPENUMPROCEXA)(HWND,LPCSTR,HANDLE,LPARAM);
typedef WIN_BOOL __attribute__((__stdcall__)) (*PROPENUMPROCEXW)(HWND,LPCWSTR,HANDLE,LPARAM);
typedef PROPENUMPROCEXA PROPENUMPROCEX;
typedef WIN_BOOL __attribute__((__stdcall__)) (* TIMEFMT_ENUMPROCA)(LPSTR);
typedef WIN_BOOL __attribute__((__stdcall__)) (* TIMEFMT_ENUMPROCW)(LPWSTR);
typedef TIMEFMT_ENUMPROCA TIMEFMT_ENUMPROC;
typedef VOID __attribute__((__stdcall__)) (*TIMERPROC)(HWND,UINT,UINT,DWORD);
typedef WIN_BOOL __attribute__((__stdcall__)) (*WNDENUMPROC)(HWND,LPARAM);
typedef LRESULT __attribute__((__stdcall__)) (*WNDPROC)(HWND,UINT,WPARAM,LPARAM);
# 358 "loader/wine/windef.h"
# 1 "loader/wine/windef.h" 1
# 359 "loader/wine/windef.h" 2



typedef short INT16;
typedef unsigned short UINT16;
typedef unsigned short WIN_BOOL16;

typedef UINT16 HANDLE16;
typedef HANDLE16 *LPHANDLE16;

typedef UINT16 WPARAM16;
typedef INT16 *LPINT16;
typedef UINT16 *LPUINT16;







typedef HANDLE16 HACMDRIVERID16; typedef HACMDRIVERID16 *PHACMDRIVERID16; typedef HACMDRIVERID16 *NPHACMDRIVERID16; typedef HACMDRIVERID16 *LPHACMDRIVERID16;
typedef HANDLE16 HACMDRIVER16; typedef HACMDRIVER16 *PHACMDRIVER16; typedef HACMDRIVER16 *NPHACMDRIVER16; typedef HACMDRIVER16 *LPHACMDRIVER16;
typedef HANDLE16 HACMOBJ16; typedef HACMOBJ16 *PHACMOBJ16; typedef HACMOBJ16 *NPHACMOBJ16; typedef HACMOBJ16 *LPHACMOBJ16;
typedef HANDLE16 HACMSTREAM16; typedef HACMSTREAM16 *PHACMSTREAM16; typedef HACMSTREAM16 *NPHACMSTREAM16; typedef HACMSTREAM16 *LPHACMSTREAM16;
typedef HANDLE16 HMETAFILEPICT16; typedef HMETAFILEPICT16 *PHMETAFILEPICT16; typedef HMETAFILEPICT16 *NPHMETAFILEPICT16; typedef HMETAFILEPICT16 *LPHMETAFILEPICT16;

typedef HANDLE16 HACCEL16; typedef HACCEL16 *PHACCEL16; typedef HACCEL16 *NPHACCEL16; typedef HACCEL16 *LPHACCEL16;
typedef HANDLE16 HBITMAP16; typedef HBITMAP16 *PHBITMAP16; typedef HBITMAP16 *NPHBITMAP16; typedef HBITMAP16 *LPHBITMAP16;
typedef HANDLE16 HBRUSH16; typedef HBRUSH16 *PHBRUSH16; typedef HBRUSH16 *NPHBRUSH16; typedef HBRUSH16 *LPHBRUSH16;
typedef HANDLE16 HCOLORSPACE16; typedef HCOLORSPACE16 *PHCOLORSPACE16; typedef HCOLORSPACE16 *NPHCOLORSPACE16; typedef HCOLORSPACE16 *LPHCOLORSPACE16;
typedef HANDLE16 HCURSOR16; typedef HCURSOR16 *PHCURSOR16; typedef HCURSOR16 *NPHCURSOR16; typedef HCURSOR16 *LPHCURSOR16;
typedef HANDLE16 HDC16; typedef HDC16 *PHDC16; typedef HDC16 *NPHDC16; typedef HDC16 *LPHDC16;
typedef HANDLE16 HDROP16; typedef HDROP16 *PHDROP16; typedef HDROP16 *NPHDROP16; typedef HDROP16 *LPHDROP16;
typedef HANDLE16 HDRVR16; typedef HDRVR16 *PHDRVR16; typedef HDRVR16 *NPHDRVR16; typedef HDRVR16 *LPHDRVR16;
typedef HANDLE16 HDWP16; typedef HDWP16 *PHDWP16; typedef HDWP16 *NPHDWP16; typedef HDWP16 *LPHDWP16;
typedef HANDLE16 HENHMETAFILE16; typedef HENHMETAFILE16 *PHENHMETAFILE16; typedef HENHMETAFILE16 *NPHENHMETAFILE16; typedef HENHMETAFILE16 *LPHENHMETAFILE16;
typedef HANDLE16 HFILE16; typedef HFILE16 *PHFILE16; typedef HFILE16 *NPHFILE16; typedef HFILE16 *LPHFILE16;
typedef HANDLE16 HFONT16; typedef HFONT16 *PHFONT16; typedef HFONT16 *NPHFONT16; typedef HFONT16 *LPHFONT16;
typedef HANDLE16 HICON16; typedef HICON16 *PHICON16; typedef HICON16 *NPHICON16; typedef HICON16 *LPHICON16;
typedef HANDLE16 HINSTANCE16; typedef HINSTANCE16 *PHINSTANCE16; typedef HINSTANCE16 *NPHINSTANCE16; typedef HINSTANCE16 *LPHINSTANCE16;
typedef HANDLE16 HKEY16; typedef HKEY16 *PHKEY16; typedef HKEY16 *NPHKEY16; typedef HKEY16 *LPHKEY16;
typedef HANDLE16 HMENU16; typedef HMENU16 *PHMENU16; typedef HMENU16 *NPHMENU16; typedef HMENU16 *LPHMENU16;
typedef HANDLE16 HMETAFILE16; typedef HMETAFILE16 *PHMETAFILE16; typedef HMETAFILE16 *NPHMETAFILE16; typedef HMETAFILE16 *LPHMETAFILE16;
typedef HANDLE16 HMIDI16; typedef HMIDI16 *PHMIDI16; typedef HMIDI16 *NPHMIDI16; typedef HMIDI16 *LPHMIDI16;
typedef HANDLE16 HMIDIIN16; typedef HMIDIIN16 *PHMIDIIN16; typedef HMIDIIN16 *NPHMIDIIN16; typedef HMIDIIN16 *LPHMIDIIN16;
typedef HANDLE16 HMIDIOUT16; typedef HMIDIOUT16 *PHMIDIOUT16; typedef HMIDIOUT16 *NPHMIDIOUT16; typedef HMIDIOUT16 *LPHMIDIOUT16;
typedef HANDLE16 HMIDISTRM16; typedef HMIDISTRM16 *PHMIDISTRM16; typedef HMIDISTRM16 *NPHMIDISTRM16; typedef HMIDISTRM16 *LPHMIDISTRM16;
typedef HANDLE16 HMIXER16; typedef HMIXER16 *PHMIXER16; typedef HMIXER16 *NPHMIXER16; typedef HMIXER16 *LPHMIXER16;
typedef HANDLE16 HMIXEROBJ16; typedef HMIXEROBJ16 *PHMIXEROBJ16; typedef HMIXEROBJ16 *NPHMIXEROBJ16; typedef HMIXEROBJ16 *LPHMIXEROBJ16;
typedef HANDLE16 HMMIO16; typedef HMMIO16 *PHMMIO16; typedef HMMIO16 *NPHMMIO16; typedef HMMIO16 *LPHMMIO16;
typedef HANDLE16 HPALETTE16; typedef HPALETTE16 *PHPALETTE16; typedef HPALETTE16 *NPHPALETTE16; typedef HPALETTE16 *LPHPALETTE16;
typedef HANDLE16 HPEN16; typedef HPEN16 *PHPEN16; typedef HPEN16 *NPHPEN16; typedef HPEN16 *LPHPEN16;
typedef HANDLE16 HQUEUE16; typedef HQUEUE16 *PHQUEUE16; typedef HQUEUE16 *NPHQUEUE16; typedef HQUEUE16 *LPHQUEUE16;
typedef HANDLE16 HRGN16; typedef HRGN16 *PHRGN16; typedef HRGN16 *NPHRGN16; typedef HRGN16 *LPHRGN16;
typedef HANDLE16 HRSRC16; typedef HRSRC16 *PHRSRC16; typedef HRSRC16 *NPHRSRC16; typedef HRSRC16 *LPHRSRC16;
typedef HANDLE16 HTASK16; typedef HTASK16 *PHTASK16; typedef HTASK16 *NPHTASK16; typedef HTASK16 *LPHTASK16;
typedef HANDLE16 HWAVE16; typedef HWAVE16 *PHWAVE16; typedef HWAVE16 *NPHWAVE16; typedef HWAVE16 *LPHWAVE16;
typedef HANDLE16 HWAVEIN16; typedef HWAVEIN16 *PHWAVEIN16; typedef HWAVEIN16 *NPHWAVEIN16; typedef HWAVEIN16 *LPHWAVEIN16;
typedef HANDLE16 HWAVEOUT16; typedef HWAVEOUT16 *PHWAVEOUT16; typedef HWAVEOUT16 *NPHWAVEOUT16; typedef HWAVEOUT16 *LPHWAVEOUT16;
typedef HANDLE16 HWINSTA16; typedef HWINSTA16 *PHWINSTA16; typedef HWINSTA16 *NPHWINSTA16; typedef HWINSTA16 *LPHWINSTA16;
typedef HANDLE16 HDESK16; typedef HDESK16 *PHDESK16; typedef HDESK16 *NPHDESK16; typedef HDESK16 *LPHDESK16;
typedef HANDLE16 HWND16; typedef HWND16 *PHWND16; typedef HWND16 *NPHWND16; typedef HWND16 *LPHWND16;
typedef HANDLE16 HKL16; typedef HKL16 *PHKL16; typedef HKL16 *NPHKL16; typedef HKL16 *LPHKL16;
typedef HANDLE16 HIC16; typedef HIC16 *PHIC16; typedef HIC16 *NPHIC16; typedef HIC16 *LPHIC16;
typedef HANDLE16 HRASCONN16; typedef HRASCONN16 *PHRASCONN16; typedef HRASCONN16 *NPHRASCONN16; typedef HRASCONN16 *LPHRASCONN16;


typedef HINSTANCE16 HMODULE16;
typedef HANDLE16 HGDIOBJ16;
typedef HANDLE16 HGLOBAL16;
typedef HANDLE16 HLOCAL16;


typedef struct
{
    INT16 cx;
    INT16 cy;
} SIZE16, *PSIZE16, *LPSIZE16;



typedef struct
{
    INT16 x;
    INT16 y;
} POINT16, *PPOINT16, *LPPOINT16;



typedef struct
{
    INT16 left;
    INT16 top;
    INT16 right;
    INT16 bottom;
} RECT16, *LPRECT16;



typedef LRESULT __attribute__((__stdcall__)) (*DRIVERPROC16)(DWORD,HDRVR16,UINT16,LPARAM,LPARAM);
typedef WIN_BOOL16 __attribute__((__stdcall__)) (*DLGPROC16)(HWND16,UINT16,WPARAM16,LPARAM);
typedef INT16 __attribute__((__stdcall__)) (*EDITWORDBREAKPROC16)(LPSTR,INT16,INT16,INT16);
typedef LRESULT __attribute__((__stdcall__)) (*FARPROC16)();
typedef INT16 __attribute__((__stdcall__)) (*PROC16)();
typedef WIN_BOOL16 __attribute__((__stdcall__)) (*GRAYSTRINGPROC16)(HDC16,LPARAM,INT16);
typedef LRESULT __attribute__((__stdcall__)) (*HOOKPROC16)(INT16,WPARAM16,LPARAM);
typedef WIN_BOOL16 __attribute__((__stdcall__)) (*PROPENUMPROC16)(HWND16,SEGPTR,HANDLE16);
typedef VOID __attribute__((__stdcall__)) (*TIMERPROC16)(HWND16,UINT16,UINT16,DWORD);
typedef LRESULT __attribute__((__stdcall__)) (*WNDENUMPROC16)(HWND16,LPARAM);
typedef LRESULT __attribute__((__stdcall__)) (*WNDPROC16)(HWND16,UINT16,WPARAM16,LPARAM);
# 578 "loader/wine/windef.h"
typedef struct tagSIZE
{
    INT cx;
    INT cy;
} SIZE, *PSIZE, *LPSIZE;


typedef SIZE SIZEL, *PSIZEL, *LPSIZEL;







typedef struct tagPOINT
{
    LONG x;
    LONG y;
} POINT, *PPOINT, *LPPOINT;

typedef struct _POINTL
{
    LONG x;
    LONG y;
} POINTL;
# 614 "loader/wine/windef.h"
typedef struct tagPOINTS
{
        SHORT x;
        SHORT y;
} POINTS, *PPOINTS, *LPPOINTS;






typedef struct tagRECT
{
    short left;
    short top;
    short right;
    short bottom;
} RECT, *PRECT, *LPRECT;
typedef const RECT *LPCRECT;


typedef struct tagRECTL
{
    LONG left;
    LONG top;
    LONG right;
    LONG bottom;
} RECTL, *PRECTL, *LPRECTL;

typedef const RECTL *LPCRECTL;
# 12 "loader/loader.h" 2
# 1 "loader/wine/driver.h" 1







# 1 "loader/wine/windef.h" 1
# 9 "loader/wine/driver.h" 2
# 58 "loader/wine/driver.h"
typedef struct {
    DWORD dwDCISize;
    LPCSTR lpszDCISectionName;
    LPCSTR lpszDCIAliasName;
} DRVCONFIGINFO16, *LPDRVCONFIGINFO16;

typedef struct {
    DWORD dwDCISize;
    LPCWSTR lpszDCISectionName;
    LPCWSTR lpszDCIAliasName;
} DRVCONFIGINFO, *LPDRVCONFIGINFO;






typedef struct
{
    UINT16 length;
    HDRVR16 hDriver;
    HINSTANCE16 hModule;
    CHAR szAliasName[128];
} DRIVERINFOSTRUCT16, *LPDRIVERINFOSTRUCT16;

LRESULT __attribute__((__stdcall__)) DefDriverProc16(DWORD dwDevID, HDRVR16 hDriv, UINT16 wMsg,
                               LPARAM dwParam1, LPARAM dwParam2);
LRESULT __attribute__((__stdcall__)) DefDriverProc(DWORD dwDriverIdentifier, HDRVR hdrvr,
                               UINT Msg, LPARAM lParam1, LPARAM lParam2);
HDRVR16 __attribute__((__stdcall__)) OpenDriver16(LPCSTR szDriverName, LPCSTR szSectionName,
                            LPARAM lParam2);
HDRVR __attribute__((__stdcall__)) OpenDriverA(LPCSTR szDriverName, LPCSTR szSectionName,
                             LPARAM lParam2);
HDRVR __attribute__((__stdcall__)) OpenDriverW(LPCWSTR szDriverName, LPCWSTR szSectionName,
                             LPARAM lParam2);

LRESULT __attribute__((__stdcall__)) CloseDriver16(HDRVR16 hDriver, LPARAM lParam1, LPARAM lParam2);
LRESULT __attribute__((__stdcall__)) CloseDriver(HDRVR hDriver, LPARAM lParam1, LPARAM lParam2);
LRESULT __attribute__((__stdcall__)) SendDriverMessage16( HDRVR16 hDriver, UINT16 message,
                                    LPARAM lParam1, LPARAM lParam2 );
LRESULT __attribute__((__stdcall__)) SendDriverMessage( HDRVR hDriver, UINT message,
                                    LPARAM lParam1, LPARAM lParam2 );
HMODULE16 __attribute__((__stdcall__)) GetDriverModuleHandle16(HDRVR16 hDriver);
HMODULE __attribute__((__stdcall__)) GetDriverModuleHandle(HDRVR hDriver);

DWORD __attribute__((__stdcall__)) GetDriverFlags( HDRVR hDriver );
# 13 "loader/loader.h" 2
# 1 "loader/wine/mmreg.h" 1
# 15 "loader/wine/mmreg.h"
# 1 "loader/wine/windef.h" 1
# 16 "loader/wine/mmreg.h" 2




typedef struct _WAVEFILTER {
  DWORD cbStruct;
  DWORD dwFilterTag;
  DWORD fdwFilter;
  DWORD dwReserved[5];
} WAVEFILTER, *PWAVEFILTER, *NPWAVEFILTER, *LPWAVEFILTER;





typedef struct _WAVEFILTER_VOLUME {
   WAVEFILTER wfltr;
   DWORD dwVolume;
} VOLUMEWAVEFILTER, *PVOLUMEWAVEFILTER, *NPVOLUMEWAVEFILTER, *LPVOLUMEWAVEFILTER;





typedef struct WAVEFILTER_ECHO {
   WAVEFILTER wfltr;
   DWORD dwVolume;
   DWORD dwDelay;
} ECHOWAVEFILTER, *PECHOWAVEFILTER, *NPECHOWAVEFILTER, *LPECHOWAVEFILTER;




typedef struct _WAVEFORMATEX {
  WORD wFormatTag;
  WORD nChannels;
  DWORD nSamplesPerSec;
  DWORD nAvgBytesPerSec;
  WORD nBlockAlign;
  WORD wBitsPerSample;
  WORD cbSize;
} WAVEFORMATEX, *PWAVEFORMATEX, *NPWAVEFORMATEX, *LPWAVEFORMATEX;




typedef struct
{
    unsigned long f1;
    unsigned short f2;
    unsigned short f3;
    unsigned char f4[8];
} GUID;




typedef struct {
    WAVEFORMATEX Format;
    union {
        WORD wValidBitsPerSample;
        WORD wSamplesPerBlock;
        WORD wReserved;
    } Samples;
    DWORD dwChannelMask;

    GUID SubFormat;
} WAVEFORMATEXTENSIBLE, *PWAVEFORMATEXTENSIBLE;
# 14 "loader/loader.h" 2
# 1 "loader/wine/vfw.h" 1
# 9 "loader/wine/vfw.h"
typedef struct
{
    short bfType;
    long bfSize;
    short bfReserved1;
    short bfReserved2;
    long bfOffBits;
} BITMAPFILEHEADER;



typedef struct
{
    long biSize;
    long biWidth;
    long biHeight;
    short biPlanes;
    short biBitCount;
    long biCompression;
    long biSizeImage;
    long biXPelsPerMeter;
    long biYPelsPerMeter;
    long biClrUsed;
    long biClrImportant;
} BITMAPINFOHEADER, *PBITMAPINFOHEADER, *LPBITMAPINFOHEADER;
typedef struct {
        BITMAPINFOHEADER bmiHeader;
        int bmiColors[1];
} BITMAPINFO, *LPBITMAPINFO;
# 66 "loader/wine/vfw.h"
typedef struct tagWINE_HIC {
        long magic;
        HANDLE curthread;
        long type;
        long handler;
        HDRVR hdrv;

        long private;



        DRIVERPROC driverproc;
        long x1;
        short x2;
        long x3;

} WINE_HIC;
# 183 "loader/wine/vfw.h"
typedef struct {
        long dwSize;
        long fccType;
        long fccHandler;
        long dwVersion;
        long dwFlags;
        LRESULT dwError;
        void* pV1Reserved;
        void* pV2Reserved;
        long dnDevNode;

} ICOPEN,*LPICOPEN;



typedef struct {
    long dwFlags;
    LPBITMAPINFOHEADER lpbiOutput;
    void* lpOutput;
    LPBITMAPINFOHEADER lpbiInput;
    void* lpInput;
    long* lpckid;
    long* lpdwFlags;
    long lFrameNum;
    long dwFrameSize;
    long dwQuality;
    LPBITMAPINFOHEADER lpbiPrev;
    void* lpPrev;
} ICCOMPRESS;

long ICCompress(
        HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiOutput,void* lpData,
        LPBITMAPINFOHEADER lpbiInput,void* lpBits,long* lpckid,
        long* lpdwFlags,long lFrameNum,long dwFrameSize,long dwQuality,
        LPBITMAPINFOHEADER lpbiPrev,void* lpPrev
);
# 265 "loader/wine/vfw.h"
typedef struct {
    long dwFlags;
    LPBITMAPINFOHEADER lpbiOutput;
    LPARAM lOutput;
    LPBITMAPINFOHEADER lpbiInput;
    LPARAM lInput;
    long lStartFrame;
    long lFrameCount;
    long lQuality;
    long lDataRate;
    long lKeyRate;
    long dwRate;
    long dwScale;
    long dwOverheadPerFrame;
    long dwReserved2;
    long __attribute__((__stdcall__)) (*GetData)(LPARAM lInput,long lFrame,void* lpBits,long len);
    long __attribute__((__stdcall__)) (*PutData)(LPARAM lOutput,long lFrame,void* lpBits,long len);
} ICCOMPRESSFRAMES;
# 297 "loader/wine/vfw.h"
typedef struct {
        long dwSize;
        long fccType;
        long fccHandler;
        long dwFlags;
        long dwVersion;
        long dwVersionICM;



        WCHAR szName[16];
        WCHAR szDescription[128];
        WCHAR szDriver[128];

} ICINFO;
# 350 "loader/wine/vfw.h"
typedef struct {
    long dwFlags;
    LPBITMAPINFOHEADER lpbiInput;
    void* lpInput;
    LPBITMAPINFOHEADER lpbiOutput;
    void* lpOutput;
    long ckid;
} ICDECOMPRESS;

typedef struct {
    long dwFlags;
    LPBITMAPINFOHEADER lpbiSrc;
    void* lpSrc;
    LPBITMAPINFOHEADER lpbiDst;
    void* lpDst;


    INT xDst;
    INT yDst;
    INT dxDst;
    INT dyDst;

    INT xSrc;
    INT ySrc;
    INT dxSrc;
    INT dySrc;
} ICDECOMPRESSEX;


long ICDecompress(HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiFormat,void* lpData,LPBITMAPINFOHEADER lpbi,void* lpBits);
long ICDecompressEx(HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiFormat,void* lpData,LPBITMAPINFOHEADER lpbi,void* lpBits);
long ICUniversalEx(HIC hic,int command,LPBITMAPINFOHEADER lpbiFormat,LPBITMAPINFOHEADER lpbi);
# 437 "loader/wine/vfw.h"
WIN_BOOL ICInfo(long fccType, long fccHandler, ICINFO * lpicinfo);
LRESULT ICGetInfo(HIC hic,ICINFO *picinfo, long cb);
HIC ICOpen(long fccType, long fccHandler, UINT wMode);
HIC ICOpenFunction(long fccType, long fccHandler, unsigned int wMode, void* lpfnHandler);

LRESULT ICClose(HIC hic);
LRESULT ICSendMessage(HIC hic, unsigned int msg, long dw1, long dw2);
HIC ICLocate(long fccType, long fccHandler, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut, short wFlags);

int ICDoSomething(void);

long ICDrawBegin(
        HIC hic,
        long dwFlags,
        HPALETTE hpal,
        HWND hwnd,
        HDC hdc,
        INT xDst,
        INT yDst,
        INT dxDst,
        INT dyDst,
        LPBITMAPINFOHEADER lpbi,
        INT xSrc,
        INT ySrc,
        INT dxSrc,
        INT dySrc,
        long dwRate,
        long dwScale
);


typedef struct {
        long dwFlags;
        HPALETTE hpal;
        HWND hwnd;
        HDC hdc;
        INT xDst;
        INT yDst;
        INT dxDst;
        INT dyDst;
        LPBITMAPINFOHEADER lpbi;
        INT xSrc;
        INT ySrc;
        INT dxSrc;
        INT dySrc;
        long dwRate;
        long dwScale;
} ICDRAWBEGIN;







typedef struct {
        long dwFlags;
        void* lpFormat;
        void* lpData;
        long cbData;
        long lTime;
} ICDRAW;

long ICDraw(HIC hic,long dwFlags,void* lpFormat,void* lpData,long cbData,long lTime);




typedef struct _AVISTREAMINFOA {
    long fccType;
    long fccHandler;
    long dwFlags;
    long dwCaps;
    short wPriority;
    short wLanguage;
    long dwScale;
    long dwRate;
    long dwStart;
    long dwLength;
    long dwInitialFrames;
    long dwSuggestedBufferSize;
    long dwQuality;
    long dwSampleSize;
    RECT rcFrame;
    long dwEditCount;
    long dwFormatChangeCount;
    char szName[64];
} AVISTREAMINFOA, * LPAVISTREAMINFOA, *PAVISTREAMINFOA;

typedef struct _AVISTREAMINFOW {
    long fccType;
    long fccHandler;
    long dwFlags;
    long dwCaps;
    short wPriority;
    short wLanguage;
    long dwScale;
    long dwRate;
    long dwStart;
    long dwLength;
    long dwInitialFrames;
    long dwSuggestedBufferSize;
    long dwQuality;
    long dwSampleSize;
    RECT rcFrame;
    long dwEditCount;
    long dwFormatChangeCount;
    short szName[64];
} AVISTREAMINFOW, * LPAVISTREAMINFOW, *PAVISTREAMINFOW;
typedef AVISTREAMINFOA AVISTREAMINFO;
typedef LPAVISTREAMINFOA LPAVISTREAMINFO;
typedef PAVISTREAMINFOA PAVISTREAMINFO;
# 566 "loader/wine/vfw.h"
typedef struct _AVIFILEINFOW {
    long dwMaxBytesPerSec;
    long dwFlags;
    long dwCaps;
    long dwStreams;
    long dwSuggestedBufferSize;
    long dwWidth;
    long dwHeight;
    long dwScale;
    long dwRate;
    long dwLength;
    long dwEditCount;
    short szFileType[64];
} AVIFILEINFOW, * LPAVIFILEINFOW, *PAVIFILEINFOW;

typedef struct _AVIFILEINFOA {
    long dwMaxBytesPerSec;
    long dwFlags;
    long dwCaps;
    long dwStreams;
    long dwSuggestedBufferSize;
    long dwWidth;
    long dwHeight;
    long dwScale;
    long dwRate;
    long dwLength;
    long dwEditCount;
    char szFileType[64];
} AVIFILEINFOA, * LPAVIFILEINFOA, *PAVIFILEINFOA;

typedef AVIFILEINFOA AVIFILEINFO;
typedef PAVIFILEINFOA PAVIFILEINFO;
typedef LPAVIFILEINFOA LPAVIFILEINFO;







typedef struct {
    long fccType;
    long fccHandler;
    long dwKeyFrameEvery;
    long dwQuality;
    long dwBytesPerSecond;
    long dwFlags;
    void* lpFormat;
    long cbFormat;
    void* lpParms;
    long cbParms;
    long dwInterleaveEvery;
} AVICOMPRESSOPTIONS, *LPAVICOMPRESSOPTIONS,*PAVICOMPRESSOPTIONS;



typedef struct {
    long cbSize;

    long dwFlags;
    HIC hic;
    long fccType;
    long fccHandler;

    LPBITMAPINFO lpbiIn;
    LPBITMAPINFO lpbiOut;
    void* lpBitsOut;
    void* lpBitsPrev;
    long lFrame;
    long lKey;
    long lDataRate;
    long lQ;
    long lKeyCount;
    void* lpState;
    long cbState;
} COMPVARS, *PCOMPVARS;
# 15 "loader/loader.h" 2
# 1 "loader/wine/msacm.h" 1







# 1 "loader/wine/windef.h" 1
# 9 "loader/wine/msacm.h" 2
# 1 "loader/wine/driver.h" 1
# 10 "loader/wine/msacm.h" 2
# 1 "loader/wine/mmreg.h" 1
# 11 "loader/wine/msacm.h" 2







typedef UINT16 MMVERSION16;
typedef UINT MMVERSION;
typedef UINT16 MCIDEVICEID16;
typedef UINT MCIDEVICEID;
typedef UINT16 MMRESULT16;
typedef UINT MMRESULT;
typedef DWORD FOURCC;
# 207 "loader/wine/msacm.h"
typedef WIN_BOOL __attribute__((__stdcall__)) ( *ACMDRIVERENUMCB)(
  HACMDRIVERID hadid, DWORD dwInstance, DWORD fdwSupport
);

typedef WIN_BOOL16 __attribute__((__stdcall__)) ( *ACMDRIVERENUMCB16)(
  HACMDRIVERID16 hadid, DWORD dwInstance, DWORD fdwSupport
);

typedef UINT __attribute__((__stdcall__)) ( *ACMFILTERCHOOSEHOOKPROCA)(
  HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
);

typedef UINT __attribute__((__stdcall__)) ( *ACMFILTERCHOOSEHOOKPROCW)(
  HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
);

typedef UINT __attribute__((__stdcall__)) ( *ACMFILTERCHOOSEHOOKPROC16)(
  HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
);

typedef UINT __attribute__((__stdcall__)) ( *ACMFORMATCHOOSEHOOKPROCA)(
  HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
);

typedef UINT __attribute__((__stdcall__)) ( *ACMFORMATCHOOSEHOOKPROCW)(
  HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
);

typedef UINT16 __attribute__((__stdcall__)) ( *ACMFORMATCHOOSEHOOKPROC16)(
  HWND16 hwnd, UINT16 uMsg, WPARAM16 wParam, LPARAM lParam
);





typedef struct _ACMDRIVERDETAILSA
{
  DWORD cbStruct;

  FOURCC fccType;
  FOURCC fccComp;

  WORD wMid;
  WORD wPid;

  DWORD vdwACM;
  DWORD vdwDriver;

  DWORD fdwSupport;
  DWORD cFormatTags;
  DWORD cFilterTags;

  HICON hicon;

  CHAR szShortName[32];
  CHAR szLongName[128];
  CHAR szCopyright[80];
  CHAR szLicensing[128];
  CHAR szFeatures[512];
} ACMDRIVERDETAILSA, *PACMDRIVERDETAILSA;

typedef struct _ACMDRIVERDETAILSW
{
  DWORD cbStruct;

  FOURCC fccType;
  FOURCC fccComp;

  WORD wMid;
  WORD wPid;

  DWORD vdwACM;
  DWORD vdwDriver;

  DWORD fdwSupport;
  DWORD cFormatTags;
  DWORD cFilterTags;

  HICON hicon;

  WCHAR szShortName[32];
  WCHAR szLongName[128];
  WCHAR szCopyright[80];
  WCHAR szLicensing[128];
  WCHAR szFeatures[512];
} ACMDRIVERDETAILSW, *PACMDRIVERDETAILSW;

typedef struct _ACMDRIVERDETAILS16
{
  DWORD cbStruct;

  FOURCC fccType;
  FOURCC fccComp;

  WORD wMid;
  WORD wPid;

  DWORD vdwACM;
  DWORD vdwDriver;

  DWORD fdwSupport;
  DWORD cFormatTags;
  DWORD cFilterTags;

  HICON16 hicon;

  CHAR szShortName[32];
  CHAR szLongName[128];
  CHAR szCopyright[80];
  CHAR szLicensing[128];
  CHAR szFeatures[512];
} ACMDRIVERDETAILS16, *NPACMDRIVERDETAILS16, *LPACMDRIVERDETAILS16;

typedef struct _ACMFILTERCHOOSEA
{
  DWORD cbStruct;
  DWORD fdwStyle;

  HWND hwndOwner;

  PWAVEFILTER pwfltr;
  DWORD cbwfltr;

  LPCSTR pszTitle;

  CHAR szFilterTag[48];
  CHAR szFilter[128];
  LPSTR pszName;
  DWORD cchName;

  DWORD fdwEnum;
  PWAVEFILTER pwfltrEnum;

  HINSTANCE hInstance;
  LPCSTR pszTemplateName;
  LPARAM lCustData;
  ACMFILTERCHOOSEHOOKPROCA pfnHook;
} ACMFILTERCHOOSEA, *PACMFILTERCHOOSEA;

typedef struct _ACMFILTERCHOOSEW
{
  DWORD cbStruct;
  DWORD fdwStyle;

  HWND hwndOwner;

  PWAVEFILTER pwfltr;
  DWORD cbwfltr;

  LPCWSTR pszTitle;

  WCHAR szFilterTag[48];
  WCHAR szFilter[128];
  LPWSTR pszName;
  DWORD cchName;

  DWORD fdwEnum;
  PWAVEFILTER pwfltrEnum;

  HINSTANCE hInstance;
  LPCWSTR pszTemplateName;
  LPARAM lCustData;
  ACMFILTERCHOOSEHOOKPROCW pfnHook;
} ACMFILTERCHOOSEW, *PACMFILTERCHOOSEW;

typedef struct _ACMFILTERCHOOSE16
{
  DWORD cbStruct;
  DWORD fdwStyle;

  HWND16 hwndOwner;

  LPWAVEFILTER pwfltr;
  DWORD cbwfltr;

  LPCSTR pszTitle;

  char szFilterTag[48];
  char szFilter[128];
  LPSTR pszName;
  DWORD cchName;

  DWORD fdwEnum;
  LPWAVEFILTER pwfltrEnum;

  HINSTANCE16 hInstance;
  LPCSTR pszTemplateName;
  LPARAM lCustData;
  ACMFILTERCHOOSEHOOKPROC16 pfnHook;
} ACMFILTERCHOOSE16, *NPACMFILTERCHOOSE16, *LPACMFILTERCHOOSE16;

typedef struct _ACMFILTERDETAILSA
{
  DWORD cbStruct;
  DWORD dwFilterIndex;
  DWORD dwFilterTag;
  DWORD fdwSupport;
  PWAVEFILTER pwfltr;
  DWORD cbwfltr;
  CHAR szFilter[128];
} ACMFILTERDETAILSA, *PACMFILTERDETAILSA;

typedef struct _ACMFILTERDETAILSW
{
  DWORD cbStruct;
  DWORD dwFilterIndex;
  DWORD dwFilterTag;
  DWORD fdwSupport;
  PWAVEFILTER pwfltr;
  DWORD cbwfltr;
  WCHAR szFilter[128];
} ACMFILTERDETAILSW, *PACMFILTERDETAILSW;

typedef struct _ACMFILTERDETAILS16
{
  DWORD cbStruct;
  DWORD dwFilterIndex;
  DWORD dwFilterTag;
  DWORD fdwSupport;
  LPWAVEFILTER pwfltr;
  DWORD cbwfltr;
  CHAR szFilter[128];
} ACMFILTERDETAILS16, *NPACMFILTERDETAILS16, *LPACMFILTERDETAILS16;

typedef struct _ACMFILTERTAGDETAILSA
{
  DWORD cbStruct;
  DWORD dwFilterTagIndex;
  DWORD dwFilterTag;
  DWORD cbFilterSize;
  DWORD fdwSupport;
  DWORD cStandardFilters;
  CHAR szFilterTag[48];
} ACMFILTERTAGDETAILSA, *PACMFILTERTAGDETAILSA;

typedef struct _ACMFILTERTAGDETAILSW
{
  DWORD cbStruct;
  DWORD dwFilterTagIndex;
  DWORD dwFilterTag;
  DWORD cbFilterSize;
  DWORD fdwSupport;
  DWORD cStandardFilters;
  WCHAR szFilterTag[48];
} ACMFILTERTAGDETAILSW, *PACMFILTERTAGDETAILSW;

typedef struct _ACMFILTERTAGDETAILS16
{
  DWORD cbStruct;
  DWORD dwFilterTagIndex;
  DWORD dwFilterTag;
  DWORD cbFilterSize;
  DWORD fdwSupport;
  DWORD cStandardFilters;
  CHAR szFilterTag[48];
} ACMFILTERTAGDETAILS16, *NPACMFILTERTAGDETAILS16, *LPACMFILTERTAGDETAILS16;

typedef struct _ACMFORMATCHOOSEA
{
  DWORD cbStruct;
  DWORD fdwStyle;

  HWND hwndOwner;

  PWAVEFORMATEX pwfx;
  DWORD cbwfx;
  LPCSTR pszTitle;

  CHAR szFormatTag[48];
  CHAR szFormat[128];

  LPSTR pszName;
  DWORD cchName;

  DWORD fdwEnum;
  PWAVEFORMATEX pwfxEnum;

  HINSTANCE hInstance;
  LPCSTR pszTemplateName;
  LPARAM lCustData;
  ACMFORMATCHOOSEHOOKPROCA pfnHook;
} ACMFORMATCHOOSEA, *PACMFORMATCHOOSEA;

typedef struct _ACMFORMATCHOOSEW
{
  DWORD cbStruct;
  DWORD fdwStyle;

  HWND hwndOwner;

  PWAVEFORMATEX pwfx;
  DWORD cbwfx;
  LPCWSTR pszTitle;

  WCHAR szFormatTag[48];
  WCHAR szFormat[128];

  LPWSTR pszName;
  DWORD cchName;

  DWORD fdwEnum;
  LPWAVEFORMATEX pwfxEnum;

  HINSTANCE hInstance;
  LPCWSTR pszTemplateName;
  LPARAM lCustData;
  ACMFORMATCHOOSEHOOKPROCW pfnHook;
} ACMFORMATCHOOSEW, *PACMFORMATCHOOSEW;

typedef struct _ACMFORMATCHOOSE16
{
  DWORD cbStruct;
  DWORD fdwStyle;

  HWND16 hwndOwner;

  LPWAVEFORMATEX pwfx;
  DWORD cbwfx;
  LPCSTR pszTitle;

  CHAR szFormatTag[48];
  CHAR szFormat[128];

  LPSTR pszName;
  DWORD cchName;

  DWORD fdwEnum;
  LPWAVEFORMATEX pwfxEnum;

  HINSTANCE16 hInstance;
  LPCSTR pszTemplateName;
  LPARAM lCustData;
  ACMFORMATCHOOSEHOOKPROC16 pfnHook;
} ACMFORMATCHOOSE16, *NPACMFORMATCHOOSE16, *LPACMFORMATCHOOSE16;

typedef struct _ACMFORMATDETAILSA
{
  DWORD cbStruct;
  DWORD dwFormatIndex;
  DWORD dwFormatTag;
  DWORD fdwSupport;
  PWAVEFORMATEX pwfx;
  DWORD cbwfx;
  CHAR szFormat[128];
} ACMFORMATDETAILSA, *PACMFORMATDETAILSA;

typedef struct _ACMFORMATDETAILSW
{
    DWORD cbStruct;
    DWORD dwFormatIndex;
    DWORD dwFormatTag;
    DWORD fdwSupport;
    PWAVEFORMATEX pwfx;
    DWORD cbwfx;
    WCHAR szFormat[128];
} ACMFORMATDETAILSW, *PACMFORMATDETAILSW;

typedef struct _ACMFORMATDETAILS16
{
    DWORD cbStruct;
    DWORD dwFormatIndex;
    DWORD dwFormatTag;
    DWORD fdwSupport;
    LPWAVEFORMATEX pwfx;
    DWORD cbwfx;
    CHAR szFormat[128];
} ACMFORMATDETAILS16, *NPACMFORMATDETAILS16, *LPACMFORMATDETAILS16;

typedef struct _ACMFORMATTAGDETAILSA
{
  DWORD cbStruct;
  DWORD dwFormatTagIndex;
  DWORD dwFormatTag;
  DWORD cbFormatSize;
  DWORD fdwSupport;
  DWORD cStandardFormats;
  CHAR szFormatTag[48];
} ACMFORMATTAGDETAILSA, *PACMFORMATTAGDETAILSA;

typedef struct _ACMFORMATTAGDETAILSW
{
  DWORD cbStruct;
  DWORD dwFormatTagIndex;
  DWORD dwFormatTag;
  DWORD cbFormatSize;
  DWORD fdwSupport;
  DWORD cStandardFormats;
  WCHAR szFormatTag[48];
} ACMFORMATTAGDETAILSW, *PACMFORMATTAGDETAILSW;

typedef struct _ACMFORMATTAGDETAILS16
{
  DWORD cbStruct;
  DWORD dwFormatTagIndex;
  DWORD dwFormatTag;
  DWORD cbFormatSize;
  DWORD fdwSupport;
  DWORD cStandardFormats;
  CHAR szFormatTag[48];
} ACMFORMATTAGDETAILS16, *NPACMFORMATTAGDETAILS16, *LPACMFORMATTAGDETAILS16;

typedef struct _ACMSTREAMHEADER
{
  DWORD cbStruct;
  DWORD fdwStatus;
  DWORD dwUser;
  LPBYTE pbSrc;
  DWORD cbSrcLength;
  DWORD cbSrcLengthUsed;
  DWORD dwSrcUser;
  LPBYTE pbDst;
  DWORD cbDstLength;
  DWORD cbDstLengthUsed;
  DWORD dwDstUser;
  DWORD dwReservedDriver[10];
} ACMSTREAMHEADER16, *NPACMSTREAMHEADER16, *LPACMSTREAMHEADER16,
  ACMSTREAMHEADER, *PACMSTREAMHEADER;





typedef WIN_BOOL __attribute__((__stdcall__)) ( *ACMFILTERENUMCBA)(
  HACMDRIVERID hadid, PACMFILTERDETAILSA pafd,
  DWORD dwInstance, DWORD fdwSupport
);

typedef WIN_BOOL __attribute__((__stdcall__)) ( *ACMFILTERENUMCBW)(
  HACMDRIVERID hadid, PACMFILTERDETAILSW pafd,
  DWORD dwInstance, DWORD fdwSupport
);

typedef WIN_BOOL16 __attribute__((__stdcall__)) ( *ACMFILTERENUMCB16)(
 HACMDRIVERID16 hadid, LPACMFILTERDETAILS16 pafd,
 DWORD dwInstance, DWORD fdwSupport
);

typedef WIN_BOOL __attribute__((__stdcall__)) ( *ACMFILTERTAGENUMCBA)(
  HACMDRIVERID hadid, PACMFILTERTAGDETAILSA paftd,
  DWORD dwInstance, DWORD fdwSupport
);

typedef WIN_BOOL __attribute__((__stdcall__)) ( *ACMFILTERTAGENUMCBW)(
  HACMDRIVERID hadid, PACMFILTERTAGDETAILSW paftd,
  DWORD dwInstance, DWORD fdwSupport
);

typedef WIN_BOOL16 __attribute__((__stdcall__)) ( *ACMFILTERTAGENUMCB16)(
  HACMDRIVERID16 hadid, LPACMFILTERTAGDETAILS16 paftd,
  DWORD dwInstance, DWORD fdwSupport
);

typedef WIN_BOOL __attribute__((__stdcall__)) ( *ACMFORMATENUMCBA)(
  HACMDRIVERID hadid, PACMFORMATDETAILSA pafd,
  DWORD dwInstance, DWORD fdwSupport
);

typedef WIN_BOOL __attribute__((__stdcall__)) ( *ACMFORMATENUMCBW)(
  HACMDRIVERID hadid, PACMFORMATDETAILSW pafd,
  DWORD dwInstance, DWORD fdwSupport
);

typedef WIN_BOOL16 __attribute__((__stdcall__)) ( *ACMFORMATENUMCB16)(
  HACMDRIVERID16 hadid, LPACMFORMATDETAILS16 pafd,
  DWORD dwInstance, DWORD fdwSupport
);

typedef WIN_BOOL __attribute__((__stdcall__)) ( *ACMFORMATTAGENUMCBA)(
  HACMDRIVERID hadid, PACMFORMATTAGDETAILSA paftd,
  DWORD dwInstance, DWORD fdwSupport
);

typedef WIN_BOOL __attribute__((__stdcall__)) ( *ACMFORMATTAGENUMCBW)(
  HACMDRIVERID hadid, PACMFORMATTAGDETAILSW paftd,
  DWORD dwInstance, DWORD fdwSupport
);

typedef WIN_BOOL16 __attribute__((__stdcall__)) ( *ACMFORMATTAGENUMCB16)(
  HACMDRIVERID16 hadid, LPACMFORMATTAGDETAILS16 paftd,
  DWORD dwInstance, DWORD fdwSupport
);





DWORD __attribute__((__stdcall__)) acmGetVersion16(
);
MMRESULT16 __attribute__((__stdcall__)) acmMetrics16(
  HACMOBJ16 hao, UINT16 uMetric, LPVOID pMetric
);
MMRESULT16 __attribute__((__stdcall__)) acmDriverEnum16(
  ACMDRIVERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT16 __attribute__((__stdcall__)) acmDriverDetails16(
  HACMDRIVERID16 hadid, LPACMDRIVERDETAILS16 padd, DWORD fdwDetails
);
MMRESULT16 __attribute__((__stdcall__)) acmDriverAdd16(
  LPHACMDRIVERID16 phadid, HINSTANCE16 hinstModule,
  LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
);
MMRESULT16 __attribute__((__stdcall__)) acmDriverRemove16(
  HACMDRIVERID16 hadid, DWORD fdwRemove
);
MMRESULT16 __attribute__((__stdcall__)) acmDriverOpen16(
  LPHACMDRIVER16 phad, HACMDRIVERID16 hadid, DWORD fdwOpen
);
MMRESULT16 __attribute__((__stdcall__)) acmDriverClose16(
  HACMDRIVER16 had, DWORD fdwClose
);
LRESULT __attribute__((__stdcall__)) acmDriverMessage16(
  HACMDRIVER16 had, UINT16 uMsg, LPARAM lParam1, LPARAM lParam2
);
MMRESULT16 __attribute__((__stdcall__)) acmDriverID16(
  HACMOBJ16 hao, LPHACMDRIVERID16 phadid, DWORD fdwDriverID
);
MMRESULT16 __attribute__((__stdcall__)) acmDriverPriority16(
 HACMDRIVERID16 hadid, DWORD dwPriority, DWORD fdwPriority
);
MMRESULT16 __attribute__((__stdcall__)) acmFormatTagDetails16(
  HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd, DWORD fdwDetails
);
MMRESULT16 __attribute__((__stdcall__)) acmFormatTagEnum16(
  HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd,
  ACMFORMATTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT16 __attribute__((__stdcall__)) acmFormatChoose16(
  LPACMFORMATCHOOSE16 pafmtc
);
MMRESULT16 __attribute__((__stdcall__)) acmFormatDetails16(
  HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd, DWORD fdwDetails
);
MMRESULT16 __attribute__((__stdcall__)) acmFormatEnum16(
  HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd,
  ACMFORMATENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT16 __attribute__((__stdcall__)) acmFormatSuggest16(
  HACMDRIVER16 had, LPWAVEFORMATEX pwfxSrc,
  LPWAVEFORMATEX pwfxDst, DWORD cbwfxDst, DWORD fdwSuggest
);
MMRESULT16 __attribute__((__stdcall__)) acmFilterTagDetails16(
  HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd, DWORD fdwDetails
);
MMRESULT16 __attribute__((__stdcall__)) acmFilterTagEnum16(
  HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd,
  ACMFILTERTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT16 __attribute__((__stdcall__)) acmFilterChoose16(
  LPACMFILTERCHOOSE16 pafltrc
);
MMRESULT16 __attribute__((__stdcall__)) acmFilterDetails16(
  HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd, DWORD fdwDetails
);
MMRESULT16 __attribute__((__stdcall__)) acmFilterEnum16(
  HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd,
  ACMFILTERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT16 __attribute__((__stdcall__)) acmStreamOpen16(
  LPHACMSTREAM16 phas, HACMDRIVER16 had,
  LPWAVEFORMATEX pwfxSrc, LPWAVEFORMATEX pwfxDst,
  LPWAVEFILTER pwfltr, DWORD dwCallback,
  DWORD dwInstance, DWORD fdwOpen
);
MMRESULT16 __attribute__((__stdcall__)) acmStreamClose16(
  HACMSTREAM16 has, DWORD fdwClose
);
MMRESULT16 __attribute__((__stdcall__)) acmStreamSize16(
  HACMSTREAM16 has, DWORD cbInput,
  LPDWORD pdwOutputBytes, DWORD fdwSize
);
MMRESULT16 __attribute__((__stdcall__)) acmStreamConvert16(
  HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwConvert
);
MMRESULT16 __attribute__((__stdcall__)) acmStreamReset16(
  HACMSTREAM16 has, DWORD fdwReset
);
MMRESULT16 __attribute__((__stdcall__)) acmStreamPrepareHeader16(
  HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwPrepare
);
MMRESULT16 __attribute__((__stdcall__)) acmStreamUnprepareHeader16(
  HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwUnprepare
);





MMRESULT __attribute__((__stdcall__)) acmDriverAddA(
  PHACMDRIVERID phadid, HINSTANCE hinstModule,
  LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
);
MMRESULT __attribute__((__stdcall__)) acmDriverAddW(
  PHACMDRIVERID phadid, HINSTANCE hinstModule,
  LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
);
MMRESULT __attribute__((__stdcall__)) acmDriverClose(
  HACMDRIVER had, DWORD fdwClose
);
MMRESULT __attribute__((__stdcall__)) acmDriverDetailsA(
  HACMDRIVERID hadid, PACMDRIVERDETAILSA padd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmDriverDetailsW(
  HACMDRIVERID hadid, PACMDRIVERDETAILSW padd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmDriverEnum(
  ACMDRIVERENUMCB fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmDriverID(
  HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID
);
LRESULT __attribute__((__stdcall__)) acmDriverMessage(
  HACMDRIVER had, UINT uMsg, LPARAM lParam1, LPARAM lParam2
);
MMRESULT __attribute__((__stdcall__)) acmDriverOpen(
  PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen
);
MMRESULT __attribute__((__stdcall__)) acmDriverPriority(
  HACMDRIVERID hadid, DWORD dwPriority, DWORD fdwPriority
);
MMRESULT __attribute__((__stdcall__)) acmDriverRemove(
  HACMDRIVERID hadid, DWORD fdwRemove
);
MMRESULT __attribute__((__stdcall__)) acmFilterChooseA(
  PACMFILTERCHOOSEA pafltrc
);
MMRESULT __attribute__((__stdcall__)) acmFilterChooseW(
  PACMFILTERCHOOSEW pafltrc
);
MMRESULT __attribute__((__stdcall__)) acmFilterDetailsA(
  HACMDRIVER had, PACMFILTERDETAILSA pafd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFilterDetailsW(
  HACMDRIVER had, PACMFILTERDETAILSW pafd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFilterEnumA(
  HACMDRIVER had, PACMFILTERDETAILSA pafd,
  ACMFILTERENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFilterEnumW(
  HACMDRIVER had, PACMFILTERDETAILSW pafd,
  ACMFILTERENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFilterTagDetailsA(
  HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFilterTagDetailsW(
  HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFilterTagEnumA(
  HACMDRIVER had, PACMFILTERTAGDETAILSA paftd,
  ACMFILTERTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFilterTagEnumW(
  HACMDRIVER had, PACMFILTERTAGDETAILSW paftd,
  ACMFILTERTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFormatChooseA(
  PACMFORMATCHOOSEA pafmtc
);
MMRESULT __attribute__((__stdcall__)) acmFormatChooseW(
  PACMFORMATCHOOSEW pafmtc
);
MMRESULT __attribute__((__stdcall__)) acmFormatDetailsA(
  HACMDRIVER had, PACMFORMATDETAILSA pafd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFormatDetailsW(
  HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFormatEnumA(
  HACMDRIVER had, PACMFORMATDETAILSA pafd,
  ACMFORMATENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFormatEnumW(
  HACMDRIVER had, PACMFORMATDETAILSW pafd,
  ACMFORMATENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFormatSuggest(
  HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst,
  DWORD cbwfxDst, DWORD fdwSuggest
);
MMRESULT __attribute__((__stdcall__)) acmFormatTagDetailsA(
  HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFormatTagDetailsW(
  HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFormatTagEnumA(
  HACMDRIVER had, PACMFORMATTAGDETAILSA paftd,
  ACMFORMATTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFormatTagEnumW(
  HACMDRIVER had, PACMFORMATTAGDETAILSW paftd,
  ACMFORMATTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
);
DWORD __attribute__((__stdcall__)) acmGetVersion(
);
MMRESULT __attribute__((__stdcall__)) acmMetrics(
  HACMOBJ hao, UINT uMetric, LPVOID pMetric
);
MMRESULT __attribute__((__stdcall__)) acmStreamClose(
  HACMSTREAM has, DWORD fdwClose
);
MMRESULT __attribute__((__stdcall__)) acmStreamConvert(
  HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwConvert
);
MMRESULT __attribute__((__stdcall__)) acmStreamMessage(
  HACMSTREAM has, UINT uMsg, LPARAM lParam1, LPARAM lParam2
);
MMRESULT __attribute__((__stdcall__)) acmStreamOpen(
  PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc,
  PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD dwCallback,
  DWORD dwInstance, DWORD fdwOpen
);
MMRESULT __attribute__((__stdcall__)) acmStreamPrepareHeader(
  HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare
);
MMRESULT __attribute__((__stdcall__)) acmStreamReset(
  HACMSTREAM has, DWORD fdwReset
);
MMRESULT __attribute__((__stdcall__)) acmStreamSize(
  HACMSTREAM has, DWORD cbInput,
  LPDWORD pdwOutputBytes, DWORD fdwSize
);
MMRESULT __attribute__((__stdcall__)) acmStreamUnprepareHeader(
  HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare
);
void MSACM_RegisterAllDrivers(void);
# 16 "loader/loader.h" 2




extern char* win32_codec_name;

unsigned int _GetPrivateProfileIntA(const char* appname, const char* keyname, int default_value, const char* filename);
int _GetPrivateProfileStringA(const char* appname, const char* keyname,
        const char* def_val, char* dest, unsigned int len, const char* filename);
int _WritePrivateProfileStringA(const char* appname, const char* keyname,
        const char* string, const char* filename);
# 35 "loader/loader.h"
long ICCompress(
        HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiOutput,void* lpData,
        LPBITMAPINFOHEADER lpbiInput,void* lpBits,long* lpckid,
        long* lpdwFlags,long lFrameNum,long dwFrameSize,long dwQuality,
        LPBITMAPINFOHEADER lpbiPrev,void* lpPrev
);

long ICDecompress(HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiFormat,void* lpData,LPBITMAPINFOHEADER lpbi,void* lpBits);

WIN_BOOL ICInfo(long fccType, long fccHandler, ICINFO * lpicinfo);
LRESULT ICGetInfo(HIC hic,ICINFO *picinfo, long cb);
HIC ICOpen(long fccType, long fccHandler, UINT wMode);
HIC ICOpenFunction(long fccType, long fccHandler, unsigned int wMode, void* lpfnHandler);

LRESULT ICClose(HIC hic);
LRESULT ICSendMessage(HIC hic, unsigned int msg, long dw1, long dw2);
HIC ICLocate(long fccType, long fccHandler, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut, short wFlags);

int ICDoSomething();
# 142 "loader/loader.h"
MMRESULT __attribute__((__stdcall__)) acmDriverAddA(
  PHACMDRIVERID phadid, HINSTANCE hinstModule,
  LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
);
MMRESULT __attribute__((__stdcall__)) acmDriverAddW(
  PHACMDRIVERID phadid, HINSTANCE hinstModule,
  LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
);
MMRESULT __attribute__((__stdcall__)) acmDriverClose(
  HACMDRIVER had, DWORD fdwClose
);
MMRESULT __attribute__((__stdcall__)) acmDriverDetailsA(
  HACMDRIVERID hadid, PACMDRIVERDETAILSA padd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmDriverDetailsW(
  HACMDRIVERID hadid, PACMDRIVERDETAILSW padd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmDriverEnum(
  ACMDRIVERENUMCB fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmDriverID(
  HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID
);
LRESULT __attribute__((__stdcall__)) acmDriverMessage(
  HACMDRIVER had, UINT uMsg, LPARAM lParam1, LPARAM lParam2
);
MMRESULT __attribute__((__stdcall__)) acmDriverOpen(
  PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen
);
MMRESULT __attribute__((__stdcall__)) acmDriverPriority(
  HACMDRIVERID hadid, DWORD dwPriority, DWORD fdwPriority
);
MMRESULT __attribute__((__stdcall__)) acmDriverRemove(
  HACMDRIVERID hadid, DWORD fdwRemove
);
MMRESULT __attribute__((__stdcall__)) acmFilterChooseA(
  PACMFILTERCHOOSEA pafltrc
);
MMRESULT __attribute__((__stdcall__)) acmFilterChooseW(
  PACMFILTERCHOOSEW pafltrc
);
MMRESULT __attribute__((__stdcall__)) acmFilterDetailsA(
  HACMDRIVER had, PACMFILTERDETAILSA pafd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFilterDetailsW(
  HACMDRIVER had, PACMFILTERDETAILSW pafd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFilterEnumA(
  HACMDRIVER had, PACMFILTERDETAILSA pafd,
  ACMFILTERENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFilterEnumW(
  HACMDRIVER had, PACMFILTERDETAILSW pafd,
  ACMFILTERENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFilterTagDetailsA(
  HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFilterTagDetailsW(
  HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFilterTagEnumA(
  HACMDRIVER had, PACMFILTERTAGDETAILSA paftd,
  ACMFILTERTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFilterTagEnumW(
  HACMDRIVER had, PACMFILTERTAGDETAILSW paftd,
  ACMFILTERTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFormatChooseA(
  PACMFORMATCHOOSEA pafmtc
);
MMRESULT __attribute__((__stdcall__)) acmFormatChooseW(
  PACMFORMATCHOOSEW pafmtc
);
MMRESULT __attribute__((__stdcall__)) acmFormatDetailsA(
  HACMDRIVER had, PACMFORMATDETAILSA pafd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFormatDetailsW(
  HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFormatEnumA(
  HACMDRIVER had, PACMFORMATDETAILSA pafd,
  ACMFORMATENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFormatEnumW(
  HACMDRIVER had, PACMFORMATDETAILSW pafd,
  ACMFORMATENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFormatSuggest(
  HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst,
  DWORD cbwfxDst, DWORD fdwSuggest
);
MMRESULT __attribute__((__stdcall__)) acmFormatTagDetailsA(
  HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFormatTagDetailsW(
  HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFormatTagEnumA(
  HACMDRIVER had, PACMFORMATTAGDETAILSA paftd,
  ACMFORMATTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFormatTagEnumW(
  HACMDRIVER had, PACMFORMATTAGDETAILSW paftd,
  ACMFORMATTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
);
DWORD __attribute__((__stdcall__)) acmGetVersion(
);
MMRESULT __attribute__((__stdcall__)) acmMetrics(
  HACMOBJ hao, UINT uMetric, LPVOID pMetric
);
MMRESULT __attribute__((__stdcall__)) acmStreamClose(
  HACMSTREAM has, DWORD fdwClose
);
MMRESULT __attribute__((__stdcall__)) acmStreamConvert(
  HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwConvert
);
MMRESULT __attribute__((__stdcall__)) acmStreamMessage(
  HACMSTREAM has, UINT uMsg, LPARAM lParam1, LPARAM lParam2
);
MMRESULT __attribute__((__stdcall__)) acmStreamOpen(
  PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc,
  PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD dwCallback,
  DWORD dwInstance, DWORD fdwOpen
);
MMRESULT __attribute__((__stdcall__)) acmStreamPrepareHeader(
  HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare
);
MMRESULT __attribute__((__stdcall__)) acmStreamReset(
  HACMSTREAM has, DWORD fdwReset
);
MMRESULT __attribute__((__stdcall__)) acmStreamSize(
  HACMSTREAM has, DWORD cbInput,
  LPDWORD pdwOutputBytes, DWORD fdwSize
);
MMRESULT __attribute__((__stdcall__)) acmStreamUnprepareHeader(
  HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare
);
void MSACM_RegisterAllDrivers(void);

INT __attribute__((__stdcall__)) LoadStringA( HINSTANCE instance, UINT resource_id,
                            LPSTR buffer, INT buflen );
# 53 "mplayer.c" 2
# 1 "loader/wine/avifmt.h" 1
# 104 "loader/wine/avifmt.h"
typedef WORD TWOCC;
# 176 "loader/wine/avifmt.h"
typedef struct
{
    DWORD dwMicroSecPerFrame;
    DWORD dwMaxBytesPerSec;
    DWORD dwPaddingGranularity;

    DWORD dwFlags;
    DWORD dwTotalFrames;
    DWORD dwInitialFrames;
    DWORD dwStreams;
    DWORD dwSuggestedBufferSize;

    DWORD dwWidth;
    DWORD dwHeight;

    DWORD dwReserved[4];
} MainAVIHeader;
# 203 "loader/wine/avifmt.h"
typedef struct {
    FOURCC fccType;
    FOURCC fccHandler;
    DWORD dwFlags;
    WORD wPriority;
    WORD wLanguage;
    DWORD dwInitialFrames;
    DWORD dwScale;
    DWORD dwRate;
    DWORD dwStart;
    DWORD dwLength;
    DWORD dwSuggestedBufferSize;
    DWORD dwQuality;
    DWORD dwSampleSize;
    RECT rcFrame;
} AVIStreamHeader;
# 230 "loader/wine/avifmt.h"
typedef struct
{
    DWORD ckid;
    DWORD dwFlags;
    DWORD dwChunkOffset;
    DWORD dwChunkLength;
} AVIINDEXENTRY;
# 54 "mplayer.c" 2

# 1 "codec-cfg.h" 1
# 54 "codec-cfg.h"
typedef struct {
        unsigned int fourcc[16];
        unsigned int fourccmap[16];
        unsigned int outfmt[16];
        unsigned char outflags[16];
        char *name;
        char *info;
        char *comment;
        char *dll;
        GUID guid;
        short driver;
        short flags;
        short status;
        short cpuflags;
} codecs_t;

codecs_t** parse_codec_cfg(char *cfgfile);
codecs_t* find_video_codec(unsigned int fourcc, unsigned int *fourccmap, codecs_t *start);
codecs_t* find_audio_codec(unsigned int fourcc, unsigned int *fourccmap, codecs_t *start);
codecs_t* find_codec(unsigned int fourcc,unsigned int *fourccmap,codecs_t *start,int audioflag);
void list_codecs(int audioflag);
# 56 "mplayer.c" 2

# 1 "dvdauth.h" 1
# 58 "mplayer.c" 2
# 1 "spudec.h" 1



void spudec_process_control(unsigned char *, int, int*, int*);
void spudec_decode(unsigned char *packet,int len);
# 59 "mplayer.c" 2

# 1 "linux/getch2.h" 1




extern int screen_width;
extern int screen_height;


extern void get_screen_size();


extern int load_termcap(char *termtype);


extern void getch2_enable();
extern void getch2_disable();


extern int getch2(int halfdelay_time);
# 61 "mplayer.c" 2
# 1 "linux/keycodes.h" 1
# 62 "mplayer.c" 2
# 1 "linux/timer.h" 1

void InitTimer();
unsigned int GetTimer();

float GetRelativeTime();
# 63 "mplayer.c" 2
# 1 "linux/shmem.h" 1

void* shmem_alloc(int size);
void shmem_free(void* p);
# 64 "mplayer.c" 2






# 1 "Gui/mplayer/play.h" 1




# 1 "Gui/mplayer/psignal.h" 1




# 1 "/usr/include/stdlib.h" 1 3
# 6 "Gui/mplayer/psignal.h" 2
# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 1 3
# 7 "Gui/mplayer/psignal.h" 2
# 1 "/usr/include/string.h" 1 3
# 8 "Gui/mplayer/psignal.h" 2
# 1 "/usr/include/unistd.h" 1 3
# 9 "Gui/mplayer/psignal.h" 2
# 1 "/usr/include/signal.h" 1 3
# 10 "Gui/mplayer/psignal.h" 2
# 49 "Gui/mplayer/psignal.h"
extern int gtkIsOk;

extern pid_t mplMPlayerPID;
extern pid_t mplParentPID;

extern pid_t gtkPID;

extern void gtkSigHandler( int s );
extern void mplPlayerSigHandler( int s );
extern void mplMainSigHandler( int s );

extern void gtkSendMessage( int msg );

extern void mplErrorHandler( int critical,const char * format, ... );
# 6 "Gui/mplayer/play.h" 2
# 1 "Gui/mplayer/mplayer.h" 1




extern int mplSubRender;
extern int mplMainRender;
extern int mplGeneralTimer;
extern int mplSkinChanged;

extern unsigned char * mplDrawBuffer;
extern unsigned char * mplMenuDrawBuffer;
extern int mainVisible;

extern int mplMainAutoPlay;

extern void mplInit( int argc,char* argv[], char *envp[], void* disp );
extern void mplMsgHandle( int msg,float param );
# 7 "Gui/mplayer/play.h" 2

typedef struct
{
 int x;
 int y;
 int width;
 int height;
} mplResizeStruct;

typedef struct
{
 int signal;
 char module[512];
} mplUnknowErrorStruct;

typedef struct
{
 int seek;
 int format;
 int width;
 int height;
 char codecdll[128];
} mplVideoStruct;

typedef struct
{
 int message;
   mplResizeStruct resize;
   mplVideoStruct videodata;
   mplUnknowErrorStruct error;

   int Playing;
   float Position;

   float Volume;
   int VolumeChanged;
   float Balance;
   int Mute;

   int Track;
   int AudioType;
   int StreamType;
   int TimeSec;
   int LengthInSec;
   int FrameDrop;

   char Filename[4096];
   int FilenameChanged;

   int SkinChange;
} mplCommStruct;

extern mplCommStruct * mplShMem;
extern char * Filename;

extern int mplParent;

extern int moviex;
extern int moviey;
extern int moviewidth;
extern int movieheight;

extern mplCommStruct * mplShMem;

extern void mplMPlayerInit( int argc,char* argv[], char *envp[] );

extern void mplStop();
extern void mplFullScreen( void );
extern void mplPlay( void );
extern void mplPause( void );
extern void mplResize( unsigned int X,unsigned int Y,unsigned int width,unsigned int height );
extern void mplResizeToMovieSize( unsigned int width,unsigned int height );

extern void mplIncAudioBufDelay( void );
extern void mplDecAudioBufDelay( void );

extern void mplRelSeek( float s );
extern void mplAbsSeek( float s );
extern float mplGetPosition( void );

extern void mplPlayFork( void );
extern void mplSigHandler( int s );
extern void mplPlayerThread( void );

extern void ChangeSkin( void );
extern void EventHandling( void );
# 71 "mplayer.c" 2



int verbose=0;
int quiet=0;




void find_sub(subtitle* subtitles,int key);


static int
usec_sleep(int usec_delay)
{

    struct timespec ts;
    ts.tv_sec = usec_delay / 1000000;
    ts.tv_nsec = (usec_delay % 1000000) * 1000;
    return nanosleep(&ts, 0);



}





static int cfg_inc_verbose(struct config *conf){
    ++verbose;
    return 0;
}

static int cfg_include(struct config *conf, char *filename){
        return parse_config_file(conf, filename);
}

char *get_path(char *filename){
        char *homedir;
        char *buff;
        static char *config_dir = "/.mplayer";
        int len;

        if ((homedir = getenv("HOME")) == 0)
                return 0;
        len = strlen(homedir) + strlen(config_dir) + 1;
        if (filename == 0) {
                if ((buff = (char *) malloc(len)) == 0)
                        return 0;
                sprintf(buff, "%s%s", homedir, config_dir);
        } else {
                len += strlen(filename) + 1;
                if ((buff = (char *) malloc(len)) == 0)
                        return 0;
                sprintf(buff, "%s%s/%s", homedir, config_dir, filename);
        }
        return buff;
}






static int max_framesize=0;

# 1 "stream.h" 1
# 15 "stream.h"
int vcd_seek_to_track(int fd,int track);
void vcd_read_toc(int fd);





typedef struct {
  int fd;
  off_t pos;
  int eof;
  int type;
  unsigned int buf_pos,buf_len;
  off_t start_pos,end_pos;
  unsigned char buffer[2048>2352?2048:2352];
  void* priv;
} stream_t;

int stream_fill_buffer(stream_t *s);

int stream_seek_long(stream_t *s,off_t pos);

inline static int stream_read_char(stream_t *s){
  return (s->buf_pos<s->buf_len)?s->buffer[s->buf_pos++]:
    (stream_fill_buffer(s)?s->buffer[s->buf_pos++]:-256);




}

inline static unsigned int stream_read_word(stream_t *s){
  int x,y;
  x=stream_read_char(s);
  y=stream_read_char(s);
  return (x<<8)|y;
}

inline static unsigned int stream_read_dword(stream_t *s){
  unsigned int y;
  y=stream_read_char(s);
  y=(y<<8)|stream_read_char(s);
  y=(y<<8)|stream_read_char(s);
  y=(y<<8)|stream_read_char(s);
  return y;
}

inline static unsigned int stream_read_word_le(stream_t *s){
  int x,y;
  x=stream_read_char(s);
  y=stream_read_char(s);
  return (y<<8)|x;
}

inline static unsigned int stream_read_dword_le(stream_t *s){
  unsigned int y;
  y=stream_read_char(s);
  y|=stream_read_char(s)<<8;
  y|=stream_read_char(s)<<16;
  y|=stream_read_char(s)<<24;
  return y;
}

inline static void stream_read(stream_t *s,char* mem,int len){
  while(len>0){
    int x;
    x=s->buf_len-s->buf_pos;
    if(x==0){
      if(!stream_fill_buffer(s)) return;
      x=s->buf_len-s->buf_pos;
    }
    if(s->buf_pos>s->buf_len) printf("stream_read: WARNING! s->buf_pos>s->buf_len\n");
    if(x>len) x=len;
    memcpy(mem,&s->buffer[s->buf_pos],x);
    s->buf_pos+=x; mem+=x; len-=x;
  }
}

inline static int stream_eof(stream_t *s){
  return s->eof;
}

inline static off_t stream_tell(stream_t *s){
  return s->pos+s->buf_pos-s->buf_len;
}

inline static int stream_seek(stream_t *s,off_t pos){



  if(pos<s->pos){
    off_t x=pos-(s->pos-s->buf_len);
    if(x>=0){
      s->buf_pos=x;

      return 1;
    }
  }

  return stream_seek_long(s,pos);
}

inline static int stream_skip(stream_t *s,int len){
  if(len<0 || (len>2*2048 && s->type!=2)){

    return stream_seek(s,stream_tell(s)+len);
  }
  while(len>0){
    int x=s->buf_len-s->buf_pos;
    if(x==0){
      if(!stream_fill_buffer(s)) return 0;
      x=s->buf_len-s->buf_pos;
    }
    if(x>len) x=len;

    s->buf_pos+=x; len-=x;
  }
  return 1;
}

void stream_reset(stream_t *s);
stream_t* new_stream(int fd,int type);
void free_stream(stream_t *s);
# 139 "mplayer.c" 2
# 1 "demuxer.h" 1

# 1 "config.h" 1
# 3 "demuxer.h" 2
# 23 "demuxer.h"
typedef struct demux_packet_st {
  int len;
  float pts;
  off_t pos;
  unsigned char* buffer;
  int flags;
  struct demux_packet_st* next;
} demux_packet_t;

typedef struct {
  int buffer_pos;
  int buffer_size;
  unsigned char* buffer;
  float pts;
  int pts_bytes;
  int eof;
  off_t pos;
  off_t dpos;
  int pack_no;
  int flags;

  int packs;
  int bytes;
  demux_packet_t *first;
  demux_packet_t *last;
  int id;
  struct demuxer_st *demuxer;

  demux_packet_t *asf_packet;
  int asf_seq;

  void* sh;
} demux_stream_t;

typedef struct demuxer_st {
  stream_t *stream;
  int synced;
  off_t filepos;
  int type;
  int file_format;
  off_t movi_start;
  off_t movi_end;
  int seekable;

  demux_stream_t *audio;
  demux_stream_t *video;
  demux_stream_t *sub;


  void* a_streams[256];
  void* v_streams[256];
  char s_streams[32];

  void* priv;
} demuxer_t;

inline static demux_packet_t* new_demux_packet(int len){
  demux_packet_t* dp=malloc(sizeof(demux_packet_t));
  dp->len=len;
  dp->buffer=malloc(len);
  dp->next=0;
  dp->pts=0;
  dp->pos=0;
  dp->flags=0;
  return dp;
}

inline static void free_demux_packet(demux_packet_t* dp){
  free(dp->buffer);
  free(dp);
}

demux_stream_t* new_demuxer_stream(struct demuxer_st *demuxer,int id);
demuxer_t* new_demuxer(stream_t *stream,int type,int a_id,int v_id,int s_id);
void free_demuxer_stream(demux_stream_t *ds);
void free_demuxer(demuxer_t *demuxer);

void ds_add_packet(demux_stream_t *ds,demux_packet_t* dp);
void ds_read_packet(demux_stream_t *ds,stream_t *stream,int len,float pts,off_t pos,int flags);

int demux_fill_buffer(demuxer_t *demux,demux_stream_t *ds);
int ds_fill_buffer(demux_stream_t *ds);

inline static off_t ds_tell(demux_stream_t *ds){
  return (ds->dpos-ds->buffer_size)+ds->buffer_pos;
}

inline static int ds_tell_pts(demux_stream_t *ds){
  return (ds->pts_bytes-ds->buffer_size)+ds->buffer_pos;
}

int demux_read_data(demux_stream_t *ds,unsigned char* mem,int len);
int demux_read_data_pack(demux_stream_t *ds,unsigned char* mem,int len);
# 134 "demuxer.h"
void ds_free_packs(demux_stream_t *ds);
int ds_get_packet(demux_stream_t *ds,unsigned char **start);
int ds_get_packet_sub(demux_stream_t *ds,unsigned char **start);


static inline int avi_stream_id(unsigned int id){
  unsigned char *p=(unsigned char *)&id;
  unsigned char a,b;



  a=p[0]-'0'; b=p[1]-'0';

  if(a>9 || b>9) return 100;
  return a*10+b;
}

demuxer_t* demux_open(stream_t *stream,int file_format,int aid,int vid,int sid);
int demux_seek(demuxer_t *demuxer,float rel_seek_secs,int flags);
# 140 "mplayer.c" 2

# 1 "stheader.h" 1
# 11 "stheader.h"
# 1 "/usr/include/math.h" 1 3
# 27 "/usr/include/math.h" 3
# 1 "/usr/include/features.h" 1 3
# 28 "/usr/include/math.h" 2 3





# 1 "/usr/include/bits/huge_val.h" 1 3
# 25 "/usr/include/bits/huge_val.h" 3
# 1 "/usr/include/features.h" 1 3
# 26 "/usr/include/bits/huge_val.h" 2 3
# 34 "/usr/include/math.h" 2 3






# 1 "/usr/include/bits/mathdef.h" 1 3
# 41 "/usr/include/math.h" 2 3
# 63 "/usr/include/math.h" 3
# 1 "/usr/include/bits/mathcalls.h" 1 3
# 54 "/usr/include/bits/mathcalls.h" 3
extern double acos (double __x) ; extern double __acos (double __x) ;

extern double asin (double __x) ; extern double __asin (double __x) ;

extern double atan (double __x) ; extern double __atan (double __x) ;

extern double atan2 (double __y, double __x) ; extern double __atan2 (double __y, double __x) ;


extern double cos (double __x) ; extern double __cos (double __x) ;

extern double sin (double __x) ; extern double __sin (double __x) ;

extern double tan (double __x) ; extern double __tan (double __x) ;
# 78 "/usr/include/bits/mathcalls.h" 3
extern double cosh (double __x) ; extern double __cosh (double __x) ;

extern double sinh (double __x) ; extern double __sinh (double __x) ;

extern double tanh (double __x) ; extern double __tanh (double __x) ;



extern double acosh (double __x) ; extern double __acosh (double __x) ;

extern double asinh (double __x) ; extern double __asinh (double __x) ;

extern double atanh (double __x) ; extern double __atanh (double __x) ;





extern double exp (double __x) ; extern double __exp (double __x) ;
# 106 "/usr/include/bits/mathcalls.h" 3
extern double frexp (double __x, int *__exponent) ; extern double __frexp (double __x, int *__exponent) ;


extern double ldexp (double __x, int __exponent) ; extern double __ldexp (double __x, int __exponent) ;


extern double log (double __x) ; extern double __log (double __x) ;


extern double log10 (double __x) ; extern double __log10 (double __x) ;


extern double modf (double __x, double *__iptr) ; extern double __modf (double __x, double *__iptr) ;



extern double expm1 (double __x) ; extern double __expm1 (double __x) ;


extern double log1p (double __x) ; extern double __log1p (double __x) ;


extern double logb (double __x) ; extern double __logb (double __x) ;
# 143 "/usr/include/bits/mathcalls.h" 3
extern double pow (double __x, double __y) ; extern double __pow (double __x, double __y) ;


extern double sqrt (double __x) ; extern double __sqrt (double __x) ;



extern double hypot (double __x, double __y) ; extern double __hypot (double __x, double __y) ;




extern double cbrt (double __x) ; extern double __cbrt (double __x) ;






extern double ceil (double __x) ; extern double __ceil (double __x) ;


extern double fabs (double __x) __attribute__ ((__const__)); extern double __fabs (double __x) __attribute__ ((__const__));


extern double floor (double __x) ; extern double __floor (double __x) ;


extern double fmod (double __x, double __y) ; extern double __fmod (double __x, double __y) ;




extern int __isinf (double __value) __attribute__ ((__const__));


extern int __finite (double __value) __attribute__ ((__const__));




extern int isinf (double __value) __attribute__ ((__const__));


extern int finite (double __value) __attribute__ ((__const__));


extern double drem (double __x, double __y) ; extern double __drem (double __x, double __y) ;



extern double significand (double __x) ; extern double __significand (double __x) ;




extern double copysign (double __x, double __y) __attribute__ ((__const__)); extern double __copysign (double __x, double __y) __attribute__ ((__const__));
# 209 "/usr/include/bits/mathcalls.h" 3
extern int __isnan (double __value) __attribute__ ((__const__));



extern int isnan (double __value) __attribute__ ((__const__));


extern double j0 (double) ; extern double __j0 (double) ;
extern double j1 (double) ; extern double __j1 (double) ;
extern double jn (int, double) ; extern double __jn (int, double) ;
extern double y0 (double) ; extern double __y0 (double) ;
extern double y1 (double) ; extern double __y1 (double) ;
extern double yn (int, double) ; extern double __yn (int, double) ;





extern double erf (double) ; extern double __erf (double) ;
extern double erfc (double) ; extern double __erfc (double) ;
extern double lgamma (double) ; extern double __lgamma (double) ;
# 238 "/usr/include/bits/mathcalls.h" 3
extern double gamma (double) ; extern double __gamma (double) ;






extern double lgamma_r (double, int *__signgamp) ; extern double __lgamma_r (double, int *__signgamp) ;






extern double rint (double __x) ; extern double __rint (double __x) ;


extern double nextafter (double __x, double __y) __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) __attribute__ ((__const__));





extern double remainder (double __x, double __y) ; extern double __remainder (double __x, double __y) ;



extern double scalb (double __x, double __n) ; extern double __scalb (double __x, double __n) ;




extern double scalbn (double __x, int __n) ; extern double __scalbn (double __x, int __n) ;



extern int ilogb (double __x) ; extern int __ilogb (double __x) ;
# 64 "/usr/include/math.h" 2 3
# 82 "/usr/include/math.h" 3
# 1 "/usr/include/bits/mathcalls.h" 1 3
# 54 "/usr/include/bits/mathcalls.h" 3
extern float acosf (float __x) ; extern float __acosf (float __x) ;

extern float asinf (float __x) ; extern float __asinf (float __x) ;

extern float atanf (float __x) ; extern float __atanf (float __x) ;

extern float atan2f (float __y, float __x) ; extern float __atan2f (float __y, float __x) ;


extern float cosf (float __x) ; extern float __cosf (float __x) ;

extern float sinf (float __x) ; extern float __sinf (float __x) ;

extern float tanf (float __x) ; extern float __tanf (float __x) ;
# 78 "/usr/include/bits/mathcalls.h" 3
extern float coshf (float __x) ; extern float __coshf (float __x) ;

extern float sinhf (float __x) ; extern float __sinhf (float __x) ;

extern float tanhf (float __x) ; extern float __tanhf (float __x) ;



extern float acoshf (float __x) ; extern float __acoshf (float __x) ;

extern float asinhf (float __x) ; extern float __asinhf (float __x) ;

extern float atanhf (float __x) ; extern float __atanhf (float __x) ;





extern float expf (float __x) ; extern float __expf (float __x) ;
# 106 "/usr/include/bits/mathcalls.h" 3
extern float frexpf (float __x, int *__exponent) ; extern float __frexpf (float __x, int *__exponent) ;


extern float ldexpf (float __x, int __exponent) ; extern float __ldexpf (float __x, int __exponent) ;


extern float logf (float __x) ; extern float __logf (float __x) ;


extern float log10f (float __x) ; extern float __log10f (float __x) ;


extern float modff (float __x, float *__iptr) ; extern float __modff (float __x, float *__iptr) ;



extern float expm1f (float __x) ; extern float __expm1f (float __x) ;


extern float log1pf (float __x) ; extern float __log1pf (float __x) ;


extern float logbf (float __x) ; extern float __logbf (float __x) ;
# 143 "/usr/include/bits/mathcalls.h" 3
extern float powf (float __x, float __y) ; extern float __powf (float __x, float __y) ;


extern float sqrtf (float __x) ; extern float __sqrtf (float __x) ;



extern float hypotf (float __x, float __y) ; extern float __hypotf (float __x, float __y) ;




extern float cbrtf (float __x) ; extern float __cbrtf (float __x) ;






extern float ceilf (float __x) ; extern float __ceilf (float __x) ;


extern float fabsf (float __x) __attribute__ ((__const__)); extern float __fabsf (float __x) __attribute__ ((__const__));


extern float floorf (float __x) ; extern float __floorf (float __x) ;


extern float fmodf (float __x, float __y) ; extern float __fmodf (float __x, float __y) ;




extern int __isinff (float __value) __attribute__ ((__const__));


extern int __finitef (float __value) __attribute__ ((__const__));




extern int isinff (float __value) __attribute__ ((__const__));


extern int finitef (float __value) __attribute__ ((__const__));


extern float dremf (float __x, float __y) ; extern float __dremf (float __x, float __y) ;



extern float significandf (float __x) ; extern float __significandf (float __x) ;




extern float copysignf (float __x, float __y) __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) __attribute__ ((__const__));
# 209 "/usr/include/bits/mathcalls.h" 3
extern int __isnanf (float __value) __attribute__ ((__const__));



extern int isnanf (float __value) __attribute__ ((__const__));


extern float j0f (float) ; extern float __j0f (float) ;
extern float j1f (float) ; extern float __j1f (float) ;
extern float jnf (int, float) ; extern float __jnf (int, float) ;
extern float y0f (float) ; extern float __y0f (float) ;
extern float y1f (float) ; extern float __y1f (float) ;
extern float ynf (int, float) ; extern float __ynf (int, float) ;





extern float erff (float) ; extern float __erff (float) ;
extern float erfcf (float) ; extern float __erfcf (float) ;
extern float lgammaf (float) ; extern float __lgammaf (float) ;
# 238 "/usr/include/bits/mathcalls.h" 3
extern float gammaf (float) ; extern float __gammaf (float) ;






extern float lgammaf_r (float, int *__signgamp) ; extern float __lgammaf_r (float, int *__signgamp) ;






extern float rintf (float __x) ; extern float __rintf (float __x) ;


extern float nextafterf (float __x, float __y) __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) __attribute__ ((__const__));





extern float remainderf (float __x, float __y) ; extern float __remainderf (float __x, float __y) ;



extern float scalbf (float __x, float __n) ; extern float __scalbf (float __x, float __n) ;




extern float scalbnf (float __x, int __n) ; extern float __scalbnf (float __x, int __n) ;



extern int ilogbf (float __x) ; extern int __ilogbf (float __x) ;
# 83 "/usr/include/math.h" 2 3
# 99 "/usr/include/math.h" 3
# 1 "/usr/include/bits/mathcalls.h" 1 3
# 54 "/usr/include/bits/mathcalls.h" 3
extern long double acosl (long double __x) ; extern long double __acosl (long double __x) ;

extern long double asinl (long double __x) ; extern long double __asinl (long double __x) ;

extern long double atanl (long double __x) ; extern long double __atanl (long double __x) ;

extern long double atan2l (long double __y, long double __x) ; extern long double __atan2l (long double __y, long double __x) ;


extern long double cosl (long double __x) ; extern long double __cosl (long double __x) ;

extern long double sinl (long double __x) ; extern long double __sinl (long double __x) ;

extern long double tanl (long double __x) ; extern long double __tanl (long double __x) ;
# 78 "/usr/include/bits/mathcalls.h" 3
extern long double coshl (long double __x) ; extern long double __coshl (long double __x) ;

extern long double sinhl (long double __x) ; extern long double __sinhl (long double __x) ;

extern long double tanhl (long double __x) ; extern long double __tanhl (long double __x) ;



extern long double acoshl (long double __x) ; extern long double __acoshl (long double __x) ;

extern long double asinhl (long double __x) ; extern long double __asinhl (long double __x) ;

extern long double atanhl (long double __x) ; extern long double __atanhl (long double __x) ;





extern long double expl (long double __x) ; extern long double __expl (long double __x) ;
# 106 "/usr/include/bits/mathcalls.h" 3
extern long double frexpl (long double __x, int *__exponent) ; extern long double __frexpl (long double __x, int *__exponent) ;


extern long double ldexpl (long double __x, int __exponent) ; extern long double __ldexpl (long double __x, int __exponent) ;


extern long double logl (long double __x) ; extern long double __logl (long double __x) ;


extern long double log10l (long double __x) ; extern long double __log10l (long double __x) ;


extern long double modfl (long double __x, long double *__iptr) ; extern long double __modfl (long double __x, long double *__iptr) ;



extern long double expm1l (long double __x) ; extern long double __expm1l (long double __x) ;


extern long double log1pl (long double __x) ; extern long double __log1pl (long double __x) ;


extern long double logbl (long double __x) ; extern long double __logbl (long double __x) ;
# 143 "/usr/include/bits/mathcalls.h" 3
extern long double powl (long double __x, long double __y) ; extern long double __powl (long double __x, long double __y) ;


extern long double sqrtl (long double __x) ; extern long double __sqrtl (long double __x) ;



extern long double hypotl (long double __x, long double __y) ; extern long double __hypotl (long double __x, long double __y) ;




extern long double cbrtl (long double __x) ; extern long double __cbrtl (long double __x) ;






extern long double ceill (long double __x) ; extern long double __ceill (long double __x) ;


extern long double fabsl (long double __x) __attribute__ ((__const__)); extern long double __fabsl (long double __x) __attribute__ ((__const__));


extern long double floorl (long double __x) ; extern long double __floorl (long double __x) ;


extern long double fmodl (long double __x, long double __y) ; extern long double __fmodl (long double __x, long double __y) ;




extern int __isinfl (long double __value) __attribute__ ((__const__));


extern int __finitel (long double __value) __attribute__ ((__const__));




extern int isinfl (long double __value) __attribute__ ((__const__));


extern int finitel (long double __value) __attribute__ ((__const__));


extern long double dreml (long double __x, long double __y) ; extern long double __dreml (long double __x, long double __y) ;



extern long double significandl (long double __x) ; extern long double __significandl (long double __x) ;




extern long double copysignl (long double __x, long double __y) __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) __attribute__ ((__const__));
# 209 "/usr/include/bits/mathcalls.h" 3
extern int __isnanl (long double __value) __attribute__ ((__const__));



extern int isnanl (long double __value) __attribute__ ((__const__));


extern long double j0l (long double) ; extern long double __j0l (long double) ;
extern long double j1l (long double) ; extern long double __j1l (long double) ;
extern long double jnl (int, long double) ; extern long double __jnl (int, long double) ;
extern long double y0l (long double) ; extern long double __y0l (long double) ;
extern long double y1l (long double) ; extern long double __y1l (long double) ;
extern long double ynl (int, long double) ; extern long double __ynl (int, long double) ;





extern long double erfl (long double) ; extern long double __erfl (long double) ;
extern long double erfcl (long double) ; extern long double __erfcl (long double) ;
extern long double lgammal (long double) ; extern long double __lgammal (long double) ;
# 238 "/usr/include/bits/mathcalls.h" 3
extern long double gammal (long double) ; extern long double __gammal (long double) ;






extern long double lgammal_r (long double, int *__signgamp) ; extern long double __lgammal_r (long double, int *__signgamp) ;






extern long double rintl (long double __x) ; extern long double __rintl (long double __x) ;


extern long double nextafterl (long double __x, long double __y) __attribute__ ((__const__)); extern long double __nextafterl (long double __x, long double __y) __attribute__ ((__const__));





extern long double remainderl (long double __x, long double __y) ; extern long double __remainderl (long double __x, long double __y) ;



extern long double scalbl (long double __x, long double __n) ; extern long double __scalbl (long double __x, long double __n) ;




extern long double scalbnl (long double __x, int __n) ; extern long double __scalbnl (long double __x, int __n) ;



extern int ilogbl (long double __x) ; extern int __ilogbl (long double __x) ;
# 100 "/usr/include/math.h" 2 3
# 113 "/usr/include/math.h" 3
extern int signgam;
# 240 "/usr/include/math.h" 3
typedef enum
{
  _IEEE_ = -1,
  _SVID_,
  _XOPEN_,
  _POSIX_,
  _ISOC_
} _LIB_VERSION_TYPE;




extern _LIB_VERSION_TYPE _LIB_VERSION;
# 265 "/usr/include/math.h" 3
struct exception

  {
    int type;
    char *name;
    double arg1;
    double arg2;
    double retval;
  };




extern int matherr (struct exception *__exc);
# 350 "/usr/include/math.h" 3
# 1 "/usr/include/bits/mathinline.h" 1 3
# 291 "/usr/include/bits/mathinline.h" 3
extern __inline double __sgn (double) ; extern __inline double __sgn (double __x) { return __x == 0.0 ? 0.0 : (__x > 0.0 ? 1.0 : -1.0); } extern __inline float __sgnf (float) ; extern __inline float __sgnf (float __x) { return __x == 0.0 ? 0.0 : (__x > 0.0 ? 1.0 : -1.0); } extern __inline long double __sgnl (long double) ; extern __inline long double __sgnl (long double __x) { return __x == 0.0 ? 0.0 : (__x > 0.0 ? 1.0 : -1.0); }




extern __inline double __pow2 (double) ; extern __inline double __pow2 (double __x) { register long double __value; register long double __exponent; __extension__ long long int __p = (long long int) __x; if (__x == (long double) __p) { __asm __volatile__ ("fscale" : "=t" (__value) : "0" (1.0), "u" (__x)); return __value; } __asm __volatile__ ("fld	%%st(0)\n\t" "frndint			# int(x)\n\t" "fxch\n\t" "fsub	%%st(1)		# fract(x)\n\t" "f2xm1			# 2^(fract(x)) - 1\n\t" : "=t" (__value), "=u" (__exponent) : "0" (__x)); __value += 1.0; __asm __volatile__ ("fscale" : "=t" (__value) : "0" (__value), "u" (__exponent)); return __value; } extern __inline float __pow2f (float) ; extern __inline float __pow2f (float __x) { register long double __value; register long double __exponent; __extension__ long long int __p = (long long int) __x; if (__x == (long double) __p) { __asm __volatile__ ("fscale" : "=t" (__value) : "0" (1.0), "u" (__x)); return __value; } __asm __volatile__ ("fld	%%st(0)\n\t" "frndint			# int(x)\n\t" "fxch\n\t" "fsub	%%st(1)		# fract(x)\n\t" "f2xm1			# 2^(fract(x)) - 1\n\t" : "=t" (__value), "=u" (__exponent) : "0" (__x)); __value += 1.0; __asm __volatile__ ("fscale" : "=t" (__value) : "0" (__value), "u" (__exponent)); return __value; } extern __inline long double __pow2l (long double) ; extern __inline long double __pow2l (long double __x) { register long double __value; register long double __exponent; __extension__ long long int __p = (long long int) __x; if (__x == (long double) __p) { __asm __volatile__ ("fscale" : "=t" (__value) : "0" (1.0), "u" (__x)); return __value; } __asm __volatile__ ("fld	%%st(0)\n\t" "frndint			# int(x)\n\t" "fxch\n\t" "fsub	%%st(1)		# fract(x)\n\t" "f2xm1			# 2^(fract(x)) - 1\n\t" : "=t" (__value), "=u" (__exponent) : "0" (__x)); __value += 1.0; __asm __volatile__ ("fscale" : "=t" (__value) : "0" (__value), "u" (__exponent)); return __value; }
# 385 "/usr/include/bits/mathinline.h" 3
extern __inline long double __expm1l (long double __x) { register long double __value; register long double __exponent; register long double __temp; __asm __volatile__ ("fldl2e			# e^x - 1 = 2^(x * log2(e)) - 1\n\t" "fmul	%%st(1)		# x * log2(e)\n\t" "fst	%%st(1)\n\t" "frndint			# int(x * log2(e))\n\t" "fxch\n\t" "fsub	%%st(1)		# fract(x * log2(e))\n\t" "f2xm1			# 2^(fract(x * log2(e))) - 1\n\t" "fscale			# 2^(x * log2(e)) - 2^(int(x * log2(e)))\n\t" : "=t" (__value), "=u" (__exponent) : "0" (__x)); __asm __volatile__ ("fscale			# 2^int(x * log2(e))\n\t" : "=t" (__temp) : "0" (1.0), "u" (__exponent)); __temp -= 1.0; return __temp + __value ? __temp + __value : __x; }
# 405 "/usr/include/bits/mathinline.h" 3
extern __inline double exp (double __x) { register long double __value; register long double __exponent; __asm __volatile__ ("fldl2e			# e^x = 2^(x * log2(e))\n\t" "fmul	%%st(1)		# x * log2(e)\n\t" "fst	%%st(1)\n\t" "frndint			# int(x * log2(e))\n\t" "fxch\n\t" "fsub	%%st(1)		# fract(x * log2(e))\n\t" "f2xm1			# 2^(fract(x * log2(e))) - 1\n\t" : "=t" (__value), "=u" (__exponent) : "0" (__x)); __value += 1.0; __asm __volatile__ ("fscale" : "=t" (__value) : "0" (__value), "u" (__exponent)); return __value; } extern __inline float expf (float __x) { register long double __value; register long double __exponent; __asm __volatile__ ("fldl2e			# e^x = 2^(x * log2(e))\n\t" "fmul	%%st(1)		# x * log2(e)\n\t" "fst	%%st(1)\n\t" "frndint			# int(x * log2(e))\n\t" "fxch\n\t" "fsub	%%st(1)		# fract(x * log2(e))\n\t" "f2xm1			# 2^(fract(x * log2(e))) - 1\n\t" : "=t" (__value), "=u" (__exponent) : "0" (__x)); __value += 1.0; __asm __volatile__ ("fscale" : "=t" (__value) : "0" (__value), "u" (__exponent)); return __value; } extern __inline long double expl (long double __x) { register long double __value; register long double __exponent; __asm __volatile__ ("fldl2e			# e^x = 2^(x * log2(e))\n\t" "fmul	%%st(1)		# x * log2(e)\n\t" "fst	%%st(1)\n\t" "frndint			# int(x * log2(e))\n\t" "fxch\n\t" "fsub	%%st(1)		# fract(x * log2(e))\n\t" "f2xm1			# 2^(fract(x * log2(e))) - 1\n\t" : "=t" (__value), "=u" (__exponent) : "0" (__x)); __value += 1.0; __asm __volatile__ ("fscale" : "=t" (__value) : "0" (__value), "u" (__exponent)); return __value; }
extern __inline long double __expl (long double __x) { register long double __value; register long double __exponent; __asm __volatile__ ("fldl2e			# e^x = 2^(x * log2(e))\n\t" "fmul	%%st(1)		# x * log2(e)\n\t" "fst	%%st(1)\n\t" "frndint			# int(x * log2(e))\n\t" "fxch\n\t" "fsub	%%st(1)		# fract(x * log2(e))\n\t" "f2xm1			# 2^(fract(x * log2(e))) - 1\n\t" : "=t" (__value), "=u" (__exponent) : "0" (__x)); __value += 1.0; __asm __volatile__ ("fscale" : "=t" (__value) : "0" (__value), "u" (__exponent)); return __value; }


extern __inline double tan (double __x) { register long double __value; register long double __value2 __attribute__ ((__unused__)); __asm __volatile__ ("fptan" : "=t" (__value2), "=u" (__value) : "0" (__x)); return __value; } extern __inline float tanf (float __x) { register long double __value; register long double __value2 __attribute__ ((__unused__)); __asm __volatile__ ("fptan" : "=t" (__value2), "=u" (__value) : "0" (__x)); return __value; } extern __inline long double tanl (long double __x) { register long double __value; register long double __value2 __attribute__ ((__unused__)); __asm __volatile__ ("fptan" : "=t" (__value2), "=u" (__value) : "0" (__x)); return __value; }
# 425 "/usr/include/bits/mathinline.h" 3
extern __inline double atan2 (double __y, double __x) { register long double __value; __asm __volatile__ ("fpatan" : "=t" (__value) : "0" (__x), "u" (__y) : "st(1)"); return __value; } extern __inline float atan2f (float __y, float __x) { register long double __value; __asm __volatile__ ("fpatan" : "=t" (__value) : "0" (__x), "u" (__y) : "st(1)"); return __value; } extern __inline long double atan2l (long double __y, long double __x) { register long double __value; __asm __volatile__ ("fpatan" : "=t" (__value) : "0" (__x), "u" (__y) : "st(1)"); return __value; }
extern __inline long double __atan2l (long double __y, long double __x) { register long double __value; __asm __volatile__ ("fpatan" : "=t" (__value) : "0" (__x), "u" (__y) : "st(1)"); return __value; }


extern __inline double fmod (double __x, double __y) { register long double __value; __asm __volatile__ ("1:	fprem\n\t" "fnstsw	%%ax\n\t" "sahf\n\t" "jp	1b" : "=t" (__value) : "0" (__x), "u" (__y) : "ax", "cc"); return __value; } extern __inline float fmodf (float __x, float __y) { register long double __value; __asm __volatile__ ("1:	fprem\n\t" "fnstsw	%%ax\n\t" "sahf\n\t" "jp	1b" : "=t" (__value) : "0" (__x), "u" (__y) : "ax", "cc"); return __value; } extern __inline long double fmodl (long double __x, long double __y) { register long double __value; __asm __volatile__ ("1:	fprem\n\t" "fnstsw	%%ax\n\t" "sahf\n\t" "jp	1b" : "=t" (__value) : "0" (__x), "u" (__y) : "ax", "cc"); return __value; }
# 440 "/usr/include/bits/mathinline.h" 3
extern __inline double sqrt (double __x) { register double __result; __asm __volatile__ ("fsqrt" : "=t" (__result) : "0" (__x)); return __result; } extern __inline float sqrtf (float __x) { register float __result; __asm __volatile__ ("fsqrt" : "=t" (__result) : "0" (__x)); return __result; } extern __inline long double sqrtl (long double __x) { register long double __result; __asm __volatile__ ("fsqrt" : "=t" (__result) : "0" (__x)); return __result; }
extern __inline long double __sqrtl (long double __x) { register long double __result; __asm __volatile__ ("fsqrt" : "=t" (__result) : "0" (__x)); return __result; }


extern __inline double fabs (double __x) { return __builtin_fabs (__x); }
extern __inline float fabsf (float __x) { return __builtin_fabsf (__x); }
extern __inline long double fabsl (long double __x) { return __builtin_fabsl (__x); }
extern __inline long double __fabsl (long double __x) { return __builtin_fabsl (__x); }







extern __inline double sin (double __x) { register double __result; __asm __volatile__ ("fsin" : "=t" (__result) : "0" (__x)); return __result; } extern __inline float sinf (float __x) { register float __result; __asm __volatile__ ("fsin" : "=t" (__result) : "0" (__x)); return __result; } extern __inline long double sinl (long double __x) { register long double __result; __asm __volatile__ ("fsin" : "=t" (__result) : "0" (__x)); return __result; }

extern __inline double cos (double __x) { register double __result; __asm __volatile__ ("fcos" : "=t" (__result) : "0" (__x)); return __result; } extern __inline float cosf (float __x) { register float __result; __asm __volatile__ ("fcos" : "=t" (__result) : "0" (__x)); return __result; } extern __inline long double cosl (long double __x) { register long double __result; __asm __volatile__ ("fcos" : "=t" (__result) : "0" (__x)); return __result; }

extern __inline double log (double __x) { register double __result; __asm __volatile__ ("fldln2; fxch; fyl2x" : "=t" (__result) : "0" (__x) : "st(1)"); return __result; } extern __inline float logf (float __x) { register float __result; __asm __volatile__ ("fldln2; fxch; fyl2x" : "=t" (__result) : "0" (__x) : "st(1)"); return __result; } extern __inline long double logl (long double __x) { register long double __result; __asm __volatile__ ("fldln2; fxch; fyl2x" : "=t" (__result) : "0" (__x) : "st(1)"); return __result; }
extern __inline double log10 (double __x) { register double __result; __asm __volatile__ ("fldlg2; fxch; fyl2x" : "=t" (__result) : "0" (__x) : "st(1)"); return __result; } extern __inline float log10f (float __x) { register float __result; __asm __volatile__ ("fldlg2; fxch; fyl2x" : "=t" (__result) : "0" (__x) : "st(1)"); return __result; } extern __inline long double log10l (long double __x) { register long double __result; __asm __volatile__ ("fldlg2; fxch; fyl2x" : "=t" (__result) : "0" (__x) : "st(1)"); return __result; }

extern __inline double asin (double __x) { return __atan2l (__x, __sqrtl (1.0 - __x * __x)); } extern __inline float asinf (float __x) { return __atan2l (__x, __sqrtl (1.0 - __x * __x)); } extern __inline long double asinl (long double __x) { return __atan2l (__x, __sqrtl (1.0 - __x * __x)); }
extern __inline double acos (double __x) { return __atan2l (__sqrtl (1.0 - __x * __x), __x); } extern __inline float acosf (float __x) { return __atan2l (__sqrtl (1.0 - __x * __x), __x); } extern __inline long double acosl (long double __x) { return __atan2l (__sqrtl (1.0 - __x * __x), __x); }


extern __inline double atan (double __x) { register double __result; __asm __volatile__ ("fld1; fpatan" : "=t" (__result) : "0" (__x) : "st(1)"); return __result; } extern __inline float atanf (float __x) { register float __result; __asm __volatile__ ("fld1; fpatan" : "=t" (__result) : "0" (__x) : "st(1)"); return __result; } extern __inline long double atanl (long double __x) { register long double __result; __asm __volatile__ ("fld1; fpatan" : "=t" (__result) : "0" (__x) : "st(1)"); return __result; }

extern __inline long double __sgn1l (long double) ; extern __inline long double __sgn1l (long double __x) { __extension__ union { long double __xld; unsigned int __xi[3]; } __n = { __xld: __x }; __n.__xi[2] = (__n.__xi[2] & 0x8000) | 0x3fff; __n.__xi[1] = 0x80000000; __n.__xi[0] = 0; return __n.__xld; }
# 479 "/usr/include/bits/mathinline.h" 3
extern __inline double sinh (double __x) { register long double __exm1 = __expm1l (__fabsl (__x)); return 0.5 * (__exm1 / (__exm1 + 1.0) + __exm1) * __sgn1l (__x); } extern __inline float sinhf (float __x) { register long double __exm1 = __expm1l (__fabsl (__x)); return 0.5 * (__exm1 / (__exm1 + 1.0) + __exm1) * __sgn1l (__x); } extern __inline long double sinhl (long double __x) { register long double __exm1 = __expm1l (__fabsl (__x)); return 0.5 * (__exm1 / (__exm1 + 1.0) + __exm1) * __sgn1l (__x); }



extern __inline double cosh (double __x) { register long double __ex = __expl (__x); return 0.5 * (__ex + 1.0 / __ex); } extern __inline float coshf (float __x) { register long double __ex = __expl (__x); return 0.5 * (__ex + 1.0 / __ex); } extern __inline long double coshl (long double __x) { register long double __ex = __expl (__x); return 0.5 * (__ex + 1.0 / __ex); }



extern __inline double tanh (double __x) { register long double __exm1 = __expm1l (-__fabsl (__x + __x)); return __exm1 / (__exm1 + 2.0) * __sgn1l (-__x); } extern __inline float tanhf (float __x) { register long double __exm1 = __expm1l (-__fabsl (__x + __x)); return __exm1 / (__exm1 + 2.0) * __sgn1l (-__x); } extern __inline long double tanhl (long double __x) { register long double __exm1 = __expm1l (-__fabsl (__x + __x)); return __exm1 / (__exm1 + 2.0) * __sgn1l (-__x); }




extern __inline double floor (double __x) { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0400; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } extern __inline float floorf (float __x) { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0400; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } extern __inline long double floorl (long double __x) { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0400; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; }
# 503 "/usr/include/bits/mathinline.h" 3
extern __inline double ceil (double __x) { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0800; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } extern __inline float ceilf (float __x) { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0800; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } extern __inline long double ceill (long double __x) { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0800; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; }
# 521 "/usr/include/bits/mathinline.h" 3
extern __inline double
ldexp (double __x, int __y)
{
  register long double __value; __asm __volatile__ ("fscale" : "=t" (__value) : "0" (__x), "u" ((long double) __y)); return __value;
}






extern __inline double expm1 (double __x) { register long double __value; register long double __exponent; register long double __temp; __asm __volatile__ ("fldl2e			# e^x - 1 = 2^(x * log2(e)) - 1\n\t" "fmul	%%st(1)		# x * log2(e)\n\t" "fst	%%st(1)\n\t" "frndint			# int(x * log2(e))\n\t" "fxch\n\t" "fsub	%%st(1)		# fract(x * log2(e))\n\t" "f2xm1			# 2^(fract(x * log2(e))) - 1\n\t" "fscale			# 2^(x * log2(e)) - 2^(int(x * log2(e)))\n\t" : "=t" (__value), "=u" (__exponent) : "0" (__x)); __asm __volatile__ ("fscale			# 2^int(x * log2(e))\n\t" : "=t" (__temp) : "0" (1.0), "u" (__exponent)); __temp -= 1.0; return __temp + __value ? __temp + __value : __x; } extern __inline float expm1f (float __x) { register long double __value; register long double __exponent; register long double __temp; __asm __volatile__ ("fldl2e			# e^x - 1 = 2^(x * log2(e)) - 1\n\t" "fmul	%%st(1)		# x * log2(e)\n\t" "fst	%%st(1)\n\t" "frndint			# int(x * log2(e))\n\t" "fxch\n\t" "fsub	%%st(1)		# fract(x * log2(e))\n\t" "f2xm1			# 2^(fract(x * log2(e))) - 1\n\t" "fscale			# 2^(x * log2(e)) - 2^(int(x * log2(e)))\n\t" : "=t" (__value), "=u" (__exponent) : "0" (__x)); __asm __volatile__ ("fscale			# 2^int(x * log2(e))\n\t" : "=t" (__temp) : "0" (1.0), "u" (__exponent)); __temp -= 1.0; return __temp + __value ? __temp + __value : __x; } extern __inline long double expm1l (long double __x) { register long double __value; register long double __exponent; register long double __temp; __asm __volatile__ ("fldl2e			# e^x - 1 = 2^(x * log2(e)) - 1\n\t" "fmul	%%st(1)		# x * log2(e)\n\t" "fst	%%st(1)\n\t" "frndint			# int(x * log2(e))\n\t" "fxch\n\t" "fsub	%%st(1)		# fract(x * log2(e))\n\t" "f2xm1			# 2^(fract(x * log2(e))) - 1\n\t" "fscale			# 2^(x * log2(e)) - 2^(int(x * log2(e)))\n\t" : "=t" (__value), "=u" (__exponent) : "0" (__x)); __asm __volatile__ ("fscale			# 2^int(x * log2(e))\n\t" : "=t" (__temp) : "0" (1.0), "u" (__exponent)); __temp -= 1.0; return __temp + __value ? __temp + __value : __x; }






extern __inline double log1p (double __x) { register long double __value; if (__fabsl (__x) >= 1.0 - 0.5 * 1.41421356237309504880L) __value = logl (1.0 + __x); else __asm __volatile__ ("fldln2\n\t" "fxch\n\t" "fyl2xp1" : "=t" (__value) : "0" (__x) : "st(1)"); return __value; } extern __inline float log1pf (float __x) { register long double __value; if (__fabsl (__x) >= 1.0 - 0.5 * 1.41421356237309504880L) __value = logl (1.0 + __x); else __asm __volatile__ ("fldln2\n\t" "fxch\n\t" "fyl2xp1" : "=t" (__value) : "0" (__x) : "st(1)"); return __value; } extern __inline long double log1pl (long double __x) { register long double __value; if (__fabsl (__x) >= 1.0 - 0.5 * 1.41421356237309504880L) __value = logl (1.0 + __x); else __asm __volatile__ ("fldln2\n\t" "fxch\n\t" "fyl2xp1" : "=t" (__value) : "0" (__x) : "st(1)"); return __value; }
# 553 "/usr/include/bits/mathinline.h" 3
extern __inline double asinh (double __x) { register long double __y = __fabsl (__x); return (log1pl (__y * __y / (__sqrtl (__y * __y + 1.0) + 1.0) + __y) * __sgn1l (__x)); } extern __inline float asinhf (float __x) { register long double __y = __fabsl (__x); return (log1pl (__y * __y / (__sqrtl (__y * __y + 1.0) + 1.0) + __y) * __sgn1l (__x)); } extern __inline long double asinhl (long double __x) { register long double __y = __fabsl (__x); return (log1pl (__y * __y / (__sqrtl (__y * __y + 1.0) + 1.0) + __y) * __sgn1l (__x)); }




extern __inline double acosh (double __x) { return logl (__x + __sqrtl (__x - 1.0) * __sqrtl (__x + 1.0)); } extern __inline float acoshf (float __x) { return logl (__x + __sqrtl (__x - 1.0) * __sqrtl (__x + 1.0)); } extern __inline long double acoshl (long double __x) { return logl (__x + __sqrtl (__x - 1.0) * __sqrtl (__x + 1.0)); }


extern __inline double atanh (double __x) { register long double __y = __fabsl (__x); return -0.5 * log1pl (-(__y + __y) / (1.0 + __y)) * __sgn1l (__x); } extern __inline float atanhf (float __x) { register long double __y = __fabsl (__x); return -0.5 * log1pl (-(__y + __y) / (1.0 + __y)) * __sgn1l (__x); } extern __inline long double atanhl (long double __x) { register long double __y = __fabsl (__x); return -0.5 * log1pl (-(__y + __y) / (1.0 + __y)) * __sgn1l (__x); }




extern __inline double hypot (double __x, double __y) { return __sqrtl (__x * __x + __y * __y); } extern __inline float hypotf (float __x, float __y) { return __sqrtl (__x * __x + __y * __y); } extern __inline long double hypotl (long double __x, long double __y) { return __sqrtl (__x * __x + __y * __y); }

extern __inline double logb (double __x) { register long double __value; register long double __junk; __asm __volatile__ ("fxtract\n\t" : "=t" (__junk), "=u" (__value) : "0" (__x)); return __value; } extern __inline float logbf (float __x) { register long double __value; register long double __junk; __asm __volatile__ ("fxtract\n\t" : "=t" (__junk), "=u" (__value) : "0" (__x)); return __value; } extern __inline long double logbl (long double __x) { register long double __value; register long double __junk; __asm __volatile__ ("fxtract\n\t" : "=t" (__junk), "=u" (__value) : "0" (__x)); return __value; }
# 652 "/usr/include/bits/mathinline.h" 3
extern __inline double drem (double __x, double __y) { register double __value; register int __clobbered; __asm __volatile__ ("1:	fprem1\n\t" "fstsw	%%ax\n\t" "sahf\n\t" "jp	1b" : "=t" (__value), "=&a" (__clobbered) : "0" (__x), "u" (__y) : "cc"); return __value; } extern __inline float dremf (float __x, float __y) { register double __value; register int __clobbered; __asm __volatile__ ("1:	fprem1\n\t" "fstsw	%%ax\n\t" "sahf\n\t" "jp	1b" : "=t" (__value), "=&a" (__clobbered) : "0" (__x), "u" (__y) : "cc"); return __value; } extern __inline long double dreml (long double __x, long double __y) { register double __value; register int __clobbered; __asm __volatile__ ("1:	fprem1\n\t" "fstsw	%%ax\n\t" "sahf\n\t" "jp	1b" : "=t" (__value), "=&a" (__clobbered) : "0" (__x), "u" (__y) : "cc"); return __value; }
# 665 "/usr/include/bits/mathinline.h" 3
extern __inline int
__finite (double __x)
{
  return (__extension__
          (((((union { double __d; int __i[2]; }) {__d: __x}).__i[1]
             | 0x800fffffu) + 1) >> 31));
}



extern __inline double __coshm1 (double) ; extern __inline double __coshm1 (double __x) { register long double __exm1 = __expm1l (__fabsl (__x)); return 0.5 * (__exm1 / (__exm1 + 1.0)) * __exm1; } extern __inline float __coshm1f (float) ; extern __inline float __coshm1f (float __x) { register long double __exm1 = __expm1l (__fabsl (__x)); return 0.5 * (__exm1 / (__exm1 + 1.0)) * __exm1; } extern __inline long double __coshm1l (long double) ; extern __inline long double __coshm1l (long double __x) { register long double __exm1 = __expm1l (__fabsl (__x)); return 0.5 * (__exm1 / (__exm1 + 1.0)) * __exm1; }



extern __inline double __acosh1p (double) ; extern __inline double __acosh1p (double __x) { return log1pl (__x + __sqrtl (__x) * __sqrtl (__x + 2.0)); } extern __inline float __acosh1pf (float) ; extern __inline float __acosh1pf (float __x) { return log1pl (__x + __sqrtl (__x) * __sqrtl (__x + 2.0)); } extern __inline long double __acosh1pl (long double) ; extern __inline long double __acosh1pl (long double __x) { return log1pl (__x + __sqrtl (__x) * __sqrtl (__x + 2.0)); }
# 351 "/usr/include/math.h" 2 3
# 12 "stheader.h" 2
# 1 "/usr/include/vorbis/codec.h" 1 3
# 26 "/usr/include/vorbis/codec.h" 3
# 1 "/usr/include/ogg/ogg.h" 1 3
# 24 "/usr/include/ogg/ogg.h" 3
# 1 "/usr/include/ogg/os_types.h" 1 3
# 67 "/usr/include/ogg/os_types.h" 3
# 1 "/usr/include/sys/types.h" 1 3
# 68 "/usr/include/ogg/os_types.h" 2 3
# 1 "/usr/include/ogg/config_types.h" 1 3




typedef int16_t ogg_int16_t;
typedef int32_t ogg_int32_t;
typedef u_int32_t ogg_uint32_t;
typedef int64_t ogg_int64_t;
# 69 "/usr/include/ogg/os_types.h" 2 3
# 25 "/usr/include/ogg/ogg.h" 2 3

typedef struct {
  long endbyte;
  int endbit;

  unsigned char *buffer;
  unsigned char *ptr;
  long storage;
} oggpack_buffer;



typedef struct {
  unsigned char *header;
  long header_len;
  unsigned char *body;
  long body_len;
} ogg_page;




typedef struct {
  unsigned char *body_data;
  long body_storage;
  long body_fill;
  long body_returned;


  int *lacing_vals;
  ogg_int64_t *granule_vals;


  long lacing_storage;
  long lacing_fill;
  long lacing_packet;
  long lacing_returned;

  unsigned char header[282];
  int header_fill;

  int e_o_s;

  int b_o_s;

  long serialno;
  long pageno;
  ogg_int64_t packetno;




  ogg_int64_t granulepos;

} ogg_stream_state;




typedef struct {
  unsigned char *packet;
  long bytes;
  long b_o_s;
  long e_o_s;

  ogg_int64_t granulepos;

  ogg_int64_t packetno;




} ogg_packet;

typedef struct {
  unsigned char *data;
  int storage;
  int fill;
  int returned;

  int unsynced;
  int headerbytes;
  int bodybytes;
} ogg_sync_state;



extern void oggpack_writeinit(oggpack_buffer *b);
extern void oggpack_reset(oggpack_buffer *b);
extern void oggpack_writeclear(oggpack_buffer *b);
extern void oggpack_readinit(oggpack_buffer *b,unsigned char *buf,int bytes);
extern void oggpack_write(oggpack_buffer *b,unsigned long value,int bits);
extern long oggpack_look(oggpack_buffer *b,int bits);
extern long oggpack_look_huff(oggpack_buffer *b,int bits);
extern long oggpack_look1(oggpack_buffer *b);
extern void oggpack_adv(oggpack_buffer *b,int bits);
extern int oggpack_adv_huff(oggpack_buffer *b,int bits);
extern void oggpack_adv1(oggpack_buffer *b);
extern long oggpack_read(oggpack_buffer *b,int bits);
extern long oggpack_read1(oggpack_buffer *b);
extern long oggpack_bytes(oggpack_buffer *b);
extern long oggpack_bits(oggpack_buffer *b);
extern unsigned char *oggpack_get_buffer(oggpack_buffer *b);



extern int ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op);
extern int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og);
extern int ogg_stream_flush(ogg_stream_state *os, ogg_page *og);



extern int ogg_sync_init(ogg_sync_state *oy);
extern int ogg_sync_clear(ogg_sync_state *oy);
extern int ogg_sync_reset(ogg_sync_state *oy);
extern int ogg_sync_destroy(ogg_sync_state *oy);

extern char *ogg_sync_buffer(ogg_sync_state *oy, long size);
extern int ogg_sync_wrote(ogg_sync_state *oy, long bytes);
extern long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og);
extern int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og);
extern int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og);
extern int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op);
extern int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op);



extern int ogg_stream_init(ogg_stream_state *os,int serialno);
extern int ogg_stream_clear(ogg_stream_state *os);
extern int ogg_stream_reset(ogg_stream_state *os);
extern int ogg_stream_destroy(ogg_stream_state *os);
extern int ogg_stream_eos(ogg_stream_state *os);

extern int ogg_page_version(ogg_page *og);
extern int ogg_page_continued(ogg_page *og);
extern int ogg_page_bos(ogg_page *og);
extern int ogg_page_eos(ogg_page *og);
extern ogg_int64_t ogg_page_granulepos(ogg_page *og);
extern int ogg_page_serialno(ogg_page *og);
extern long ogg_page_pageno(ogg_page *og);
extern int ogg_page_packets(ogg_page *og);

extern void ogg_packet_clear(ogg_packet *op);
# 27 "/usr/include/vorbis/codec.h" 2 3

typedef struct vorbis_info{
  int version;
  int channels;
  long rate;
# 48 "/usr/include/vorbis/codec.h" 3
  long bitrate_upper;
  long bitrate_nominal;
  long bitrate_lower;
  long bitrate_window;

  void *codec_setup;
} vorbis_info;




typedef struct vorbis_dsp_state{
  int analysisp;
  vorbis_info *vi;

  float **pcm;
  float **pcmret;
  int pcm_storage;
  int pcm_current;
  int pcm_returned;

  int preextrapolate;
  int eofflag;

  long lW;
  long W;
  long nW;
  long centerW;

  ogg_int64_t granulepos;
  ogg_int64_t sequence;

  ogg_int64_t glue_bits;
  ogg_int64_t time_bits;
  ogg_int64_t floor_bits;
  ogg_int64_t res_bits;

  void *backend_state;
} vorbis_dsp_state;

typedef struct vorbis_block{

  float **pcm;
  oggpack_buffer opb;

  long lW;
  long W;
  long nW;
  int pcmend;
  int mode;

  int eofflag;
  ogg_int64_t granulepos;
  ogg_int64_t sequence;
  vorbis_dsp_state *vd;



  void *localstore;
  long localtop;
  long localalloc;
  long totaluse;
  struct alloc_chain *reap;


  long glue_bits;
  long time_bits;
  long floor_bits;
  long res_bits;

  void *internal;

} vorbis_block;






struct alloc_chain{
  void *ptr;
  struct alloc_chain *next;
};
# 140 "/usr/include/vorbis/codec.h" 3
typedef struct vorbis_comment{


  char **user_comments;
  int *comment_lengths;
  int comments;
  char *vendor;

} vorbis_comment;
# 165 "/usr/include/vorbis/codec.h" 3
extern void vorbis_info_init(vorbis_info *vi);
extern void vorbis_info_clear(vorbis_info *vi);
extern void vorbis_comment_init(vorbis_comment *vc);
extern void vorbis_comment_add(vorbis_comment *vc, char *comment);
extern void vorbis_comment_add_tag(vorbis_comment *vc,
                                       char *tag, char *contents);
extern char *vorbis_comment_query(vorbis_comment *vc, char *tag, int count);
extern int vorbis_comment_query_count(vorbis_comment *vc, char *tag);
extern void vorbis_comment_clear(vorbis_comment *vc);

extern int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb);
extern int vorbis_block_clear(vorbis_block *vb);
extern void vorbis_dsp_clear(vorbis_dsp_state *v);



extern int vorbis_analysis_init(vorbis_dsp_state *v,vorbis_info *vi);
extern int vorbis_commentheader_out(vorbis_comment *vc, ogg_packet *op);
extern int vorbis_analysis_headerout(vorbis_dsp_state *v,
                                          vorbis_comment *vc,
                                          ogg_packet *op,
                                          ogg_packet *op_comm,
                                          ogg_packet *op_code);
extern float **vorbis_analysis_buffer(vorbis_dsp_state *v,int vals);
extern int vorbis_analysis_wrote(vorbis_dsp_state *v,int vals);
extern int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb);
extern int vorbis_analysis(vorbis_block *vb,ogg_packet *op);


extern int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc,
                                          ogg_packet *op);

extern int vorbis_synthesis_init(vorbis_dsp_state *v,vorbis_info *vi);
extern int vorbis_synthesis(vorbis_block *vb,ogg_packet *op);
extern int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb);
extern int vorbis_synthesis_pcmout(vorbis_dsp_state *v,float ***pcm);
extern int vorbis_synthesis_read(vorbis_dsp_state *v,int samples);
extern long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op);
# 13 "stheader.h" 2
typedef struct {
  ogg_sync_state oy;
  ogg_stream_state os;

  ogg_page og;
  ogg_packet op;

  vorbis_info vi;

  vorbis_comment vc;
  vorbis_dsp_state vd;
  vorbis_block vb;
} ov_struct_t;


typedef struct {
  demux_stream_t *ds;
  unsigned int format;
  codecs_t *codec;
  int inited;

  float timer;
  int samplerate;
  int samplesize;
  int channels;
  int o_bps;
  int i_bps;

  char* a_in_buffer;
  int a_in_buffer_len;
  int a_in_buffer_size;

  char* a_buffer;
  int a_buffer_len;
  int a_buffer_size;
  int sample_format;

  AVIStreamHeader audio;
  WAVEFORMATEX *wf;

  WAVEFORMATEX o_wf;
  HACMSTREAM srcstream;
  int audio_in_minsize;
  int audio_out_minsize;


  void* ac3_frame;
  int pcm_bswap;

  ov_struct_t *ov;

} sh_audio_t;

typedef struct {
  demux_stream_t *ds;
  unsigned int format;
  codecs_t *codec;
  int inited;

  float timer;
  float fps;
  float frametime;
  int i_bps;
  int disp_w,disp_h;

  unsigned int outfmtidx;


  float num_frames;
  int num_frames_decoded;
  char *our_out_buffer;

  AVIStreamHeader video;
  BITMAPINFOHEADER *bih;
  BITMAPINFOHEADER o_bih;
  HIC hic;
} sh_video_t;

sh_audio_t* new_sh_audio(demuxer_t *demuxer,int id);
sh_video_t* new_sh_video(demuxer_t *demuxer,int id);
# 142 "mplayer.c" 2

char* encode_name=0;
char* encode_index_name=0;
int encode_bitrate=0;

int get_video_quality_max(sh_video_t *sh_video);
void set_video_quality(sh_video_t *sh_video,int quality);
int set_video_colors(sh_video_t *sh_video,char *item,int value);


# 1 "parse_es.h" 1




extern unsigned char* videobuffer;
extern int videobuf_len;
extern unsigned char videobuf_code[4];
extern int videobuf_code_len;


int sync_video_packet(demux_stream_t *ds);


int read_video_packet(demux_stream_t *ds);


int skip_video_packet(demux_stream_t *ds);
# 153 "mplayer.c" 2

extern picture_t *picture;

int frameratecode2framerate[16] = {
  0,

  24000*10000/1001, 24*10000,25*10000, 30000*10000/1001, 30*10000,50*10000,60000*10000/1001, 60*10000,

  1*10000,5*10000,10*10000,12*10000,15*10000,0,0
};





# 1 "fifo.c" 1


static int keyb_fifo_put=-1;
static int keyb_fifo_get=-1;

static void make_pipe(int* pr,int* pw){
  int temp[2];
  if(pipe(temp)!=0) printf("Cannot make PIPE!\n");
  *pr=temp[0];
  *pw=temp[1];
}

static inline int my_write(int fd,unsigned char* mem,int len){
  int total=0;
  int len2;
  while(len>0){
    len2=write(fd,mem+total,len); if(len2<=0) break;
    total+=len2;len-=len2;

  }
  return total;
}

static inline int my_read(int fd,unsigned char* mem,int len){
  int total=0;
  int len2;
  while(len>0){
    len2=read(fd,mem+total,len); if(len2<=0) break;
    total+=len2;len-=len2;

  }
  return total;
}


void send_cmd(int fd,int cmd){
  int fifo_cmd=cmd;
  write(fd,&fifo_cmd,4);

}


void mplayer_put_key(int code){
           fd_set rfds;
           struct timeval tv;


           do { int __d0, __d1; __asm__ __volatile__ ("cld; rep; stosl" : "=c" (__d0), "=D" (__d1) : "a" (0), "0" (sizeof (fd_set) / sizeof (__fd_mask)), "1" (&((&rfds)->__fds_bits)[0]) : "memory"); } while (0);
           __asm__ __volatile__ ("btsl %1,%0" : "=m" (((&rfds)->__fds_bits)[((keyb_fifo_put) / (8 * sizeof (__fd_mask)))]) : "r" (((int) (keyb_fifo_put)) % (8 * sizeof (__fd_mask))) : "cc","memory");
           tv.tv_sec = 0;
           tv.tv_usec = 0;


           if(select(keyb_fifo_put+1, 0, &rfds, 0, &tv)){
             write(keyb_fifo_put,&code,4);

           } else {

           }
}

int mplayer_get_key(){
           fd_set rfds;
           struct timeval tv;
           int code=-1;


           do { int __d0, __d1; __asm__ __volatile__ ("cld; rep; stosl" : "=c" (__d0), "=D" (__d1) : "a" (0), "0" (sizeof (fd_set) / sizeof (__fd_mask)), "1" (&((&rfds)->__fds_bits)[0]) : "memory"); } while (0);
           __asm__ __volatile__ ("btsl %1,%0" : "=m" (((&rfds)->__fds_bits)[((keyb_fifo_get) / (8 * sizeof (__fd_mask)))]) : "r" (((int) (keyb_fifo_get)) % (8 * sizeof (__fd_mask))) : "cc","memory");
           tv.tv_sec = 0;
           tv.tv_usec = 0;


           if(select(keyb_fifo_put+1, &rfds, 0, 0, &tv)){
             read(keyb_fifo_get,&code,4);

           }
           return code;
}
# 169 "mplayer.c" 2






static vo_functions_t *video_out=0;

static ao_functions_t *audio_out=0;

static float c_total=0;

double video_time_usage=0;
double vout_time_usage=0;
static double audio_time_usage=0;
static int total_time_usage_start=0;
static int benchmark=0;

static int play_in_bg=0;

extern void avi_fixate();



int divx_quality=0;
static int auto_quality=0;
static int output_quality=0;

int use_gui=0;

int osd_level=2;
char *seek_to_sec=0;
off_t seek_to_byte=0;
int has_audio=1;

char *audio_codec=0;
char *video_codec=0;
int audio_family=-1;
int video_family=-1;





int allow_dshow=1;
# 225 "mplayer.c"
static int audio_id=-1;
static int video_id=-1;
static int dvdsub_id=-1;
static int vcd_track=0;
static char *stream_dump_name=0;
static int stream_dump_type=0;

extern int dvd_title;

int index_mode=-1;
int force_ni=0;

static float default_max_pts_correction=-1;
static float max_pts_correction=0;

int pts_from_bps=1;




float force_fps=0;
int force_srate=0;
float audio_delay=0;
int frame_dropping=0;
int play_n_frames=-1;


char* video_driver=0;
char* audio_driver=0;
static int fullscreen=0;
static int vidmode=0;
static int softzoom=0;
static int flip=-1;
static int screen_size_x=0;
static int screen_size_y=0;
static int screen_size_xy=0;


char *font_name=0;
float font_factor=0.75;
char *sub_name=0;
float sub_delay=0;
float sub_fps=0;
int sub_auto = 1;




float rel_seek_secs=0;
int abs_seek_pos=0;

extern char *vo_subdevice;
extern char *ao_subdevice;

static char* current_module=0;

static unsigned int inited_flags=0;
# 290 "mplayer.c"
void uninit_player(unsigned int mask){
  mask=inited_flags&mask;
  if(mask&1){
    inited_flags&=~1;
    current_module="uninit_vo";



    video_out->uninit();

  }

  if(mask&2){
    inited_flags&=~2;
    current_module="uninit_ao";
    audio_out->uninit();
  }

  if(mask&8){
    inited_flags&=~8;
    current_module="uninit_getch2";

    getch2_disable();
  }


  if(mask&4){
    inited_flags&=~4;
    current_module="uninit_gui";
    mplDone();
  }


  if(mask&32){
    inited_flags&=~32;
    current_module="uninit_encode";
    avi_fixate();
  }
# 337 "mplayer.c"
  current_module=0;

}

void exit_player(char* how){
 total_time_usage_start=GetTimer()-total_time_usage_start;

  uninit_player(0xFFFF);

  current_module="exit_player";

  if(how) mp_msg_c((1<<8)|4, "\nExiting... (%s)\n",how );
  mp_msg_c((1<<8)|6, "max framesize was %d bytes\n",max_framesize );
  if(benchmark){
      double tot=video_time_usage+vout_time_usage+audio_time_usage;
      double total_time_usage=(float)total_time_usage_start*0.000001;
      mp_msg_c((1<<8)|4, "BENCHMARKs: V:%8.3fs VO:%8.3fs A:%8.3fs Sys:%8.3fs = %8.3fs\n", video_time_usage,vout_time_usage,audio_time_usage, total_time_usage-tot,total_time_usage );


      if(total_time_usage>0.0)
      mp_msg_c((1<<8)|4, "BENCHMARK%%: V:%8.4f%% VO:%8.4f%% A:%8.4f%% Sys:%8.4f%% = %8.4f%%\n", 100.0*video_time_usage/total_time_usage, 100.0*vout_time_usage/total_time_usage, 100.0*audio_time_usage/total_time_usage, 100.0*(total_time_usage-tot)/total_time_usage, 100.0 );





  }

  exit(1);
}

void exit_sighandler(int x){
  static int sig_count=0;
  ++sig_count;
  if(sig_count==2) exit(1);
  if(sig_count>2){

    kill(getpid(),9);
  }
  mp_msg_c((1<<8)|0, "\nMPlayer interrupted by signal %d in module: %s \n",x, current_module?current_module:"unknown" );


  exit_player(0);
}

extern stream_t* open_stream(char* filename,int vcd_track,int* file_format);

extern void write_avi_header_1(FILE *f,int fcc,float fps,int width,int height);


extern int init_audio(sh_audio_t *sh_audio);
extern int decode_audio(sh_audio_t *sh_audio,unsigned char *buf,int minlen,int maxlen);
extern void resync_audio_stream(sh_audio_t *sh_audio);
extern void skip_audio_frame(sh_audio_t *sh_audio);


extern int video_read_properties(sh_video_t *sh_video);
extern int init_video(sh_video_t *sh_video);



extern int decode_video(vo_functions_t *video_out,sh_video_t *sh_video,unsigned char *start,int in_size,int drop_frame);


extern int get_video_quality_max(sh_video_t *sh_video);
extern void set_video_quality(sh_video_t *sh_video,int quality);

# 1 "mixer.h" 1






extern int mixer_usemaster;
extern char * mixer_device;

extern void mixer_getvolume( float *l,float *r );
extern void mixer_setvolume( float l,float r );
extern void mixer_incvolume( void );
extern void mixer_decvolume( void );
extern float mixer_getbothvolume( void );
# 405 "mplayer.c" 2
# 1 "cfg-mplayer.h" 1






extern char *fb_dev_name;
extern char *fb_mode_cfgfile;
extern char *fb_mode_name;
extern char *monitor_hfreq_str;
extern char *monitor_vfreq_str;
extern char *monitor_dotclock_str;


extern int z_compression;



extern int sdl_noxv;
extern int sdl_forcexv;



extern int fakemono;







extern int vo_doublebuffering;
extern int vo_fsmode;
extern int vo_dbpp;



extern int sub_unicode;
extern int sub_utf8;



extern int osd_level;


extern char *ao_outputfilename;
extern int ao_pcm_waveheader;


extern char *mDisplayName;



extern int vo_aa_parseoption(struct config * conf, char *opt, char * param);



extern int dvd_title;
extern int dvd_chapter;
extern int dvd_angle;



extern char * skinName;
# 80 "cfg-mplayer.h"
struct config conf[]={

        {"include", cfg_include, 5, 0, 0, 0},
        {"o", "Option -o has been renamed to -vo (video-out), use -vo !\n",
            6, (1<<2), 0, 0},
        {"vo", &video_driver, 3, 0, 0, 0},
        {"ao", &audio_driver, 3, 0, 0, 0},

        {"dsp", "Use -ao oss:dsp_path!\n", 6, (1<<2), 0, 0},
        {"mixer", &mixer_device, 3, 0, 0, 0},
        {"master", &mixer_usemaster, 0, 0, 0, 1},

        {"display", &mDisplayName, 3, 0, 0, 0},

        {"osdlevel", &osd_level, 1, ((1<<0)|(1<<1)), 0, 2 },







        {"dvdkey", "DVD support was not compiled in. See file DOCS/DVD.\n",
            6, (1<<2), 0 , 0},
        {"dvdauth", "DVD support was not compiled in. See file DOCS/DVD.\n",
            6, (1<<2), 0 , 0},



        {"fb", &fb_dev_name, 3, 0, 0, 0},
        {"fbmode", &fb_mode_name, 3, 0, 0, 0},
        {"fbmodeconfig", &fb_mode_cfgfile, 3, 0, 0, 0},
        {"monitor_hfreq", &monitor_hfreq_str, 3, 0, 0, 0},
        {"monitor_vfreq", &monitor_vfreq_str, 3, 0, 0, 0},
        {"monitor_dotclock", &monitor_dotclock_str, 3, 0, 0, 0},

        {"encode", &encode_name, 3, 0, 0, 0},

        {"sub", &sub_name, 3, 0, 0, 0},
        {"subdelay", &sub_delay, 2, 0, 0.0, 10.0},
        {"subfps", &sub_fps, 2, 0, 0.0, 10.0},
        {"noautosub", &sub_auto, 0, 0, 1, 0},
        {"unicode", &sub_unicode, 0, 0, 0, 1},
        {"nounicode", &sub_unicode, 0, 0, 1, 0},
        {"utf8", &sub_utf8, 0, 0, 0, 1},
        {"noutf8", &sub_utf8, 0, 0, 1, 0},


        {"font", &font_name, 3, 0, 0, 0},
        {"ffactor", &font_factor, 2, ((1<<0)|(1<<1)), 0.0, 10.0},

        {"bg", &play_in_bg, 0, 0, 0, 1},
        {"nobg", &play_in_bg, 0, 0, 1, 0},
        {"sb", &seek_to_byte, 1, (1<<0), 0, 0},
        {"ss", &seek_to_sec, 3, (1<<0), 0, 0},
        {"sound", &has_audio, 0, 0, 0, 1},
        {"nosound", &has_audio, 0, 0, 1, 0},
        {"abs", &ao_buffersize, 1, (1<<0), 0, 0},
        {"delay", &audio_delay, 2, ((1<<0)|(1<<1)), -10.0, 10.0},
        {"bps", &pts_from_bps, 0, 0, 0, 1},
        {"nobps", &pts_from_bps, 0, 0, 1, 0},



        {"alsa", "Option -alsa has been removed, new audio code doesn't need it!\n",
            6, 0, 0, 0},
        {"noalsa", "Option -noalsa has been removed, new audio code doesn't need it!\n",
            6, 0, 0, 0},

        {"ni", &force_ni, 0, 0, 0, 1},
        {"noni", &force_ni, 0, 0, 1, 0},

        {"framedrop", &frame_dropping, 0, 0, 0, 1},
        {"hardframedrop", &frame_dropping, 0, 0, 0, 2},
        {"noframedrop", &frame_dropping, 0, 0, 1, 0},

        {"frames", &play_n_frames, 1, (1<<0), 0, 0},
        {"benchmark", &benchmark, 0, 0, 0, 1},

        {"aid", &audio_id, 1, ((1<<0)|(1<<1)), 0, 255},
        {"vid", &video_id, 1, ((1<<0)|(1<<1)), 0, 255},
        {"sid", &dvdsub_id, 1, ((1<<0)|(1<<1)), 0, 31},

        {"stereo", &fakemono, 1, ((1<<0)|(1<<1)), 0, 2},


        {"dumpfile", &stream_dump_name, 3, 0, 0, 0},
        {"dumpaudio", &stream_dump_type, 0, 0, 0, 1},
        {"dumpvideo", &stream_dump_type, 0, 0, 0, 2},
        {"dumpsub", &stream_dump_type, 0, 0, 0, 3},

        {"aofile", &ao_outputfilename, 3, 0, 0, 0},
        {"waveheader", &ao_pcm_waveheader, 0, 0, 0, 1},
        {"nowaveheader", &ao_pcm_waveheader, 0, 0, 1, 0},



        {"mc", &default_max_pts_correction, 2, ((1<<0)|(1<<1)), 0, 10},
        {"fps", &force_fps, 2, (1<<0), 0, 0},
        {"srate", &force_srate, 1, ((1<<0)|(1<<1)), 1000, 8*48000},
        {"afm", &audio_family, 1, ((1<<0)|(1<<1)), 0, 11},
        {"vfm", &video_family, 1, ((1<<0)|(1<<1)), 0, 7},
        {"ac", &audio_codec, 3, 0, 0, 0},
        {"vc", &video_codec, 3, 0, 0, 0},
        {"dshow", &allow_dshow, 0, 0, 0, 1},
        {"nodshow", &allow_dshow, 0, 0, 1, 0},
        {"vcd", &vcd_track, 1, ((1<<0)|(1<<1)), 1, 99},

        {"dvd", &dvd_title, 1, ((1<<0)|(1<<1)), 1, 99},
        {"dvdangle", &dvd_angle, 1, ((1<<0)|(1<<1)), 1, 99},
        {"chapter", &dvd_chapter, 1, ((1<<0)|(1<<1)), 1, 99},



        {"divxq", "Option -divxq has been renamed to -pp (postprocessing), use -pp !\n",
            6, 0, 0, 0},
        {"pp", &divx_quality, 1, ((1<<0)|(1<<1)), 0, 63},
        {"autoq", &auto_quality, 1, ((1<<0)|(1<<1)), 0, 100},
        {"br", &encode_bitrate, 1, ((1<<0)|(1<<1)), 10000, 10000000},

        {"z", &z_compression, 1, ((1<<0)|(1<<1)), 0, 9},


        {"sdl", "Use -vo sdl:driver instead of -vo sdl -sdl driver\n",
            6, 0, 0, 0},
        {"noxv", &sdl_noxv, 0, 0, 0, 1},
        {"forcexv", &sdl_forcexv, 0, 0, 0, 1},
        {"sdla", "Use -ao sdl:driver instead of -ao sdl -sdla driver\n",
            6, 0, 0, 0},

        {"x", &screen_size_x, 1, ((1<<0)|(1<<1)), 0, 4096},
        {"y", &screen_size_y, 1, ((1<<0)|(1<<1)), 0, 4096},
        {"xy", &screen_size_xy, 1, ((1<<0)|(1<<1)), 0, 4096},
        {"vm", &vidmode, 0, 0, 0, 1},
        {"novm", &vidmode, 0, 0, 1, 0},
        {"fs", &fullscreen, 0, 0, 0, 1},
        {"nofs", &fullscreen, 0, 0, 1, 0},
        {"zoom", &softzoom, 0, 0, 0, 1},
        {"nozoom", &softzoom, 0, 0, 1, 0},
        {"flip", &flip, 0, 0, -1, 1},
        {"noflip", &flip, 0, 0, -1, 0},


        {"bpp", &vo_dbpp, 1, ((1<<0)|(1<<1)), 0, 32},
        {"fsmode", &vo_fsmode, 1, ((1<<0)|(1<<1)), 0, 15},
        {"double", &vo_doublebuffering, 0, 0, 0, 1},
        {"nodouble", &vo_doublebuffering, 0, 0, 1, 0},







        {"aa*", vo_aa_parseoption, 7, 0, 0, 0 },


        {"gui", &use_gui, 0, 0, 0, 1},
        {"nogui", &use_gui, 0, 0, 1, 0},

        {"noidx", &index_mode, 0, 0, -1, 0},
        {"idx", &index_mode, 0, 0, -1, 1},
        {"forceidx", &index_mode, 0, 0, -1, 2},


        {"skin", &skinName, 3, 0, 0, 0},


        {"quiet", &quiet, 0, 0, 0, 1},
        {"verbose", &verbose, 1, ((1<<0)|(1<<1)), 0, 100},
        {"v", cfg_inc_verbose, 4, 0, 0, 0},
        {"-help", help_text, 6, (1<<2), 0, 0},
        {"help", help_text, 6, (1<<2), 0, 0},
        {"h", help_text, 6, (1<<2), 0, 0},
        {0, 0, 0, 0, 0, 0}
};
# 406 "mplayer.c" 2

void parse_cfgfiles( void )
{
char *conffile;
int conffile_fd;
if (parse_config_file(conf, "/etc/mplayer.conf") < 0)
  exit(1);
if ((conffile = get_path("")) == 0) {
  mp_msg_c((1<<8)|2, "Can't find HOME dir\n" );
} else {
  mkdir(conffile, 0777);
  free(conffile);
  if ((conffile = get_path("config")) == 0) {
    mp_msg_c((1<<8)|1, "get_path(\"config\") problem\n" );
  } else {
    if ((conffile_fd = open(conffile, 0100 | 0200 | 01, 0666)) != -1) {
      mp_msg_c((1<<8)|4, "Creating config file: %s\n", conffile );
      write(conffile_fd, default_config, strlen(default_config));
      close(conffile_fd);
    }
    if (parse_config_file(conf, conffile) < 0)
      exit(1);
    free(conffile);
  }
}
}

int main(int argc,char* argv[], char *envp[]){


static subtitle* subtitles=0;


static demuxer_t *demuxer=0;

static demux_stream_t *d_audio=0;
static demux_stream_t *d_video=0;
static demux_stream_t *d_dvdsub=0;

static sh_audio_t *sh_audio=0;
static sh_video_t *sh_video=0;


char **filenames=0;
int num_filenames=0;
int curr_filename=0;

char* filename=0;
stream_t* stream=0;
int file_format=0;

int delay_corrected=1;
char* title="MPlayer";


int out_fmt=0;

int osd_visible=100;
int osd_function=0x01;
int osd_last_pts=-303;

int v_bright=50;
int v_cont=50;
int v_hue=50;
int v_saturation=50;



int i;
int use_stdin=0;

int gui_no_filename=0;

  mp_msg_init(5);

  mp_msg_c((1<<8)|4, "%s",banner_text );



  if ( argv[0] )
    if(!__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (argv[0]) && __builtin_constant_p ("gmplayer") && (__s1_len = strlen (argv[0]), __s2_len = strlen ("gmplayer"), (!((size_t)(const void *)((argv[0]) + 1) - (size_t)(const void *)(argv[0]) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("gmplayer") + 1) - (size_t)(const void *)("gmplayer") == 1) || __s2_len >= 4)) ? memcmp ((__const char *) (argv[0]), (__const char *) ("gmplayer"), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_constant_p (argv[0]) && ((size_t)(const void *)((argv[0]) + 1) - (size_t)(const void *)(argv[0]) == 1) && (__s1_len = strlen (argv[0]), __s1_len < 4) ? (__builtin_constant_p ("gmplayer") && ((size_t)(const void *)(("gmplayer") + 1) - (size_t)(const void *)("gmplayer") == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (argv[0]))[0] - ((__const unsigned char *) (__const char *)("gmplayer"))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (argv[0]))[1] - ((__const unsigned char *) (__const char *) ("gmplayer"))[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (argv[0]))[2] - ((__const unsigned char *) (__const char *) ("gmplayer"))[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (argv[0]))[3] - ((__const unsigned char *) (__const char *) ("gmplayer"))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("gmplayer"); register int __result = (((__const unsigned char *) (__const char *) (argv[0]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (argv[0]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (argv[0]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (argv[0]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("gmplayer") && ((size_t)(const void *)(("gmplayer") + 1) - (size_t)(const void *)("gmplayer") == 1) && (__s2_len = strlen ("gmplayer"), __s2_len < 4) ? (__builtin_constant_p (argv[0]) && ((size_t)(const void *)((argv[0]) + 1) - (size_t)(const void *)(argv[0]) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (argv[0]))[0] - ((__const unsigned char *) (__const char *)("gmplayer"))[0]); if (__s2_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (argv[0]))[1] - ((__const unsigned char *) (__const char *) ("gmplayer"))[1]); if (__s2_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (argv[0]))[2] - ((__const unsigned char *) (__const char *) ("gmplayer"))[2]); if (__s2_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (argv[0]))[3] - ((__const unsigned char *) (__const char *) ("gmplayer"))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (argv[0]); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("gmplayer"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("gmplayer"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("gmplayer"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("gmplayer"))[3]); } } __result; }))) : strcmp (argv[0], "gmplayer")))); }) ||
      (strrchr(argv[0],'/') && !__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (strrchr(argv[0],'/')) && __builtin_constant_p ("/gmplayer") && (__s1_len = strlen (strrchr(argv[0],'/')), __s2_len = strlen ("/gmplayer"), (!((size_t)(const void *)((strrchr(argv[0],'/')) + 1) - (size_t)(const void *)(strrchr(argv[0],'/')) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("/gmplayer") + 1) - (size_t)(const void *)("/gmplayer") == 1) || __s2_len >= 4)) ? memcmp ((__const char *) (strrchr(argv[0],'/')), (__const char *) ("/gmplayer"), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_constant_p (strrchr(argv[0],'/')) && ((size_t)(const void *)((strrchr(argv[0],'/')) + 1) - (size_t)(const void *)(strrchr(argv[0],'/')) == 1) && (__s1_len = strlen (strrchr(argv[0],'/')), __s1_len < 4) ? (__builtin_constant_p ("/gmplayer") && ((size_t)(const void *)(("/gmplayer") + 1) - (size_t)(const void *)("/gmplayer") == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (strrchr(argv[0],'/')))[0] - ((__const unsigned char *) (__const char *)("/gmplayer"))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (strrchr(argv[0],'/')))[1] - ((__const unsigned char *) (__const char *) ("/gmplayer"))[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (strrchr(argv[0],'/')))[2] - ((__const unsigned char *) (__const char *) ("/gmplayer"))[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (strrchr(argv[0],'/')))[3] - ((__const unsigned char *) (__const char *) ("/gmplayer"))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("/gmplayer"); register int __result = (((__const unsigned char *) (__const char *) (strrchr(argv[0],'/')))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (strrchr(argv[0],'/')))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (strrchr(argv[0],'/')))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (strrchr(argv[0],'/')))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("/gmplayer") && ((size_t)(const void *)(("/gmplayer") + 1) - (size_t)(const void *)("/gmplayer") == 1) && (__s2_len = strlen ("/gmplayer"), __s2_len < 4) ? (__builtin_constant_p (strrchr(argv[0],'/')) && ((size_t)(const void *)((strrchr(argv[0],'/')) + 1) - (size_t)(const void *)(strrchr(argv[0],'/')) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (strrchr(argv[0],'/')))[0] - ((__const unsigned char *) (__const char *)("/gmplayer"))[0]); if (__s2_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (strrchr(argv[0],'/')))[1] - ((__const unsigned char *) (__const char *) ("/gmplayer"))[1]); if (__s2_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (strrchr(argv[0],'/')))[2] - ((__const unsigned char *) (__const char *) ("/gmplayer"))[2]); if (__s2_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (strrchr(argv[0],'/')))[3] - ((__const unsigned char *) (__const char *) ("/gmplayer"))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (strrchr(argv[0],'/')); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("/gmplayer"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("/gmplayer"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("/gmplayer"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("/gmplayer"))[3]); } } __result; }))) : strcmp (strrchr(argv[0],'/'), "/gmplayer")))); }) ) )
          use_gui=1;

    parse_cfgfiles();
    num_filenames=parse_command_line(conf, argc, argv, envp, &filenames);
    if(num_filenames<0) exit(1);







    if(use_gui && !vo_init()){
      mp_msg_c((1<<8)|2, "MPlayer GUI requires X11!\n" );
      use_gui=0;
    }



    if(video_driver && __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (video_driver) && __builtin_constant_p ("help") && (__s1_len = strlen (video_driver), __s2_len = strlen ("help"), (!((size_t)(const void *)((video_driver) + 1) - (size_t)(const void *)(video_driver) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("help") + 1) - (size_t)(const void *)("help") == 1) || __s2_len >= 4)) ? memcmp ((__const char *) (video_driver), (__const char *) ("help"), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_constant_p (video_driver) && ((size_t)(const void *)((video_driver) + 1) - (size_t)(const void *)(video_driver) == 1) && (__s1_len = strlen (video_driver), __s1_len < 4) ? (__builtin_constant_p ("help") && ((size_t)(const void *)(("help") + 1) - (size_t)(const void *)("help") == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (video_driver))[0] - ((__const unsigned char *) (__const char *)("help"))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (video_driver))[1] - ((__const unsigned char *) (__const char *) ("help"))[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (video_driver))[2] - ((__const unsigned char *) (__const char *) ("help"))[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (video_driver))[3] - ((__const unsigned char *) (__const char *) ("help"))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("help"); register int __result = (((__const unsigned char *) (__const char *) (video_driver))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (video_driver))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (video_driver))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (video_driver))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("help") && ((size_t)(const void *)(("help") + 1) - (size_t)(const void *)("help") == 1) && (__s2_len = strlen ("help"), __s2_len < 4) ? (__builtin_constant_p (video_driver) && ((size_t)(const void *)((video_driver) + 1) - (size_t)(const void *)(video_driver) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (video_driver))[0] - ((__const unsigned char *) (__const char *)("help"))[0]); if (__s2_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (video_driver))[1] - ((__const unsigned char *) (__const char *) ("help"))[1]); if (__s2_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (video_driver))[2] - ((__const unsigned char *) (__const char *) ("help"))[2]); if (__s2_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (video_driver))[3] - ((__const unsigned char *) (__const char *) ("help"))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (video_driver); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("help"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("help"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("help"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("help"))[3]); } } __result; }))) : strcmp (video_driver, "help")))); })==0){
      printf("Available video output drivers:\n");
      i=0;
      while (video_out_drivers[i]) {
        const vo_info_t *info = video_out_drivers[i++]->get_info ();
        printf("\t%s\t%s\n", info->short_name, info->name);
      }
      printf("\n");
      exit(0);
    }

    if(audio_driver && __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (audio_driver) && __builtin_constant_p ("help") && (__s1_len = strlen (audio_driver), __s2_len = strlen ("help"), (!((size_t)(const void *)((audio_driver) + 1) - (size_t)(const void *)(audio_driver) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("help") + 1) - (size_t)(const void *)("help") == 1) || __s2_len >= 4)) ? memcmp ((__const char *) (audio_driver), (__const char *) ("help"), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_constant_p (audio_driver) && ((size_t)(const void *)((audio_driver) + 1) - (size_t)(const void *)(audio_driver) == 1) && (__s1_len = strlen (audio_driver), __s1_len < 4) ? (__builtin_constant_p ("help") && ((size_t)(const void *)(("help") + 1) - (size_t)(const void *)("help") == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (audio_driver))[0] - ((__const unsigned char *) (__const char *)("help"))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (audio_driver))[1] - ((__const unsigned char *) (__const char *) ("help"))[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (audio_driver))[2] - ((__const unsigned char *) (__const char *) ("help"))[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (audio_driver))[3] - ((__const unsigned char *) (__const char *) ("help"))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("help"); register int __result = (((__const unsigned char *) (__const char *) (audio_driver))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (audio_driver))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (audio_driver))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (audio_driver))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("help") && ((size_t)(const void *)(("help") + 1) - (size_t)(const void *)("help") == 1) && (__s2_len = strlen ("help"), __s2_len < 4) ? (__builtin_constant_p (audio_driver) && ((size_t)(const void *)((audio_driver) + 1) - (size_t)(const void *)(audio_driver) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (audio_driver))[0] - ((__const unsigned char *) (__const char *)("help"))[0]); if (__s2_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (audio_driver))[1] - ((__const unsigned char *) (__const char *) ("help"))[1]); if (__s2_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (audio_driver))[2] - ((__const unsigned char *) (__const char *) ("help"))[2]); if (__s2_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (audio_driver))[3] - ((__const unsigned char *) (__const char *) ("help"))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (audio_driver); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("help"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("help"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("help"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("help"))[3]); } } __result; }))) : strcmp (audio_driver, "help")))); })==0){
      printf("Available audio output drivers:\n");
      i=0;
      while (audio_out_drivers[i]) {
        const ao_info_t *info = audio_out_drivers[i++]->info;
        printf("\t%s\t%s\n", info->short_name, info->name);
      }
      printf("\n");
      exit(0);
    }


if(!parse_codec_cfg(get_path("codecs.conf"))){
  if(!parse_codec_cfg("/usr/local/share/mplayer""/codecs.conf")){
    mp_msg_c((1<<8)|3, "(copy/ln etc/codecs.conf (from MPlayer source tree) to ~/.mplayer/codecs.conf)\n" );
    exit(1);
  }
}

    if(audio_codec && __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (audio_codec) && __builtin_constant_p ("help") && (__s1_len = strlen (audio_codec), __s2_len = strlen ("help"), (!((size_t)(const void *)((audio_codec) + 1) - (size_t)(const void *)(audio_codec) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("help") + 1) - (size_t)(const void *)("help") == 1) || __s2_len >= 4)) ? memcmp ((__const char *) (audio_codec), (__const char *) ("help"), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_constant_p (audio_codec) && ((size_t)(const void *)((audio_codec) + 1) - (size_t)(const void *)(audio_codec) == 1) && (__s1_len = strlen (audio_codec), __s1_len < 4) ? (__builtin_constant_p ("help") && ((size_t)(const void *)(("help") + 1) - (size_t)(const void *)("help") == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (audio_codec))[0] - ((__const unsigned char *) (__const char *)("help"))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (audio_codec))[1] - ((__const unsigned char *) (__const char *) ("help"))[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (audio_codec))[2] - ((__const unsigned char *) (__const char *) ("help"))[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (audio_codec))[3] - ((__const unsigned char *) (__const char *) ("help"))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("help"); register int __result = (((__const unsigned char *) (__const char *) (audio_codec))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (audio_codec))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (audio_codec))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (audio_codec))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("help") && ((size_t)(const void *)(("help") + 1) - (size_t)(const void *)("help") == 1) && (__s2_len = strlen ("help"), __s2_len < 4) ? (__builtin_constant_p (audio_codec) && ((size_t)(const void *)((audio_codec) + 1) - (size_t)(const void *)(audio_codec) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (audio_codec))[0] - ((__const unsigned char *) (__const char *)("help"))[0]); if (__s2_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (audio_codec))[1] - ((__const unsigned char *) (__const char *) ("help"))[1]); if (__s2_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (audio_codec))[2] - ((__const unsigned char *) (__const char *) ("help"))[2]); if (__s2_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (audio_codec))[3] - ((__const unsigned char *) (__const char *) ("help"))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (audio_codec); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("help"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("help"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("help"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("help"))[3]); } } __result; }))) : strcmp (audio_codec, "help")))); })==0){
      printf("Available audio codecs:\n");
      list_codecs(1);
      printf("\n");
      exit(0);
    }
    if(video_codec && __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (video_codec) && __builtin_constant_p ("help") && (__s1_len = strlen (video_codec), __s2_len = strlen ("help"), (!((size_t)(const void *)((video_codec) + 1) - (size_t)(const void *)(video_codec) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("help") + 1) - (size_t)(const void *)("help") == 1) || __s2_len >= 4)) ? memcmp ((__const char *) (video_codec), (__const char *) ("help"), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_constant_p (video_codec) && ((size_t)(const void *)((video_codec) + 1) - (size_t)(const void *)(video_codec) == 1) && (__s1_len = strlen (video_codec), __s1_len < 4) ? (__builtin_constant_p ("help") && ((size_t)(const void *)(("help") + 1) - (size_t)(const void *)("help") == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (video_codec))[0] - ((__const unsigned char *) (__const char *)("help"))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (video_codec))[1] - ((__const unsigned char *) (__const char *) ("help"))[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (video_codec))[2] - ((__const unsigned char *) (__const char *) ("help"))[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (video_codec))[3] - ((__const unsigned char *) (__const char *) ("help"))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("help"); register int __result = (((__const unsigned char *) (__const char *) (video_codec))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (video_codec))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (video_codec))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (video_codec))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("help") && ((size_t)(const void *)(("help") + 1) - (size_t)(const void *)("help") == 1) && (__s2_len = strlen ("help"), __s2_len < 4) ? (__builtin_constant_p (video_codec) && ((size_t)(const void *)((video_codec) + 1) - (size_t)(const void *)(video_codec) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (video_codec))[0] - ((__const unsigned char *) (__const char *)("help"))[0]); if (__s2_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (video_codec))[1] - ((__const unsigned char *) (__const char *) ("help"))[1]); if (__s2_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (video_codec))[2] - ((__const unsigned char *) (__const char *) ("help"))[2]); if (__s2_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (video_codec))[3] - ((__const unsigned char *) (__const char *) ("help"))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (video_codec); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("help"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("help"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("help"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("help"))[3]); } } __result; }))) : strcmp (video_codec, "help")))); })==0){
      printf("Available video codecs:\n");
      list_codecs(0);
      printf("\n");
      exit(0);
    }


    if(!num_filenames && !vcd_track && !dvd_title){
      if(!use_gui){

        printf("%s",help_text);
        exit(0);
      } else gui_no_filename=1;
    }


    if(verbose){
      printf("CommandLine:");
      for(i=1;i<argc;i++)printf(" '%s'",argv[i]);
      printf("\n");
      printf("num_filenames: %d\n",num_filenames);
    }

    mp_msg_init(verbose+5);






  if(font_name){
       vo_font=read_font_desc(font_name,font_factor,verbose>1);
       if(!vo_font) mp_msg_c((1<<8)|1, "Can't load font: %s\n",font_name );
  } else {

       vo_font=read_font_desc(get_path("font/font.desc"),font_factor,verbose>1);
       if(!vo_font)
       vo_font=read_font_desc("/usr/local/share/mplayer""/font/font.desc",font_factor,verbose>1);
  }




  if(sub_name){
       int l=strlen(sub_name);
       if ((l>4) && ((0==__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (&sub_name[l-4]) && __builtin_constant_p (".utf") && (__s1_len = strlen (&sub_name[l-4]), __s2_len = strlen (".utf"), (!((size_t)(const void *)((&sub_name[l-4]) + 1) - (size_t)(const void *)(&sub_name[l-4]) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((".utf") + 1) - (size_t)(const void *)(".utf") == 1) || __s2_len >= 4)) ? memcmp ((__const char *) (&sub_name[l-4]), (__const char *) (".utf"), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_constant_p (&sub_name[l-4]) && ((size_t)(const void *)((&sub_name[l-4]) + 1) - (size_t)(const void *)(&sub_name[l-4]) == 1) && (__s1_len = strlen (&sub_name[l-4]), __s1_len < 4) ? (__builtin_constant_p (".utf") && ((size_t)(const void *)((".utf") + 1) - (size_t)(const void *)(".utf") == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (&sub_name[l-4]))[0] - ((__const unsigned char *) (__const char *)(".utf"))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (&sub_name[l-4]))[1] - ((__const unsigned char *) (__const char *) (".utf"))[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (&sub_name[l-4]))[2] - ((__const unsigned char *) (__const char *) (".utf"))[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (&sub_name[l-4]))[3] - ((__const unsigned char *) (__const char *) (".utf"))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (".utf"); register int __result = (((__const unsigned char *) (__const char *) (&sub_name[l-4]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (&sub_name[l-4]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (&sub_name[l-4]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (&sub_name[l-4]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (".utf") && ((size_t)(const void *)((".utf") + 1) - (size_t)(const void *)(".utf") == 1) && (__s2_len = strlen (".utf"), __s2_len < 4) ? (__builtin_constant_p (&sub_name[l-4]) && ((size_t)(const void *)((&sub_name[l-4]) + 1) - (size_t)(const void *)(&sub_name[l-4]) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (&sub_name[l-4]))[0] - ((__const unsigned char *) (__const char *)(".utf"))[0]); if (__s2_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (&sub_name[l-4]))[1] - ((__const unsigned char *) (__const char *) (".utf"))[1]); if (__s2_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (&sub_name[l-4]))[2] - ((__const unsigned char *) (__const char *) (".utf"))[2]); if (__s2_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (&sub_name[l-4]))[3] - ((__const unsigned char *) (__const char *) (".utf"))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (&sub_name[l-4]); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (".utf"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (".utf"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (".utf"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (".utf"))[3]); } } __result; }))) : strcmp (&sub_name[l-4], ".utf")))); }))
                   ||(0==__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (&sub_name[l-4]) && __builtin_constant_p (".UTF") && (__s1_len = strlen (&sub_name[l-4]), __s2_len = strlen (".UTF"), (!((size_t)(const void *)((&sub_name[l-4]) + 1) - (size_t)(const void *)(&sub_name[l-4]) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((".UTF") + 1) - (size_t)(const void *)(".UTF") == 1) || __s2_len >= 4)) ? memcmp ((__const char *) (&sub_name[l-4]), (__const char *) (".UTF"), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_constant_p (&sub_name[l-4]) && ((size_t)(const void *)((&sub_name[l-4]) + 1) - (size_t)(const void *)(&sub_name[l-4]) == 1) && (__s1_len = strlen (&sub_name[l-4]), __s1_len < 4) ? (__builtin_constant_p (".UTF") && ((size_t)(const void *)((".UTF") + 1) - (size_t)(const void *)(".UTF") == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (&sub_name[l-4]))[0] - ((__const unsigned char *) (__const char *)(".UTF"))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (&sub_name[l-4]))[1] - ((__const unsigned char *) (__const char *) (".UTF"))[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (&sub_name[l-4]))[2] - ((__const unsigned char *) (__const char *) (".UTF"))[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (&sub_name[l-4]))[3] - ((__const unsigned char *) (__const char *) (".UTF"))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (".UTF"); register int __result = (((__const unsigned char *) (__const char *) (&sub_name[l-4]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (&sub_name[l-4]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (&sub_name[l-4]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (&sub_name[l-4]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (".UTF") && ((size_t)(const void *)((".UTF") + 1) - (size_t)(const void *)(".UTF") == 1) && (__s2_len = strlen (".UTF"), __s2_len < 4) ? (__builtin_constant_p (&sub_name[l-4]) && ((size_t)(const void *)((&sub_name[l-4]) + 1) - (size_t)(const void *)(&sub_name[l-4]) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (&sub_name[l-4]))[0] - ((__const unsigned char *) (__const char *)(".UTF"))[0]); if (__s2_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (&sub_name[l-4]))[1] - ((__const unsigned char *) (__const char *) (".UTF"))[1]); if (__s2_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (&sub_name[l-4]))[2] - ((__const unsigned char *) (__const char *) (".UTF"))[2]); if (__s2_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (&sub_name[l-4]))[3] - ((__const unsigned char *) (__const char *) (".UTF"))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (&sub_name[l-4]); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (".UTF"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (".UTF"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (".UTF"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (".UTF"))[3]); } } __result; }))) : strcmp (&sub_name[l-4], ".UTF")))); }))))
          sub_utf8=1;
       subtitles=sub_read_file(sub_name);
       if(!subtitles) mp_msg_c((1<<8)|1, "Can't load subtitles: %s\n",sub_name );
  }




  if(use_gui){
       appInit( argc,argv,envp,(void*)mDisplay );
       inited_flags|=4;
       mplShMem->Playing= (gui_no_filename) ? 0 : 1;
  }
# 612 "mplayer.c"
  if ( !use_gui ) load_termcap(0);



make_pipe(&keyb_fifo_get,&keyb_fifo_put);



  signal(15,exit_sighandler);
  signal(1,exit_sighandler);

  signal(2,exit_sighandler);

  signal(3,exit_sighandler);

  signal(7,exit_sighandler);
  signal(11,exit_sighandler);
  signal(4,exit_sighandler);
  signal(8,exit_sighandler);
  signal(6,exit_sighandler);



    curr_filename=0;
play_next_file:
    filename=(num_filenames>0)?filenames[curr_filename]:0;


    if ( use_gui ) {
      if(filename && !mplShMem->FilenameChanged) (__extension__ (__builtin_constant_p (filename) ? (((size_t)(const void *)((filename) + 1) - (size_t)(const void *)(filename) == 1) && strlen (filename) + 1 <= 8 ? __strcpy_small (mplShMem->Filename, __extension__ (((__const unsigned char *) (__const char *) (filename))[0 + 1] << 8 | ((__const unsigned char *) (__const char *) (filename))[0]), __extension__ (((__const unsigned char *) (__const char *) (filename))[4 + 1] << 8 | ((__const unsigned char *) (__const char *) (filename))[4]), __extension__ (((((__const unsigned char *) (__const char *) (filename))[0 + 3] << 8 | ((__const unsigned char *) (__const char *) (filename))[0 + 2]) << 8 | ((__const unsigned char *) (__const char *) (filename))[0 + 1]) << 8 | ((__const unsigned char *) (__const char *) (filename))[0]), __extension__ (((((__const unsigned char *) (__const char *) (filename))[4 + 3] << 8 | ((__const unsigned char *) (__const char *) (filename))[4 + 2]) << 8 | ((__const unsigned char *) (__const char *) (filename))[4 + 1]) << 8 | ((__const unsigned char *) (__const char *) (filename))[4]), strlen (filename) + 1) : (char *) memcpy (mplShMem->Filename, filename, strlen (filename) + 1)) : strcpy (mplShMem->Filename, filename)));

      while(mplShMem->Playing!=1){
        usleep(20000);
        EventHandling();
      }
      if(mplShMem->FilenameChanged){
        filename=mplShMem->Filename;
      }
    }


    if(filename) mp_msg_c((1<<8)|4, "Playing %s\n", filename );



  if(!sub_name){
      if(sub_auto && filename) {
         subtitles=sub_read_file( sub_filename( get_path("sub/"), filename ) );
      }
      if(!subtitles) subtitles=sub_read_file(get_path("default.sub"));
  }


  if(subtitles && stream_dump_type==3) list_sub_file(subtitles);

    stream=0;
    demuxer=0;
    d_audio=0;
    d_video=0;
    sh_audio=0;
    sh_video=0;







    if (video_driver)
        if ((i = __extension__ ({ char __r0, __r1, __r2; (__builtin_constant_p (":") && ((size_t)(const void *)((":") + 1) - (size_t)(const void *)(":") == 1) ? ((__r0 = ((__const char *) (":"))[0], __r0 == '\0') ? strlen (video_driver) : ((__r1 = ((__const char *) (":"))[1], __r1 == '\0') ? __strcspn_c1 (video_driver, __r0) : ((__r2 = ((__const char *) (":"))[2], __r2 == '\0') ? __strcspn_c2 (video_driver, __r0, __r1) : (((__const char *) (":"))[3] == '\0' ? __strcspn_c3 (video_driver, __r0, __r1, __r2) : strcspn (video_driver, ":"))))) : strcspn (video_driver, ":")); })) > 0)
        {
            size_t i2 = strlen(video_driver);

            if (video_driver[i] == ':')
            {
                vo_subdevice = malloc(i2-i);
                if (vo_subdevice != 0)
                    (__extension__ (__builtin_constant_p ((char *)(video_driver+i+1)) && __builtin_constant_p (i2-i) ? (strlen ((char *)(video_driver+i+1)) + 1 >= ((size_t) (i2-i)) ? (char *) memcpy (vo_subdevice, (char *)(video_driver+i+1), i2-i) : strncpy (vo_subdevice, (char *)(video_driver+i+1), i2-i)) : strncpy (vo_subdevice, (char *)(video_driver+i+1), i2-i)));
                video_driver[i] = '\0';
            }

        }
  if(!video_driver)
    video_out=video_out_drivers[0];
  else
  for (i=0; video_out_drivers[i] != 0; i++){
    const vo_info_t *info = video_out_drivers[i]->get_info ();
    if(__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (info->short_name) && __builtin_constant_p (video_driver) && (__s1_len = strlen (info->short_name), __s2_len = strlen (video_driver), (!((size_t)(const void *)((info->short_name) + 1) - (size_t)(const void *)(info->short_name) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((video_driver) + 1) - (size_t)(const void *)(video_driver) == 1) || __s2_len >= 4)) ? memcmp ((__const char *) (info->short_name), (__const char *) (video_driver), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_constant_p (info->short_name) && ((size_t)(const void *)((info->short_name) + 1) - (size_t)(const void *)(info->short_name) == 1) && (__s1_len = strlen (info->short_name), __s1_len < 4) ? (__builtin_constant_p (video_driver) && ((size_t)(const void *)((video_driver) + 1) - (size_t)(const void *)(video_driver) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (info->short_name))[0] - ((__const unsigned char *) (__const char *)(video_driver))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (info->short_name))[1] - ((__const unsigned char *) (__const char *) (video_driver))[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (info->short_name))[2] - ((__const unsigned char *) (__const char *) (video_driver))[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (info->short_name))[3] - ((__const unsigned char *) (__const char *) (video_driver))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (video_driver); register int __result = (((__const unsigned char *) (__const char *) (info->short_name))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (info->short_name))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (info->short_name))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (info->short_name))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (video_driver) && ((size_t)(const void *)((video_driver) + 1) - (size_t)(const void *)(video_driver) == 1) && (__s2_len = strlen (video_driver), __s2_len < 4) ? (__builtin_constant_p (info->short_name) && ((size_t)(const void *)((info->short_name) + 1) - (size_t)(const void *)(info->short_name) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (info->short_name))[0] - ((__const unsigned char *) (__const char *)(video_driver))[0]); if (__s2_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (info->short_name))[1] - ((__const unsigned char *) (__const char *) (video_driver))[1]); if (__s2_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (info->short_name))[2] - ((__const unsigned char *) (__const char *) (video_driver))[2]); if (__s2_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (info->short_name))[3] - ((__const unsigned char *) (__const char *) (video_driver))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (info->short_name); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (video_driver))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (video_driver))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (video_driver))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (video_driver))[3]); } } __result; }))) : strcmp (info->short_name, video_driver)))); }) == 0){
      video_out = video_out_drivers[i];break;
    }
  }

  if(!video_out){
    mp_msg_c((1<<8)|0, "Invalid video output driver name: %s\nUse '-vo help' to get a list of available video drivers.\n",video_driver?video_driver:"?" );
    exit_player("Fatal error");
  }


    if (audio_driver)
        if ((i = __extension__ ({ char __r0, __r1, __r2; (__builtin_constant_p (":") && ((size_t)(const void *)((":") + 1) - (size_t)(const void *)(":") == 1) ? ((__r0 = ((__const char *) (":"))[0], __r0 == '\0') ? strlen (audio_driver) : ((__r1 = ((__const char *) (":"))[1], __r1 == '\0') ? __strcspn_c1 (audio_driver, __r0) : ((__r2 = ((__const char *) (":"))[2], __r2 == '\0') ? __strcspn_c2 (audio_driver, __r0, __r1) : (((__const char *) (":"))[3] == '\0' ? __strcspn_c3 (audio_driver, __r0, __r1, __r2) : strcspn (audio_driver, ":"))))) : strcspn (audio_driver, ":")); })) > 0)
        {
            size_t i2 = strlen(audio_driver);

            if (audio_driver[i] == ':')
            {
                ao_subdevice = malloc(i2-i);
                if (ao_subdevice != 0)
                    (__extension__ (__builtin_constant_p ((char *)(audio_driver+i+1)) && __builtin_constant_p (i2-i) ? (strlen ((char *)(audio_driver+i+1)) + 1 >= ((size_t) (i2-i)) ? (char *) memcpy (ao_subdevice, (char *)(audio_driver+i+1), i2-i) : strncpy (ao_subdevice, (char *)(audio_driver+i+1), i2-i)) : strncpy (ao_subdevice, (char *)(audio_driver+i+1), i2-i)));
                audio_driver[i] = '\0';
            }

        }
  if(!audio_driver)
    audio_out=audio_out_drivers[0];
  else
  for (i=0; audio_out_drivers[i] != 0; i++){
    const ao_info_t *info = audio_out_drivers[i]->info;
    if(__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (info->short_name) && __builtin_constant_p (audio_driver) && (__s1_len = strlen (info->short_name), __s2_len = strlen (audio_driver), (!((size_t)(const void *)((info->short_name) + 1) - (size_t)(const void *)(info->short_name) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((audio_driver) + 1) - (size_t)(const void *)(audio_driver) == 1) || __s2_len >= 4)) ? memcmp ((__const char *) (info->short_name), (__const char *) (audio_driver), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_constant_p (info->short_name) && ((size_t)(const void *)((info->short_name) + 1) - (size_t)(const void *)(info->short_name) == 1) && (__s1_len = strlen (info->short_name), __s1_len < 4) ? (__builtin_constant_p (audio_driver) && ((size_t)(const void *)((audio_driver) + 1) - (size_t)(const void *)(audio_driver) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (info->short_name))[0] - ((__const unsigned char *) (__const char *)(audio_driver))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (info->short_name))[1] - ((__const unsigned char *) (__const char *) (audio_driver))[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (info->short_name))[2] - ((__const unsigned char *) (__const char *) (audio_driver))[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (info->short_name))[3] - ((__const unsigned char *) (__const char *) (audio_driver))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (audio_driver); register int __result = (((__const unsigned char *) (__const char *) (info->short_name))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (info->short_name))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (info->short_name))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (info->short_name))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (audio_driver) && ((size_t)(const void *)((audio_driver) + 1) - (size_t)(const void *)(audio_driver) == 1) && (__s2_len = strlen (audio_driver), __s2_len < 4) ? (__builtin_constant_p (info->short_name) && ((size_t)(const void *)((info->short_name) + 1) - (size_t)(const void *)(info->short_name) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (info->short_name))[0] - ((__const unsigned char *) (__const char *)(audio_driver))[0]); if (__s2_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (info->short_name))[1] - ((__const unsigned char *) (__const char *) (audio_driver))[1]); if (__s2_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (info->short_name))[2] - ((__const unsigned char *) (__const char *) (audio_driver))[2]); if (__s2_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (info->short_name))[3] - ((__const unsigned char *) (__const char *) (audio_driver))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (info->short_name); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (audio_driver))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (audio_driver))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (audio_driver))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (audio_driver))[3]); } } __result; }))) : strcmp (info->short_name, audio_driver)))); }) == 0){
      audio_out = audio_out_drivers[i];break;
    }
  }
  if (!audio_out){
    mp_msg_c((1<<8)|0, "Invalid audio output driver name: %s\nUse '-ao help' to get a list of available audio drivers.\n",audio_driver );
    exit_player("Fatal error");
  }



  current_module="open_stream";
  stream=open_stream(filename,vcd_track,&file_format);
  if(!stream) goto goto_next_file;
  stream->start_pos+=seek_to_byte;

  use_stdin=filename && (!__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (filename) && __builtin_constant_p ("-") && (__s1_len = strlen (filename), __s2_len = strlen ("-"), (!((size_t)(const void *)((filename) + 1) - (size_t)(const void *)(filename) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("-") + 1) - (size_t)(const void *)("-") == 1) || __s2_len >= 4)) ? memcmp ((__const char *) (filename), (__const char *) ("-"), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_constant_p (filename) && ((size_t)(const void *)((filename) + 1) - (size_t)(const void *)(filename) == 1) && (__s1_len = strlen (filename), __s1_len < 4) ? (__builtin_constant_p ("-") && ((size_t)(const void *)(("-") + 1) - (size_t)(const void *)("-") == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (filename))[0] - ((__const unsigned char *) (__const char *)("-"))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (filename))[1] - ((__const unsigned char *) (__const char *) ("-"))[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (filename))[2] - ((__const unsigned char *) (__const char *) ("-"))[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (filename))[3] - ((__const unsigned char *) (__const char *) ("-"))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("-"); register int __result = (((__const unsigned char *) (__const char *) (filename))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (filename))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (filename))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (filename))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("-") && ((size_t)(const void *)(("-") + 1) - (size_t)(const void *)("-") == 1) && (__s2_len = strlen ("-"), __s2_len < 4) ? (__builtin_constant_p (filename) && ((size_t)(const void *)((filename) + 1) - (size_t)(const void *)(filename) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (filename))[0] - ((__const unsigned char *) (__const char *)("-"))[0]); if (__s2_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (filename))[1] - ((__const unsigned char *) (__const char *) ("-"))[1]); if (__s2_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (filename))[2] - ((__const unsigned char *) (__const char *) ("-"))[2]); if (__s2_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (filename))[3] - ((__const unsigned char *) (__const char *) ("-"))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (filename); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("-"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("-"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("-"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("-"))[3]); } } __result; }))) : strcmp (filename, "-")))); }));
# 768 "mplayer.c"
if(!has_audio) audio_id=-2;

current_module="demux_open";

demuxer=demux_open(stream,file_format,audio_id,video_id,dvdsub_id);
if(!demuxer) goto goto_next_file;



d_audio=demuxer->audio;
d_video=demuxer->video;
d_dvdsub=demuxer->sub;


if(stream_dump_type){
  FILE *f;
  demux_stream_t *ds=0;
  current_module="dump";

  switch(stream_dump_type){
  case 1: ds=d_audio;break;
  case 2: ds=d_video;break;
  case 3: ds=d_dvdsub;break;
  }
  if(!ds){
      mp_msg_c((1<<8)|0, "dump: FATAL: selected stream missing!\n" );
      exit_player("Fatal error");
  }

  if(d_audio && d_audio!=ds) {ds_free_packs(d_audio); d_audio->id=-2; }
  if(d_video && d_video!=ds) {ds_free_packs(d_video); d_video->id=-2; }
  if(d_dvdsub && d_dvdsub!=ds) {ds_free_packs(d_dvdsub); d_dvdsub->id=-2; }

  f=fopen(stream_dump_name?stream_dump_name:"stream.dump","wb");
  if(!f){
    mp_msg_c((1<<8)|0, "Can't open dump file!!!\n" );
    exit_player("Fatal error");
  }
  while(!ds->eof){
    unsigned char* start;
    int in_size=ds_get_packet(ds,&start);
    if( (demuxer->file_format==3 || demuxer->file_format==6)
        && stream_dump_type==2) fwrite(&in_size,1,4,f);
    if(in_size>0) fwrite(start,in_size,1,f);
  }
  fclose(f);
  mp_msg_c((1<<8)|4, "core dumped :)\n" );
  exit_player("End of file");
}

sh_audio=d_audio->sh;
sh_video=d_video->sh;

current_module="video_read_properties";

if(sh_video){

  if(!video_read_properties(sh_video)) goto goto_next_file;

  mp_msg_c((1<<8)|4, "[V] filefmt:%d  fourcc:0x%X  size:%dx%d  fps:%5.2f  ftime:=%6.4f\n", demuxer->file_format,sh_video->format, sh_video->disp_w,sh_video->disp_h, sh_video->fps,sh_video->frametime );




  if(!sh_video->fps && !force_fps){
    mp_msg_c((1<<8)|0, "FPS not specified (or invalid) in the header! Use the -fps option!\n" );
    goto goto_next_file;
  }

}

fflush(stdout);

if(!sh_video){
    mp_msg_c((1<<8)|0, "Sorry, no video stream... it's unplayable yet\n" );
    goto goto_next_file;
}



current_module="init_audio_codec";

if(sh_audio){

  sh_audio->codec=0;
  if(audio_family!=-1) mp_msg_c((1<<8)|4, "Trying to force audio codec driver family %d ...\n",audio_family );
  while(1){
    sh_audio->codec=find_codec(sh_audio->format,0,sh_audio->codec,1);
    if(!sh_audio->codec){
      if(audio_family!=-1) {
        sh_audio->codec=0;
        mp_msg_c((1<<8)|1, "Can't find audio codec for forced driver family, fallback to other drivers.\n" );
        audio_family=-1;
        continue;
      }
      mp_msg_c((1<<8)|1, "Can't find codec for audio format 0x%X !\n",sh_audio->format );
      mp_msg_c((1<<8)|3, "*** Try to upgrade %s from etc/codecs.conf\n*** If it's still not OK, then read DOCS/CODECS!\n",get_path("codecs.conf") );
      sh_audio=d_audio->sh=0;
      break;
    }
    if(audio_codec && __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (sh_audio->codec->name) && __builtin_constant_p (audio_codec) && (__s1_len = strlen (sh_audio->codec->name), __s2_len = strlen (audio_codec), (!((size_t)(const void *)((sh_audio->codec->name) + 1) - (size_t)(const void *)(sh_audio->codec->name) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((audio_codec) + 1) - (size_t)(const void *)(audio_codec) == 1) || __s2_len >= 4)) ? memcmp ((__const char *) (sh_audio->codec->name), (__const char *) (audio_codec), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_constant_p (sh_audio->codec->name) && ((size_t)(const void *)((sh_audio->codec->name) + 1) - (size_t)(const void *)(sh_audio->codec->name) == 1) && (__s1_len = strlen (sh_audio->codec->name), __s1_len < 4) ? (__builtin_constant_p (audio_codec) && ((size_t)(const void *)((audio_codec) + 1) - (size_t)(const void *)(audio_codec) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (sh_audio->codec->name))[0] - ((__const unsigned char *) (__const char *)(audio_codec))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (sh_audio->codec->name))[1] - ((__const unsigned char *) (__const char *) (audio_codec))[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (sh_audio->codec->name))[2] - ((__const unsigned char *) (__const char *) (audio_codec))[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (sh_audio->codec->name))[3] - ((__const unsigned char *) (__const char *) (audio_codec))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (audio_codec); register int __result = (((__const unsigned char *) (__const char *) (sh_audio->codec->name))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (sh_audio->codec->name))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (sh_audio->codec->name))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (sh_audio->codec->name))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (audio_codec) && ((size_t)(const void *)((audio_codec) + 1) - (size_t)(const void *)(audio_codec) == 1) && (__s2_len = strlen (audio_codec), __s2_len < 4) ? (__builtin_constant_p (sh_audio->codec->name) && ((size_t)(const void *)((sh_audio->codec->name) + 1) - (size_t)(const void *)(sh_audio->codec->name) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (sh_audio->codec->name))[0] - ((__const unsigned char *) (__const char *)(audio_codec))[0]); if (__s2_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (sh_audio->codec->name))[1] - ((__const unsigned char *) (__const char *) (audio_codec))[1]); if (__s2_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (sh_audio->codec->name))[2] - ((__const unsigned char *) (__const char *) (audio_codec))[2]); if (__s2_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (sh_audio->codec->name))[3] - ((__const unsigned char *) (__const char *) (audio_codec))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (sh_audio->codec->name); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (audio_codec))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (audio_codec))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (audio_codec))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (audio_codec))[3]); } } __result; }))) : strcmp (sh_audio->codec->name, audio_codec)))); })) continue;
    else if(audio_family!=-1 && sh_audio->codec->driver!=audio_family) continue;
    mp_msg_c((1<<8)|4, "%s audio codec: [%s] drv:%d (%s)\n",audio_codec?"Forcing":"Detected",sh_audio->codec->name,sh_audio->codec->driver,sh_audio->codec->info );
    break;
  }
}

if(sh_audio){
  mp_msg_c((1<<8)|6, "Initializing audio codec...\n" );
  if(!init_audio(sh_audio)){
    mp_msg_c((1<<8)|1, "Couldn't initialize audio codec! -> nosound\n" );
    sh_audio=d_audio->sh=0;

    if ( use_gui ) mplShMem->AudioType=0;

  } else {
    mp_msg_c((1<<8)|4, "AUDIO: srate=%d  chans=%d  bps=%d  sfmt=0x%X  ratio: %d->%d\n",sh_audio->samplerate,sh_audio->channels,sh_audio->samplesize, sh_audio->sample_format,sh_audio->i_bps,sh_audio->o_bps );


    if ( use_gui ) mplShMem->AudioType=sh_audio->channels;

  }
}



current_module="init_video_codec";


sh_video->codec=0;
if(video_family!=-1) mp_msg_c((1<<8)|4, "Trying to force video codec driver family %d ...\n",video_family );
while(1){
  sh_video->codec=find_codec(sh_video->format,
    sh_video->bih?((unsigned int*) &sh_video->bih->biCompression):0,sh_video->codec,0);
  if(!sh_video->codec){
    if(video_family!=-1) {
      sh_video->codec=0;
      mp_msg_c((1<<8)|2, "Can't find video codec for forced driver family, fallback to other drivers.\n" );
      video_family=-1;
      continue;
    }
    mp_msg_c((1<<8)|1, "Can't find codec for video format 0x%X !\n",sh_video->format );
    mp_msg_c((1<<8)|3, "*** Try to upgrade %s from etc/codecs.conf\n*** If it's still not OK, then read DOCS/CODECS!\n",get_path("codecs.conf") );
    goto goto_next_file;
  }

  if(!allow_dshow && sh_video->codec->driver==4) continue;
  else if(video_codec && __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (sh_video->codec->name) && __builtin_constant_p (video_codec) && (__s1_len = strlen (sh_video->codec->name), __s2_len = strlen (video_codec), (!((size_t)(const void *)((sh_video->codec->name) + 1) - (size_t)(const void *)(sh_video->codec->name) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((video_codec) + 1) - (size_t)(const void *)(video_codec) == 1) || __s2_len >= 4)) ? memcmp ((__const char *) (sh_video->codec->name), (__const char *) (video_codec), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_constant_p (sh_video->codec->name) && ((size_t)(const void *)((sh_video->codec->name) + 1) - (size_t)(const void *)(sh_video->codec->name) == 1) && (__s1_len = strlen (sh_video->codec->name), __s1_len < 4) ? (__builtin_constant_p (video_codec) && ((size_t)(const void *)((video_codec) + 1) - (size_t)(const void *)(video_codec) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (sh_video->codec->name))[0] - ((__const unsigned char *) (__const char *)(video_codec))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (sh_video->codec->name))[1] - ((__const unsigned char *) (__const char *) (video_codec))[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (sh_video->codec->name))[2] - ((__const unsigned char *) (__const char *) (video_codec))[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (sh_video->codec->name))[3] - ((__const unsigned char *) (__const char *) (video_codec))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (video_codec); register int __result = (((__const unsigned char *) (__const char *) (sh_video->codec->name))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (sh_video->codec->name))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (sh_video->codec->name))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (sh_video->codec->name))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (video_codec) && ((size_t)(const void *)((video_codec) + 1) - (size_t)(const void *)(video_codec) == 1) && (__s2_len = strlen (video_codec), __s2_len < 4) ? (__builtin_constant_p (sh_video->codec->name) && ((size_t)(const void *)((sh_video->codec->name) + 1) - (size_t)(const void *)(sh_video->codec->name) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (sh_video->codec->name))[0] - ((__const unsigned char *) (__const char *)(video_codec))[0]); if (__s2_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (sh_video->codec->name))[1] - ((__const unsigned char *) (__const char *) (video_codec))[1]); if (__s2_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (sh_video->codec->name))[2] - ((__const unsigned char *) (__const char *) (video_codec))[2]); if (__s2_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (sh_video->codec->name))[3] - ((__const unsigned char *) (__const char *) (video_codec))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (sh_video->codec->name); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (video_codec))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (video_codec))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (video_codec))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (video_codec))[3]); } } __result; }))) : strcmp (sh_video->codec->name, video_codec)))); })) continue;
  else if(video_family!=-1 && sh_video->codec->driver!=video_family) continue;
  break;
}

mp_msg_c((1<<8)|4, "%s video codec: [%s] drv:%d (%s)\n",video_codec?"Forcing":"Detected",sh_video->codec->name,sh_video->codec->driver,sh_video->codec->info );

for(i=0;i<16;i++){
    int ret;
    out_fmt=sh_video->codec->outfmt[i];
    if(out_fmt==0xFFFFFFFF) continue;



    ret=video_out->query_format(out_fmt);

    mp_msg_c((1<<8)|7, "vo_debug: query(%s) returned 0x%X\n",vo_format_name(out_fmt),ret );
    if(ret) break;
}
if(i>=16){
    mp_msg_c((1<<8)|0, "Sorry, selected video_out device is incompatible with this codec.\n" );
    goto goto_next_file;
}
sh_video->outfmtidx=i;

if(flip==-1){

    flip=0;
    if(sh_video->codec->outflags[i]&(1<<0))
      if(!(sh_video->codec->outflags[i]&(1<<1)))
         flip=1;
}

mp_msg_c((1<<8)|7, "vo_debug1: out_fmt=%s\n",vo_format_name(out_fmt) );

if(!init_video(sh_video)){
     mp_msg_c((1<<8)|0, "FATAL: Couldn't initialize video codec :(\n" );
     goto goto_next_file;
}

if(auto_quality>0){

    output_quality=get_video_quality_max(sh_video);
    if(auto_quality>output_quality) auto_quality=output_quality;
    else output_quality=auto_quality;
    mp_msg_c((1<<8)|6, "AutoQ: setting quality to %d\n",output_quality );
    set_video_quality(sh_video,output_quality);
}


   if(encode_name){

     FILE *encode_file=fopen(encode_name,"rb");
     if(encode_file){
       fclose(encode_file);
       mp_msg_c((1<<8)|0, "File already exists: %s (don't overwrite your favourite AVI!)\n",encode_name );
       exit_player("Fatal error");
     }
     encode_file=fopen(encode_name,"wb");
     if(!encode_file){
       mp_msg_c((1<<8)|0, "Cannot create file for encoding\n" );
       exit_player("Fatal error");
     }
     write_avi_header_1(encode_file,( (long)(unsigned char)('d') | ( (long)(unsigned char)('i') << 8 ) | ( (long)(unsigned char)('v') << 16 ) | ( (long)(unsigned char)('x') << 24 ) ),sh_video->fps,sh_video->disp_w,sh_video->disp_h);
     fclose(encode_file);
     encode_index_name=malloc(strlen(encode_name)+8);
     (__extension__ (__builtin_constant_p (encode_name) ? (((size_t)(const void *)((encode_name) + 1) - (size_t)(const void *)(encode_name) == 1) && strlen (encode_name) + 1 <= 8 ? __strcpy_small (encode_index_name, __extension__ (((__const unsigned char *) (__const char *) (encode_name))[0 + 1] << 8 | ((__const unsigned char *) (__const char *) (encode_name))[0]), __extension__ (((__const unsigned char *) (__const char *) (encode_name))[4 + 1] << 8 | ((__const unsigned char *) (__const char *) (encode_name))[4]), __extension__ (((((__const unsigned char *) (__const char *) (encode_name))[0 + 3] << 8 | ((__const unsigned char *) (__const char *) (encode_name))[0 + 2]) << 8 | ((__const unsigned char *) (__const char *) (encode_name))[0 + 1]) << 8 | ((__const unsigned char *) (__const char *) (encode_name))[0]), __extension__ (((((__const unsigned char *) (__const char *) (encode_name))[4 + 3] << 8 | ((__const unsigned char *) (__const char *) (encode_name))[4 + 2]) << 8 | ((__const unsigned char *) (__const char *) (encode_name))[4 + 1]) << 8 | ((__const unsigned char *) (__const char *) (encode_name))[4]), strlen (encode_name) + 1) : (char *) memcpy (encode_index_name, encode_name, strlen (encode_name) + 1)) : strcpy (encode_index_name, encode_name)));
     strcat(encode_index_name,".index");
     if((encode_file=fopen(encode_index_name,"wb")))
       fclose(encode_file);
     else encode_index_name=0;
     sh_audio=d_audio->sh=0;
     inited_flags|=32;
   }



current_module="init_libvo";


   if(fullscreen){
     if(vo_init()){

     }
     if(!screen_size_xy) screen_size_xy=vo_screenwidth;
   }


   if(screen_size_xy>0){
     if(screen_size_xy<=8){
       screen_size_x=screen_size_xy*sh_video->disp_w;
       screen_size_y=screen_size_xy*sh_video->disp_h;
     } else {
       screen_size_x=screen_size_xy;
       screen_size_y=screen_size_xy*sh_video->disp_h/sh_video->disp_w;
     }
   } else if(!vidmode){
     if(!screen_size_x) screen_size_x=1;
     if(!screen_size_y) screen_size_y=1;
     if(screen_size_x<=8) screen_size_x*=sh_video->disp_w;
     if(screen_size_y<=8) screen_size_y*=sh_video->disp_h;
   }


   { const vo_info_t *info = video_out->get_info();
     mp_msg_c((1<<8)|4, "VO: [%s] %dx%d => %dx%d %s %s%s%s%s\n",info->short_name, sh_video->disp_w,sh_video->disp_h, screen_size_x,screen_size_y, vo_format_name(out_fmt), fullscreen?"fs ":"", vidmode?"vm ":"", softzoom?"zoom ":"", (flip==1)?"flip ":"" );
# 1030 "mplayer.c"
    mp_msg_c((1<<8)|6, "VO: Description: %s\n",info->name );
    mp_msg_c((1<<8)|6, "VO: Author: %s\n", info->author );
    if(strlen(info->comment) > 0)
        mp_msg_c((1<<8)|6, "VO: Comment: %s\n", info->comment );
   }



   if ( use_gui )
    {
     mplResizeToMovieSize( sh_video->disp_w,sh_video->disp_h );
     moviewidth=screen_size_x=sh_video->disp_w;
     movieheight=screen_size_y=sh_video->disp_h;
    }


   mp_msg_c((1<<8)|6, "video_out->init(%dx%d->%dx%d,flags=%d,'%s',0x%X)\n", sh_video->disp_w,sh_video->disp_h, screen_size_x,screen_size_y, fullscreen|(vidmode<<1)|(softzoom<<2)|(flip<<3), title,out_fmt );
# 1057 "mplayer.c"
   if(video_out->init(sh_video->disp_w,sh_video->disp_h,
                      screen_size_x,screen_size_y,
                      fullscreen|(vidmode<<1)|(softzoom<<2)|(flip<<3),
                      title,out_fmt)){

     mp_msg_c((1<<8)|0, "FATAL: Cannot initialize video driver!\n" );
     goto goto_next_file;
   }
   inited_flags|=1;
   mp_msg_c((1<<8)|6, "INFO: Video OUT driver init OK!\n" );

   fflush(stdout);


{



float time_frame=0;
int eof=0;
int force_redraw=0;

int grab_frames=0;
char osd_text_buffer[64];
int drop_frame=0;
int drop_frame_cnt=0;

float AV_delay=0;
double cvideo_base_vtime;
double cvideo_base_vframe;
double vdecode_time;



  current_module="setup_audio";

if(sh_audio){

  const ao_info_t *info=audio_out->info;
  mp_msg_c((1<<8)|4, "AO: [%s] %iHz %s %s\n", info->short_name, force_srate?force_srate:sh_audio->samplerate, sh_audio->channels>1?"Stereo":"Mono", audio_out_format_name(sh_audio->sample_format) );





   mp_msg_c((1<<8)|6, "AO: Description: %s\nAO: Author: %s\n", info->name, info->author );



   if(strlen(info->comment) > 0)
      mp_msg_c((1<<8)|6, "AO: Comment: %s\n", info->comment );
  if(!audio_out->init(force_srate?force_srate:sh_audio->samplerate,
      sh_audio->channels,sh_audio->sample_format,0)){
    mp_msg_c((1<<8)|1, "couldn't open/init audio device -> NOSOUND\n" );
    sh_audio=d_audio->sh=0;
  } else {
    inited_flags|=2;
  }
# 1125 "mplayer.c"
}

  sh_video->timer=0;
  if(sh_audio) sh_audio->timer=-audio_delay;

if(!sh_audio){
  mp_msg_c((1<<8)|4, "Audio: no sound!!!\n" );
  if(verbose) mp_msg_c((1<<8)|6, "Freeing %d unused audio chunks\n",d_audio->packs );
  ds_free_packs(d_audio);
  d_audio->id=-2;
  if(audio_out) uninit_player(2);
}

  current_module=0;

if(demuxer->file_format!=3) pts_from_bps=0;
if(force_fps){
  sh_video->fps=force_fps;
  sh_video->frametime=1.0f/sh_video->fps;
  mp_msg_c((1<<8)|4, "FPS forced to be %5.3f  (ftime: %5.3f)\n",sh_video->fps,sh_video->frametime );
}



mp_msg_c((1<<8)|4, "Start playing...\n" );fflush(stdout);

if(!use_stdin){
  getch2_enable();
  inited_flags|=8;
}

InitTimer();

total_time_usage_start=GetTimer();

while(!eof){
    unsigned int aq_total_time=GetTimer();
    float aq_sleep_time=0;

    if(play_n_frames>=0){
      --play_n_frames;
      if(play_n_frames<0) exit_player("Requested number of frames played");
    }


while(sh_audio){
  unsigned int t;
  int playsize=audio_out->get_space();

  if(!playsize) break;

  if(playsize>65536) playsize=65536;



  current_module="decode_audio";
  t=GetTimer();
  while(sh_audio->a_buffer_len<playsize && !d_audio->eof){
    int ret=decode_audio(sh_audio,&sh_audio->a_buffer[sh_audio->a_buffer_len],
        playsize-sh_audio->a_buffer_len,sh_audio->a_buffer_size-sh_audio->a_buffer_len);
    if(ret>0) sh_audio->a_buffer_len+=ret; else break;
  }
  current_module=0;
  t=GetTimer()-t;audio_time_usage+=t*0.000001;

  if(playsize>sh_audio->a_buffer_len) playsize=sh_audio->a_buffer_len;

  playsize=audio_out->play(sh_audio->a_buffer,playsize,0);

  if(playsize>0){
      sh_audio->a_buffer_len-=playsize;
      memcpy(sh_audio->a_buffer,&sh_audio->a_buffer[playsize],sh_audio->a_buffer_len);
      sh_audio->timer+=playsize/(float)(sh_audio->o_bps);
  }

  break;
}
# 1225 "mplayer.c"
cvideo_base_vframe=sh_video->timer;
cvideo_base_vtime=video_time_usage;

if(1)
  while(1){

    float frame_time=1;
    float pts1=d_video->pts;
    int blit_frame=0;

    current_module="decode_video";



  vdecode_time=video_time_usage;

  if(demuxer->file_format==1 || demuxer->file_format==2){
        int in_frame=0;
        float newfps;

        while(videobuf_len<0x100000 -(224*1024+4)){
          int i=sync_video_packet(d_video);
          void* buffer=&videobuffer[videobuf_len+4];
          if(in_frame){
            if(i<0x101 || i>=0x1B0){


              videobuffer[videobuf_len+0]=0;
              videobuffer[videobuf_len+1]=0;
              videobuffer[videobuf_len+2]=1;
              videobuffer[videobuf_len+3]=0xFF;
              videobuf_len+=4;

              if(!i) eof=2;
              break;
            }
          } else {

            if(i>=0x101 && i<0x1B0) in_frame=1;
            else if(!i){ eof=3; break;}
          }
          if(grab_frames==2 && (i==0x1B3 || i==0x1B8)) grab_frames=1;
          if(!read_video_packet(d_video)){ eof=4; break;}

          if(sh_video->codec->driver!=1){

            switch(i){
              case 0x1B3: header_process_sequence_header (picture, buffer);break;
              case 0x1B5: header_process_extension (picture, buffer);break;
            }
          }
        }

        if(videobuf_len>max_framesize) max_framesize=videobuf_len;

        if(grab_frames==1){
              FILE *f=fopen("grab.mpg","ab");
              fwrite(videobuffer,videobuf_len-4,1,f);
              fclose(f);
        }

    blit_frame=decode_video(video_out,sh_video,videobuffer,videobuf_len,drop_frame);


    newfps=frameratecode2framerate[picture->frame_rate_code]*0.0001f;
    if((((sh_video->fps-newfps)>=0)?(sh_video->fps-newfps):(-(sh_video->fps-newfps)))>0.01f) if(!force_fps){
            mp_msg_c((1<<8)|2, "Warning! FPS changed %5.3f -> %5.3f  (%f) [%d]  \n",sh_video->fps,newfps,sh_video->fps-newfps,picture->frame_rate_code );
            sh_video->fps=newfps;
            sh_video->frametime=10000.0f/(float)frameratecode2framerate[picture->frame_rate_code];
    }


    frame_time=(100+picture->repeat_count)*0.01f;
    picture->repeat_count=0;
    videobuf_len=0;

  } else {

    unsigned char* start=0;
    int in_size=ds_get_packet(d_video,&start);
    if(in_size<0){ eof=5;break;}
    if(in_size>max_framesize) max_framesize=in_size;
    blit_frame=decode_video(video_out,sh_video,start,in_size,drop_frame);
  }

  vdecode_time=video_time_usage-vdecode_time;




    current_module="draw_osd";
    video_out->draw_osd();


    current_module="av_sync";


    sh_video->num_frames+=frame_time;
    ++sh_video->num_frames_decoded;
    frame_time*=sh_video->frametime;
    if(demuxer->file_format==6 && !force_fps){

        float d=d_video->pts-pts1;
        if(d>=0 && d<5) frame_time=d;
        if(d>0){
          if(verbose)
            if((int)sh_video->fps==1000)
              mp_msg_c((1<<8)|5, "\rASF framerate: %d fps             \n",(int)(1.0f/d) );
          sh_video->frametime=d;
          sh_video->fps=1.0f/d;
        }
    }
    sh_video->timer+=frame_time;
    time_frame+=frame_time;

    if(demuxer->file_format==2) d_video->pts+=frame_time;

                                                                    ;

    if(drop_frame){

      if(sh_audio && !d_audio->eof){
          int delay=audio_out->get_delay();
                                                          ;
          time_frame=sh_video->timer;
          time_frame-=sh_audio->timer-(float)delay/(float)sh_audio->o_bps;
          if(time_frame>-2*frame_time) {
            drop_frame=0;
            mp_msg_c((9<<8)|7, "\nstop frame drop %.2f\n", time_frame );
          }else{
            ++drop_frame_cnt;
            if (verbose > 0 && drop_frame_cnt%10 == 0)
              mp_msg_c((9<<8)|7, "\nstill dropping, %.2f\n", time_frame );
          }
      }

      if(use_gui){
        EventHandling();
      }

      video_out->check_events();
    } else {

      current_module="sleep";

      time_frame-=GetRelativeTime();

      if(sh_audio && !d_audio->eof){
          int delay=audio_out->get_delay();
                                                          ;
          time_frame=sh_video->timer;
          time_frame-=sh_audio->timer-(float)delay/(float)sh_audio->o_bps;

          if(time_frame<-2*frame_time){
              static int drop_message=0;
              drop_frame=frame_dropping;
              ++drop_frame_cnt;
              if(drop_frame_cnt>50 && AV_delay>0.5 && !drop_message){
                  drop_message=1;
                  mp_msg_c((9<<8)|2, "\n************************************************************************" "\n** Your system is too SLOW to play this! try with -framedrop or RTFM! **" "\n************************************************************************\n" );
              }
              mp_msg_c((9<<8)|7, "\nframe drop %d, %.2f\n", drop_frame, time_frame );
          }
      } else {
          if( (time_frame<-3*frame_time || time_frame>3*frame_time) || benchmark)
              time_frame=0;

      }



      aq_sleep_time+=time_frame;


      if(use_gui){
        EventHandling();
      }


      while(time_frame>0.005){
          if(time_frame<=0.020)

             usec_sleep(0);
          else
             usec_sleep(1000000*(time_frame-0.002));

          if(use_gui){
            EventHandling();
          }

          time_frame-=GetRelativeTime();
      }

        current_module="flip_page";



        video_out->check_events();
        if(blit_frame){
           unsigned int t2=GetTimer();
           video_out->flip_page();
           t2=GetTimer()-t2;vout_time_usage+=t2*0.000001f;
        }



    }

    current_module=0;

    if(eof) break;
    if(force_redraw){
      --force_redraw;
      if(!force_redraw) osd_function=0x01;
      continue;
    }






  if(sh_audio){
    float a_pts=0;
    float v_pts=0;


    int delay_bytes=audio_out->get_delay()+sh_audio->a_buffer_len;
    float delay=(float)delay_bytes/(float)sh_audio->o_bps;

    if(pts_from_bps){

        unsigned int samples=(sh_audio->audio.dwSampleSize)?
          ((ds_tell(d_audio)-sh_audio->a_in_buffer_len)/sh_audio->audio.dwSampleSize) :
          (d_audio->pack_no);
        a_pts=samples*(float)sh_audio->audio.dwScale/(float)sh_audio->audio.dwRate;
# 1469 "mplayer.c"
      delay_corrected=1;
    } else {

      a_pts=d_audio->pts;
      if(!delay_corrected) if(a_pts) delay_corrected=1;

      a_pts+=(ds_tell_pts(d_audio)-sh_audio->a_in_buffer_len)/(float)sh_audio->i_bps;


    }
    v_pts=d_video->pts;

                                                                                                                                                     ;

      if(delay_corrected){
        float x;
        AV_delay=(a_pts-delay-audio_delay)-v_pts;
        x=AV_delay*0.1f;
        if(x<-max_pts_correction) x=-max_pts_correction; else
        if(x> max_pts_correction) x= max_pts_correction;
        if(default_max_pts_correction>=0)
          max_pts_correction=default_max_pts_correction;
        else
          max_pts_correction=sh_video->frametime*0.10;
        sh_audio->timer+=x; c_total+=x;
        if(!quiet) mp_msg_c((9<<8)|5, "A:%6.1f V:%6.1f A-V:%7.3f ct:%7.3f  %3d/%3d  %2d%% %2d%% %4.1f%% %d %d\r", a_pts-audio_delay-delay,v_pts,AV_delay,c_total, (int)sh_video->num_frames,(int)sh_video->num_frames_decoded, (sh_video->timer>0.5)?(int)(100.0*video_time_usage/(double)sh_video->timer):0, (sh_video->timer>0.5)?(int)(100.0*vout_time_usage/(double)sh_video->timer):0, (sh_video->timer>0.5)?(100.0*audio_time_usage/(double)sh_video->timer):0 ,drop_frame_cnt ,output_quality );
# 1503 "mplayer.c"
        fflush(stdout);
      }

  } else {


    if(!quiet)
      mp_msg_c((9<<8)|5, "V:%6.1f  %3d  %2d%%  %2d%%  %3.1f%% \r",d_video->pts, (int)sh_video->num_frames, (sh_video->timer>0.5)?(int)(100.0*video_time_usage/(double)sh_video->timer):0, (sh_video->timer>0.5)?(int)(100.0*vout_time_usage/(double)sh_video->timer):0, (sh_video->timer>0.5)?(100.0*audio_time_usage/(double)sh_video->timer):0 );






      fflush(stdout);

  }



if(auto_quality>0){
# 1547 "mplayer.c"
  if(output_quality<auto_quality && aq_sleep_time>0)
      ++output_quality;
  else

  if(output_quality>1 && aq_sleep_time<0)
      --output_quality;
  else
  if(output_quality>0 && aq_sleep_time<-0.050f)
      output_quality=0;

  set_video_quality(sh_video,output_quality);

}


  if(osd_visible){
    if (!--osd_visible){ vo_osd_progbar_type=-1;
       if (osd_function != 0x02)
           osd_function = 0x01;
    }
  }


  if(osd_function==0x02){
      int gui_pause_flag=0;
      mp_msg_c((1<<8)|5, "\n------ PAUSED -------\r" );fflush(stdout);

      if(use_gui) mplShMem->Playing=2;

      if (audio_out && sh_audio)
         audio_out->pause();
         while(



             (use_stdin || getch2(20)<=0) && mplayer_get_key()<=0){

             video_out->check_events();


             if(use_gui){
                EventHandling();
                if(mplShMem->Playing!=2 || (rel_seek_secs || abs_seek_pos))
                  { gui_pause_flag=1; break; }
             }

             if(use_stdin) usec_sleep(1000);
         }
         osd_function=0x01;
      if (audio_out && sh_audio)
        audio_out->resume();

      if(use_gui && !gui_pause_flag) mplShMem->Playing=1;

  }


    if(!force_redraw) break;
  }




{ int c;
  while(



      (!use_stdin && (c=getch2(0))>0) || (c=mplayer_get_key())>0) switch(c){

    case ((0x100 +16)+0):
      osd_function=0x05;
      rel_seek_secs+=10;break;
    case ((0x100 +16)+1):
      osd_function=0x04;
      rel_seek_secs-=10;break;

    case ((0x100 +16)+3):
      osd_function=0x05;
      rel_seek_secs+=60;break;
    case ((0x100 +16)+2):
      osd_function=0x04;
      rel_seek_secs-=60;break;

    case ((0x100)+5):
      rel_seek_secs+=600;break;
    case ((0x100)+6):
      rel_seek_secs-=600;break;

    case '+':
      audio_delay+=0.1;
      if(sh_audio) sh_audio->timer-=0.1;
      break;
    case '-':
      audio_delay-=0.1;
      if(sh_audio) sh_audio->timer+=0.1;
      break;

    case ((0x100)+7):
    case 'q': exit_player("Quit");
    case 13:
      eof=1;
      break;
    case 'g': grab_frames=2;break;

    case 'p':
    case ' ':
      osd_function=0x02;
      break;
    case 'o':
      osd_level=(osd_level+1)%3;
      break;
    case 'z':
      sub_delay -= 0.1;
      break;
    case 'x':
      sub_delay += 0.1;
      break;
    case '9':
    case '0':
    case '*':
    case '/': {
        if(c=='*' || c=='0'){
               mixer_incvolume();
        } else {
               mixer_decvolume();
        }


        if(osd_level){
          osd_visible=sh_video->fps;
          vo_osd_progbar_type=0x09;
          vo_osd_progbar_value=(mixer_getbothvolume()*256.0)/100.0;

        }

      }
      break;
    case 'm':
      mixer_usemaster=!mixer_usemaster;
      break;
# 1704 "mplayer.c"
    case '1':
    case '2':
        if(c=='2'){
            if ( ++v_cont > 100 ) v_cont = 100;
        } else {
            if ( --v_cont < 0 ) v_cont = 0;
        }
        if(set_video_colors(sh_video,"Contrast",v_cont)){

                if(osd_level){
                    osd_visible=sh_video->fps;
                    vo_osd_progbar_type=0x07;
                    vo_osd_progbar_value=((v_cont)<<8)/100;
                }

        }
        break;


    case '3':
    case '4':
        if(c=='4'){
            if ( ++v_bright > 100 ) v_bright = 100;
        } else {
            if ( --v_bright < 0 ) v_bright = 0;
        }
        if(set_video_colors(sh_video,"Brightness",v_bright)){

                if(osd_level){
                    osd_visible=sh_video->fps;
                    vo_osd_progbar_type=0x0A;
                    vo_osd_progbar_value=((v_bright)<<8)/100;
                }

        }
        break;


    case '5':
    case '6':
        if(c=='6'){
            if ( ++v_hue > 100 ) v_hue = 100;
        } else {
            if ( --v_hue < 0 ) v_hue = 0;
        }
        if(set_video_colors(sh_video,"Hue",v_hue)){

                if(osd_level){
                    osd_visible=sh_video->fps;
                    vo_osd_progbar_type=0x0B;
                    vo_osd_progbar_value=((v_hue)<<8)/100;
                }

        }
        break;


    case '7':
    case '8':
        if(c=='8'){
            if ( ++v_saturation > 100 ) v_saturation = 100;
        } else {
            if ( --v_saturation < 0 ) v_saturation = 0;
        }
        if(set_video_colors(sh_video,"Saturation",v_saturation)){

                if(osd_level){
                    osd_visible=sh_video->fps;
                    vo_osd_progbar_type=0x08;
                    vo_osd_progbar_value=((v_saturation)<<8)/100;
                }

        }
        break;


    case 'd':
      frame_dropping=(frame_dropping+1)%3;
      mp_msg_c((1<<8)|6, "== drop: %d ==  \n",frame_dropping );
      break;
  }
}

  if (seek_to_sec) {
    int a,b; float d;

    if (sscanf(seek_to_sec, "%d:%d:%f", &a,&b,&d)==3)
        rel_seek_secs += 3600*a +60*b +d ;
    else if (sscanf(seek_to_sec, "%d:%f", &a, &d)==2)
        rel_seek_secs += 60*a +d;
    else if (sscanf(seek_to_sec, "%f", &d)==1)
        rel_seek_secs += d;

     seek_to_sec = 0;
  }

if(rel_seek_secs || abs_seek_pos){
  current_module="seek";
  if(demux_seek(demuxer,rel_seek_secs,abs_seek_pos)){


      if(sh_audio){
        if(verbose){
            float a_pts=d_audio->pts;
            a_pts+=(ds_tell_pts(d_audio)-sh_audio->a_in_buffer_len)/(float)sh_audio->i_bps;
            mp_msg_c((9<<8)|6, "SEEK: A: %5.3f  V: %5.3f  A-V: %5.3f   \n",a_pts,d_video->pts,a_pts-d_video->pts );
        }
        mp_msg_c((9<<8)|5, "A:%6.1f  V:%6.1f  A-V:%7.3f  ct: ?   \r",d_audio->pts,d_video->pts,0.0f );
      } else {
        mp_msg_c((9<<8)|5, "A: ---   V:%6.1f   \r",d_video->pts );
      }
      fflush(stdout);

      if(sh_audio){
        current_module="seek_audio_reset";
        audio_out->reset();
      }



      if(osd_level){
        int len=((demuxer->movi_end-demuxer->movi_start)>>8);
        if (len>0){
           osd_visible=sh_video->fps;
           vo_osd_progbar_type=0;
           vo_osd_progbar_value=(demuxer->filepos-demuxer->movi_start)/len;
        }
      }


      c_total=0;
      max_pts_correction=0.1;
      osd_visible=sh_video->fps;
      audio_time_usage=0; video_time_usage=0; vout_time_usage=0;
      drop_frame_cnt=0;

  }
  rel_seek_secs=0;
  abs_seek_pos=0;
  current_module=0;
}


      if(use_gui){
        if(demuxer->file_format==3 && sh_video->video.dwLength>2){

          mplShMem->Position=(float)d_video->pack_no*100.0f/sh_video->video.dwLength;
        } else {

          int len=((demuxer->movi_end-demuxer->movi_start));
          int pos=(demuxer->file_format==3)?demuxer->filepos:d_video->pos;
          mplShMem->Position=(len<=0)?0:((float)(pos-demuxer->movi_start) / len * 100.0f);
        }
        mplShMem->TimeSec=d_video->pts;
        if(mplShMem->Playing==0) break;
        if(mplShMem->Playing==2) osd_function=0x02;
        if ( mplShMem->VolumeChanged )
         {
          mixer_setvolume( mplShMem->Volume,mplShMem->Volume );
          mplShMem->VolumeChanged=0;

          if ( osd_level )
           {
            osd_visible=sh_video->fps;
            vo_osd_progbar_type=0x09;
            vo_osd_progbar_value=( ( mplShMem->Volume ) * 256.0 ) / 100.0;
           }

         }
        mplShMem->Volume=(float)mixer_getbothvolume();
      }





  if(osd_level>=2){
      int pts=d_video->pts;
      if(pts==osd_last_pts-1) ++pts; else osd_last_pts=pts;
      vo_osd_text=osd_text_buffer;
      sprintf(vo_osd_text,"%c %02d:%02d:%02d",osd_function,pts/3600,(pts/60)%60,pts%60);
  } else {
      vo_osd_text=0;
  }






  if(subtitles && d_video->pts>0){
      float pts=d_video->pts;
      if(sub_fps==0) sub_fps=sh_video->fps;
      current_module="find_sub";
      find_sub(subtitles,sub_uses_time?(100*(pts+sub_delay)):((pts+sub_delay)*sub_fps));
      current_module=0;
  }



  { unsigned char* packet=0;
    int len=ds_get_packet_sub(d_dvdsub,&packet);
    if(len>=2){
      int len2;
      len2=(packet[0]<<8)+packet[1];
      mp_msg_c((1<<8)|6, "\rDVD sub: %d / %d  \n",len,len2 );
      if(len==len2)
        spudec_decode(packet,len);
      else
        mp_msg_c((1<<8)|6, "fragmented dvd-subs not yet supported!!!\n" );
    } else if(len>=0) {
      mp_msg_c((1<<8)|6, "invalid dvd sub\n" );
    }
  }

}

mp_msg_c((0<<8)|6, "EOF code: %d  \n",eof );

}


if(curr_filename+1<num_filenames || use_gui){


  uninit_player(0xFFFF -(4 +16));

}

goto_next_file:


      if(use_gui)
       {
        mplStop();
       }


if(use_gui || ++curr_filename<num_filenames){

  current_module="uninit_vcodec";
  if(sh_video) uninit_video(sh_video);

  current_module="free_demuxer";
  if(demuxer) free_demuxer(demuxer);

  current_module="free_stream";
  if(stream) free_stream(stream);

  video_out=0;
  audio_out=0;

  goto play_next_file;
}

exit_player("End of file");

return 1;
}

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]