[FFmpeg-cvslog] ffmpeg:Daemon mode, add -d as first option to try it.

Michael Niedermayer git at videolan.org
Tue Apr 19 02:00:19 CEST 2011


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Mon Apr 18 13:10:52 2011 +0200| [39aafa5ee90e10382e2f991e4d79d7852231df68] | committer: Michael Niedermayer

ffmpeg:Daemon mode, add -d as first option to try it.
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=39aafa5ee90e10382e2f991e4d79d7852231df68
---

 ffmpeg.c |   21 ++++++++++++++++++++-
 1 files changed, 20 insertions(+), 1 deletions(-)

diff --git a/ffmpeg.c b/ffmpeg.c
index 06c8bed..94d3ede 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();



More information about the ffmpeg-cvslog mailing list