ffmpeg: call term_init() earlier
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 8 Oct 2011 15:20:52 +0000 (17:20 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 8 Oct 2011 16:37:47 +0000 (18:37 +0200)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
ffmpeg.c

index 5b0610c..b7964cf 100644 (file)
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -612,6 +612,18 @@ static int read_key(void)
     return -1;
 }
 
+static int read_yn(void)
+{
+    int c;
+#if HAVE_TERMIOS_H || HAVE_KBHIT
+    while((c=read_key()) < 0);
+#else
+    c= getchar();
+#endif
+
+    return (toupper(c) == 'Y');
+}
+
 static int decode_interrupt_cb(void)
 {
     return q_pressed > 1;
@@ -2424,7 +2436,6 @@ static int transcode(OutputFile *output_files, int nb_output_files,
         av_log(NULL, AV_LOG_INFO, "Press [q] to stop, [?] for help\n");
         avio_set_interrupt_cb(decode_interrupt_cb);
     }
-    term_init();
 
     timer_start = av_gettime();
 
@@ -3699,10 +3710,11 @@ static void opt_output_file(void *optctx, const char *filename)
                 if (!using_stdin) {
                     fprintf(stderr,"File '%s' already exists. Overwrite ? [y/N] ", filename);
                     fflush(stderr);
-                    if (!read_yesno()) {
-                        av_log(0, AV_LOG_FATAL, "Not overwriting - exiting\n");
+                    if (!read_yn()) {
+                        av_log(0, AV_LOG_FATAL, "\nNot overwriting - exiting\n");
                         exit_program(1);
                     }
+                    fprintf(stderr,"\n");
                 }
                 else {
                     av_log(0, AV_LOG_FATAL,"File '%s' already exists. Exiting.\n", filename);
@@ -4394,6 +4406,8 @@ int main(int argc, char **argv)
 
     show_banner();
 
+    term_init();
+
     /* parse options */
     parse_options(&o, argc, argv, options, opt_output_file);