mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 03:35:21 +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)
|
||||
{
|
||||
GstRtpAMRPay *rtpamrpay;
|
||||
gboolean res;
|
||||
const GstStructure *s;
|
||||
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",
|
||||
16000);
|
||||
|
||||
gst_basertppayload_set_outcaps (basepayload,
|
||||
res = gst_basertppayload_set_outcaps (basepayload,
|
||||
"encoding-params", G_TYPE_STRING, "1", "octet-align", G_TYPE_STRING, "1",
|
||||
/* don't set the defaults
|
||||
*
|
||||
|
@ -170,7 +171,7 @@ gst_rtp_amr_pay_setcaps (GstBaseRTPPayload * basepayload, GstCaps * caps)
|
|||
*/
|
||||
NULL);
|
||||
|
||||
return TRUE;
|
||||
return res;
|
||||
|
||||
/* ERRORS */
|
||||
wrong_type:
|
||||
|
|
|
@ -191,7 +191,7 @@ static gboolean
|
|||
gst_dv_pay_negotiate (GstRTPDVPay * rtpdvpay, guint8 * data, guint size)
|
||||
{
|
||||
gchar *encode, *media;
|
||||
gboolean audio_bundled;
|
||||
gboolean audio_bundled, res;
|
||||
|
||||
if ((data[3] & 0x80) == 0) { /* DSF flag */
|
||||
/* it's an NTSC format */
|
||||
|
@ -232,14 +232,14 @@ gst_dv_pay_negotiate (GstRTPDVPay * rtpdvpay, guint8 * data, guint size)
|
|||
"DV", 90000);
|
||||
|
||||
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,
|
||||
"audio", G_TYPE_STRING, "bundled", NULL);
|
||||
} 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);
|
||||
}
|
||||
return TRUE;
|
||||
return res;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
|
|
@ -143,6 +143,7 @@ gst_rtp_g726_pay_setcaps (GstBaseRTPPayload * payload, GstCaps * caps)
|
|||
GstBaseRTPAudioPayload *basertpaudiopayload;
|
||||
GstRtpG726Pay *pay;
|
||||
GstCaps *peercaps;
|
||||
gboolean res;
|
||||
|
||||
basertpaudiopayload = GST_BASE_RTP_AUDIO_PAYLOAD (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_outcaps (payload, NULL);
|
||||
res = gst_basertppayload_set_outcaps (payload, NULL);
|
||||
|
||||
g_free (encoding_name);
|
||||
|
||||
return TRUE;
|
||||
return res;
|
||||
|
||||
/* ERRORS */
|
||||
invalid_bitrate:
|
||||
|
|
|
@ -175,6 +175,7 @@ gst_rtp_j2k_pay_setcaps (GstBaseRTPPayload * basepayload, GstCaps * caps)
|
|||
GstStructure *caps_structure = gst_caps_get_structure (caps, 0);
|
||||
GstRtpJ2KPay *pay;
|
||||
gint width = 0, height = 0;
|
||||
gboolean res;
|
||||
|
||||
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",
|
||||
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);
|
||||
GstRtpJPEGPay *pay;
|
||||
gboolean res;
|
||||
gint width = 0, height = 0;
|
||||
|
||||
pay = GST_RTP_JPEG_PAY (basepayload);
|
||||
|
@ -293,9 +294,9 @@ gst_rtp_jpeg_pay_setcaps (GstBaseRTPPayload * basepayload, GstCaps * caps)
|
|||
pay->width = width / 8;
|
||||
|
||||
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 */
|
||||
invalid_dimension:
|
||||
|
|
|
@ -114,10 +114,12 @@ gst_rtp_mp2t_pay_finalize (GObject * object)
|
|||
static gboolean
|
||||
gst_rtp_mp2t_pay_setcaps (GstBaseRTPPayload * payload, GstCaps * caps)
|
||||
{
|
||||
gst_basertppayload_set_options (payload, "video", TRUE, "MP2T-ES", 90000);
|
||||
gst_basertppayload_set_outcaps (payload, NULL);
|
||||
gboolean res;
|
||||
|
||||
return TRUE;
|
||||
gst_basertppayload_set_options (payload, "video", TRUE, "MP2T-ES", 90000);
|
||||
res = gst_basertppayload_set_outcaps (payload, NULL);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
static GstFlowReturn
|
||||
|
|
Loading…
Reference in a new issue