summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@collabora.co.uk>2009-12-24 22:23:01 +0100
committerWim Taymans <wim@metal.(none)>2009-12-24 22:23:01 +0100
commita65240d1c148599e431bf2f0892dfaa507e73ae6 (patch)
tree6d654ffad98547d9843065c83f816dc36b1ab23d
parent3c0f18d765d86df2a545c4152b944a80d35f1631 (diff)
rtspsrc: fix some comments, remove property check
Fix some comments, clarify some FIXMEs Remove the on-ntp-stop signal check now that the jitterbuffer is in -good and we know that it supports this signal.
-rw-r--r--gst/rtsp/gstrtspsrc.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c
index 5455002df..b0ef7f2a1 100644
--- a/gst/rtsp/gstrtspsrc.c
+++ b/gst/rtsp/gstrtspsrc.c
@@ -811,13 +811,17 @@ gst_rtspsrc_create_stream (GstRTSPSrc * src, GstSDPMessage * sdp, gint idx)
stream->timebase = -1;
/* collect bandwidth information for this steam */
gst_rtspsrc_collect_bandwidth (src, sdp, media, stream);
/* we must have a payload. No payload means we cannot create caps */
- /* FIXME, handle multiple formats. */
+ /* FIXME, handle multiple formats. The problem here is that we just want to
+ * take the first available format that we can handle but in order to do that
+ * we need to scan for depayloader plugins. Scanning for payloader plugins is
+ * also suboptimal because the user maybe just wants to save the raw stream
+ * and then we don't care. */
if ((payload = gst_sdp_media_get_format (media, 0))) {
stream->pt = atoi (payload);
/* convert caps */
stream->caps = gst_rtspsrc_media_to_caps (stream->pt, media);
GST_DEBUG ("mapping sdp session level attributes to caps");
@@ -1200,13 +1204,17 @@ gst_rtspsrc_media_to_caps (gint pt, const GstSDPMedia * media)
/* the key may not have a '=', the value can have other '='s */
valpos = strstr (pairs[i], "=");
if (valpos) {
/* we have a '=' and thus a value, remove the '=' with \0 */
*valpos = '\0';
- /* value is everything between '=' and ';'. FIXME, strip? */
+ /* value is everything between '=' and ';'. We split the pairs at ;
+ * boundaries so we can take the remainder of the value. Some servers
+ * put spaces around the value which we strip off here. Alternatively
+ * we could strip those spaces in the depayloaders should these spaces
+ * actually carry any meaning in the future. */
val = g_strstrip (valpos + 1);
} else {
/* simple <param>;.. is translated into <param>=1;... */
val = "1";
}
/* strip the key of spaces, convert key to lowercase but not the value. */
@@ -2088,19 +2096,14 @@ gst_rtspsrc_stream_configure_manager (GstRTSPSrc * src, GstRTSPStream * stream,
g_signal_connect (src->session, "on-bye-ssrc", (GCallback) on_bye_ssrc,
src);
g_signal_connect (src->session, "on-bye-timeout", (GCallback) on_timeout,
src);
g_signal_connect (src->session, "on-timeout", (GCallback) on_timeout,
src);
- /* FIXME: remove this once the rtpjitterbuffer is in -good */
- if (g_signal_lookup ("on-npt-stop", G_OBJECT_TYPE (src->session)) != 0) {
- g_signal_connect (src->session, "on-npt-stop", (GCallback) on_npt_stop,
- src);
- } else {
- GST_INFO_OBJECT (src, "skipping on-npt-stop handling, not implemented");
- }
+ g_signal_connect (src->session, "on-npt-stop", (GCallback) on_npt_stop,
+ src);
}
/* we stream directly to the manager, get some pads. Each RTSP stream goes
* into a separate RTP session. */
name = g_strdup_printf ("recv_rtp_sink_%d", stream->id);
stream->channelpad[0] = gst_element_get_request_pad (src->session, name);