summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/encode_lavc.c5
-rw-r--r--core/mp_msg.c5
-rw-r--r--core/mp_msg.h2
3 files changed, 11 insertions, 1 deletions
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 */