summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-04-18 13:10:52 +0200
committerMichael Niedermayer <michaelni@gmx.at>2011-04-19 01:54:58 +0200
commit39aafa5ee90e10382e2f991e4d79d7852231df68 (patch)
tree8721405e698da72c4fe134c6300394a0de280d43
parent17ee7b5515cd1006a1f7ba4a9cced14f6526c1b0 (diff)
ffmpeg:Daemon mode, add -d as first option to try it.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--ffmpeg.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/ffmpeg.c b/ffmpeg.c
index 06c8bed2f0..94d3ede831 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -235,6 +235,7 @@ static int audio_volume = 256;
static int exit_on_error = 0;
static int using_stdin = 0;
static int verbose = 1;
+static int daemon = 0;
static int thread_count= 1;
static int q_pressed = 0;
static int64_t video_size = 0;
@@ -444,7 +445,8 @@ static void term_exit(void)
{
av_log(NULL, AV_LOG_QUIET, "");
#if HAVE_TERMIOS_H
- tcsetattr (0, TCSANOW, &oldtty);
+ if(!daemon)
+ tcsetattr (0, TCSANOW, &oldtty);
#endif
}
@@ -461,6 +463,7 @@ sigterm_handler(int sig)
static void term_init(void)
{
#if HAVE_TERMIOS_H
+ if(!daemon){
struct termios tty;
tcgetattr (0, &tty);
@@ -478,6 +481,7 @@ static void term_init(void)
tcsetattr (0, TCSANOW, &tty);
signal(SIGQUIT, sigterm_handler); /* Quit (POSIX). */
+ }
#endif
signal(SIGINT , sigterm_handler); /* Interrupt (ANSI). */
@@ -496,6 +500,9 @@ static int read_key(void)
struct timeval tv;
fd_set rfds;
+ if(daemon)
+ return -1;
+
FD_ZERO(&rfds);
FD_SET(0, &rfds);
tv.tv_sec = 0;
@@ -4266,6 +4273,10 @@ static int opt_preset(const char *opt, const char *arg)
return 0;
}
+static void log_callback_null(void* ptr, int level, const char* fmt, va_list vl)
+{
+}
+
static const OptionDef options[] = {
/* main options */
#include "cmdutils_common_opts.h"
@@ -4409,6 +4420,14 @@ int main(int argc, char **argv)
av_log_set_flags(AV_LOG_SKIP_REPEATED);
+ if(argc>1 && !strcmp(argv[1], "-d")){
+ daemon=1;
+ verbose=-1;
+ av_log_set_callback(log_callback_null);
+ argc--;
+ argv++;
+ }
+
avcodec_register_all();
#if CONFIG_AVDEVICE
avdevice_register_all();