Module: wine Branch: master Commit: 46d084aca889cdfe0093ee1ac67e6e649ffaebb7 URL: https://gitlab.winehq.org/wine/wine/-/commit/46d084aca889cdfe0093ee1ac67e6e6...
Author: Alexandre Julliard julliard@winehq.org Date: Thu Sep 29 11:47:26 2022 +0200
winegstreamer: Respect debug channels configuration for error output.
Avoids spamming stderr when debug output is disabled.
---
dlls/winegstreamer/main.c | 2 ++ dlls/winegstreamer/unixlib.h | 2 ++ dlls/winegstreamer/wg_parser.c | 18 +++++++++++++----- 3 files changed, 17 insertions(+), 5 deletions(-)
diff --git a/dlls/winegstreamer/main.c b/dlls/winegstreamer/main.c index 189790db155..40507a4b929 100644 --- a/dlls/winegstreamer/main.c +++ b/dlls/winegstreamer/main.c @@ -68,6 +68,8 @@ struct wg_parser *wg_parser_create(enum wg_parser_type type, bool unlimited_buff { .type = type, .unlimited_buffering = unlimited_buffering, + .err_on = ERR_ON(quartz), + .warn_on = WARN_ON(quartz), };
TRACE("type %#x, unlimited_buffering %d.\n", type, unlimited_buffering); diff --git a/dlls/winegstreamer/unixlib.h b/dlls/winegstreamer/unixlib.h index e2eef2a4932..8d6b77d5e69 100644 --- a/dlls/winegstreamer/unixlib.h +++ b/dlls/winegstreamer/unixlib.h @@ -157,6 +157,8 @@ struct wg_parser_create_params struct wg_parser *parser; enum wg_parser_type type; bool unlimited_buffering; + bool err_on; + bool warn_on; };
struct wg_parser_connect_params diff --git a/dlls/winegstreamer/wg_parser.c b/dlls/winegstreamer/wg_parser.c index f0487fd1ffa..890f3c31b16 100644 --- a/dlls/winegstreamer/wg_parser.c +++ b/dlls/winegstreamer/wg_parser.c @@ -76,6 +76,7 @@ struct wg_parser
pthread_cond_t init_cond; bool no_more_pads, has_duration, error; + bool err_on, warn_on;
pthread_cond_t read_cond, read_done_cond; struct @@ -1071,8 +1072,11 @@ static GstBusSyncReply bus_handler_cb(GstBus *bus, GstMessage *msg, gpointer use { case GST_MESSAGE_ERROR: gst_message_parse_error(msg, &err, &dbg_info); - fprintf(stderr, "winegstreamer error: %s: %s\n", GST_OBJECT_NAME(msg->src), err->message); - fprintf(stderr, "winegstreamer error: %s: %s\n", GST_OBJECT_NAME(msg->src), dbg_info); + if (parser->err_on) + { + fprintf(stderr, "winegstreamer error: %s: %s\n", GST_OBJECT_NAME(msg->src), err->message); + fprintf(stderr, "winegstreamer error: %s: %s\n", GST_OBJECT_NAME(msg->src), dbg_info); + } g_error_free(err); g_free(dbg_info); pthread_mutex_lock(&parser->mutex); @@ -1083,8 +1087,11 @@ static GstBusSyncReply bus_handler_cb(GstBus *bus, GstMessage *msg, gpointer use
case GST_MESSAGE_WARNING: gst_message_parse_warning(msg, &err, &dbg_info); - fprintf(stderr, "winegstreamer warning: %s: %s\n", GST_OBJECT_NAME(msg->src), err->message); - fprintf(stderr, "winegstreamer warning: %s: %s\n", GST_OBJECT_NAME(msg->src), dbg_info); + if (parser->warn_on) + { + fprintf(stderr, "winegstreamer warning: %s: %s\n", GST_OBJECT_NAME(msg->src), err->message); + fprintf(stderr, "winegstreamer warning: %s: %s\n", GST_OBJECT_NAME(msg->src), dbg_info); + } g_error_free(err); g_free(dbg_info); break; @@ -1571,7 +1578,8 @@ static NTSTATUS wg_parser_create(void *args) pthread_cond_init(&parser->read_done_cond, NULL); parser->init_gst = init_funcs[params->type]; parser->unlimited_buffering = params->unlimited_buffering; - + parser->err_on = params->err_on; + parser->warn_on = params->warn_on; GST_DEBUG("Created winegstreamer parser %p.", parser); params->parser = parser; return S_OK;