diff --git a/core/encode_lavc.c b/core/encode_lavc.c index 9bb1abcdcd..457f6ab987 100644 --- a/core/encode_lavc.c +++ b/core/encode_lavc.c @@ -117,6 +117,11 @@ struct encode_lavc_context *encode_lavc_init(struct encode_output_conf *options) { struct encode_lavc_context *ctx; + if (options->file && ( + !strcmp(options->file, "pipe:") || + !strcmp(options->file, "pipe:1"))) + mp_msg_stdout_in_use = 1; + ctx = talloc_zero(NULL, struct encode_lavc_context); encode_lavc_discontinuity(ctx); ctx->options = options; diff --git a/core/mp_msg.c b/core/mp_msg.c index 0661416c55..1f5847e97c 100644 --- a/core/mp_msg.c +++ b/core/mp_msg.c @@ -37,6 +37,8 @@ #include "core/mp_msg.h" +bool mp_msg_stdout_in_use = 0; + /* maximum message length of mp_msg */ #define MSGSIZE_MAX 6144 @@ -225,7 +227,8 @@ static void print_msg_module(FILE* stream, int mod) void mp_msg_va(int mod, int lev, const char *format, va_list va) { char tmp[MSGSIZE_MAX]; - FILE *stream = lev == MSGL_STATUS ? stderr : stdout; + FILE *stream = + (mp_msg_stdout_in_use || (lev == MSGL_STATUS)) ? stderr : stdout; static int header = 1; // indicates if last line printed was a status line static int statusline; diff --git a/core/mp_msg.h b/core/mp_msg.h index 320912dd4c..392adcf01f 100644 --- a/core/mp_msg.h +++ b/core/mp_msg.h @@ -142,4 +142,6 @@ void mp_msg(int mod, int lev, const char *format, ... ) PRINTF_ATTRIBUTE(3, 4); void mp_tmsg(int mod, int lev, const char *format, ... ) PRINTF_ATTRIBUTE(3, 4); #define mp_dbg mp_msg +extern bool mp_msg_stdout_in_use; + #endif /* MPLAYER_MP_MSG_H */