mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-22 16:26:39 +00:00
set caps once we know the sample rate of the system
Original commit message from CVS: set caps once we know the sample rate of the system
This commit is contained in:
parent
773b7da81f
commit
955272b37d
1 changed files with 17 additions and 0 deletions
|
@ -309,6 +309,7 @@ gst_jack_change_state (GstElement *element)
|
||||||
GstJack *this;
|
GstJack *this;
|
||||||
GList *l = NULL, **pads;
|
GList *l = NULL, **pads;
|
||||||
GstJackPad *pad;
|
GstJackPad *pad;
|
||||||
|
GstCaps *caps;
|
||||||
|
|
||||||
g_return_val_if_fail (element != NULL, FALSE);
|
g_return_val_if_fail (element != NULL, FALSE);
|
||||||
this = GST_JACK (element);
|
this = GST_JACK (element);
|
||||||
|
@ -316,10 +317,12 @@ gst_jack_change_state (GstElement *element)
|
||||||
switch (GST_STATE_PENDING (element)) {
|
switch (GST_STATE_PENDING (element)) {
|
||||||
case GST_STATE_NULL:
|
case GST_STATE_NULL:
|
||||||
g_message ("jack client %s: NULL", GST_OBJECT_NAME (GST_OBJECT (this)));
|
g_message ("jack client %s: NULL", GST_OBJECT_NAME (GST_OBJECT (this)));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GST_STATE_READY:
|
case GST_STATE_READY:
|
||||||
g_message ("jack client %s: READY", GST_OBJECT_NAME (GST_OBJECT (this)));
|
g_message ("jack client %s: READY", GST_OBJECT_NAME (GST_OBJECT (this)));
|
||||||
|
|
||||||
if (!this->bin) {
|
if (!this->bin) {
|
||||||
if (!(this->bin = (GstJackBin*)gst_element_get_managing_bin (element))
|
if (!(this->bin = (GstJackBin*)gst_element_get_managing_bin (element))
|
||||||
|| !GST_IS_JACK_BIN (this->bin)) {
|
|| !GST_IS_JACK_BIN (this->bin)) {
|
||||||
|
@ -343,6 +346,20 @@ gst_jack_change_state (GstElement *element)
|
||||||
|
|
||||||
case GST_STATE_PAUSED:
|
case GST_STATE_PAUSED:
|
||||||
g_message ("jack client %s: PAUSED", GST_OBJECT_NAME (GST_OBJECT (this)));
|
g_message ("jack client %s: PAUSED", GST_OBJECT_NAME (GST_OBJECT (this)));
|
||||||
|
|
||||||
|
if (GST_STATE (element) == GST_STATE_READY) {
|
||||||
|
/* we're in READY->PAUSED */
|
||||||
|
l = this->pads;
|
||||||
|
while (l) {
|
||||||
|
pad = GST_JACK_PAD (l);
|
||||||
|
caps = gst_pad_get_caps (pad->pad);
|
||||||
|
gst_caps_set (caps, "rate", GST_PROPS_INT_TYPE, (gint) this->bin->rate, NULL);
|
||||||
|
caps->fixed = TRUE; /* we know this to be true */
|
||||||
|
if (!gst_pad_try_set_caps (pad->pad, caps))
|
||||||
|
return GST_STATE_FAILURE;
|
||||||
|
l = g_list_next (l);
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case GST_STATE_PLAYING:
|
case GST_STATE_PLAYING:
|
||||||
g_message ("jack client %s: PLAYING", GST_OBJECT_NAME (GST_OBJECT (this)));
|
g_message ("jack client %s: PLAYING", GST_OBJECT_NAME (GST_OBJECT (this)));
|
||||||
|
|
Loading…
Reference in a new issue