comparison libmpdemux/demux_vqf.c @ 16175:6b86089c2edd

Demuxer modularization Demuxer selection by name with -demuxer command (bakward compatible)
author rtognimp
date Fri, 05 Aug 2005 19:57:47 +0000
parents c1eb194d56e0
children 0a31740dd5e6
comparison
equal deleted inserted replaced
16174:b118c000ddd2 16175:6b86089c2edd
9 #include "stheader.h" 9 #include "stheader.h"
10 #include "../libmpcodecs/vqf.h" 10 #include "../libmpcodecs/vqf.h"
11 11
12 extern void resync_audio_stream(sh_audio_t *sh_audio); 12 extern void resync_audio_stream(sh_audio_t *sh_audio);
13 13
14 int demux_probe_vqf(demuxer_t* demuxer) 14 static int demux_probe_vqf(demuxer_t* demuxer)
15 { 15 {
16 char buf[KEYWORD_BYTES]; 16 char buf[KEYWORD_BYTES];
17 stream_t *s; 17 stream_t *s;
18 s = demuxer->stream; 18 s = demuxer->stream;
19 if(stream_read(s,buf,KEYWORD_BYTES)!=KEYWORD_BYTES) 19 if(stream_read(s,buf,KEYWORD_BYTES)!=KEYWORD_BYTES)
20 return 0; 20 return 0;
21 if(memcmp(buf,"TWIN",KEYWORD_BYTES)==0) return 1; /*version: 97012000*/ 21 if(memcmp(buf,"TWIN",KEYWORD_BYTES)==0) return DEMUXER_TYPE_VQF; /*version: 97012000*/
22 return 0; 22 return 0;
23 } 23 }
24 24
25 demuxer_t* demux_open_vqf(demuxer_t* demuxer) { 25 static demuxer_t* demux_open_vqf(demuxer_t* demuxer) {
26 sh_audio_t* sh_audio; 26 sh_audio_t* sh_audio;
27 WAVEFORMATEX* w; 27 WAVEFORMATEX* w;
28 stream_t *s; 28 stream_t *s;
29 headerInfo *hi; 29 headerInfo *hi;
30 30
159 stream_seek(s,demuxer->movi_start); 159 stream_seek(s,demuxer->movi_start);
160 demuxer->seekable=0; 160 demuxer->seekable=0;
161 return demuxer; 161 return demuxer;
162 } 162 }
163 163
164 int demux_vqf_fill_buffer(demuxer_t* demuxer, demux_stream_t *ds) { 164 static int demux_vqf_fill_buffer(demuxer_t* demuxer, demux_stream_t *ds) {
165 sh_audio_t* sh_audio = demuxer->audio->sh; 165 sh_audio_t* sh_audio = demuxer->audio->sh;
166 int l = sh_audio->wf->nAvgBytesPerSec; 166 int l = sh_audio->wf->nAvgBytesPerSec;
167 off_t spos = stream_tell(demuxer->stream); 167 off_t spos = stream_tell(demuxer->stream);
168 demux_packet_t* dp; 168 demux_packet_t* dp;
169 169
179 ds_add_packet(ds,dp); 179 ds_add_packet(ds,dp);
180 180
181 return 1; 181 return 1;
182 } 182 }
183 183
184 void demux_seek_vqf(demuxer_t *demuxer,float rel_seek_secs,int flags){ 184 static void demux_seek_vqf(demuxer_t *demuxer,float rel_seek_secs,int flags){
185 #if 0 185 #if 0
186 stream_t* s = demuxer->stream; 186 stream_t* s = demuxer->stream;
187 sh_audio_t* sh_audio = demuxer->audio->sh; 187 sh_audio_t* sh_audio = demuxer->audio->sh;
188 off_t base,pos; 188 off_t base,pos;
189 189
197 stream_seek(s,pos); 197 stream_seek(s,pos);
198 resync_audio_stream(sh_audio); 198 resync_audio_stream(sh_audio);
199 #endif 199 #endif
200 } 200 }
201 201
202 void demux_close_vqf(demuxer_t* demuxer) {} 202 static void demux_close_vqf(demuxer_t* demuxer) {}
203
204
205 demuxer_desc_t demuxer_desc_vqf = {
206 "TwinVQ demuxer",
207 "vqf",
208 "VQF",
209 "Nick Kurshev",
210 "ported frm MPlayerXP",
211 DEMUXER_TYPE_VQF,
212 1, // safe autodetect
213 demux_probe_vqf,
214 demux_vqf_fill_buffer,
215 demux_open_vqf,
216 demux_close_vqf,
217 demux_seek_vqf,
218 NULL
219 };