rtppay: don't ignore result from set_outcaps
authorWim Taymans <wim.taymans@collabora.co.uk>
Thu, 4 Feb 2010 14:59:25 +0000 (15:59 +0100)
committerWim Taymans <wim.taymans@collabora.co.uk>
Fri, 12 Feb 2010 12:53:58 +0000 (13:53 +0100)
set_outcaps can fail and we need to propagate the result upstream.

gst/rtp/gstrtpamrpay.c
gst/rtp/gstrtpdvpay.c
gst/rtp/gstrtpg726pay.c
gst/rtp/gstrtpj2kpay.c
gst/rtp/gstrtpjpegpay.c
gst/rtp/gstrtpmp2tpay.c

index ba863af68fd8ae7d00c4cd023b7efdb89b2d844c..80c3077898040ad34fe8f1605a4b87ca7bacc5c0 100644 (file)
@@ -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:
index c997bf6880f32cb0dc8bc3354bfe5d70ccd3bbf0..166240cd58f7d8fef5860841c58b07a26310f1c6 100644 (file)
@@ -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
index d68a813f4802505b7ab9ac3fa4bbd77fb87c4b6c..724618fcb41b6feb2e2ab945a59f392b0e3f627d 100644 (file)
@@ -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:
index a796e4737acb987fa2c3ff32d0d3443270f6f541..882ebef5b17fef52e5d45c603c92364d7ce871eb 100644 (file)
@@ -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;
 }
 
 
index 5b271f358b3c8022d6aed4cd53f80cb8b9f627b1..f6d0eba571f2c889ac5159ddd219ddaf43f4ffc5 100644 (file)
@@ -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:
index 88d554cdf3e43f16a980320b65e64021f1b86c75..48ad005dde368881a0306131a14f2f032e20b85b 100644 (file)
@@ -114,10 +114,12 @@ gst_rtp_mp2t_pay_finalize (GObject * object)
 static gboolean
 gst_rtp_mp2t_pay_setcaps (GstBaseRTPPayload * payload, GstCaps * caps)
 {
+  gboolean res;
+
   gst_basertppayload_set_options (payload, "video", TRUE, "MP2T-ES", 90000);
-  gst_basertppayload_set_outcaps (payload, NULL);
+  res = gst_basertppayload_set_outcaps (payload, NULL);
 
-  return TRUE;
+  return res;
 }
 
 static GstFlowReturn