diff options
author | Linus Svensson <linussn@axis.com> | 2014-02-27 10:52:16 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2015-03-09 10:18:35 +0100 |
commit | 398296d9780fa7731d7be8db6f3dbbfa09e053a1 (patch) | |
tree | 8e42519623601fdc930cc8e521751ef276da3c54 /gst | |
parent | 38bf3d3808f13b604f979900f03d9fdb0cf40cfc (diff) |
rtspsrc: Don't include payload type in the caps for framesize
When the sdp media attribute framesize are converted to caps
the <payload> should not be included.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=725335
Diffstat (limited to 'gst')
-rw-r--r-- | gst/rtsp/gstrtspsrc.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c index 3d9852c85..621bb3ce5 100644 --- a/gst/rtsp/gstrtspsrc.c +++ b/gst/rtsp/gstrtspsrc.c @@ -1902,6 +1902,8 @@ gst_rtspsrc_sdp_attributes_to_caps (GArray * attributes, GstCaps * caps) continue; if (!strcmp (key, "range")) continue; + if (!strcmp (key, "framesize")) + continue; if (g_str_equal (key, "key-mgmt")) { parse_keymgmt (attr->value, caps); continue; @@ -1949,6 +1951,7 @@ rtsp_get_attribute_for_pt (const GstSDPMedia * media, const gchar * name, * Mapping of caps to and from SDP fields: * * a=rtpmap:<payload> <encoding_name>/<clock_rate>[/<encoding_params>] + * a=framesize:<payload> <width>-<height> * a=fmtp:<payload> <param>[=<value>];... */ static GstCaps * @@ -1957,6 +1960,7 @@ gst_rtspsrc_media_to_caps (gint pt, const GstSDPMedia * media) GstCaps *caps; const gchar *rtpmap; const gchar *fmtp; + const gchar *framesize; gchar *name = NULL; gint rate = -1; gchar *params = NULL; @@ -2070,6 +2074,19 @@ gst_rtspsrc_media_to_caps (gint pt, const GstSDPMedia * media) g_strfreev (pairs); } } + + /* parse framesize: field */ + if ((framesize = gst_sdp_media_get_attribute_val (media, "framesize"))) { + gchar *p; + + /* p is now of the format <payload> <width>-<height> */ + p = (gchar *) framesize; + + PARSE_INT (p, " ", payload); + if (payload != -1 && payload == pt) { + gst_structure_set (s, "a-framesize", G_TYPE_STRING, p, NULL); + } + } return caps; /* ERRORS */ |