Mercurial > mplayer.hg
comparison libmpdemux/demux_nsv.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 | 3042ee91c7dd |
children | e27998eeb54a |
comparison
equal
deleted
inserted
replaced
16174:b118c000ddd2 | 16175:6b86089c2edd |
---|---|
29 } nsv_priv_t; | 29 } nsv_priv_t; |
30 | 30 |
31 /** | 31 /** |
32 * Seeking still to be implemented | 32 * Seeking still to be implemented |
33 */ | 33 */ |
34 void demux_seek_nsv ( demuxer_t *demuxer, float rel_seek_secs, int flags ) | 34 static void demux_seek_nsv ( demuxer_t *demuxer, float rel_seek_secs, int flags ) |
35 { | 35 { |
36 // seeking is not yet implemented | 36 // seeking is not yet implemented |
37 } | 37 } |
38 | 38 |
39 | 39 |
40 int demux_nsv_fill_buffer ( demuxer_t *demuxer ) | 40 static int demux_nsv_fill_buffer ( demuxer_t *demuxer, demux_stream_t *ds ) |
41 { | 41 { |
42 unsigned char hdr[17]; | 42 unsigned char hdr[17]; |
43 // for the extra data | 43 // for the extra data |
44 unsigned char aux[6]; | 44 unsigned char aux[6]; |
45 int i_aux = 0; | 45 int i_aux = 0; |
130 return 1; | 130 return 1; |
131 | 131 |
132 } | 132 } |
133 | 133 |
134 | 134 |
135 demuxer_t* demux_open_nsv ( demuxer_t* demuxer ) | 135 static demuxer_t* demux_open_nsv ( demuxer_t* demuxer ) |
136 { | 136 { |
137 // last 2 bytes 17 and 18 are unknown but right after that comes the length | 137 // last 2 bytes 17 and 18 are unknown but right after that comes the length |
138 unsigned char hdr[17]; | 138 unsigned char hdr[17]; |
139 int videolen,audiolen; | 139 int videolen,audiolen; |
140 unsigned char buf[10]; | 140 unsigned char buf[10]; |
312 stream_seek(demuxer->stream,stream_tell(demuxer->stream)-17); | 312 stream_seek(demuxer->stream,stream_tell(demuxer->stream)-17); |
313 | 313 |
314 return demuxer; | 314 return demuxer; |
315 } | 315 } |
316 | 316 |
317 int nsv_check_file ( demuxer_t* demuxer ) | 317 static int nsv_check_file ( demuxer_t* demuxer ) |
318 { | 318 { |
319 unsigned int id; | 319 unsigned int id; |
320 | 320 |
321 /* Store original position */ | 321 /* Store original position */ |
322 // off_t orig_pos = stream_tell(demuxer->stream); | 322 // off_t orig_pos = stream_tell(demuxer->stream); |
330 | 330 |
331 stream_reset(demuxer->stream); // clear EOF | 331 stream_reset(demuxer->stream); // clear EOF |
332 stream_seek(demuxer->stream,demuxer->stream->start_pos); | 332 stream_seek(demuxer->stream,demuxer->stream->start_pos); |
333 | 333 |
334 | 334 |
335 return 1; | 335 return DEMUXER_TYPE_NSV; |
336 } | 336 } |
337 | 337 |
338 void demux_close_nsv(demuxer_t* demuxer) { | 338 static void demux_close_nsv(demuxer_t* demuxer) { |
339 nsv_priv_t* priv = demuxer->priv; | 339 nsv_priv_t* priv = demuxer->priv; |
340 | 340 |
341 if(!priv) | 341 if(!priv) |
342 return; | 342 return; |
343 free(priv); | 343 free(priv); |
344 | 344 |
345 } | 345 } |
346 | |
347 | |
348 demuxer_desc_t demuxer_desc_nsv = { | |
349 "NullsoftVideo demuxer", | |
350 "nsv", | |
351 "Nullsoft Streaming Video", | |
352 "Reza Jelveh", | |
353 "nsv and nsa streaming files", | |
354 DEMUXER_TYPE_NSV, | |
355 1, // safe autodetect | |
356 nsv_check_file, | |
357 demux_nsv_fill_buffer, | |
358 demux_open_nsv, | |
359 demux_close_nsv, | |
360 demux_seek_nsv, | |
361 NULL | |
362 }; |