annotate seek.c @ 1493:ba230d9b252a

*** empty log message ***
author gabucino
date Sun, 12 Aug 2001 08:00:10 +0000
parents b895f95e7657
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1405
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
1 #include <stdio.h>
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
2 #include <stdlib.h>
1430
1728d249c783 missing unistd.h (requires for off_t under freebsd)
arpi
parents: 1428
diff changeset
3 #include <unistd.h>
1403
fe133b029041 seeking code - initial version
arpi
parents:
diff changeset
4
1466
7845f6d7c4ba format-specific seeking code moved to demuxer_ stuff
arpi
parents: 1460
diff changeset
5 //extern int verbose; // defined in mplayer.c
1405
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
6
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
7 #include "config.h"
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
8
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
9 #include "stream.h"
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
10 #include "demuxer.h"
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
11 #include "parse_es.h"
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
12
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
13 #include "wine/mmreg.h"
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
14 #include "wine/avifmt.h"
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
15 #include "wine/vfw.h"
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
16
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
17 #include "codec-cfg.h"
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
18 #include "stheader.h"
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
19
1466
7845f6d7c4ba format-specific seeking code moved to demuxer_ stuff
arpi
parents: 1460
diff changeset
20 //extern void resync_audio_stream(sh_audio_t *sh_audio);
7845f6d7c4ba format-specific seeking code moved to demuxer_ stuff
arpi
parents: 1460
diff changeset
21 //extern void skip_audio_frame(sh_audio_t *sh_audio);
1405
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
22
1466
7845f6d7c4ba format-specific seeking code moved to demuxer_ stuff
arpi
parents: 1460
diff changeset
23 //extern int asf_packetsize; // for seeking
1405
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
24
1466
7845f6d7c4ba format-specific seeking code moved to demuxer_ stuff
arpi
parents: 1460
diff changeset
25 //extern char* current_module; // for debugging
1405
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
26
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
27 // flags:
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
28 // 0x1 - absolute/relative
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
29 // 0x2 - keyframe/hard
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
30
1466
7845f6d7c4ba format-specific seeking code moved to demuxer_ stuff
arpi
parents: 1460
diff changeset
31 int demux_seek_avi(demuxer_t *demuxer,float rel_seek_secs,int flags);
7845f6d7c4ba format-specific seeking code moved to demuxer_ stuff
arpi
parents: 1460
diff changeset
32 int demux_seek_asf(demuxer_t *demuxer,float rel_seek_secs,int flags);
7845f6d7c4ba format-specific seeking code moved to demuxer_ stuff
arpi
parents: 1460
diff changeset
33 int demux_seek_mpg(demuxer_t *demuxer,float rel_seek_secs,int flags);
7845f6d7c4ba format-specific seeking code moved to demuxer_ stuff
arpi
parents: 1460
diff changeset
34
1405
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
35 int demux_seek(demuxer_t *demuxer,float rel_seek_secs,int flags){
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
36 demux_stream_t *d_audio=demuxer->audio;
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
37 demux_stream_t *d_video=demuxer->video;
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
38 sh_audio_t *sh_audio=d_audio->sh;
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
39 sh_video_t *sh_video=d_video->sh;
1466
7845f6d7c4ba format-specific seeking code moved to demuxer_ stuff
arpi
parents: 1460
diff changeset
40 // float skip_audio_secs=0;
1403
fe133b029041 seeking code - initial version
arpi
parents:
diff changeset
41
1485
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1466
diff changeset
42 //if(demuxer->file_format==DEMUXER_TYPE_AVI && demuxer->idx_size<=0){
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1466
diff changeset
43 // printf("Can't seek in raw .AVI streams! (index required, try with the -idx switch!) \n");
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1466
diff changeset
44 // return 0;
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1466
diff changeset
45 //}
1405
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
46
1466
7845f6d7c4ba format-specific seeking code moved to demuxer_ stuff
arpi
parents: 1460
diff changeset
47 // current_module="seek";
1405
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
48
1403
fe133b029041 seeking code - initial version
arpi
parents:
diff changeset
49 // clear demux buffers:
fe133b029041 seeking code - initial version
arpi
parents:
diff changeset
50 if(sh_audio){ ds_free_packs(d_audio);sh_audio->a_buffer_len=0;}
fe133b029041 seeking code - initial version
arpi
parents:
diff changeset
51 ds_free_packs(d_video);
fe133b029041 seeking code - initial version
arpi
parents:
diff changeset
52
1421
ea0a0b9e6fbc nosound avi seeking fixed
arpi
parents: 1408
diff changeset
53 demuxer->stream->eof=0; // clear eof flag
1466
7845f6d7c4ba format-specific seeking code moved to demuxer_ stuff
arpi
parents: 1460
diff changeset
54
7845f6d7c4ba format-specific seeking code moved to demuxer_ stuff
arpi
parents: 1460
diff changeset
55 if(sh_audio) sh_audio->timer=0;
7845f6d7c4ba format-specific seeking code moved to demuxer_ stuff
arpi
parents: 1460
diff changeset
56 sh_video->timer=0; // !!!!!!
1421
ea0a0b9e6fbc nosound avi seeking fixed
arpi
parents: 1408
diff changeset
57
1403
fe133b029041 seeking code - initial version
arpi
parents:
diff changeset
58 // printf("sh_audio->a_buffer_len=%d \n",sh_audio->a_buffer_len);
fe133b029041 seeking code - initial version
arpi
parents:
diff changeset
59
fe133b029041 seeking code - initial version
arpi
parents:
diff changeset
60
1405
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
61 switch(demuxer->file_format){
1403
fe133b029041 seeking code - initial version
arpi
parents:
diff changeset
62
1466
7845f6d7c4ba format-specific seeking code moved to demuxer_ stuff
arpi
parents: 1460
diff changeset
63 case DEMUXER_TYPE_AVI:
7845f6d7c4ba format-specific seeking code moved to demuxer_ stuff
arpi
parents: 1460
diff changeset
64 demux_seek_avi(demuxer,rel_seek_secs,flags); break;
1403
fe133b029041 seeking code - initial version
arpi
parents:
diff changeset
65
1466
7845f6d7c4ba format-specific seeking code moved to demuxer_ stuff
arpi
parents: 1460
diff changeset
66 case DEMUXER_TYPE_ASF:
7845f6d7c4ba format-specific seeking code moved to demuxer_ stuff
arpi
parents: 1460
diff changeset
67 demux_seek_asf(demuxer,rel_seek_secs,flags); break;
1403
fe133b029041 seeking code - initial version
arpi
parents:
diff changeset
68
fe133b029041 seeking code - initial version
arpi
parents:
diff changeset
69 case DEMUXER_TYPE_MPEG_ES:
1466
7845f6d7c4ba format-specific seeking code moved to demuxer_ stuff
arpi
parents: 1460
diff changeset
70 case DEMUXER_TYPE_MPEG_PS:
7845f6d7c4ba format-specific seeking code moved to demuxer_ stuff
arpi
parents: 1460
diff changeset
71 demux_seek_mpg(demuxer,rel_seek_secs,flags); break;
1403
fe133b029041 seeking code - initial version
arpi
parents:
diff changeset
72
1405
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
73 } // switch(demuxer->file_format)
1403
fe133b029041 seeking code - initial version
arpi
parents:
diff changeset
74
1405
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
75 return 1;
8ecf18884ad8 seeking code moved out from mplayer.c -> seek.c
arpi
parents: 1403
diff changeset
76 }