summaryrefslogtreecommitdiff
path: root/fftools/ffprobe.c
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2023-07-14 18:33:12 +0200
committerAnton Khirnov <anton@khirnov.net>2023-07-20 20:47:46 +0200
commita81d9231b91dac75a8fa1cbb72ec17556b5c6d9f (patch)
tree5c08be7aec3a243c1f3a3f912db0613a2402638a /fftools/ffprobe.c
parentbe49c48282704ada90d2130c8c5193bb97a7cfaa (diff)
fftools/ffprobe: stop calling exit_program()
Inline the relevant part of ffprobe_cleanup() into main() and drop the rest.
Diffstat (limited to 'fftools/ffprobe.c')
-rw-r--r--fftools/ffprobe.c22
1 files changed, 8 insertions, 14 deletions
diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index e234c92904..a39185f6fe 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -381,17 +381,6 @@ static void log_callback(void *ptr, int level, const char *fmt, va_list vl)
#endif
}
-static void ffprobe_cleanup(int ret)
-{
- int i;
- for (i = 0; i < FF_ARRAY_ELEMS(sections); i++)
- av_dict_free(&(sections[i].entries_to_show));
-
-#if HAVE_THREADS
- pthread_mutex_destroy(&log_mutex);
-#endif
-}
-
struct unit_value {
union { double d; long long int i; } val;
const char *unit;
@@ -4113,7 +4102,6 @@ int main(int argc, char **argv)
}
#endif
av_log_set_flags(AV_LOG_SKIP_REPEATED);
- register_exit(ffprobe_cleanup);
options = real_options;
parse_loglevel(argc, argv, options);
@@ -4124,8 +4112,10 @@ int main(int argc, char **argv)
show_banner(argc, argv, options);
ret = parse_options(NULL, argc, argv, options, opt_input_file);
- if (ret < 0)
- exit_program(ret == AVERROR_EXIT ? 0 : 1);
+ if (ret < 0) {
+ ret = AVERROR_EXIT ? 0 : ret;
+ goto end;
+ }
if (do_show_log)
av_log_set_callback(log_callback);
@@ -4249,5 +4239,9 @@ end:
avformat_network_deinit();
+#if HAVE_THREADS
+ pthread_mutex_destroy(&log_mutex);
+#endif
+
return ret < 0;
}