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
5e3f9979
Commit
5e3f9979
authored
Sep 05, 2012
by
Diego Elio Pettenò
Committed by
Derek Buitenhuis
Oct 01, 2012
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use atexit() instead of defining a custom exit_program() interface.
parent
bd680c7b
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
115 additions
and
130 deletions
+115
-130
avconv.c
avconv.c
+28
-28
avconv_filter.c
avconv_filter.c
+11
-11
avconv_opt.c
avconv_opt.c
+65
-65
avplay.c
avplay.c
+0
-5
avprobe.c
avprobe.c
+3
-2
avserver.c
avserver.c
+0
-5
cmdutils.c
cmdutils.c
+7
-7
cmdutils.h
cmdutils.h
+1
-7
No files found.
avconv.c
View file @
5e3f9979
...
...
@@ -143,7 +143,7 @@ static int decode_interrupt_cb(void *ctx)
const
AVIOInterruptCB
int_cb
=
{
decode_interrupt_cb
,
NULL
};
void
exit_program
(
int
ret
)
static
void
exit_program
(
)
{
int
i
,
j
;
...
...
@@ -218,8 +218,6 @@ void exit_program(int ret)
(
int
)
received_sigterm
);
exit
(
255
);
}
exit
(
ret
);
}
void
assert_avoptions
(
AVDictionary
*
m
)
...
...
@@ -227,7 +225,7 @@ void assert_avoptions(AVDictionary *m)
AVDictionaryEntry
*
t
;
if
((
t
=
av_dict_get
(
m
,
""
,
NULL
,
AV_DICT_IGNORE_SUFFIX
)))
{
av_log
(
NULL
,
AV_LOG_FATAL
,
"Option %s not found.
\n
"
,
t
->
key
);
exit
_program
(
1
);
exit
(
1
);
}
}
...
...
@@ -244,7 +242,7 @@ static void assert_codec_experimental(AVCodecContext *c, int encoder)
if
(
!
(
codec
->
capabilities
&
CODEC_CAP_EXPERIMENTAL
))
av_log
(
NULL
,
AV_LOG_FATAL
,
"Or use the non experimental %s '%s'.
\n
"
,
codec_string
,
codec
->
name
);
exit
_program
(
1
);
exit
(
1
);
}
}
...
...
@@ -343,7 +341,7 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost)
avctx
->
codec
?
avctx
->
codec
->
name
:
"copy"
);
print_error
(
""
,
a
);
if
(
exit_on_error
)
exit
_program
(
1
);
exit
(
1
);
}
*
pkt
=
new_pkt
;
...
...
@@ -354,7 +352,7 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost)
ret
=
av_interleaved_write_frame
(
s
,
pkt
);
if
(
ret
<
0
)
{
print_error
(
"av_interleaved_write_frame()"
,
ret
);
exit
_program
(
1
);
exit
(
1
);
}
}
...
...
@@ -391,7 +389,7 @@ static void do_audio_out(AVFormatContext *s, OutputStream *ost,
if
(
avcodec_encode_audio2
(
enc
,
&
pkt
,
frame
,
&
got_packet
)
<
0
)
{
av_log
(
NULL
,
AV_LOG_FATAL
,
"Audio encoding failed
\n
"
);
exit
_program
(
1
);
exit
(
1
);
}
if
(
got_packet
)
{
...
...
@@ -462,7 +460,7 @@ static void do_subtitle_out(AVFormatContext *s,
if
(
pts
==
AV_NOPTS_VALUE
)
{
av_log
(
NULL
,
AV_LOG_ERROR
,
"Subtitle packets must have a pts
\n
"
);
if
(
exit_on_error
)
exit
_program
(
1
);
exit
(
1
);
return
;
}
...
...
@@ -494,7 +492,7 @@ static void do_subtitle_out(AVFormatContext *s,
subtitle_out_max_size
,
sub
);
if
(
subtitle_out_size
<
0
)
{
av_log
(
NULL
,
AV_LOG_FATAL
,
"Subtitle encoding failed
\n
"
);
exit
_program
(
1
);
exit
(
1
);
}
av_init_packet
(
&
pkt
);
...
...
@@ -594,7 +592,7 @@ static void do_video_out(AVFormatContext *s,
ret
=
avcodec_encode_video2
(
enc
,
&
pkt
,
&
big_picture
,
&
got_packet
);
if
(
ret
<
0
)
{
av_log
(
NULL
,
AV_LOG_FATAL
,
"Video encoding failed
\n
"
);
exit
_program
(
1
);
exit
(
1
);
}
if
(
got_packet
)
{
...
...
@@ -639,7 +637,7 @@ static void do_video_stats(AVFormatContext *os, OutputStream *ost,
vstats_file
=
fopen
(
vstats_filename
,
"w"
);
if
(
!
vstats_file
)
{
perror
(
"fopen"
);
exit
_program
(
1
);
exit
(
1
);
}
}
...
...
@@ -952,7 +950,7 @@ static void flush_encoders(void)
ret
=
encode
(
enc
,
&
pkt
,
NULL
,
&
got_packet
);
if
(
ret
<
0
)
{
av_log
(
NULL
,
AV_LOG_FATAL
,
"%s encoding failed
\n
"
,
desc
);
exit
_program
(
1
);
exit
(
1
);
}
*
size
+=
ret
;
if
(
ost
->
logfile
&&
enc
->
stats_out
)
{
...
...
@@ -1163,7 +1161,7 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output)
av_log
(
NULL
,
AV_LOG_FATAL
,
"Audio volume adjustment on sample format %s is not supported.
\n
"
,
av_get_sample_fmt_name
(
ist
->
st
->
codec
->
sample_fmt
));
exit
_program
(
1
);
exit
(
1
);
}
}
...
...
@@ -1180,7 +1178,7 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output)
av_log
(
NULL
,
AV_LOG_FATAL
,
"Unable to find default channel "
"layout for Input Stream #%d.%d
\n
"
,
ist
->
file_index
,
ist
->
st
->
index
);
exit
_program
(
1
);
exit
(
1
);
}
decoded_frame
->
channel_layout
=
avctx
->
channel_layout
;
...
...
@@ -1206,7 +1204,7 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output)
if
(
ist_in_filtergraph
(
filtergraphs
[
i
],
ist
)
&&
configure_filtergraph
(
filtergraphs
[
i
])
<
0
)
{
av_log
(
NULL
,
AV_LOG_FATAL
,
"Error reinitializing filters!
\n
"
);
exit
_program
(
1
);
exit
(
1
);
}
}
...
...
@@ -1276,7 +1274,7 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output)
if
(
ist_in_filtergraph
(
filtergraphs
[
i
],
ist
)
&&
configure_filtergraph
(
filtergraphs
[
i
])
<
0
)
{
av_log
(
NULL
,
AV_LOG_FATAL
,
"Error reinitializing filters!
\n
"
);
exit
_program
(
1
);
exit
(
1
);
}
}
...
...
@@ -1442,7 +1440,7 @@ static void print_sdp(void)
AVFormatContext
**
avc
=
av_malloc
(
sizeof
(
*
avc
)
*
nb_output_files
);
if
(
!
avc
)
exit
_program
(
1
);
exit
(
1
);
for
(
i
=
0
;
i
<
nb_output_files
;
i
++
)
avc
[
i
]
=
output_files
[
i
]
->
ctx
;
...
...
@@ -1530,7 +1528,7 @@ static void parse_forced_key_frames(char *kf, OutputStream *ost,
ost
->
forced_kf_pts
=
av_malloc
(
sizeof
(
*
ost
->
forced_kf_pts
)
*
n
);
if
(
!
ost
->
forced_kf_pts
)
{
av_log
(
NULL
,
AV_LOG_FATAL
,
"Could not allocate forced key frames array.
\n
"
);
exit
_program
(
1
);
exit
(
1
);
}
p
=
kf
;
...
...
@@ -1644,7 +1642,7 @@ static int transcode_init(void)
case
AVMEDIA_TYPE_AUDIO
:
if
(
audio_volume
!=
256
)
{
av_log
(
NULL
,
AV_LOG_FATAL
,
"-acodec copy and -vol are incompatible (frames are not decoded)
\n
"
);
exit
_program
(
1
);
exit
(
1
);
}
codec
->
channel_layout
=
icodec
->
channel_layout
;
codec
->
sample_rate
=
icodec
->
sample_rate
;
...
...
@@ -1782,7 +1780,7 @@ static int transcode_init(void)
if
(
!
f
)
{
av_log
(
NULL
,
AV_LOG_FATAL
,
"Cannot write log file '%s' for pass-1 encoding: %s
\n
"
,
logfilename
,
strerror
(
errno
));
exit
_program
(
1
);
exit
(
1
);
}
ost
->
logfile
=
f
;
}
else
{
...
...
@@ -1791,7 +1789,7 @@ static int transcode_init(void)
if
(
cmdutils_read_file
(
logfilename
,
&
logbuffer
,
&
logbuffer_size
)
<
0
)
{
av_log
(
NULL
,
AV_LOG_FATAL
,
"Error reading log file '%s' for pass-2 encoding
\n
"
,
logfilename
);
exit
_program
(
1
);
exit
(
1
);
}
codec
->
stats_in
=
logbuffer
;
}
...
...
@@ -2184,7 +2182,7 @@ static int process_input(void)
if
(
ret
!=
AVERROR_EOF
)
{
print_error
(
is
->
filename
,
ret
);
if
(
exit_on_error
)
exit
_program
(
1
);
exit
(
1
);
}
ifile
->
eof_reached
=
1
;
...
...
@@ -2252,7 +2250,7 @@ static int process_input(void)
av_log
(
NULL
,
AV_LOG_ERROR
,
"Error while decoding stream #%d:%d
\n
"
,
ist
->
file_index
,
ist
->
st
->
index
);
if
(
exit_on_error
)
exit
_program
(
1
);
exit
(
1
);
}
discard_packet:
...
...
@@ -2429,6 +2427,8 @@ int main(int argc, char **argv)
OptionsContext
o
=
{
0
};
int64_t
ti
;
atexit
(
exit_program
);
reset_options
(
&
o
);
av_log_set_flags
(
AV_LOG_SKIP_REPEATED
);
...
...
@@ -2452,24 +2452,24 @@ int main(int argc, char **argv)
if
(
nb_output_files
<=
0
&&
nb_input_files
==
0
)
{
show_usage
();
av_log
(
NULL
,
AV_LOG_WARNING
,
"Use -h to get full help or, even better, run 'man %s'
\n
"
,
program_name
);
exit
_program
(
1
);
exit
(
1
);
}
/* file converter / grab */
if
(
nb_output_files
<=
0
)
{
fprintf
(
stderr
,
"At least one output file must be specified
\n
"
);
exit
_program
(
1
);
exit
(
1
);
}
ti
=
getutime
();
if
(
transcode
()
<
0
)
exit
_program
(
1
);
exit
(
1
);
ti
=
getutime
()
-
ti
;
if
(
do_benchmark
)
{
int
maxrss
=
getmaxrss
()
/
1024
;
printf
(
"bench: utime=%0.3fs maxrss=%ikB
\n
"
,
ti
/
1000000
.
0
,
maxrss
);
}
exit
_program
(
0
);
exit
(
0
);
return
0
;
}
avconv_filter.c
View file @
5e3f9979
...
...
@@ -46,7 +46,7 @@ static char *choose_ ## var ## s(OutputStream *ost) \
int len; \
\
if (avio_open_dyn_buf(&s) < 0) \
exit
_program(1);
\
exit
(1);
\
\
for (p = ost->enc->supported_list; *p != none; p++) { \
get_name(*p); \
...
...
@@ -76,13 +76,13 @@ FilterGraph *init_simple_filtergraph(InputStream *ist, OutputStream *ost)
FilterGraph
*
fg
=
av_mallocz
(
sizeof
(
*
fg
));
if
(
!
fg
)
exit
_program
(
1
);
exit
(
1
);
fg
->
index
=
nb_filtergraphs
;
fg
->
outputs
=
grow_array
(
fg
->
outputs
,
sizeof
(
*
fg
->
outputs
),
&
fg
->
nb_outputs
,
fg
->
nb_outputs
+
1
);
if
(
!
(
fg
->
outputs
[
0
]
=
av_mallocz
(
sizeof
(
*
fg
->
outputs
[
0
]))))
exit
_program
(
1
);
exit
(
1
);
fg
->
outputs
[
0
]
->
ost
=
ost
;
fg
->
outputs
[
0
]
->
graph
=
fg
;
...
...
@@ -91,7 +91,7 @@ FilterGraph *init_simple_filtergraph(InputStream *ist, OutputStream *ost)
fg
->
inputs
=
grow_array
(
fg
->
inputs
,
sizeof
(
*
fg
->
inputs
),
&
fg
->
nb_inputs
,
fg
->
nb_inputs
+
1
);
if
(
!
(
fg
->
inputs
[
0
]
=
av_mallocz
(
sizeof
(
*
fg
->
inputs
[
0
]))))
exit
_program
(
1
);
exit
(
1
);
fg
->
inputs
[
0
]
->
ist
=
ist
;
fg
->
inputs
[
0
]
->
graph
=
fg
;
...
...
@@ -116,7 +116,7 @@ static void init_input_filter(FilterGraph *fg, AVFilterInOut *in)
if
(
type
!=
AVMEDIA_TYPE_VIDEO
&&
type
!=
AVMEDIA_TYPE_AUDIO
)
{
av_log
(
NULL
,
AV_LOG_FATAL
,
"Only video and audio filters supported "
"currently.
\n
"
);
exit
_program
(
1
);
exit
(
1
);
}
if
(
in
->
name
)
{
...
...
@@ -128,7 +128,7 @@ static void init_input_filter(FilterGraph *fg, AVFilterInOut *in)
if
(
file_idx
<
0
||
file_idx
>=
nb_input_files
)
{
av_log
(
NULL
,
AV_LOG_FATAL
,
"Invalid file index %d in filtegraph description %s.
\n
"
,
file_idx
,
fg
->
graph_desc
);
exit
_program
(
1
);
exit
(
1
);
}
s
=
input_files
[
file_idx
]
->
ctx
;
...
...
@@ -143,7 +143,7 @@ static void init_input_filter(FilterGraph *fg, AVFilterInOut *in)
if
(
!
st
)
{
av_log
(
NULL
,
AV_LOG_FATAL
,
"Stream specifier '%s' in filtergraph description %s "
"matches no streams.
\n
"
,
p
,
fg
->
graph_desc
);
exit
_program
(
1
);
exit
(
1
);
}
ist
=
input_streams
[
input_files
[
file_idx
]
->
ist_index
+
st
->
index
];
}
else
{
...
...
@@ -157,7 +157,7 @@ static void init_input_filter(FilterGraph *fg, AVFilterInOut *in)
av_log
(
NULL
,
AV_LOG_FATAL
,
"Cannot find a matching stream for "
"unlabeled input pad %d on filter %s"
,
in
->
pad_idx
,
in
->
filter_ctx
->
name
);
exit
_program
(
1
);
exit
(
1
);
}
}
av_assert0
(
ist
);
...
...
@@ -169,7 +169,7 @@ static void init_input_filter(FilterGraph *fg, AVFilterInOut *in)
fg
->
inputs
=
grow_array
(
fg
->
inputs
,
sizeof
(
*
fg
->
inputs
),
&
fg
->
nb_inputs
,
fg
->
nb_inputs
+
1
);
if
(
!
(
fg
->
inputs
[
fg
->
nb_inputs
-
1
]
=
av_mallocz
(
sizeof
(
*
fg
->
inputs
[
0
]))))
exit
_program
(
1
);
exit
(
1
);
fg
->
inputs
[
fg
->
nb_inputs
-
1
]
->
ist
=
ist
;
fg
->
inputs
[
fg
->
nb_inputs
-
1
]
->
graph
=
fg
;
...
...
@@ -332,7 +332,7 @@ static int configure_output_audio_filter(FilterGraph *fg, OutputFilter *ofilter,
AVIOContext *pb; \
\
if (avio_open_dyn_buf(&pb) < 0) \
exit
_program(1);
\
exit
(1);
\
\
avio_printf(pb, "%s", ctx->filter->name); \
if (nb_pads > 1) \
...
...
@@ -524,7 +524,7 @@ int configure_filtergraph(FilterGraph *fg)
fg
->
outputs
=
grow_array
(
fg
->
outputs
,
sizeof
(
*
fg
->
outputs
),
&
fg
->
nb_outputs
,
fg
->
nb_outputs
+
1
);
if
(
!
(
fg
->
outputs
[
fg
->
nb_outputs
-
1
]
=
av_mallocz
(
sizeof
(
*
fg
->
outputs
[
0
]))))
exit
_program
(
1
);
exit
(
1
);
fg
->
outputs
[
fg
->
nb_outputs
-
1
]
->
graph
=
fg
;
fg
->
outputs
[
fg
->
nb_outputs
-
1
]
->
out_tmp
=
cur
;
cur
=
cur
->
next
;
...
...
avconv_opt.c
View file @
5e3f9979
This diff is collapsed.
Click to expand it.
avplay.c
View file @
5e3f9979
...
...
@@ -282,11 +282,6 @@ static AVPacket flush_pkt;
static
SDL_Surface
*
screen
;
void
exit_program
(
int
ret
)
{
exit
(
ret
);
}
static
int
packet_queue_put
(
PacketQueue
*
q
,
AVPacket
*
pkt
);
/* packet queue handling */
...
...
avprobe.c
View file @
5e3f9979
...
...
@@ -59,10 +59,9 @@ static const char unit_hertz_str[] = "Hz" ;
static
const
char
unit_byte_str
[]
=
"byte"
;
static
const
char
unit_bit_per_second_str
[]
=
"bit/s"
;
void
exit_program
(
int
ret
)
static
void
exit_program
(
)
{
av_dict_free
(
&
fmt_entries_to_show
);
exit
(
ret
);
}
/*
...
...
@@ -926,6 +925,8 @@ int main(int argc, char **argv)
if
(
!
buffer
)
exit
(
1
);
atexit
(
exit_program
);
options
=
real_options
;
parse_loglevel
(
argc
,
argv
,
options
);
av_register_all
();
...
...
avserver.c
View file @
5e3f9979
...
...
@@ -323,11 +323,6 @@ static AVLFG random_state;
static
FILE
*
logfile
=
NULL
;
void
exit_program
(
int
ret
)
{
exit
(
ret
);
}
/* FIXME: make avserver work with IPv6 */
/* resolve host with also IP address parsing */
static
int
resolve_host
(
struct
in_addr
*
sin_addr
,
const
char
*
hostname
)
...
...
cmdutils.c
View file @
5e3f9979
...
...
@@ -97,7 +97,7 @@ double parse_number_or_die(const char *context, const char *numstr, int type,
else
return
d
;
av_log
(
NULL
,
AV_LOG_FATAL
,
error
,
context
,
numstr
,
min
,
max
);
exit
_program
(
1
);
exit
(
1
);
return
0
;
}
...
...
@@ -108,7 +108,7 @@ int64_t parse_time_or_die(const char *context, const char *timestr,
if
(
av_parse_time
(
&
us
,
timestr
,
is_duration
)
<
0
)
{
av_log
(
NULL
,
AV_LOG_FATAL
,
"Invalid %s specification for %s: %s
\n
"
,
is_duration
?
"duration"
:
"date"
,
context
,
timestr
);
exit
_program
(
1
);
exit
(
1
);
}
return
us
;
}
...
...
@@ -294,7 +294,7 @@ int parse_option(void *optctx, const char *opt, const char *arg,
}
}
if
(
po
->
flags
&
OPT_EXIT
)
exit
_program
(
0
);
exit
(
0
);
return
!!
(
po
->
flags
&
HAS_ARG
);
}
...
...
@@ -320,7 +320,7 @@ void parse_options(void *optctx, int argc, char **argv, const OptionDef *options
opt
++
;
if
((
ret
=
parse_option
(
optctx
,
opt
,
argv
[
optindex
],
options
))
<
0
)
exit
_program
(
1
);
exit
(
1
);
optindex
+=
ret
;
}
else
{
if
(
parse_arg_function
)
...
...
@@ -429,7 +429,7 @@ int opt_loglevel(void *optctx, const char *opt, const char *arg)
"Possible levels are numbers or:
\n
"
,
arg
);
for
(
i
=
0
;
i
<
FF_ARRAY_ELEMS
(
log_levels
);
i
++
)
av_log
(
NULL
,
AV_LOG_FATAL
,
"
\"
%s
\"\n
"
,
log_levels
[
i
].
name
);
exit
_program
(
1
);
exit
(
1
);
}
av_log_set_level
(
level
);
return
0
;
...
...
@@ -1265,13 +1265,13 @@ void *grow_array(void *array, int elem_size, int *size, int new_size)
{
if
(
new_size
>=
INT_MAX
/
elem_size
)
{
av_log
(
NULL
,
AV_LOG_ERROR
,
"Array too big.
\n
"
);
exit
_program
(
1
);
exit
(
1
);
}
if
(
*
size
<
new_size
)
{
uint8_t
*
tmp
=
av_realloc
(
array
,
new_size
*
elem_size
);
if
(
!
tmp
)
{
av_log
(
NULL
,
AV_LOG_ERROR
,
"Could not alloc buffer.
\n
"
);
exit
_program
(
1
);
exit
(
1
);
}
memset
(
tmp
+
*
size
*
elem_size
,
0
,
(
new_size
-*
size
)
*
elem_size
);
*
size
=
new_size
;
...
...
cmdutils.h
View file @
5e3f9979
...
...
@@ -400,15 +400,9 @@ int64_t guess_correct_pts(PtsCorrectionContext *ctx, int64_t pts, int64_t dts);
FILE
*
get_preset_file
(
char
*
filename
,
size_t
filename_size
,
const
char
*
preset_name
,
int
is_path
,
const
char
*
codec_name
);
/**
* Do all the necessary cleanup and abort.
* This function is implemented in the avtools, not cmdutils.
*/
av_noreturn
void
exit_program
(
int
ret
);
/**
* Realloc array to hold new_size elements of elem_size.
* Calls exit
_program
() on failure.
* Calls exit() on failure.
*
* @param elem_size size in bytes of each element
* @param size new element count will be written here
...
...
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