view libmpdemux/demux_roq.c @ 22002:ebd2d5efb11b
filename double-conversion, especially usefull for CJK users :-)
Patch by Zuxy Meng <zuxy.meng@gmail.com>
date: Oct 25, 2006 2:20 AM
subject: [MPlayer-dev-eng] [PATCH] Filename double-conversion
author
gpoirier
date
Fri, 26 Jan 2007 09:57:09 +0000 (2007-01-26)
parents
83c3afeab35d
children
4d81dbdf46b9
line source
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 /*
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 RoQ file demuxer for the MPlayer program
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 by Mike Melanson
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 based on Dr. Tim Ferguson's RoQ document found at:
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 http://www.csse.monash.edu.au/~timf/videocodec.html
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 */
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #include <stdio.h>
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #include <stdlib.h>
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #include <unistd.h>
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #include "config.h"
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #include "mp_msg.h"
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #include "help_mp.h"
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #include "stream.h"
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #include "demuxer.h"
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #include "stheader.h"
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #define RoQ_INFO 0x1001
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #define RoQ_QUAD_CODEBOOK 0x1002
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #define RoQ_QUAD_VQ 0x1011
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #define RoQ_SOUND_MONO 0x1020
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #define RoQ_SOUND_STEREO 0x1021
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #define CHUNK_TYPE_AUDIO 0
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 #define CHUNK_TYPE_VIDEO 1
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 typedef struct roq_chunk_t
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 {
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 int chunk_type;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 off_t chunk_offset;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 int chunk_size;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 float video_chunk_number; // in the case of a video chunk
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 int running_audio_sample_count; // for an audio chunk
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 } roq_chunk_t;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 typedef struct roq_data_t
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 {
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 int total_chunks;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 int current_chunk;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 int total_video_chunks;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 int total_audio_sample_count;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_chunk_t *chunks;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 } roq_data_t;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // Check if a stream qualifies as a RoQ file based on the magic numbers
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // at the start of the file:
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // 84 10 FF FF FF FF xx xx
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 static int roq_check_file(demuxer_t *demuxer)
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 {
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 if ((stream_read_dword(demuxer->stream) == 0x8410FFFF) &&
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 ((stream_read_dword(demuxer->stream) & 0xFFFF0000) == 0xFFFF0000))
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 return DEMUXER_TYPE_ROQ;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 else
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 return 0;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 }
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // return value:
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // 0 = EOF or no stream found
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // 1 = successfully read a packet
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 static int demux_roq_fill_buffer(demuxer_t *demuxer, demux_stream_t *ds)
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 {
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 sh_video_t *sh_video = demuxer->video->sh;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_data_t *roq_data = (roq_data_t *)demuxer->priv;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_chunk_t roq_chunk;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 if (roq_data->current_chunk >= roq_data->total_chunks)
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 return 0;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_chunk = roq_data->chunks[roq_data->current_chunk];
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // make sure we're at the right place in the stream and fetch the chunk
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 stream_seek(demuxer->stream, roq_chunk.chunk_offset);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 if (roq_chunk.chunk_type == CHUNK_TYPE_AUDIO)
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 ds_read_packet(demuxer->audio, demuxer->stream, roq_chunk.chunk_size,
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 0,
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_chunk.chunk_offset, 0);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 else
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 ds_read_packet(demuxer->video, demuxer->stream, roq_chunk.chunk_size,
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_chunk.video_chunk_number / sh_video->fps,
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_chunk.chunk_offset, 0);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_data->current_chunk++;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 return 1;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 }
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 static demuxer_t* demux_open_roq(demuxer_t* demuxer)
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 {
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 sh_video_t *sh_video = NULL;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 sh_audio_t *sh_audio = NULL;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_data_t *roq_data = malloc(sizeof(roq_data_t));
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 int chunk_id;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 int chunk_size;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 int chunk_arg;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 int last_chunk_id = 0;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 int largest_audio_chunk = 0;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 int fps;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_data->total_chunks = 0;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_data->current_chunk = 0;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_data->total_video_chunks = 0;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_data->chunks = NULL;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // position the stream and start traversing
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 stream_seek(demuxer->stream, 6);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 fps = stream_read_word_le(demuxer->stream);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 while (!stream_eof(demuxer->stream))
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 {
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 chunk_id = stream_read_word_le(demuxer->stream);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 chunk_size = stream_read_dword_le(demuxer->stream);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 chunk_arg = stream_read_word_le(demuxer->stream);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // this is the only useful header info in the file
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 if (chunk_id == RoQ_INFO)
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 {
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // there should only be one RoQ_INFO chunk per file
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 if (sh_video)
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 {
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 mp_msg(MSGT_DECVIDEO, MSGL_WARN, "Found more than one RoQ_INFO chunk\n");
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 stream_skip(demuxer->stream, 8);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 }
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 else
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 {
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // this is a good opportunity to create a video stream header
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 sh_video = new_sh_video(demuxer, 0);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // make sure the demuxer knows about the new stream header
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 demuxer->video->sh = sh_video;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // make sure that the video demuxer stream header knows about its
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // parent video demuxer stream
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 sh_video->ds = demuxer->video;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 sh_video->disp_w = stream_read_word_le(demuxer->stream);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 sh_video->disp_h = stream_read_word_le(demuxer->stream);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 stream_skip(demuxer->stream, 4);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // custom fourcc for internal MPlayer use
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 sh_video->format = mmioFOURCC('R', 'o', 'Q', 'V');
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // constant frame rate
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 sh_video->fps = fps;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 sh_video->frametime = 1 / sh_video->fps;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 }
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 }
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 else if ((chunk_id == RoQ_SOUND_MONO) ||
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 (chunk_id == RoQ_SOUND_STEREO))
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 {
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // create the audio stream header if it hasn't been created it
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 if (sh_audio == NULL)
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 {
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // make the header first
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 sh_audio = new_sh_audio(demuxer, 0);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // make sure the demuxer knows about the new stream header
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 demuxer->audio->sh = sh_audio;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // make sure that the audio demuxer stream header knows about its
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // parent audio demuxer stream
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 sh_audio->ds = demuxer->audio;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // go through the bother of making a WAVEFORMATEX structure
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 sh_audio->wf = malloc(sizeof(WAVEFORMATEX));
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // custom fourcc for internal MPlayer use
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 sh_audio->format = mmioFOURCC('R', 'o', 'Q', 'A');
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 if (chunk_id == RoQ_SOUND_STEREO)
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 sh_audio->wf->nChannels = 2;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 else
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 sh_audio->wf->nChannels = 1;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // always 22KHz, 16-bit
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 sh_audio->wf->nSamplesPerSec = 22050;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 sh_audio->wf->wBitsPerSample = 16;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 }
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // index the chunk
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_data->chunks = (roq_chunk_t *)realloc(roq_data->chunks,
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 (roq_data->total_chunks + 1) * sizeof (roq_chunk_t));
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_data->chunks[roq_data->total_chunks].chunk_type = CHUNK_TYPE_AUDIO;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_data->chunks[roq_data->total_chunks].chunk_offset =
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 stream_tell(demuxer->stream) - 8;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_data->chunks[roq_data->total_chunks].chunk_size = chunk_size + 8;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_data->chunks[roq_data->total_chunks].running_audio_sample_count =
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_data->total_audio_sample_count;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // audio housekeeping
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 if (chunk_size > largest_audio_chunk)
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 largest_audio_chunk = chunk_size;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_data->total_audio_sample_count +=
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 (chunk_size / sh_audio->wf->nChannels);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 stream_skip(demuxer->stream, chunk_size);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_data->total_chunks++;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 }
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 else if ((chunk_id == RoQ_QUAD_CODEBOOK) ||
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 ((chunk_id == RoQ_QUAD_VQ) && (last_chunk_id != RoQ_QUAD_CODEBOOK)))
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 {
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // index a new chunk if it's a codebook or quad VQ not following a
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // codebook
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_data->chunks = (roq_chunk_t *)realloc(roq_data->chunks,
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 (roq_data->total_chunks + 1) * sizeof (roq_chunk_t));
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_data->chunks[roq_data->total_chunks].chunk_type = CHUNK_TYPE_VIDEO;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_data->chunks[roq_data->total_chunks].chunk_offset =
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 stream_tell(demuxer->stream) - 8;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_data->chunks[roq_data->total_chunks].chunk_size = chunk_size + 8;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_data->chunks[roq_data->total_chunks].video_chunk_number =
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_data->total_video_chunks++;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 stream_skip(demuxer->stream, chunk_size);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_data->total_chunks++;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 }
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 else if ((chunk_id == RoQ_QUAD_VQ) && (last_chunk_id == RoQ_QUAD_CODEBOOK))
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 {
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // if it's a quad VQ chunk following a codebook chunk, extend the last
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // chunk
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_data->chunks[roq_data->total_chunks - 1].chunk_size += (chunk_size + 8);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 stream_skip(demuxer->stream, chunk_size);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 }
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 else if (!stream_eof(demuxer->stream))
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 {
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 mp_msg(MSGT_DECVIDEO, MSGL_WARN, "Unknown RoQ chunk ID: %04X\n", chunk_id);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 }
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 last_chunk_id = chunk_id;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 }
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // minimum output buffer size = largest audio chunk * 2, since each byte
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // in the DPCM encoding effectively represents 1 16-bit sample
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // (store it in wf->nBlockAlign for the time being since init_audio() will
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 // step on it anyway)
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 if (sh_audio)
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 sh_audio->wf->nBlockAlign = largest_audio_chunk * 2;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_data->current_chunk = 0;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 demuxer->priv = roq_data;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 stream_reset(demuxer->stream);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 return demuxer;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 }
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 static void demux_close_roq(demuxer_t* demuxer) {
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_data_t *roq_data = demuxer->priv;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 if(!roq_data)
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 return;
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 free(roq_data);
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 }
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 demuxer_desc_t demuxer_desc_roq = {
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 "RoQ demuxer",
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 "roq",
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 "ROQ",
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 "Mike Melanson",
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 "",
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 DEMUXER_TYPE_ROQ,
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 0, // unsafe autodetect
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 roq_check_file,
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 demux_roq_fill_buffer,
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 demux_open_roq,
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 demux_close_roq,
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 NULL,
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 NULL
+ 鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃醇�鐃緒申��申鐃醇柑鐃緒��鰹申薜合�渇��膩��渇����鐃緒申鐃緒申��膩��鰹申鐃順�渇����鐃初��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申��申鐃醇�鐃緒申鐃緒申��膩��渇��膩��鰹申鐃処��申鐃初姐�渇����鐃醇�鐃緒申鐃緒申膣�申����鐃初��膩��渇��膩��鰹申鐃緒申鐃初����鐃緒申��申鐃初姐�渇����鐃醇�鐃緒申��申鐃緒申 };