mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
ffmpeg: enable echoing with command and debug modes
Allow seeing text when pressing 'c' or 'd'.
This commit is contained in:
parent
60532348d2
commit
7234e04e35
18
ffmpeg.c
18
ffmpeg.c
@ -3395,6 +3395,18 @@ static OutputStream *choose_output(void)
|
||||
return ost_min;
|
||||
}
|
||||
|
||||
static void set_tty_echo(int on)
|
||||
{
|
||||
#if HAVE_TERMIOS_H
|
||||
struct termios tty;
|
||||
if (tcgetattr(0, &tty) == 0) {
|
||||
if (on) tty.c_lflag |= ECHO;
|
||||
else tty.c_lflag &= ~ECHO;
|
||||
tcsetattr(0, TCSANOW, &tty);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
static int check_keyboard_interaction(int64_t cur_time)
|
||||
{
|
||||
int i, ret, key;
|
||||
@ -3427,10 +3439,13 @@ static int check_keyboard_interaction(int64_t cur_time)
|
||||
int k, n = 0;
|
||||
fprintf(stderr, "\nEnter command: <target>|all <time>|-1 <command>[ <argument>]\n");
|
||||
i = 0;
|
||||
set_tty_echo(1);
|
||||
while ((k = read_key()) != '\n' && k != '\r' && i < sizeof(buf)-1)
|
||||
if (k > 0)
|
||||
buf[i++] = k;
|
||||
buf[i] = 0;
|
||||
set_tty_echo(0);
|
||||
fprintf(stderr, "\n");
|
||||
if (k > 0 &&
|
||||
(n = sscanf(buf, "%63[^ ] %lf %255[^ ] %255[^\n]", target, &time, command, arg)) >= 3) {
|
||||
av_log(NULL, AV_LOG_DEBUG, "Processing command target:%s time:%f command:%s arg:%s",
|
||||
@ -3469,10 +3484,13 @@ static int check_keyboard_interaction(int64_t cur_time)
|
||||
char buf[32];
|
||||
int k = 0;
|
||||
i = 0;
|
||||
set_tty_echo(1);
|
||||
while ((k = read_key()) != '\n' && k != '\r' && i < sizeof(buf)-1)
|
||||
if (k > 0)
|
||||
buf[i++] = k;
|
||||
buf[i] = 0;
|
||||
set_tty_echo(0);
|
||||
fprintf(stderr, "\n");
|
||||
if (k <= 0 || sscanf(buf, "%d", &debug)!=1)
|
||||
fprintf(stderr,"error parsing debug value\n");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user