Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
ffmpeg
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
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
ffmpeg
Commits
53151723
Commit
53151723
authored
Oct 27, 2013
by
Luca Barbato
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
avio: K&R formatting cosmetics
parent
aaaf2dc0
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
50 additions
and
40 deletions
+50
-40
avio.c
libavformat/avio.c
+50
-40
No files found.
libavformat/avio.c
View file @
53151723
...
@@ -42,8 +42,10 @@ URLProtocol *ffurl_protocol_next(URLProtocol *prev)
...
@@ -42,8 +42,10 @@ URLProtocol *ffurl_protocol_next(URLProtocol *prev)
static
const
char
*
urlcontext_to_name
(
void
*
ptr
)
static
const
char
*
urlcontext_to_name
(
void
*
ptr
)
{
{
URLContext
*
h
=
(
URLContext
*
)
ptr
;
URLContext
*
h
=
(
URLContext
*
)
ptr
;
if
(
h
->
prot
)
return
h
->
prot
->
name
;
if
(
h
->
prot
)
else
return
"NULL"
;
return
h
->
prot
->
name
;
else
return
"NULL"
;
}
}
static
void
*
urlcontext_child_next
(
void
*
obj
,
void
*
prev
)
static
void
*
urlcontext_child_next
(
void
*
obj
,
void
*
prev
)
...
@@ -68,26 +70,25 @@ static const AVClass *urlcontext_child_class_next(const AVClass *prev)
...
@@ -68,26 +70,25 @@ static const AVClass *urlcontext_child_class_next(const AVClass *prev)
if
(
p
->
priv_data_class
)
if
(
p
->
priv_data_class
)
return
p
->
priv_data_class
;
return
p
->
priv_data_class
;
return
NULL
;
return
NULL
;
}
}
static
const
AVOption
options
[]
=
{
{
NULL
}
};
static
const
AVOption
options
[]
=
{
{
NULL
}
};
const
AVClass
ffurl_context_class
=
{
const
AVClass
ffurl_context_class
=
{
.
class_name
=
"URLContext"
,
.
class_name
=
"URLContext"
,
.
item_name
=
urlcontext_to_name
,
.
item_name
=
urlcontext_to_name
,
.
option
=
options
,
.
option
=
options
,
.
version
=
LIBAVUTIL_VERSION_INT
,
.
version
=
LIBAVUTIL_VERSION_INT
,
.
child_next
=
urlcontext_child_next
,
.
child_next
=
urlcontext_child_next
,
.
child_class_next
=
urlcontext_child_class_next
,
.
child_class_next
=
urlcontext_child_class_next
,
};
};
/*@}*/
/*@}*/
const
char
*
avio_enum_protocols
(
void
**
opaque
,
int
output
)
const
char
*
avio_enum_protocols
(
void
**
opaque
,
int
output
)
{
{
URLProtocol
*
p
;
URLProtocol
*
p
;
*
opaque
=
ffurl_protocol_next
(
*
opaque
);
*
opaque
=
ffurl_protocol_next
(
*
opaque
);
if
(
!
(
p
=
*
opaque
))
return
NULL
;
if
(
!
(
p
=
*
opaque
))
return
NULL
;
if
((
output
&&
p
->
url_write
)
||
(
!
output
&&
p
->
url_read
))
if
((
output
&&
p
->
url_write
)
||
(
!
output
&&
p
->
url_read
))
return
p
->
name
;
return
p
->
name
;
return
avio_enum_protocols
(
opaque
,
output
);
return
avio_enum_protocols
(
opaque
,
output
);
...
@@ -97,20 +98,21 @@ int ffurl_register_protocol(URLProtocol *protocol, int size)
...
@@ -97,20 +98,21 @@ int ffurl_register_protocol(URLProtocol *protocol, int size)
{
{
URLProtocol
**
p
;
URLProtocol
**
p
;
if
(
size
<
sizeof
(
URLProtocol
))
{
if
(
size
<
sizeof
(
URLProtocol
))
{
URLProtocol
*
temp
=
av_mallocz
(
sizeof
(
URLProtocol
));
URLProtocol
*
temp
=
av_mallocz
(
sizeof
(
URLProtocol
));
memcpy
(
temp
,
protocol
,
size
);
memcpy
(
temp
,
protocol
,
size
);
protocol
=
temp
;
protocol
=
temp
;
}
}
p
=
&
first_protocol
;
p
=
&
first_protocol
;
while
(
*
p
!=
NULL
)
p
=
&
(
*
p
)
->
next
;
while
(
*
p
!=
NULL
)
*
p
=
protocol
;
p
=
&
(
*
p
)
->
next
;
*
p
=
protocol
;
protocol
->
next
=
NULL
;
protocol
->
next
=
NULL
;
return
0
;
return
0
;
}
}
static
int
url_alloc_for_protocol
(
URLContext
**
puc
,
struct
URLProtocol
*
up
,
static
int
url_alloc_for_protocol
(
URLContext
**
puc
,
struct
URLProtocol
*
up
,
const
char
*
filename
,
int
flags
,
const
char
*
filename
,
int
flags
,
const
AVIOInterruptCB
*
int_cb
)
const
AVIOInterruptCB
*
int_cb
)
{
{
URLContext
*
uc
;
URLContext
*
uc
;
int
err
;
int
err
;
...
@@ -125,16 +127,16 @@ static int url_alloc_for_protocol (URLContext **puc, struct URLProtocol *up,
...
@@ -125,16 +127,16 @@ static int url_alloc_for_protocol (URLContext **puc, struct URLProtocol *up,
goto
fail
;
goto
fail
;
}
}
uc
->
av_class
=
&
ffurl_context_class
;
uc
->
av_class
=
&
ffurl_context_class
;
uc
->
filename
=
(
char
*
)
&
uc
[
1
];
uc
->
filename
=
(
char
*
)
&
uc
[
1
];
strcpy
(
uc
->
filename
,
filename
);
strcpy
(
uc
->
filename
,
filename
);
uc
->
prot
=
up
;
uc
->
prot
=
up
;
uc
->
flags
=
flags
;
uc
->
flags
=
flags
;
uc
->
is_streamed
=
0
;
/* default = not streamed */
uc
->
is_streamed
=
0
;
/* default = not streamed */
uc
->
max_packet_size
=
0
;
/* default: stream file */
uc
->
max_packet_size
=
0
;
/* default: stream file */
if
(
up
->
priv_data_size
)
{
if
(
up
->
priv_data_size
)
{
uc
->
priv_data
=
av_mallocz
(
up
->
priv_data_size
);
uc
->
priv_data
=
av_mallocz
(
up
->
priv_data_size
);
if
(
up
->
priv_data_class
)
{
if
(
up
->
priv_data_class
)
{
*
(
const
AVClass
**
)
uc
->
priv_data
=
up
->
priv_data_class
;
*
(
const
AVClass
**
)
uc
->
priv_data
=
up
->
priv_data_class
;
av_opt_set_defaults
(
uc
->
priv_data
);
av_opt_set_defaults
(
uc
->
priv_data
);
}
}
}
}
...
@@ -143,7 +145,7 @@ static int url_alloc_for_protocol (URLContext **puc, struct URLProtocol *up,
...
@@ -143,7 +145,7 @@ static int url_alloc_for_protocol (URLContext **puc, struct URLProtocol *up,
*
puc
=
uc
;
*
puc
=
uc
;
return
0
;
return
0
;
fail:
fail:
*
puc
=
NULL
;
*
puc
=
NULL
;
#if CONFIG_NETWORK
#if CONFIG_NETWORK
if
(
up
->
flags
&
URL_PROTOCOL_FLAG_NETWORK
)
if
(
up
->
flags
&
URL_PROTOCOL_FLAG_NETWORK
)
...
@@ -152,19 +154,22 @@ static int url_alloc_for_protocol (URLContext **puc, struct URLProtocol *up,
...
@@ -152,19 +154,22 @@ static int url_alloc_for_protocol (URLContext **puc, struct URLProtocol *up,
return
err
;
return
err
;
}
}
int
ffurl_connect
(
URLContext
*
uc
,
AVDictionary
**
options
)
int
ffurl_connect
(
URLContext
*
uc
,
AVDictionary
**
options
)
{
{
int
err
=
int
err
=
uc
->
prot
->
url_open2
?
uc
->
prot
->
url_open2
(
uc
,
uc
->
filename
,
uc
->
flags
,
options
)
:
uc
->
prot
->
url_open2
?
uc
->
prot
->
url_open2
(
uc
,
uc
->
filename
,
uc
->
flags
,
options
)
:
uc
->
prot
->
url_open
(
uc
,
uc
->
filename
,
uc
->
flags
);
uc
->
prot
->
url_open
(
uc
,
uc
->
filename
,
uc
->
flags
);
if
(
err
)
if
(
err
)
return
err
;
return
err
;
uc
->
is_connected
=
1
;
uc
->
is_connected
=
1
;
/
/We must be careful here as ffurl_seek() could be slow, for example for http
/
* We must be careful here as ffurl_seek() could be slow,
if
(
(
uc
->
flags
&
AVIO_FLAG_WRITE
)
* for example for http */
||
!
strcmp
(
uc
->
prot
->
name
,
"file"
))
if
((
uc
->
flags
&
AVIO_FLAG_WRITE
)
||
!
strcmp
(
uc
->
prot
->
name
,
"file"
))
if
(
!
uc
->
is_streamed
&&
ffurl_seek
(
uc
,
0
,
SEEK_SET
)
<
0
)
if
(
!
uc
->
is_streamed
&&
ffurl_seek
(
uc
,
0
,
SEEK_SET
)
<
0
)
uc
->
is_streamed
=
1
;
uc
->
is_streamed
=
1
;
return
0
;
return
0
;
}
}
...
@@ -183,7 +188,8 @@ int ffurl_alloc(URLContext **puc, const char *filename, int flags,
...
@@ -183,7 +188,8 @@ int ffurl_alloc(URLContext **puc, const char *filename, int flags,
if
(
filename
[
proto_len
]
!=
':'
||
is_dos_path
(
filename
))
if
(
filename
[
proto_len
]
!=
':'
||
is_dos_path
(
filename
))
strcpy
(
proto_str
,
"file"
);
strcpy
(
proto_str
,
"file"
);
else
else
av_strlcpy
(
proto_str
,
filename
,
FFMIN
(
proto_len
+
1
,
sizeof
(
proto_str
)));
av_strlcpy
(
proto_str
,
filename
,
FFMIN
(
proto_len
+
1
,
sizeof
(
proto_str
)));
av_strlcpy
(
proto_nested
,
proto_str
,
sizeof
(
proto_nested
));
av_strlcpy
(
proto_nested
,
proto_str
,
sizeof
(
proto_nested
));
if
((
ptr
=
strchr
(
proto_nested
,
'+'
)))
if
((
ptr
=
strchr
(
proto_nested
,
'+'
)))
...
@@ -191,10 +197,10 @@ int ffurl_alloc(URLContext **puc, const char *filename, int flags,
...
@@ -191,10 +197,10 @@ int ffurl_alloc(URLContext **puc, const char *filename, int flags,
while
(
up
=
ffurl_protocol_next
(
up
))
{
while
(
up
=
ffurl_protocol_next
(
up
))
{
if
(
!
strcmp
(
proto_str
,
up
->
name
))
if
(
!
strcmp
(
proto_str
,
up
->
name
))
return
url_alloc_for_protocol
(
puc
,
up
,
filename
,
flags
,
int_cb
);
return
url_alloc_for_protocol
(
puc
,
up
,
filename
,
flags
,
int_cb
);
if
(
up
->
flags
&
URL_PROTOCOL_FLAG_NESTED_SCHEME
&&
if
(
up
->
flags
&
URL_PROTOCOL_FLAG_NESTED_SCHEME
&&
!
strcmp
(
proto_nested
,
up
->
name
))
!
strcmp
(
proto_nested
,
up
->
name
))
return
url_alloc_for_protocol
(
puc
,
up
,
filename
,
flags
,
int_cb
);
return
url_alloc_for_protocol
(
puc
,
up
,
filename
,
flags
,
int_cb
);
}
}
*
puc
=
NULL
;
*
puc
=
NULL
;
return
AVERROR_PROTOCOL_NOT_FOUND
;
return
AVERROR_PROTOCOL_NOT_FOUND
;
...
@@ -218,15 +224,18 @@ fail:
...
@@ -218,15 +224,18 @@ fail:
return
ret
;
return
ret
;
}
}
static
inline
int
retry_transfer_wrapper
(
URLContext
*
h
,
unsigned
char
*
buf
,
int
size
,
int
size_min
,
static
inline
int
retry_transfer_wrapper
(
URLContext
*
h
,
uint8_t
*
buf
,
int
(
*
transfer_func
)(
URLContext
*
h
,
unsigned
char
*
buf
,
int
size
))
int
size
,
int
size_min
,
int
(
*
transfer_func
)(
URLContext
*
h
,
uint8_t
*
buf
,
int
size
))
{
{
int
ret
,
len
;
int
ret
,
len
;
int
fast_retries
=
5
;
int
fast_retries
=
5
;
len
=
0
;
len
=
0
;
while
(
len
<
size_min
)
{
while
(
len
<
size_min
)
{
ret
=
transfer_func
(
h
,
buf
+
len
,
size
-
len
);
ret
=
transfer_func
(
h
,
buf
+
len
,
size
-
len
);
if
(
ret
==
AVERROR
(
EINTR
))
if
(
ret
==
AVERROR
(
EINTR
))
continue
;
continue
;
if
(
h
->
flags
&
AVIO_FLAG_NONBLOCK
)
if
(
h
->
flags
&
AVIO_FLAG_NONBLOCK
)
...
@@ -240,7 +249,7 @@ static inline int retry_transfer_wrapper(URLContext *h, unsigned char *buf, int
...
@@ -240,7 +249,7 @@ static inline int retry_transfer_wrapper(URLContext *h, unsigned char *buf, int
}
else
if
(
ret
<
1
)
}
else
if
(
ret
<
1
)
return
(
ret
<
0
&&
ret
!=
AVERROR_EOF
)
?
ret
:
len
;
return
(
ret
<
0
&&
ret
!=
AVERROR_EOF
)
?
ret
:
len
;
if
(
ret
)
if
(
ret
)
fast_retries
=
FFMAX
(
fast_retries
,
2
);
fast_retries
=
FFMAX
(
fast_retries
,
2
);
len
+=
ret
;
len
+=
ret
;
if
(
ff_check_interrupt
(
&
h
->
interrupt_callback
))
if
(
ff_check_interrupt
(
&
h
->
interrupt_callback
))
return
AVERROR_EXIT
;
return
AVERROR_EXIT
;
...
@@ -286,7 +295,8 @@ int64_t ffurl_seek(URLContext *h, int64_t pos, int whence)
...
@@ -286,7 +295,8 @@ int64_t ffurl_seek(URLContext *h, int64_t pos, int whence)
int
ffurl_close
(
URLContext
*
h
)
int
ffurl_close
(
URLContext
*
h
)
{
{
int
ret
=
0
;
int
ret
=
0
;
if
(
!
h
)
return
0
;
/* can happen when ffurl_open fails */
if
(
!
h
)
return
0
;
/* can happen when ffurl_open fails */
if
(
h
->
is_connected
&&
h
->
prot
->
url_close
)
if
(
h
->
is_connected
&&
h
->
prot
->
url_close
)
ret
=
h
->
prot
->
url_close
(
h
);
ret
=
h
->
prot
->
url_close
(
h
);
...
@@ -326,8 +336,8 @@ int64_t ffurl_size(URLContext *h)
...
@@ -326,8 +336,8 @@ int64_t ffurl_size(URLContext *h)
{
{
int64_t
pos
,
size
;
int64_t
pos
,
size
;
size
=
ffurl_seek
(
h
,
0
,
AVSEEK_SIZE
);
size
=
ffurl_seek
(
h
,
0
,
AVSEEK_SIZE
);
if
(
size
<
0
)
{
if
(
size
<
0
)
{
pos
=
ffurl_seek
(
h
,
0
,
SEEK_CUR
);
pos
=
ffurl_seek
(
h
,
0
,
SEEK_CUR
);
if
((
size
=
ffurl_seek
(
h
,
-
1
,
SEEK_END
))
<
0
)
if
((
size
=
ffurl_seek
(
h
,
-
1
,
SEEK_END
))
<
0
)
return
size
;
return
size
;
...
...
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