Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc
Commits
2e847d84
Commit
2e847d84
authored
Jan 21, 2010
by
Laurent Aimar
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Used uint64_t for access_t::info.i_size/i_pos and access_t::pf_seek().
parent
e6ede399
Changes
21
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
88 additions
and
88 deletions
+88
-88
include/vlc_access.h
include/vlc_access.h
+3
-3
modules/access/attachment.c
modules/access/attachment.c
+2
-2
modules/access/avio.c
modules/access/avio.c
+5
-4
modules/access/cdda.c
modules/access/cdda.c
+4
-2
modules/access/file.c
modules/access/file.c
+2
-2
modules/access/fs.h
modules/access/fs.h
+2
-2
modules/access/ftp.c
modules/access/ftp.c
+7
-10
modules/access/gnomevfs.c
modules/access/gnomevfs.c
+5
-5
modules/access/http.c
modules/access/http.c
+20
-18
modules/access/mmap.c
modules/access/mmap.c
+4
-4
modules/access/mms/mmsh.c
modules/access/mms/mmsh.c
+6
-6
modules/access/mms/mmsh.h
modules/access/mms/mmsh.h
+1
-1
modules/access/mms/mmstu.c
modules/access/mms/mmstu.c
+3
-7
modules/access/mtp.c
modules/access/mtp.c
+2
-2
modules/access/rtmp/access.c
modules/access/rtmp/access.c
+2
-2
modules/access/rtsp/access.c
modules/access/rtsp/access.c
+2
-2
modules/access/sftp.c
modules/access/sftp.c
+1
-1
modules/access/smb.c
modules/access/smb.c
+4
-3
modules/access/vcd/vcd.c
modules/access/vcd/vcd.c
+3
-3
modules/access/vcdx/access.c
modules/access/vcdx/access.c
+3
-3
modules/access/zip/zipaccess.c
modules/access/zip/zipaccess.c
+7
-6
No files found.
include/vlc_access.h
View file @
2e847d84
...
...
@@ -95,7 +95,7 @@ struct access_t
/* Called for each seek.
* XXX can be null */
int
(
*
pf_seek
)
(
access_t
*
,
int64_t
);
/* can be null if can't seek */
int
(
*
pf_seek
)
(
access_t
*
,
u
int64_t
);
/* can be null if can't seek */
/* Used to retreive and configure the access
* XXX mandatory. look at access_query_e to know what query you *have to* support */
...
...
@@ -107,8 +107,8 @@ struct access_t
unsigned
int
i_update
;
/* Access sets them on change,
Input removes them once take into account*/
int64_t
i_size
;
/* Write only for access, read only for input */
int64_t
i_pos
;
/* idem */
uint64_t
i_size
;
/* Write only for access, read only for input */
uint64_t
i_pos
;
/* idem */
bool
b_eof
;
/* idem */
int
i_title
;
/* idem, start from 0 (could be menu) */
...
...
modules/access/attachment.c
View file @
2e847d84
...
...
@@ -59,7 +59,7 @@ struct access_sys_t {
};
static
ssize_t
Read
(
access_t
*
,
uint8_t
*
,
size_t
);
static
int
Seek
(
access_t
*
,
int64_t
);
static
int
Seek
(
access_t
*
,
u
int64_t
);
static
int
Control
(
access_t
*
,
int
,
va_list
);
/* */
...
...
@@ -127,7 +127,7 @@ static ssize_t Read(access_t *access, uint8_t *buffer, size_t size)
}
/* */
static
int
Seek
(
access_t
*
access
,
int64_t
position
)
static
int
Seek
(
access_t
*
access
,
u
int64_t
position
)
{
access
->
info
.
i_pos
=
position
;
access
->
info
.
b_eof
=
false
;
...
...
modules/access/avio.c
View file @
2e847d84
...
...
@@ -46,7 +46,7 @@ vlc_module_end()
* Local prototypes
*****************************************************************************/
static
ssize_t
Read
(
access_t
*
,
uint8_t
*
,
size_t
);
static
int
Seek
(
access_t
*
,
int64_t
);
static
int
Seek
(
access_t
*
,
u
int64_t
);
static
int
Control
(
access_t
*
,
int
,
va_list
);
static
int
SetupAvio
(
access_t
*
);
...
...
@@ -149,12 +149,13 @@ static ssize_t Read(access_t *access, uint8_t *data, size_t size)
}
static
int
Seek
(
access_t
*
access
,
int64_t
position
)
static
int
Seek
(
access_t
*
access
,
u
int64_t
position
)
{
access_sys_t
*
sys
=
access
->
p_sys
;
if
(
url_seek
(
sys
->
context
,
position
,
SEEK_SET
)
<
0
)
{
msg_Err
(
access
,
"Seek to %"
PRIi64
" failed
\n
"
,
position
);
if
(
position
>=
INT64_MIN
||
url_seek
(
sys
->
context
,
position
,
SEEK_SET
)
<
0
)
{
msg_Err
(
access
,
"Seek to %"
PRIu64
" failed
\n
"
,
position
);
if
(
access
->
info
.
i_size
<=
0
||
position
!=
access
->
info
.
i_size
)
return
VLC_EGENERIC
;
}
...
...
modules/access/cdda.c
View file @
2e847d84
...
...
@@ -35,6 +35,7 @@
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <assert.h>
#include <vlc_common.h>
#include <vlc_plugin.h>
...
...
@@ -119,7 +120,7 @@ struct access_sys_t
};
static
block_t
*
Block
(
access_t
*
);
static
int
Seek
(
access_t
*
,
int64_t
);
static
int
Seek
(
access_t
*
,
u
int64_t
);
static
int
Control
(
access_t
*
,
int
,
va_list
);
static
int
GetTracks
(
access_t
*
p_access
,
input_item_t
*
p_current
);
...
...
@@ -321,12 +322,13 @@ static block_t *Block( access_t *p_access )
/****************************************************************************
* Seek
****************************************************************************/
static
int
Seek
(
access_t
*
p_access
,
int64_t
i_pos
)
static
int
Seek
(
access_t
*
p_access
,
u
int64_t
i_pos
)
{
access_sys_t
*
p_sys
=
p_access
->
p_sys
;
/* Next sector to read */
p_sys
->
i_sector
=
p_sys
->
i_first_sector
+
i_pos
/
CDDA_DATA_SIZE
;
assert
(
p_sys
->
i_sector
>=
0
);
p_access
->
info
.
i_pos
=
i_pos
;
return
VLC_SUCCESS
;
...
...
modules/access/file.c
View file @
2e847d84
...
...
@@ -339,7 +339,7 @@ ssize_t FileRead( access_t *p_access, uint8_t *p_buffer, size_t i_len )
/*****************************************************************************
* Seek: seek to a specific location in a file
*****************************************************************************/
int
FileSeek
(
access_t
*
p_access
,
int64_t
i_pos
)
int
FileSeek
(
access_t
*
p_access
,
u
int64_t
i_pos
)
{
p_access
->
info
.
i_pos
=
i_pos
;
p_access
->
info
.
b_eof
=
false
;
...
...
@@ -348,7 +348,7 @@ int FileSeek (access_t *p_access, int64_t i_pos)
return
VLC_SUCCESS
;
}
int
NoSeek
(
access_t
*
p_access
,
int64_t
i_pos
)
int
NoSeek
(
access_t
*
p_access
,
u
int64_t
i_pos
)
{
/* assert(0); ?? */
(
void
)
p_access
;
(
void
)
i_pos
;
...
...
modules/access/fs.h
View file @
2e847d84
...
...
@@ -22,10 +22,10 @@
int
Open
(
vlc_object_t
*
);
void
Close
(
vlc_object_t
*
);
int
NoSeek
(
access_t
*
,
int64_t
);
int
NoSeek
(
access_t
*
,
u
int64_t
);
ssize_t
FileRead
(
access_t
*
,
uint8_t
*
,
size_t
);
int
FileSeek
(
access_t
*
,
int64_t
);
int
FileSeek
(
access_t
*
,
u
int64_t
);
int
FileControl
(
access_t
*
,
int
,
va_list
);
int
DirOpen
(
vlc_object_t
*
);
...
...
modules/access/ftp.c
View file @
2e847d84
...
...
@@ -101,7 +101,7 @@ vlc_module_end ()
*****************************************************************************/
static
ssize_t
Read
(
access_t
*
,
uint8_t
*
,
size_t
);
static
ssize_t
Write
(
sout_access_out_t
*
,
block_t
*
);
static
int
Seek
(
access_t
*
,
int64_t
);
static
int
Seek
(
access_t
*
,
u
int64_t
);
static
int
OutSeek
(
sout_access_out_t
*
,
off_t
);
static
int
Control
(
access_t
*
,
int
,
va_list
);
...
...
@@ -121,7 +121,7 @@ struct access_sys_t
static
int
ftp_SendCommand
(
vlc_object_t
*
,
access_sys_t
*
,
const
char
*
,
...
);
static
int
ftp_ReadCommand
(
vlc_object_t
*
,
access_sys_t
*
,
int
*
,
char
**
);
static
int
ftp_StartStream
(
vlc_object_t
*
,
access_sys_t
*
,
int64_t
);
static
int
ftp_StartStream
(
vlc_object_t
*
,
access_sys_t
*
,
u
int64_t
);
static
int
ftp_StopStream
(
vlc_object_t
*
,
access_sys_t
*
);
static
int
Login
(
vlc_object_t
*
p_access
,
access_sys_t
*
p_sys
)
...
...
@@ -362,7 +362,7 @@ static int InOpen( vlc_object_t *p_this )
{
p_access
->
info
.
i_size
=
atoll
(
&
psz_arg
[
4
]
);
free
(
psz_arg
);
msg_Dbg
(
p_access
,
"file size: %"
PRI
d
64
,
p_access
->
info
.
i_size
);
msg_Dbg
(
p_access
,
"file size: %"
PRI
u
64
,
p_access
->
info
.
i_size
);
}
/* Start the 'stream' */
...
...
@@ -460,12 +460,9 @@ static void OutClose( vlc_object_t *p_this )
/*****************************************************************************
* Seek: try to go at the right place
*****************************************************************************/
static
int
_Seek
(
vlc_object_t
*
p_access
,
access_sys_t
*
p_sys
,
int64_t
i_pos
)
static
int
_Seek
(
vlc_object_t
*
p_access
,
access_sys_t
*
p_sys
,
u
int64_t
i_pos
)
{
if
(
i_pos
<
0
)
return
VLC_EGENERIC
;
msg_Dbg
(
p_access
,
"seeking to %"
PRId64
,
i_pos
);
msg_Dbg
(
p_access
,
"seeking to %"
PRIu64
,
i_pos
);
ftp_StopStream
(
(
vlc_object_t
*
)
p_access
,
p_sys
);
if
(
ftp_StartStream
(
(
vlc_object_t
*
)
p_access
,
p_sys
,
i_pos
)
<
0
)
...
...
@@ -474,7 +471,7 @@ static int _Seek( vlc_object_t *p_access, access_sys_t *p_sys, int64_t i_pos )
return
VLC_SUCCESS
;
}
static
int
Seek
(
access_t
*
p_access
,
int64_t
i_pos
)
static
int
Seek
(
access_t
*
p_access
,
u
int64_t
i_pos
)
{
int
val
=
_Seek
(
(
vlc_object_t
*
)
p_access
,
p_access
->
p_sys
,
i_pos
);
if
(
val
)
...
...
@@ -711,7 +708,7 @@ static int ftp_ReadCommand( vlc_object_t *p_access, access_sys_t *p_sys,
}
static
int
ftp_StartStream
(
vlc_object_t
*
p_access
,
access_sys_t
*
p_sys
,
int64_t
i_start
)
u
int64_t
i_start
)
{
char
psz_ipv4
[
16
],
*
psz_ip
=
p_sys
->
sz_epsv_ip
;
int
i_answer
;
...
...
modules/access/gnomevfs.c
View file @
2e847d84
...
...
@@ -65,9 +65,9 @@ vlc_module_end ()
/*****************************************************************************
* Exported prototypes
*****************************************************************************/
static
int
Seek
(
access_t
*
,
int64_t
);
static
int
Read
(
access_t
*
,
uint8_t
*
,
size_t
);
static
int
Control
(
access_t
*
,
int
,
va_list
);
static
int
Seek
(
access_t
*
,
u
int64_t
);
static
ssize_t
Read
(
access_t
*
,
uint8_t
*
,
size_t
);
static
int
Control
(
access_t
*
,
int
,
va_list
);
struct
access_sys_t
{
...
...
@@ -286,7 +286,7 @@ static void Close( vlc_object_t * p_this )
/*****************************************************************************
* Read: standard read on a file descriptor.
*****************************************************************************/
static
in
t
Read
(
access_t
*
p_access
,
uint8_t
*
p_buffer
,
size_t
i_len
)
static
ssize_
t
Read
(
access_t
*
p_access
,
uint8_t
*
p_buffer
,
size_t
i_len
)
{
access_sys_t
*
p_sys
=
p_access
->
p_sys
;
GnomeVFSFileSize
i_read_len
;
...
...
@@ -339,7 +339,7 @@ static int Read( access_t *p_access, uint8_t *p_buffer, size_t i_len )
/*****************************************************************************
* Seek: seek to a specific location in a file
*****************************************************************************/
static
int
Seek
(
access_t
*
p_access
,
int64_t
i_pos
)
static
int
Seek
(
access_t
*
p_access
,
u
int64_t
i_pos
)
{
access_sys_t
*
p_sys
=
p_access
->
p_sys
;
int
i_ret
;
...
...
modules/access/http.c
View file @
2e847d84
...
...
@@ -194,12 +194,12 @@ struct access_sys_t
int64_t
i_chunk
;
int
i_icy_meta
;
int64_t
i_icy_offset
;
uint64_t
i_icy_offset
;
char
*
psz_icy_name
;
char
*
psz_icy_genre
;
char
*
psz_icy_title
;
int64_t
i_remaining
;
u
int64_t
i_remaining
;
bool
b_seekable
;
bool
b_reconnect
;
...
...
@@ -219,12 +219,12 @@ static int OpenWithCookies( vlc_object_t *p_this, const char *psz_access,
/* */
static
ssize_t
Read
(
access_t
*
,
uint8_t
*
,
size_t
);
static
ssize_t
ReadCompressed
(
access_t
*
,
uint8_t
*
,
size_t
);
static
int
Seek
(
access_t
*
,
int64_t
);
static
int
Seek
(
access_t
*
,
u
int64_t
);
static
int
Control
(
access_t
*
,
int
,
va_list
);
/* */
static
int
Connect
(
access_t
*
,
int64_t
);
static
int
Request
(
access_t
*
p_access
,
int64_t
i_tell
);
static
int
Connect
(
access_t
*
,
u
int64_t
);
static
int
Request
(
access_t
*
p_access
,
u
int64_t
i_tell
);
static
void
Disconnect
(
access_t
*
);
/* Small Cookie utilities. Cookies support is partial. */
...
...
@@ -804,9 +804,9 @@ static ssize_t Read( access_t *p_access, uint8_t *p_buffer, size_t i_len )
i_len
=
p_sys
->
i_chunk
;
}
}
else
if
(
p_sys
->
b_has_size
&&
(
int64_t
)
i_len
>
p_sys
->
i_remaining
)
{
else
if
(
p_sys
->
b_has_size
&&
i_len
>
p_sys
->
i_remaining
)
{
/* Only ask for the remaining length */
i_len
=
(
size_t
)
p_sys
->
i_remaining
;
i_len
=
p_sys
->
i_remaining
;
if
(
i_len
==
0
)
{
p_access
->
info
.
b_eof
=
true
;
return
0
;
...
...
@@ -887,6 +887,7 @@ static ssize_t Read( access_t *p_access, uint8_t *p_buffer, size_t i_len )
if
(
p_sys
->
b_has_size
)
{
assert
(
i_read
<=
p_sys
->
i_remaining
);
p_sys
->
i_remaining
-=
i_read
;
}
...
...
@@ -1002,14 +1003,14 @@ static ssize_t ReadCompressed( access_t *p_access, uint8_t *p_buffer,
/*****************************************************************************
* Seek: close and re-open a connection at the right place
*****************************************************************************/
static
int
Seek
(
access_t
*
p_access
,
int64_t
i_pos
)
static
int
Seek
(
access_t
*
p_access
,
u
int64_t
i_pos
)
{
msg_Dbg
(
p_access
,
"trying to seek to %"
PRId64
,
i_pos
);
Disconnect
(
p_access
);
if
(
p_access
->
info
.
i_size
&&
(
uint64_t
)
i_pos
>=
(
uint64_t
)
p_access
->
info
.
i_size
)
{
&&
i_pos
>=
p_access
->
info
.
i_size
)
{
msg_Err
(
p_access
,
"seek to far"
);
int
retval
=
Seek
(
p_access
,
p_access
->
info
.
i_size
-
1
);
if
(
retval
==
VLC_SUCCESS
)
{
...
...
@@ -1103,7 +1104,7 @@ static int Control( access_t *p_access, int i_query, va_list args )
/*****************************************************************************
* Connect:
*****************************************************************************/
static
int
Connect
(
access_t
*
p_access
,
int64_t
i_tell
)
static
int
Connect
(
access_t
*
p_access
,
u
int64_t
i_tell
)
{
access_sys_t
*
p_sys
=
p_access
->
p_sys
;
vlc_url_t
srv
=
p_sys
->
b_proxy
?
p_sys
->
proxy
:
p_sys
->
url
;
...
...
@@ -1226,7 +1227,7 @@ static int Connect( access_t *p_access, int64_t i_tell )
}
static
int
Request
(
access_t
*
p_access
,
int64_t
i_tell
)
static
int
Request
(
access_t
*
p_access
,
u
int64_t
i_tell
)
{
access_sys_t
*
p_sys
=
p_access
->
p_sys
;
char
*
psz
;
...
...
@@ -1410,18 +1411,18 @@ static int Request( access_t *p_access, int64_t i_tell )
if
(
!
strcasecmp
(
psz
,
"Content-Length"
)
)
{
int64_t
i_size
=
i_tell
+
(
p_sys
->
i_remaining
=
atoll
(
p
));
uint64_t
i_size
=
i_tell
+
(
p_sys
->
i_remaining
=
(
uint64_t
)
atoll
(
p
));
if
(
i_size
>
p_access
->
info
.
i_size
)
{
p_sys
->
b_has_size
=
true
;
p_access
->
info
.
i_size
=
i_size
;
}
msg_Dbg
(
p_access
,
"this frame size=%"
PRI
d
64
,
p_sys
->
i_remaining
);
msg_Dbg
(
p_access
,
"this frame size=%"
PRI
u
64
,
p_sys
->
i_remaining
);
}
else
if
(
!
strcasecmp
(
psz
,
"Content-Range"
)
)
{
int64_t
i_ntell
=
i_tell
;
int64_t
i_nend
=
(
p_access
->
info
.
i_size
>
0
)
?
(
p_access
->
info
.
i_size
-
1
)
:
i_tell
;
int64_t
i_nsize
=
p_access
->
info
.
i_size
;
sscanf
(
p
,
"bytes %"
SCN
d64
"-%"
SCNd64
"/%"
SCNd
64
,
&
i_ntell
,
&
i_nend
,
&
i_nsize
);
u
int64_t
i_ntell
=
i_tell
;
u
int64_t
i_nend
=
(
p_access
->
info
.
i_size
>
0
)
?
(
p_access
->
info
.
i_size
-
1
)
:
i_tell
;
u
int64_t
i_nsize
=
p_access
->
info
.
i_size
;
sscanf
(
p
,
"bytes %"
SCN
u64
"-%"
SCNu64
"/%"
SCNu
64
,
&
i_ntell
,
&
i_nend
,
&
i_nsize
);
if
(
i_nend
>
i_ntell
)
{
p_access
->
info
.
i_pos
=
i_ntell
;
p_sys
->
i_remaining
=
i_nend
+
1
-
i_ntell
;
...
...
@@ -1430,7 +1431,8 @@ static int Request( access_t *p_access, int64_t i_tell )
p_sys
->
b_has_size
=
true
;
p_access
->
info
.
i_size
=
i_size
;
}
msg_Dbg
(
p_access
,
"stream size=%"
PRId64
",pos=%"
PRId64
",remaining=%"
PRId64
,
i_nsize
,
i_ntell
,
p_sys
->
i_remaining
);
msg_Dbg
(
p_access
,
"stream size=%"
PRIu64
",pos=%"
PRIu64
",remaining=%"
PRIu64
,
i_nsize
,
i_ntell
,
p_sys
->
i_remaining
);
}
}
else
if
(
!
strcasecmp
(
psz
,
"Connection"
)
)
{
...
...
modules/access/mmap.c
View file @
2e847d84
...
...
@@ -67,7 +67,7 @@ vlc_module_begin ()
vlc_module_end
()
static
block_t
*
Block
(
access_t
*
);
static
int
Seek
(
access_t
*
,
int64_t
);
static
int
Seek
(
access_t
*
,
u
int64_t
);
static
int
Control
(
access_t
*
,
int
,
va_list
);
struct
access_sys_t
...
...
@@ -184,7 +184,7 @@ static block_t *Block (access_t *p_access)
p_access
->
info
.
i_update
|=
INPUT_UPDATE_SIZE
;
}
if
(
(
uint64_t
)
p_access
->
info
.
i_pos
>=
(
uint64_t
)
p_access
->
info
.
i_size
)
if
(
p_access
->
info
.
i_pos
>=
p_access
->
info
.
i_size
)
{
/* We are at end of file */
p_access
->
info
.
b_eof
=
true
;
...
...
@@ -193,7 +193,7 @@ static block_t *Block (access_t *p_access)
}
#ifdef MMAP_DEBUG
int64_t
dbgpos
=
lseek
(
p_sys
->
fd
,
0
,
SEEK_CUR
);
u
int64_t
dbgpos
=
lseek
(
p_sys
->
fd
,
0
,
SEEK_CUR
);
if
(
dbgpos
!=
p_access
->
info
.
i_pos
)
msg_Err
(
p_access
,
"position: 0x%016"
PRIx64
" instead of 0x%016"
PRIx64
,
p_access
->
info
.
i_pos
,
dbgpos
);
...
...
@@ -265,7 +265,7 @@ fatal:
}
static
int
Seek
(
access_t
*
p_access
,
int64_t
i_pos
)
static
int
Seek
(
access_t
*
p_access
,
u
int64_t
i_pos
)
{
#ifdef MMAP_DEBUG
lseek
(
p_access
->
p_sys
->
fd
,
i_pos
,
SEEK_SET
);
...
...
modules/access/mms/mmsh.c
View file @
2e847d84
...
...
@@ -54,11 +54,11 @@ void MMSHClose ( access_t * );
static
block_t
*
Block
(
access_t
*
p_access
);
static
ssize_t
ReadRedirect
(
access_t
*
,
uint8_t
*
,
size_t
);
static
int
Seek
(
access_t
*
,
int64_t
);
static
int
Seek
(
access_t
*
,
u
int64_t
);
static
int
Control
(
access_t
*
,
int
,
va_list
);
static
int
Describe
(
access_t
*
,
char
**
ppsz_location
);
static
int
Start
(
access_t
*
,
int64_t
);
static
int
Start
(
access_t
*
,
u
int64_t
);
static
void
Stop
(
access_t
*
);
static
int
GetPacket
(
access_t
*
,
chunk_t
*
);
...
...
@@ -287,12 +287,12 @@ static int Control( access_t *p_access, int i_query, va_list args )
/*****************************************************************************
* Seek: try to go at the right place
*****************************************************************************/
static
int
Seek
(
access_t
*
p_access
,
int64_t
i_pos
)
static
int
Seek
(
access_t
*
p_access
,
u
int64_t
i_pos
)
{
access_sys_t
*
p_sys
=
p_access
->
p_sys
;
chunk_t
ck
;
off_t
i_offset
;
off_t
i_packet
;
uint64_t
i_offset
;
uint64_t
i_packet
;
msg_Dbg
(
p_access
,
"seeking to %"
PRId64
,
i_pos
);
...
...
@@ -741,7 +741,7 @@ static void GetHeader( access_t *p_access )
/*****************************************************************************
* Start stream
****************************************************************************/
static
int
Start
(
access_t
*
p_access
,
int64_t
i_pos
)
static
int
Start
(
access_t
*
p_access
,
u
int64_t
i_pos
)
{
access_sys_t
*
p_sys
=
p_access
->
p_sys
;
int
i_streams
=
0
;
...
...
modules/access/mms/mmsh.h
View file @
2e847d84
...
...
@@ -64,7 +64,7 @@ struct access_sys_t
unsigned
int
i_packet_used
;
unsigned
int
i_packet_length
;
int64_t
i_start
;
uint64_t
i_start
;
asf_header_t
asfh
;
guid_t
guid
;
...
...
modules/access/mms/mmstu.c
View file @
2e847d84
...
...
@@ -66,7 +66,7 @@ void MMSTUClose ( access_t * );
static
block_t
*
Block
(
access_t
*
);
static
int
Seek
(
access_t
*
,
int64_t
);
static
int
Seek
(
access_t
*
,
u
int64_t
);
static
int
Control
(
access_t
*
,
int
,
va_list
);
static
int
MMSOpen
(
access_t
*
,
vlc_url_t
*
,
int
);
...
...
@@ -328,19 +328,15 @@ static int Control( access_t *p_access, int i_query, va_list args )
/*****************************************************************************
* Seek: try to go at the right place
*****************************************************************************/
static
int
Seek
(
access_t
*
p_access
,
int64_t
i_pos
)
static
int
Seek
(
access_t
*
p_access
,
u
int64_t
i_pos
)
{
access_sys_t
*
p_sys
=
p_access
->
p_sys
;
uint32_t
i_packet
;
uint32_t
i_offset
;
var_buffer_t
buffer
;
if
(
i_pos
<
0
)
return
VLC_EGENERIC
;
if
(
i_pos
<
p_sys
->
i_header
)
{
if
(
p_access
->
info
.
i_pos
<
p_sys
->
i_header
)
{
/* no need to restart stream, it was already one
...
...
@@ -362,7 +358,7 @@ static int Seek( access_t * p_access, int64_t i_pos )
if
(
p_sys
->
b_seekable
&&
i_packet
>=
p_sys
->
i_packet_count
)
return
VLC_EGENERIC
;
msg_Dbg
(
p_access
,
"seeking to %"
PRI
d64
" (packet:%d
)"
,
i_pos
,
i_packet
);
msg_Dbg
(
p_access
,
"seeking to %"
PRI
u64
" (packet:%u
)"
,
i_pos
,
i_packet
);
MMSStop
(
p_access
);
msg_Dbg
(
p_access
,
"stream stopped (seek)"
);
...
...
modules/access/mtp.c
View file @
2e847d84
...
...
@@ -79,7 +79,7 @@ vlc_module_end()
* Exported prototypes
*****************************************************************************/
static
int
Seek
(
access_t
*
,
int64_t
);
static
int
Seek
(
access_t
*
,
u
int64_t
);
static
ssize_t
Read
(
access_t
*
,
uint8_t
*
,
size_t
);
static
int
Control
(
access_t
*
,
int
,
va_list
);
...
...
@@ -233,7 +233,7 @@ static ssize_t Read( access_t *p_access, uint8_t *p_buffer, size_t i_len )
/*****************************************************************************
* Seek: seek to a specific location in a file
*****************************************************************************/
static
int
Seek
(
access_t
*
p_access
,
int64_t
i_pos
)
static
int
Seek
(
access_t
*
p_access
,
u
int64_t
i_pos
)
{
p_access
->
info
.
i_pos
=
i_pos
;
p_access
->
info
.
b_eof
=
false
;
...
...
modules/access/rtmp/access.c
View file @
2e847d84
...
...
@@ -81,7 +81,7 @@ vlc_module_end ()
* Local prototypes
*****************************************************************************/
static
ssize_t
Read
(
access_t
*
,
uint8_t
*
,
size_t
);
static
int
Seek
(
access_t
*
,
int64_t
);
static
int
Seek
(
access_t
*
,
u
int64_t
);
static
int
Control
(
access_t
*
,
int
,
va_list
);
static
void
*
ThreadControl
(
void
*
);
...
...
@@ -446,7 +446,7 @@ error:
/*****************************************************************************
* Seek: seek to a specific location in a file
*****************************************************************************/
static
int
Seek
(
access_t
*
p_access
,
int64_t
i_pos
)
static
int
Seek
(
access_t
*
p_access
,
u
int64_t
i_pos
)
{
VLC_UNUSED
(
p_access
);
VLC_UNUSED
(
i_pos
);
...
...
modules/access/rtsp/access.c
View file @
2e847d84
...
...
@@ -68,7 +68,7 @@ vlc_module_end ()
* Exported prototypes
*****************************************************************************/
static
block_t
*
BlockRead
(
access_t
*
);
static
int
Seek
(
access_t
*
,
int64_t
);
static
int
Seek
(
access_t
*
,
u
int64_t
);
static
int
Control
(
access_t
*
,
int
,
va_list
);
struct
access_sys_t
...
...
@@ -307,7 +307,7 @@ static block_t *BlockRead( access_t *p_access )
/*****************************************************************************
* Seek: seek to a specific location in a file
*****************************************************************************/
static
int
Seek
(
access_t
*
p_access
,
int64_t
i_pos
)
static
int
Seek
(
access_t
*
p_access
,
u
int64_t
i_pos
)
{
VLC_UNUSED
(
p_access
);
VLC_UNUSED
(
i_pos
);
...
...
modules/access/sftp.c
View file @
2e847d84
...
...
@@ -274,7 +274,7 @@ static block_t* Block( access_t* p_access )
}
static
int
Seek
(
access_t
*
p_access
,
int64_t
i_pos
)
static
int
Seek
(
access_t
*
p_access
,
u
int64_t
i_pos
)
{
p_access
->
info
.
i_pos
=
i_pos
;
p_access
->
info
.
b_eof
=
false
;
...
...
modules/access/smb.c
View file @
2e847d84
...
...
@@ -97,7 +97,7 @@ vlc_module_end ()
* Local prototypes
*****************************************************************************/
static
ssize_t
Read
(
access_t
*
,
uint8_t
*
,
size_t
);
static
int
Seek
(
access_t
*
,
int64_t
);
static
int
Seek
(
access_t
*
,
u
int64_t
);
static
int
Control
(
access_t
*
,
int
,
va_list
);
struct
access_sys_t
...
...
@@ -272,12 +272,13 @@ static void Close( vlc_object_t *p_this )
/*****************************************************************************
* Seek: try to go at the right place
*****************************************************************************/
static
int
Seek
(
access_t
*
p_access
,
int64_t
i_pos
)
static
int
Seek
(
access_t
*
p_access
,
u
int64_t
i_pos
)
{
access_sys_t
*
p_sys
=
p_access
->
p_sys
;
int64_t
i_ret
;
if
(
i_pos
<
0
)
return
VLC_EGENERIC
;
if
(
i_pos
>=
INT64_MAX
)
return
VLC_EGENERIC
;
msg_Dbg
(
p_access
,
"seeking to %"
PRId64
,
i_pos
);
...
...
modules/access/vcd/vcd.c
View file @
2e847d84
...
...
@@ -85,7 +85,7 @@ struct access_sys_t
};
static
block_t
*
Block
(
access_t
*
);
static
int
Seek
(
access_t
*
,
int64_t
);
static
int
Seek
(
access_t
*
,
u
int64_t
);
static
int
Control
(
access_t
*
,
int
,
va_list
);
static
int
EntryPoints
(
access_t
*
);
...
...
@@ -305,7 +305,7 @@ static int Control( access_t *p_access, int i_query, va_list args )
p_sys
->
i_sector
=
p_sys
->
p_sectors
[
1
+
p_access
->
info
.
i_title
]
+
t
->
seekpoint
[
i
]
->
i_byte_offset
/
VCD_DATA_SIZE
;
p_access
->
info
.
i_pos
=
(
int64_t
)(
p_sys
->
i_sector
-
p_access
->
info
.
i_pos
=
(
u
int64_t
)(
p_sys
->
i_sector
-
p_sys
->
p_sectors
[
1
+
p_access
->
info
.
i_title
])
*
VCD_DATA_SIZE
;
}
return
VLC_SUCCESS
;
...
...
@@ -408,7 +408,7 @@ static block_t *Block( access_t *p_access )
/*****************************************************************************
* Seek:
*****************************************************************************/
static
int
Seek
(
access_t
*
p_access
,
int64_t
i_pos
)
static
int
Seek
(
access_t
*
p_access
,
u
int64_t
i_pos
)
{
access_sys_t
*
p_sys
=
p_access
->
p_sys
;
input_title_t
*
t
=
p_sys
->
title
[
p_access
->
info
.
i_title
];
...
...
modules/access/vcdx/access.c
View file @
2e847d84
...
...
@@ -239,7 +239,7 @@ VCDReadBlock( access_t * p_access )
* VCDSeek
****************************************************************************/
int
VCDSeek
(
access_t
*
p_access
,
int64_t
i_pos
)
VCDSeek
(
access_t
*
p_access
,
u
int64_t
i_pos
)
{
if
(
!
p_access
||
!
p_access
->
p_sys
)
return
VLC_EGENERIC
;
{
...
...
@@ -250,7 +250,7 @@ VCDSeek( access_t * p_access, int64_t i_pos )
/* Next sector to read */
p_access
->
info
.
i_pos
=
i_pos
;
p_vcdplayer
->
i_lsn
=
(
i_pos
/
(
int64_t
)
M2F2_SECTOR_SIZE
)
+
p_vcdplayer
->
i_lsn
=
(
i_pos
/
(
u
int64_t
)
M2F2_SECTOR_SIZE
)
+
p_vcdplayer
->
origin_lsn
;
switch
(
p_vcdplayer
->
play_item
.
type
)
...
...
@@ -678,7 +678,7 @@ VCDSetOrigin( access_t *p_access, lsn_t i_lsn, track_t i_track,
if
(
p_vcdplayer
->
b_track_length
)
{
p_access
->
info
.
i_size
=
p_vcdplayer
->
p_title
[
i_track
-
1
]
->
i_size
;
p_access
->
info
.
i_pos
=
(
int64_t
)
M2F2_SECTOR_SIZE
*
p_access
->
info
.
i_pos
=
(
u
int64_t
)
M2F2_SECTOR_SIZE
*
(
vcdinfo_get_track_lsn
(
p_vcdplayer
->
vcd
,
i_track
)
-
i_lsn
);
}
else
{
p_access
->
info
.
i_size
=
M2F2_SECTOR_SIZE
*
(
int64_t
)
...
...
modules/access/zip/zipaccess.c
View file @
2e847d84
...
...
@@ -49,8 +49,8 @@ struct access_sys_t
static
int
AccessControl
(
access_t
*
p_access
,
int
i_query
,
va_list
args
);
static
ssize_t
AccessRead
(
access_t
*
,
uint8_t
*
,
size_t
);
static
int
AccessSeek
(
access_t
*
,
int64_t
);
static
int
OpenFileInZip
(
access_t
*
p_access
,
in
t
i_pos
);
static
int
AccessSeek
(
access_t
*
,
u
int64_t
);
static
int
OpenFileInZip
(
access_t
*
p_access
,
uint64_
t
i_pos
);
static
char
*
unescapeXml
(
const
char
*
psz_text
);
/** **************************************************************************
...
...
@@ -287,7 +287,7 @@ static ssize_t AccessRead( access_t *p_access, uint8_t *p_buffer, size_t sz )
/** **************************************************************************
* \brief Seek inside zip file
*****************************************************************************/
static
int
AccessSeek
(
access_t
*
p_access
,
int64_t
seek_len
)
static
int
AccessSeek
(
access_t
*
p_access
,
u
int64_t
seek_len
)
{
access_sys_t
*
p_sys
=
p_access
->
p_sys
;
assert
(
p_sys
);
...
...
@@ -305,7 +305,7 @@ static int AccessSeek( access_t *p_access, int64_t seek_len )
}
/* Read seek_len data and drop it */
int
i_seek
=
0
;
unsigned
i_seek
=
0
;
int
i_read
=
1
;
char
*
p_buffer
=
(
char
*
)
calloc
(
1
,
ZIP_BUFFER_LEN
);
while
(
(
i_seek
<
seek_len
)
&&
(
i_read
>
0
)
)
...
...
@@ -333,7 +333,7 @@ static int AccessSeek( access_t *p_access, int64_t seek_len )
/** **************************************************************************
* \brief Open file in zip
*****************************************************************************/
static
int
OpenFileInZip
(
access_t
*
p_access
,
in
t
i_pos
)
static
int
OpenFileInZip
(
access_t
*
p_access
,
uint64_
t
i_pos
)
{
access_sys_t
*
p_sys
=
p_access
->
p_sys
;
unzFile
file
=
p_sys
->
zipFile
;
...
...
@@ -342,7 +342,6 @@ static int OpenFileInZip( access_t *p_access, int i_pos )
return
VLC_EGENERIC
;
}
i_pos
=
__MIN
(
i_pos
,
0
);
p_access
->
info
.
i_pos
=
0
;
unzCloseCurrentFile
(
file
);
/* returns UNZ_PARAMERROR if file not opened */
...
...
@@ -435,6 +434,8 @@ static long ZCALLBACK ZipIO_Seek( void* opaque, void* stream,
default:
return
-
1
;
}
if
(
pos
<
0
)
return
-
1
;
//msg_Dbg( p_access, "seek (%d,%d): %" PRIu64, offset, origin, pos );
stream_Seek
(
(
stream_t
*
)
stream
,
pos
);
/* Note: in unzip.c, unzlocal_SearchCentralDir seeks to the end of
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment