From c48f67f06ec3b887626b5938987d2a46bd52cf77 Mon Sep 17 00:00:00 2001
From: Michael Niedermayer <michaelni@gmx.at>
Date: Sun, 25 Dec 2011 18:44:36 +0100
Subject: [PATCH] ff*: add -max_alloc command line option

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
---
 cmdutils.c             | 14 ++++++++++++++
 cmdutils.h             |  2 ++
 cmdutils_common_opts.h |  1 +
 3 files changed, 17 insertions(+)

diff --git a/cmdutils.c b/cmdutils.c
index e072d75970e..adf1b5fea39 100644
--- a/cmdutils.c
+++ b/cmdutils.c
@@ -510,6 +510,20 @@ int opt_report(const char *opt)
     return 0;
 }
 
+int opt_max_alloc(const char *opt, const char *arg)
+{
+    char *tail;
+    size_t max;
+
+    max = strtol(arg, &tail, 10);
+    if (*tail) {
+        av_log(NULL, AV_LOG_FATAL, "Invalid max_alloc \"%s\".\n", arg);
+        exit_program(1);
+    }
+    av_max_alloc(max);
+    return 0;
+}
+
 int opt_codec_debug(const char *opt, const char *arg)
 {
     av_log_set_level(AV_LOG_DEBUG);
diff --git a/cmdutils.h b/cmdutils.h
index a682c96d79c..b9ea1cfc69b 100644
--- a/cmdutils.h
+++ b/cmdutils.h
@@ -78,6 +78,8 @@ int opt_loglevel(const char *opt, const char *arg);
 
 int opt_report(const char *opt);
 
+int opt_max_alloc(const char *opt, const char *arg);
+
 int opt_codec_debug(const char *opt, const char *arg);
 
 /**
diff --git a/cmdutils_common_opts.h b/cmdutils_common_opts.h
index 058f2b1e2fa..0aa6d99db67 100644
--- a/cmdutils_common_opts.h
+++ b/cmdutils_common_opts.h
@@ -15,3 +15,4 @@
     { "v", HAS_ARG, {(void*)opt_loglevel}, "set libav* logging level", "loglevel" },
     { "debug", HAS_ARG, {(void*)opt_codec_debug}, "set debug flags", "flags" },
     { "report", 0, {(void*)opt_report}, "generate a report" },
+    { "max_alloc", HAS_ARG, {(void*)opt_max_alloc}, "set maximum size of a single allocated block", "bytes" },
-- 
GitLab