Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
58a48c65
Commit
58a48c65
authored
Mar 31, 2011
by
Anton Khirnov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
avio: make url_seek() internal.
parent
230a4686
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
32 additions
and
27 deletions
+32
-27
avio.c
libavformat/avio.c
+11
-7
avio.h
libavformat/avio.h
+1
-16
aviobuf.c
libavformat/aviobuf.c
+1
-1
concat.c
libavformat/concat.c
+3
-3
url.h
libavformat/url.h
+16
-0
No files found.
libavformat/avio.c
View file @
58a48c65
...
...
@@ -143,10 +143,10 @@ int ffurl_connect(URLContext* uc)
if
(
err
)
return
err
;
uc
->
is_connected
=
1
;
//We must be careful here as url_seek() could be slow, for example for http
//We must be careful here as
ff
url_seek() could be slow, for example for http
if
(
(
uc
->
flags
&
(
URL_WRONLY
|
URL_RDWR
))
||
!
strcmp
(
uc
->
prot
->
name
,
"file"
))
if
(
!
uc
->
is_streamed
&&
url_seek
(
uc
,
0
,
SEEK_SET
)
<
0
)
if
(
!
uc
->
is_streamed
&&
ff
url_seek
(
uc
,
0
,
SEEK_SET
)
<
0
)
uc
->
is_streamed
=
1
;
return
0
;
}
...
...
@@ -192,6 +192,10 @@ int url_write(URLContext *h, const unsigned char *buf, int size)
{
return
ffurl_write
(
h
,
buf
,
size
);
}
int64_t
url_seek
(
URLContext
*
h
,
int64_t
pos
,
int
whence
)
{
return
ffurl_seek
(
h
,
pos
,
whence
);
}
#endif
#define URL_SCHEME_CHARS \
...
...
@@ -295,7 +299,7 @@ int ffurl_write(URLContext *h, const unsigned char *buf, int size)
return
retry_transfer_wrapper
(
h
,
buf
,
size
,
size
,
h
->
prot
->
url_write
);
}
int64_t
url_seek
(
URLContext
*
h
,
int64_t
pos
,
int
whence
)
int64_t
ff
url_seek
(
URLContext
*
h
,
int64_t
pos
,
int
whence
)
{
int64_t
ret
;
...
...
@@ -334,13 +338,13 @@ int64_t url_filesize(URLContext *h)
{
int64_t
pos
,
size
;
size
=
url_seek
(
h
,
0
,
AVSEEK_SIZE
);
size
=
ff
url_seek
(
h
,
0
,
AVSEEK_SIZE
);
if
(
size
<
0
){
pos
=
url_seek
(
h
,
0
,
SEEK_CUR
);
if
((
size
=
url_seek
(
h
,
-
1
,
SEEK_END
))
<
0
)
pos
=
ff
url_seek
(
h
,
0
,
SEEK_CUR
);
if
((
size
=
ff
url_seek
(
h
,
-
1
,
SEEK_END
))
<
0
)
return
size
;
size
++
;
url_seek
(
h
,
pos
,
SEEK_SET
);
ff
url_seek
(
h
,
pos
,
SEEK_SET
);
}
return
size
;
}
...
...
libavformat/avio.h
View file @
58a48c65
...
...
@@ -108,24 +108,9 @@ attribute_deprecated int url_open(URLContext **h, const char *url, int flags);
attribute_deprecated
int
url_read
(
URLContext
*
h
,
unsigned
char
*
buf
,
int
size
);
attribute_deprecated
int
url_read_complete
(
URLContext
*
h
,
unsigned
char
*
buf
,
int
size
);
attribute_deprecated
int
url_write
(
URLContext
*
h
,
const
unsigned
char
*
buf
,
int
size
);
attribute_deprecated
int64_t
url_seek
(
URLContext
*
h
,
int64_t
pos
,
int
whence
);
#endif
/**
* Change the position that will be used by the next read/write
* operation on the resource accessed by h.
*
* @param pos specifies the new position to set
* @param whence specifies how pos should be interpreted, it must be
* one of SEEK_SET (seek from the beginning), SEEK_CUR (seek from the
* current position), SEEK_END (seek from the end), or AVSEEK_SIZE
* (return the filesize of the requested resource, pos is ignored).
* @return a negative value corresponding to an AVERROR code in case
* of failure, or the resulting file position, measured in bytes from
* the beginning of the file. You can use this feature together with
* SEEK_CUR to read the current file position.
*/
int64_t
url_seek
(
URLContext
*
h
,
int64_t
pos
,
int
whence
);
/**
* Close the resource accessed by the URLContext h, and free the
* memory used by it.
...
...
libavformat/aviobuf.c
View file @
58a48c65
...
...
@@ -846,7 +846,7 @@ int ffio_fdopen(AVIOContext **s, URLContext *h)
if
(
ffio_init_context
(
*
s
,
buffer
,
buffer_size
,
(
h
->
flags
&
URL_WRONLY
||
h
->
flags
&
URL_RDWR
),
h
,
ffurl_read
,
ffurl_write
,
url_seek
)
<
0
)
{
ffurl_read
,
ffurl_write
,
ff
url_seek
)
<
0
)
{
av_free
(
buffer
);
av_freep
(
s
);
return
AVERROR
(
EIO
);
...
...
libavformat/concat.c
View file @
58a48c65
...
...
@@ -141,7 +141,7 @@ static int concat_read(URLContext *h, unsigned char *buf, int size)
return
total
?
total
:
result
;
if
(
!
result
)
if
(
i
+
1
==
data
->
length
||
url_seek
(
nodes
[
++
i
].
uc
,
0
,
SEEK_SET
)
<
0
)
ff
url_seek
(
nodes
[
++
i
].
uc
,
0
,
SEEK_SET
)
<
0
)
break
;
total
+=
result
;
buf
+=
result
;
...
...
@@ -169,7 +169,7 @@ static int64_t concat_seek(URLContext *h, int64_t pos, int whence)
/* get the absolute position */
for
(
i
=
0
;
i
!=
data
->
current
;
i
++
)
pos
+=
nodes
[
i
].
size
;
pos
+=
url_seek
(
nodes
[
i
].
uc
,
0
,
SEEK_CUR
);
pos
+=
ff
url_seek
(
nodes
[
i
].
uc
,
0
,
SEEK_CUR
);
whence
=
SEEK_SET
;
/* fall through with the absolute position */
case
SEEK_SET
:
...
...
@@ -180,7 +180,7 @@ static int64_t concat_seek(URLContext *h, int64_t pos, int whence)
return
AVERROR
(
EINVAL
);
}
result
=
url_seek
(
nodes
[
i
].
uc
,
pos
,
whence
);
result
=
ff
url_seek
(
nodes
[
i
].
uc
,
pos
,
whence
);
if
(
result
>=
0
)
{
data
->
current
=
i
;
while
(
i
)
...
...
libavformat/url.h
View file @
58a48c65
...
...
@@ -86,4 +86,20 @@ int ffurl_read_complete(URLContext *h, unsigned char *buf, int size);
*/
int
ffurl_write
(
URLContext
*
h
,
const
unsigned
char
*
buf
,
int
size
);
/**
* Change the position that will be used by the next read/write
* operation on the resource accessed by h.
*
* @param pos specifies the new position to set
* @param whence specifies how pos should be interpreted, it must be
* one of SEEK_SET (seek from the beginning), SEEK_CUR (seek from the
* current position), SEEK_END (seek from the end), or AVSEEK_SIZE
* (return the filesize of the requested resource, pos is ignored).
* @return a negative value corresponding to an AVERROR code in case
* of failure, or the resulting file position, measured in bytes from
* the beginning of the file. You can use this feature together with
* SEEK_CUR to read the current file position.
*/
int64_t
ffurl_seek
(
URLContext
*
h
,
int64_t
pos
,
int
whence
);
#endif //AVFORMAT_URL_H
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