From 2ba1de92a4c4e8399b2b285daf2f9b15e651a537 Mon Sep 17 00:00:00 2001 From: Olivier Crete Date: Fri, 13 Jun 2008 09:39:41 +0000 Subject: [PATCH] gst/rtp/gstrtptheoradepay.c: Make the delivery-method mandatory on the caps and only accept inline for now. Original commit message from CVS: Patch by: Olivier Crete * gst/rtp/gstrtptheoradepay.c: (gst_rtp_theora_depay_setcaps): Make the delivery-method mandatory on the caps and only accept inline for now. Reverse strcmp checks for delivery-method. * gst/rtp/gstrtpvorbisdepay.c: (gst_rtp_vorbis_depay_setcaps): Make delivery method optional when parsing caps and note this in the caps. Reverse strcmp checks for delivery-method. * gst/rtp/gstrtpvorbispay.c: Update a comment to note that the delivery-method is optional, Fixes #537675. --- ChangeLog | 18 ++++++++++++++++++ gst/rtp/gstrtptheoradepay.c | 9 ++++++--- gst/rtp/gstrtpvorbisdepay.c | 30 +++++++++++++----------------- gst/rtp/gstrtpvorbispay.c | 2 +- 4 files changed, 38 insertions(+), 21 deletions(-) diff --git a/ChangeLog b/ChangeLog index 97ea7f7361..95d9aa89d7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,21 @@ +2008-06-13 Wim Taymans + + Patch by: Olivier Crete + + * gst/rtp/gstrtptheoradepay.c: (gst_rtp_theora_depay_setcaps): + Make the delivery-method mandatory on the caps and only accept inline + for now. + Reverse strcmp checks for delivery-method. + + * gst/rtp/gstrtpvorbisdepay.c: (gst_rtp_vorbis_depay_setcaps): + Make delivery method optional when parsing caps and note this in the + caps. + Reverse strcmp checks for delivery-method. + + * gst/rtp/gstrtpvorbispay.c: + Update a comment to note that the delivery-method is optional, + Fixes #537675. + 2008-06-12 Wim Taymans * gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_stream_configure_mcast): diff --git a/gst/rtp/gstrtptheoradepay.c b/gst/rtp/gstrtptheoradepay.c index e3c229e714..fd64c1450f 100644 --- a/gst/rtp/gstrtptheoradepay.c +++ b/gst/rtp/gstrtptheoradepay.c @@ -44,7 +44,9 @@ GST_STATIC_PAD_TEMPLATE ("sink", GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"video\", " "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " - "clock-rate = (int) 90000, " "encoding-name = (string) \"THEORA\"" + "clock-rate = (int) 90000, " "encoding-name = (string) \"THEORA\"," + /* only support inline delivery */ + "delivery-method = (string) \"inline\"" /* All required parameters * * "sampling = (string) { "YCbCr-4:2:0", "YCbCr-4:2:2", "YCbCr-4:4:4" } " @@ -339,10 +341,11 @@ gst_rtp_theora_depay_setcaps (GstBaseRTPDepayload * depayload, GstCaps * caps) if (delivery_method == NULL) goto no_delivery_method; - if (g_ascii_strcasecmp (delivery_method, "inline")) { + if (!g_ascii_strcasecmp (delivery_method, "inline")) { /* configure string is in the caps */ - } else if (g_ascii_strcasecmp (delivery_method, "in_band")) { + } else if (!g_ascii_strcasecmp (delivery_method, "in_band")) { /* headers will (also) be transmitted in the RTP packets */ + goto unsupported_delivery_method; } else if (g_str_has_prefix (delivery_method, "out_band/")) { /* some other method of header delivery. */ goto unsupported_delivery_method; diff --git a/gst/rtp/gstrtpvorbisdepay.c b/gst/rtp/gstrtpvorbisdepay.c index 46afd2b476..7bee88301f 100644 --- a/gst/rtp/gstrtpvorbisdepay.c +++ b/gst/rtp/gstrtpvorbisdepay.c @@ -52,11 +52,11 @@ GST_STATIC_PAD_TEMPLATE ("sink", /* All required parameters * * "encoding-params = (string) " - * "delivery-method = (string) { inline, in_band, out_band/ } " * "configuration = (string) ANY" */ /* All optional parameters * + * "delivery-method = (string) { inline, in_band, out_band/ } " * "configuration-uri =" */ ) @@ -344,18 +344,19 @@ gst_rtp_vorbis_depay_setcaps (GstBaseRTPDepayload * depayload, GstCaps * caps) /* see how the configuration parameters will be transmitted */ delivery_method = gst_structure_get_string (structure, "delivery-method"); - if (delivery_method == NULL) - goto no_delivery_method; - if (g_ascii_strcasecmp (delivery_method, "inline")) { - /* configure string is in the caps */ - } else if (g_ascii_strcasecmp (delivery_method, "in_band")) { - /* headers will (also) be transmitted in the RTP packets */ - } else if (g_str_has_prefix (delivery_method, "out_band/")) { - /* some other method of header delivery. */ - goto unsupported_delivery_method; - } else - goto unsupported_delivery_method; + if (delivery_method) { + if (!g_ascii_strcasecmp (delivery_method, "inline")) { + /* configure string is in the caps */ + } else if (!g_ascii_strcasecmp (delivery_method, "in_band")) { + /* headers will (also) be transmitted in the RTP packets */ + goto unsupported_delivery_method; + } else if (g_str_has_prefix (delivery_method, "out_band/")) { + /* some other method of header delivery. */ + goto unsupported_delivery_method; + } else + goto unsupported_delivery_method; + } /* read and parse configuration string */ configuration = gst_structure_get_string (structure, "configuration"); @@ -382,11 +383,6 @@ unsupported_delivery_method: "unsupported delivery-method \"%s\" specified", delivery_method); return FALSE; } -no_delivery_method: - { - GST_ERROR_OBJECT (rtpvorbisdepay, "no delivery-method specified"); - return FALSE; - } no_configuration: { GST_ERROR_OBJECT (rtpvorbisdepay, "no configuration specified"); diff --git a/gst/rtp/gstrtpvorbispay.c b/gst/rtp/gstrtpvorbispay.c index f9fa15b2bf..65e093af12 100644 --- a/gst/rtp/gstrtpvorbispay.c +++ b/gst/rtp/gstrtpvorbispay.c @@ -53,11 +53,11 @@ GST_STATIC_PAD_TEMPLATE ("src", /* All required parameters * * "encoding-params = (string) " - * "delivery-method = (string) { inline, in_band, out_band/ } " * "configuration = (string) ANY" */ /* All optional parameters * + * "delivery-method = (string) { inline, in_band, out_band/ } " * "configuration-uri =" */ )