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