From 2c1dceeb58af7d1b8b855f6e90c65f8256f5c06c Mon Sep 17 00:00:00 2001 From: Arun Raghavan Date: Sat, 15 Jun 2013 09:42:02 +0530 Subject: [PATCH] sink-input: Log format negotiation better This provides more details on format negotiation success and failure to make debugging problems easier. --- src/pulsecore/sink-input.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/pulsecore/sink-input.c b/src/pulsecore/sink-input.c index db29696..8666c60 100644 --- a/src/pulsecore/sink-input.c +++ b/src/pulsecore/sink-input.c @@ -283,7 +283,7 @@ int pa_sink_input_new( pa_sink_input *i; pa_resampler *resampler = NULL; - char st[PA_SAMPLE_SPEC_SNPRINT_MAX], cm[PA_CHANNEL_MAP_SNPRINT_MAX]; + char st[PA_SAMPLE_SPEC_SNPRINT_MAX], cm[PA_CHANNEL_MAP_SNPRINT_MAX], fmt[PA_FORMAT_INFO_SNPRINT_MAX]; pa_channel_map original_cm; int r; char *pt; @@ -331,7 +331,18 @@ int pa_sink_input_new( if (!data->format && data->nego_formats && !pa_idxset_isempty(data->nego_formats)) data->format = pa_format_info_copy(pa_idxset_first(data->nego_formats, NULL)); - pa_return_val_if_fail(data->format, -PA_ERR_NOTSUPPORTED); + if (PA_LIKELY(data->format)) { + pa_log_debug("Negotiated format: %s", pa_format_info_snprint(fmt, sizeof(fmt), data->format)); + } else { + pa_format_info *format; + uint32_t idx; + + pa_log_info("Sink does not support any requested format:"); + PA_IDXSET_FOREACH(format, data->req_formats, idx) + pa_log_info(" -- %s", pa_format_info_snprint(fmt, sizeof(fmt), format)); + + return -PA_ERR_NOTSUPPORTED; + } /* Now populate the sample spec and format according to the final * format that we've negotiated */ -- 2.7.4