diff options
author | Måns Rullgård <mans@mansr.com> | 2010-01-20 06:42:39 +0000 |
---|---|---|
committer | Måns Rullgård <mans@mansr.com> | 2010-01-20 06:42:39 +0000 |
commit | ffcc6e24f5dfa98dfcdcae39f5f85c1f5b8d52e1 (patch) | |
tree | 12253316dd457c8490bcdddc5879603e65fe3802 /ffmpeg.c | |
parent | 5e7dfb7de11dab3cbf8663d4fcb682935bd3a80b (diff) | |
download | ffmpeg-ffcc6e24f5dfa98dfcdcae39f5f85c1f5b8d52e1.tar.gz |
Add -timelimit option
This option limits the CPU time used by ffmpeg to the number of seconds
specified. After this time, the OS sends a SIGXCPU signal, which we
handle and attempt to exit cleanly. If the process is stuck, the OS
will deliver a SIGKILL one second later, forcibly terminating the
process.
This functionality is useful in automated setups where a runaway ffmpeg
process would otherwise go undetected.
Originally committed as revision 21347 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'ffmpeg.c')
-rw-r--r-- | ffmpeg.c | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -353,6 +353,10 @@ static void term_init(void) signal(SIGINT , sigterm_handler); /* Interrupt (ANSI). */ signal(SIGTERM, sigterm_handler); /* Termination (ANSI). */ +#ifdef SIGXCPU + signal(SIGXCPU, sigterm_handler); +#endif + /* register a function to be called at normal program termination */ @@ -3863,6 +3867,7 @@ static const OptionDef options[] = { { "dframes", OPT_INT | HAS_ARG, {(void*)&max_frames[CODEC_TYPE_DATA]}, "set the number of data frames to record", "number" }, { "benchmark", OPT_BOOL | OPT_EXPERT, {(void*)&do_benchmark}, "add timings for benchmarking" }, + { "timelimit", OPT_FUNC2 | HAS_ARG, {(void*)opt_timelimit}, "set max runtime in seconds", "limit" }, { "dump", OPT_BOOL | OPT_EXPERT, {(void*)&do_pkt_dump}, "dump each input packet" }, { "hex", OPT_BOOL | OPT_EXPERT, {(void*)&do_hex_dump}, |