Mercurial > mplayer.hg
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 }; |