Mercurial > mplayer.hg
comparison stream.c @ 1428:a90d889eb649
largefile patch by Stephen Davies <steve@daviesfam.org>
author | arpi |
---|---|
date | Tue, 31 Jul 2001 23:18:16 +0000 |
parents | f2516027a346 |
children | 1728d249c783 |
comparison
equal
deleted
inserted
replaced
1427:0ca4e638b696 | 1428:a90d889eb649 |
---|---|
1 | |
2 #include "config.h" | |
3 | |
4 #include <sys/types.h> | |
5 #include <sys/stat.h> | |
6 #include <sys/ioctl.h> | |
7 #include <fcntl.h> | |
8 #include <unistd.h> | |
1 | 9 |
2 #include <stdio.h> | 10 #include <stdio.h> |
3 #include <stdlib.h> | 11 #include <stdlib.h> |
4 | |
5 #include <sys/ioctl.h> | |
6 #include <unistd.h> | |
7 | 12 |
8 #include "stream.h" | 13 #include "stream.h" |
9 | 14 |
10 extern int verbose; // defined in mplayer.c | 15 extern int verbose; // defined in mplayer.c |
11 | 16 |
38 s->pos+=len; | 43 s->pos+=len; |
39 // printf("[%d]",len);fflush(stdout); | 44 // printf("[%d]",len);fflush(stdout); |
40 return len; | 45 return len; |
41 } | 46 } |
42 | 47 |
43 int stream_seek_long(stream_t *s,unsigned int pos){ | 48 int stream_seek_long(stream_t *s,off_t pos){ |
44 unsigned int newpos; | 49 off_t newpos; |
45 | 50 |
46 // if(verbose>=3) printf("seek to 0x%X\n",pos); | 51 // if(verbose>=3) printf("seek to 0x%X\n",(unsigned int)pos); |
47 | 52 |
48 if(verbose>=3){ | 53 if(verbose>=3){ |
54 #ifdef _LARGEFILE_SOURCE | |
55 printf("s->pos=%llX newpos=%llX new_bufpos=%llX buflen=%X \n", | |
56 (long long)s->pos,(long long)newpos,(long long)pos,s->buf_len); | |
57 #else | |
49 printf("s->pos=%X newpos=%X new_bufpos=%X buflen=%X \n", | 58 printf("s->pos=%X newpos=%X new_bufpos=%X buflen=%X \n", |
50 (unsigned int)s->pos,newpos,pos,s->buf_len); | 59 (unsigned int)s->pos,newpos,pos,s->buf_len); |
60 #endif | |
51 } | 61 } |
52 | 62 |
53 s->buf_pos=s->buf_len=0; | 63 s->buf_pos=s->buf_len=0; |
54 | 64 |
55 switch(s->type){ | 65 switch(s->type){ |
56 case STREAMTYPE_FILE: | 66 case STREAMTYPE_FILE: |
57 case STREAMTYPE_STREAM: | 67 case STREAMTYPE_STREAM: |
68 #ifdef _LARGEFILE_SOURCE | |
69 newpos=pos&(~((long long)STREAM_BUFFER_SIZE-1));break; | |
70 #else | |
58 newpos=pos&(~(STREAM_BUFFER_SIZE-1));break; | 71 newpos=pos&(~(STREAM_BUFFER_SIZE-1));break; |
72 #endif | |
59 case STREAMTYPE_VCD: | 73 case STREAMTYPE_VCD: |
60 newpos=(pos/VCD_SECTOR_DATA)*VCD_SECTOR_DATA;break; | 74 newpos=(pos/VCD_SECTOR_DATA)*VCD_SECTOR_DATA;break; |
61 } | 75 } |
62 | 76 |
63 pos-=newpos; | 77 pos-=newpos; |
95 stream_fill_buffer(s); | 109 stream_fill_buffer(s); |
96 if(pos>=0 && pos<s->buf_len){ | 110 if(pos>=0 && pos<s->buf_len){ |
97 s->buf_pos=pos; // byte position in sector | 111 s->buf_pos=pos; // byte position in sector |
98 return 1; | 112 return 1; |
99 } | 113 } |
100 if(verbose) printf("stream_seek: WARNING! Can't seek to 0x%X !\n",pos+newpos); | 114 #ifdef _LARGEFILE_SOURCE |
115 if(verbose) printf("stream_seek: WARNING! Can't seek to 0x%llX !\n",(long long)(pos+newpos)); | |
116 #else | |
117 if(verbose) printf("stream_seek: WARNING! Can't seek to 0x%X !\n",(pos+newpos)); | |
118 #endif | |
101 return 0; | 119 return 0; |
102 } | 120 } |
103 | 121 |
104 | 122 |
105 void stream_reset(stream_t *s){ | 123 void stream_reset(stream_t *s){ |