mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-19 20:46:22 +00:00
rtppay: don't ignore result from set_outcaps
set_outcaps can fail and we need to propagate the result upstream.
This commit is contained in:
parent
1f9c39da2a
commit
ad6d4540a7
6 changed files with 21 additions and 15 deletions
|
@ -137,6 +137,7 @@ static gboolean
|
||||||
gst_rtp_amr_pay_setcaps (GstBaseRTPPayload * basepayload, GstCaps * caps)
|
gst_rtp_amr_pay_setcaps (GstBaseRTPPayload * basepayload, GstCaps * caps)
|
||||||
{
|
{
|
||||||
GstRtpAMRPay *rtpamrpay;
|
GstRtpAMRPay *rtpamrpay;
|
||||||
|
gboolean res;
|
||||||
const GstStructure *s;
|
const GstStructure *s;
|
||||||
const gchar *str;
|
const gchar *str;
|
||||||
|
|
||||||
|
@ -160,7 +161,7 @@ gst_rtp_amr_pay_setcaps (GstBaseRTPPayload * basepayload, GstCaps * caps)
|
||||||
gst_basertppayload_set_options (basepayload, "audio", TRUE, "AMR-WB",
|
gst_basertppayload_set_options (basepayload, "audio", TRUE, "AMR-WB",
|
||||||
16000);
|
16000);
|
||||||
|
|
||||||
gst_basertppayload_set_outcaps (basepayload,
|
res = gst_basertppayload_set_outcaps (basepayload,
|
||||||
"encoding-params", G_TYPE_STRING, "1", "octet-align", G_TYPE_STRING, "1",
|
"encoding-params", G_TYPE_STRING, "1", "octet-align", G_TYPE_STRING, "1",
|
||||||
/* don't set the defaults
|
/* don't set the defaults
|
||||||
*
|
*
|
||||||
|
@ -170,7 +171,7 @@ gst_rtp_amr_pay_setcaps (GstBaseRTPPayload * basepayload, GstCaps * caps)
|
||||||
*/
|
*/
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
return TRUE;
|
return res;
|
||||||
|
|
||||||
/* ERRORS */
|
/* ERRORS */
|
||||||
wrong_type:
|
wrong_type:
|
||||||
|
|
|
@ -191,7 +191,7 @@ static gboolean
|
||||||
gst_dv_pay_negotiate (GstRTPDVPay * rtpdvpay, guint8 * data, guint size)
|
gst_dv_pay_negotiate (GstRTPDVPay * rtpdvpay, guint8 * data, guint size)
|
||||||
{
|
{
|
||||||
gchar *encode, *media;
|
gchar *encode, *media;
|
||||||
gboolean audio_bundled;
|
gboolean audio_bundled, res;
|
||||||
|
|
||||||
if ((data[3] & 0x80) == 0) { /* DSF flag */
|
if ((data[3] & 0x80) == 0) { /* DSF flag */
|
||||||
/* it's an NTSC format */
|
/* it's an NTSC format */
|
||||||
|
@ -232,14 +232,14 @@ gst_dv_pay_negotiate (GstRTPDVPay * rtpdvpay, guint8 * data, guint size)
|
||||||
"DV", 90000);
|
"DV", 90000);
|
||||||
|
|
||||||
if (audio_bundled) {
|
if (audio_bundled) {
|
||||||
gst_basertppayload_set_outcaps (GST_BASE_RTP_PAYLOAD (rtpdvpay),
|
res = gst_basertppayload_set_outcaps (GST_BASE_RTP_PAYLOAD (rtpdvpay),
|
||||||
"encode", G_TYPE_STRING, encode,
|
"encode", G_TYPE_STRING, encode,
|
||||||
"audio", G_TYPE_STRING, "bundled", NULL);
|
"audio", G_TYPE_STRING, "bundled", NULL);
|
||||||
} else {
|
} else {
|
||||||
gst_basertppayload_set_outcaps (GST_BASE_RTP_PAYLOAD (rtpdvpay),
|
res = gst_basertppayload_set_outcaps (GST_BASE_RTP_PAYLOAD (rtpdvpay),
|
||||||
"encode", G_TYPE_STRING, encode, NULL);
|
"encode", G_TYPE_STRING, encode, NULL);
|
||||||
}
|
}
|
||||||
return TRUE;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
|
|
@ -143,6 +143,7 @@ gst_rtp_g726_pay_setcaps (GstBaseRTPPayload * payload, GstCaps * caps)
|
||||||
GstBaseRTPAudioPayload *basertpaudiopayload;
|
GstBaseRTPAudioPayload *basertpaudiopayload;
|
||||||
GstRtpG726Pay *pay;
|
GstRtpG726Pay *pay;
|
||||||
GstCaps *peercaps;
|
GstCaps *peercaps;
|
||||||
|
gboolean res;
|
||||||
|
|
||||||
basertpaudiopayload = GST_BASE_RTP_AUDIO_PAYLOAD (payload);
|
basertpaudiopayload = GST_BASE_RTP_AUDIO_PAYLOAD (payload);
|
||||||
pay = GST_RTP_G726_PAY (payload);
|
pay = GST_RTP_G726_PAY (payload);
|
||||||
|
@ -242,11 +243,11 @@ gst_rtp_g726_pay_setcaps (GstBaseRTPPayload * payload, GstCaps * caps)
|
||||||
}
|
}
|
||||||
|
|
||||||
gst_basertppayload_set_options (payload, "audio", TRUE, encoding_name, 8000);
|
gst_basertppayload_set_options (payload, "audio", TRUE, encoding_name, 8000);
|
||||||
gst_basertppayload_set_outcaps (payload, NULL);
|
res = gst_basertppayload_set_outcaps (payload, NULL);
|
||||||
|
|
||||||
g_free (encoding_name);
|
g_free (encoding_name);
|
||||||
|
|
||||||
return TRUE;
|
return res;
|
||||||
|
|
||||||
/* ERRORS */
|
/* ERRORS */
|
||||||
invalid_bitrate:
|
invalid_bitrate:
|
||||||
|
|
|
@ -175,6 +175,7 @@ gst_rtp_j2k_pay_setcaps (GstBaseRTPPayload * basepayload, GstCaps * caps)
|
||||||
GstStructure *caps_structure = gst_caps_get_structure (caps, 0);
|
GstStructure *caps_structure = gst_caps_get_structure (caps, 0);
|
||||||
GstRtpJ2KPay *pay;
|
GstRtpJ2KPay *pay;
|
||||||
gint width = 0, height = 0;
|
gint width = 0, height = 0;
|
||||||
|
gboolean res;
|
||||||
|
|
||||||
pay = GST_RTP_J2K_PAY (basepayload);
|
pay = GST_RTP_J2K_PAY (basepayload);
|
||||||
|
|
||||||
|
@ -188,9 +189,9 @@ gst_rtp_j2k_pay_setcaps (GstBaseRTPPayload * basepayload, GstCaps * caps)
|
||||||
|
|
||||||
gst_basertppayload_set_options (basepayload, "video", TRUE, "JPEG2000",
|
gst_basertppayload_set_options (basepayload, "video", TRUE, "JPEG2000",
|
||||||
90000);
|
90000);
|
||||||
gst_basertppayload_set_outcaps (basepayload, NULL);
|
res = gst_basertppayload_set_outcaps (basepayload, NULL);
|
||||||
|
|
||||||
return TRUE;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -274,6 +274,7 @@ gst_rtp_jpeg_pay_setcaps (GstBaseRTPPayload * basepayload, GstCaps * caps)
|
||||||
{
|
{
|
||||||
GstStructure *caps_structure = gst_caps_get_structure (caps, 0);
|
GstStructure *caps_structure = gst_caps_get_structure (caps, 0);
|
||||||
GstRtpJPEGPay *pay;
|
GstRtpJPEGPay *pay;
|
||||||
|
gboolean res;
|
||||||
gint width = 0, height = 0;
|
gint width = 0, height = 0;
|
||||||
|
|
||||||
pay = GST_RTP_JPEG_PAY (basepayload);
|
pay = GST_RTP_JPEG_PAY (basepayload);
|
||||||
|
@ -293,9 +294,9 @@ gst_rtp_jpeg_pay_setcaps (GstBaseRTPPayload * basepayload, GstCaps * caps)
|
||||||
pay->width = width / 8;
|
pay->width = width / 8;
|
||||||
|
|
||||||
gst_basertppayload_set_options (basepayload, "video", TRUE, "JPEG", 90000);
|
gst_basertppayload_set_options (basepayload, "video", TRUE, "JPEG", 90000);
|
||||||
gst_basertppayload_set_outcaps (basepayload, NULL);
|
res = gst_basertppayload_set_outcaps (basepayload, NULL);
|
||||||
|
|
||||||
return TRUE;
|
return res;
|
||||||
|
|
||||||
/* ERRORS */
|
/* ERRORS */
|
||||||
invalid_dimension:
|
invalid_dimension:
|
||||||
|
|
|
@ -114,10 +114,12 @@ gst_rtp_mp2t_pay_finalize (GObject * object)
|
||||||
static gboolean
|
static gboolean
|
||||||
gst_rtp_mp2t_pay_setcaps (GstBaseRTPPayload * payload, GstCaps * caps)
|
gst_rtp_mp2t_pay_setcaps (GstBaseRTPPayload * payload, GstCaps * caps)
|
||||||
{
|
{
|
||||||
gst_basertppayload_set_options (payload, "video", TRUE, "MP2T-ES", 90000);
|
gboolean res;
|
||||||
gst_basertppayload_set_outcaps (payload, NULL);
|
|
||||||
|
|
||||||
return TRUE;
|
gst_basertppayload_set_options (payload, "video", TRUE, "MP2T-ES", 90000);
|
||||||
|
res = gst_basertppayload_set_outcaps (payload, NULL);
|
||||||
|
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
static GstFlowReturn
|
static GstFlowReturn
|
||||||
|
|
Loading…
Reference in a new issue