ffmpeg:Daemon mode, add -d as first option to try it.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
17ee7b5515
commit
39aafa5ee9
21
ffmpeg.c
21
ffmpeg.c
@ -235,6 +235,7 @@ static int audio_volume = 256;
|
|||||||
static int exit_on_error = 0;
|
static int exit_on_error = 0;
|
||||||
static int using_stdin = 0;
|
static int using_stdin = 0;
|
||||||
static int verbose = 1;
|
static int verbose = 1;
|
||||||
|
static int daemon = 0;
|
||||||
static int thread_count= 1;
|
static int thread_count= 1;
|
||||||
static int q_pressed = 0;
|
static int q_pressed = 0;
|
||||||
static int64_t video_size = 0;
|
static int64_t video_size = 0;
|
||||||
@ -444,7 +445,8 @@ static void term_exit(void)
|
|||||||
{
|
{
|
||||||
av_log(NULL, AV_LOG_QUIET, "");
|
av_log(NULL, AV_LOG_QUIET, "");
|
||||||
#if HAVE_TERMIOS_H
|
#if HAVE_TERMIOS_H
|
||||||
tcsetattr (0, TCSANOW, &oldtty);
|
if(!daemon)
|
||||||
|
tcsetattr (0, TCSANOW, &oldtty);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -461,6 +463,7 @@ sigterm_handler(int sig)
|
|||||||
static void term_init(void)
|
static void term_init(void)
|
||||||
{
|
{
|
||||||
#if HAVE_TERMIOS_H
|
#if HAVE_TERMIOS_H
|
||||||
|
if(!daemon){
|
||||||
struct termios tty;
|
struct termios tty;
|
||||||
|
|
||||||
tcgetattr (0, &tty);
|
tcgetattr (0, &tty);
|
||||||
@ -478,6 +481,7 @@ static void term_init(void)
|
|||||||
|
|
||||||
tcsetattr (0, TCSANOW, &tty);
|
tcsetattr (0, TCSANOW, &tty);
|
||||||
signal(SIGQUIT, sigterm_handler); /* Quit (POSIX). */
|
signal(SIGQUIT, sigterm_handler); /* Quit (POSIX). */
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
signal(SIGINT , sigterm_handler); /* Interrupt (ANSI). */
|
signal(SIGINT , sigterm_handler); /* Interrupt (ANSI). */
|
||||||
@ -496,6 +500,9 @@ static int read_key(void)
|
|||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
fd_set rfds;
|
fd_set rfds;
|
||||||
|
|
||||||
|
if(daemon)
|
||||||
|
return -1;
|
||||||
|
|
||||||
FD_ZERO(&rfds);
|
FD_ZERO(&rfds);
|
||||||
FD_SET(0, &rfds);
|
FD_SET(0, &rfds);
|
||||||
tv.tv_sec = 0;
|
tv.tv_sec = 0;
|
||||||
@ -4266,6 +4273,10 @@ static int opt_preset(const char *opt, const char *arg)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void log_callback_null(void* ptr, int level, const char* fmt, va_list vl)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
static const OptionDef options[] = {
|
static const OptionDef options[] = {
|
||||||
/* main options */
|
/* main options */
|
||||||
#include "cmdutils_common_opts.h"
|
#include "cmdutils_common_opts.h"
|
||||||
@ -4409,6 +4420,14 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
av_log_set_flags(AV_LOG_SKIP_REPEATED);
|
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();
|
avcodec_register_all();
|
||||||
#if CONFIG_AVDEVICE
|
#if CONFIG_AVDEVICE
|
||||||
avdevice_register_all();
|
avdevice_register_all();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user