mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-09-03 02:33:53 +00:00
make sinesrc error out on caps nego failures
Original commit message from CVS: make sinesrc error out on caps nego failures
This commit is contained in:
parent
e97ce73d42
commit
3a3ee814aa
1 changed files with 9 additions and 7 deletions
|
@ -92,7 +92,7 @@ static void gst_sinesrc_update_freq (const GValue *value,
|
||||||
gpointer data);
|
gpointer data);
|
||||||
static void gst_sinesrc_populate_sinetable (GstSineSrc *src);
|
static void gst_sinesrc_populate_sinetable (GstSineSrc *src);
|
||||||
static inline void gst_sinesrc_update_table_inc (GstSineSrc *src);
|
static inline void gst_sinesrc_update_table_inc (GstSineSrc *src);
|
||||||
static void gst_sinesrc_force_caps (GstSineSrc *src);
|
static gboolean gst_sinesrc_force_caps (GstSineSrc *src);
|
||||||
|
|
||||||
static GstData* gst_sinesrc_get (GstPad *pad);
|
static GstData* gst_sinesrc_get (GstPad *pad);
|
||||||
|
|
||||||
|
@ -285,7 +285,10 @@ gst_sinesrc_get (GstPad *pad)
|
||||||
|
|
||||||
|
|
||||||
if (src->newcaps) {
|
if (src->newcaps) {
|
||||||
gst_sinesrc_force_caps(src);
|
if (!gst_sinesrc_force_caps(src)) {
|
||||||
|
gst_element_error (GST_ELEMENT (src), "Could not set caps");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return GST_DATA (buf);
|
return GST_DATA (buf);
|
||||||
}
|
}
|
||||||
|
@ -426,14 +429,12 @@ gst_sinesrc_update_table_inc (GstSineSrc *src)
|
||||||
src->table_inc = src->table_size * src->freq / src->samplerate;
|
src->table_inc = src->table_size * src->freq / src->samplerate;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static gboolean
|
||||||
gst_sinesrc_force_caps (GstSineSrc *src) {
|
gst_sinesrc_force_caps (GstSineSrc *src) {
|
||||||
GstCaps *caps;
|
GstCaps *caps;
|
||||||
|
|
||||||
if (!src->newcaps)
|
if (!src->newcaps)
|
||||||
return;
|
return TRUE;
|
||||||
|
|
||||||
src->newcaps = FALSE;
|
|
||||||
|
|
||||||
caps = GST_CAPS_NEW (
|
caps = GST_CAPS_NEW (
|
||||||
"sinesrc_src_caps",
|
"sinesrc_src_caps",
|
||||||
|
@ -446,7 +447,8 @@ gst_sinesrc_force_caps (GstSineSrc *src) {
|
||||||
"channels", GST_PROPS_INT (1)
|
"channels", GST_PROPS_INT (1)
|
||||||
);
|
);
|
||||||
|
|
||||||
gst_pad_try_set_caps (src->srcpad, caps);
|
src->newcaps = gst_pad_try_set_caps (src->srcpad, caps) < GST_PAD_LINK_OK;
|
||||||
|
return !src->newcaps;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
|
Loading…
Reference in a new issue