Commit bb240714 authored by Arun Raghavan's avatar Arun Raghavan Committed by Arun Raghavan
Browse files

tinyalsasink: Use int type if we support a single rate/channel count

Avoids using an int range if the field we're setting is not actually a
range.
parent eb142736
......@@ -127,6 +127,7 @@ gst_tinyalsa_sink_getcaps (GstBaseSink * bsink, GstCaps * filter)
GValue format = { 0, };
struct pcm_params *params = NULL;
struct pcm_mask *mask;
int rate_min, rate_max, channels_min, channels_max;
guint16 m;
GST_DEBUG_OBJECT (sink, "Querying caps");
......@@ -190,13 +191,23 @@ gst_tinyalsa_sink_getcaps (GstBaseSink * bsink, GstCaps * filter)
* standard rates in this range. We should probably filter the range to
* those, standard audio rates but even that isn't guaranteed to be accurate.
*/
gst_caps_set_simple (caps, "rate", GST_TYPE_INT_RANGE,
pcm_params_get_min (params, PCM_PARAM_RATE),
pcm_params_get_max (params, PCM_PARAM_RATE), NULL);
gst_caps_set_simple (caps, "channels", GST_TYPE_INT_RANGE,
pcm_params_get_min (params, PCM_PARAM_CHANNELS),
pcm_params_get_max (params, PCM_PARAM_CHANNELS), NULL);
rate_min = pcm_params_get_min (params, PCM_PARAM_RATE);
rate_max = pcm_params_get_max (params, PCM_PARAM_RATE);
if (rate_min == rate_max)
gst_caps_set_simple (caps, "rate", G_TYPE_INT, rate_min, NULL);
else
gst_caps_set_simple (caps, "rate", GST_TYPE_INT_RANGE, rate_min, rate_max,
NULL);
channels_min = pcm_params_get_min (params, PCM_PARAM_CHANNELS);
channels_max = pcm_params_get_max (params, PCM_PARAM_CHANNELS);
if (channels_min == channels_max)
gst_caps_set_simple (caps, "channels", G_TYPE_INT, channels_min, NULL);
else
gst_caps_set_simple (caps, "channels", GST_TYPE_INT_RANGE, channels_min,
channels_max, NULL);
gst_caps_replace (&sink->cached_caps, caps);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment