ffmpeg: try to avoid calling av_log() from sigterm_handler()
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 20 Mar 2014 14:39:45 +0000 (15:39 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 20 Mar 2014 15:24:17 +0000 (16:24 +0100)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
ffmpeg.c

index e345e41..e66cf2e 100644 (file)
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -303,15 +303,20 @@ static void sub2video_flush(InputStream *ist)
 
 /* end of sub2video hack */
 
-void term_exit(void)
+static void term_exit_sigsafe(void)
 {
-    av_log(NULL, AV_LOG_QUIET, "%s", "");
 #if HAVE_TERMIOS_H
     if(restore_tty)
         tcsetattr (0, TCSANOW, &oldtty);
 #endif
 }
 
+void term_exit(void)
+{
+    av_log(NULL, AV_LOG_QUIET, "%s", "");
+    term_exit_sigsafe();
+}
+
 static volatile int received_sigterm = 0;
 static volatile int received_nb_signals = 0;
 static int main_return_code = 0;
@@ -321,7 +326,7 @@ sigterm_handler(int sig)
 {
     received_sigterm = sig;
     received_nb_signals++;
-    term_exit();
+    term_exit_sigsafe();
     if(received_nb_signals > 3)
         exit_program(123);
 }