Commit graph

73 commits

Author SHA1 Message Date
Sebastian Dröge
1381e3e2be sdp: Add support for parsing the extmap attribute from caps and storing inside caps
The extmap attribute allows mapping RTP extension header IDs to
well-known RTP extension header specifications. See RFC8285 for details.

We store the extmap attribute either as string in the caps
  extmap-X=extensionname
where X is the integer extension header ID, or as 3-tuple of strings
  extmap-X=<direction,extensionname,extensionattributes>
where direction or extensionattributes are allowed to be the empty
string.

Both formats are allowed because usually only the extension name is
given and it's much simpler to handle in caps.
2019-07-13 12:18:15 +00:00
Edward Hervey
66ad2c3d40 sdpmessage: Remove dead assignment
p is overridden before being used (as the for() loop iterator)
2018-12-17 12:21:01 +01:00
Edward Hervey
f4c9267265 sdpmessage: Remove dead assignment
The presence of `key-mgmt` attribute will set the mikey appropriately.
We therefore don't need to check the return value (which will
be overwritten afterwards).
2018-12-17 12:21:01 +01:00
Mathieu Duponchelle
a4a27fdca8 sdp: Add new constructor, sdp_message_from_text
Helper function for bindings, in python for example
users can now replace:

res, msg = GstSdp.SDPMessage.new()
GstSdp.sdp_message_parse_buffer(bytes(text.encode()), msg)

with:

res, msg = GstSdp.SDPMessage.new_from_text(text)

https://bugzilla.gnome.org/show_bug.cgi?id=796563
2018-06-11 20:21:08 +02:00
Edward Hervey
22c9e5f7c1 libs: Documentation cleanup
* Fix wrong naming, wrong types and typos
* Add missing sections
* Add missing documentation for entries
* Explicitely mark private structure entries
* Remove items that never existed
2018-04-02 08:53:28 +02:00
Justin Kim
91179622eb sdpmessage: add_attribute accepts NULL value
The attribute can be defined without value regardless session-level
or media-level.
Although `gst_sdp_message_insert_attribute` can be used to set NULL,
it would be easier if `gst_sdp_message_add_attribute` accepts NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=789841
2017-11-03 17:56:39 +11:00
Justin Kim
d100180ce3 sdpmessage: do not append NULL value for session-level attr
If an attribute is defined without value, the generated text
should be 'a=key' rather than 'a=key:'. For media-level, it
has already been done.

https://bugzilla.gnome.org/show_bug.cgi?id=789742
2017-11-01 17:09:47 +11:00
Tim-Philipp Müller
4246198fb3 No need for newlines in debug log statements 2017-04-12 09:58:49 +01:00
Matthew Waters
0dcab96d88 sdp/media: caps_from_media() don't modify the input media
Performing a gst_sdp_media_get_caps_from_media() would result in
changing fields in the GstSDPMedia violating the const tag in the
function declaration.

Before there would be a line with a=rtpmap:96 VP8/90000
after, that attribute would only contain a=rtpmap:96

Fix by performing modifications on duplicated strings instead of on
the internal values.

Also add a simple test for checking that the representation doesn't
change by a gst_sdp_media_get_caps_from_media()
2017-04-03 16:49:12 +10:00
Matthew Waters
9d3622e1bd sdp: add g_return*_if_fail assertions on invalid inputs
Prevents some programming errors and invalid modifications.
2017-04-03 16:49:12 +10:00
Matthew Waters
fa243654cf sdp/message: fix segfault copying NULL in the boxed copy impl
Allows passing NULL as a value to g_object_set and as signal
parameters without crashing.
2017-04-03 16:49:12 +10:00
Thibault Saunier
099ac9faf2 docs: Convert gtkdoc comments to markdown
Modernizing the documentation, making it simpler to read an
modify and allowing us to possibly switch to hotdoc in the
future.
2017-03-10 18:19:17 -03:00
Edward Hervey
e3216d1648 sdp: Fix attribute leak
We need to free the strdup'd string (to_free) in all cases
2016-11-28 16:51:43 +01:00
Scott D Phillips
6a4c14c39a sdp: cast away const in call to g_free
MSVC warns about the const here. It's safe to cast away.

https://bugzilla.gnome.org/show_bug.cgi?id=774293
2016-11-15 14:52:22 +02:00
Tomasz Zajac
4d4f3c3cc4 sdp: Parse rtcp-fb media attributes
https://bugzilla.gnome.org/show_bug.cgi?id=769698
2016-11-01 19:57:06 +02:00
Tomasz Zajac
5424357ffa sdp: Add rtcp-fb media attributes based on caps
https://bugzilla.gnome.org/show_bug.cgi?id=769698
2016-11-01 19:57:02 +02:00
Hyunjun Ko
825c150e9d sdp: parse sdp attributes in case that sdp message doesn't contain mikey message
https://bugzilla.gnome.org/show_bug.cgi?id=766204
2016-05-10 19:43:32 +03:00
Josep Torra
1439b61694 sdp: update since markers to 1.8.1 for some new APIs
As we decided to backport some fixes we update the since markers.
2016-04-19 17:36:20 +02:00
Aleix Conchillo Flaqué
28cf2f02e7 sdpmessage: new gst_sdp_media_parse_keymgmt/gst_sdp_media_parse_keymgmt
We add a couple of new functions gst_sdp_media_parse_keymgmt and
gst_sdp_media_parse_keymgmt. We also implement
gst_sdp_message_attributes_to_caps and gst_sdp_media_attributes_to_caps
in terms of these new functions and also gst_mikey_message_to_caps.
2016-04-15 15:28:47 +02:00
Aleix Conchillo Flaqué
7a864c177f mikey: add new function gst_mikey_message_to_caps 2016-04-15 15:21:23 +02:00
Hyunjun Ko
682b523652 sdp: add helper fuctions from/to sdp from/to caps
<gstsdpmessage.h>
GstCaps*       gst_sdp_media_get_caps_from_media   (const GstSDPMedia *media, gint pt);
GstSDPResult   gst_sdp_media_set_media_from_caps   (const GstCaps* caps, GstSDPMedia *media);
gchar *        gst_sdp_make_keymgmt                (const gchar *uri, const gchar *base64);
GstSDPResult   gst_sdp_message_attributes_to_caps  (GstSDPMessage *msg, GstCaps *caps);
GstSDPResult   gst_sdp_media_attributes_to_caps    (GstSDPMedia *media, GstCaps *caps);

<gstmikey.h>
GstMIKEYMessage * gst_mikey_message_new_from_caps  (GstCaps *caps);
gchar *           gst_mikey_message_base64_encode  (GstMIKEYMessage* msg);

https://bugzilla.gnome.org/show_bug.cgi?id=745880
2015-12-31 17:11:57 +02:00
Reynaldo H. Verdejo Pinochet
0c95b0a738 Remove unnecessary NULL checks before g_free()
g_free() is NULL-safe
2015-11-17 14:50:27 -08:00
George Kiagiadakis
6ab46d8f0a sdp: prevent the sdp message parser from reading past the end of the buffer
Otherwise, a malformed SDP message could crash the application,
or even maliciously gather data from the memory located after
this buffer...

https://bugzilla.gnome.org/show_bug.cgi?id=750096
2015-05-29 15:05:31 +02:00
Sebastian Dröge
cceb3303ab sdp: Add some more gobject-introspection annotations for bindings
https://bugzilla.gnome.org/show_bug.cgi?id=729123
2014-05-01 15:11:04 +02:00
Sebastian Dröge
05ed7d5ba7 sdpmessage: Add array length annotation to gst_sdp_message_parse_buffer
https://bugzilla.gnome.org/show_bug.cgi?id=729123
2014-04-29 09:54:38 +02:00
Tim-Philipp Müller
bcb8068e27 docs: remove outdated and pointless 'Last reviewed' lines from docs
They are very confusing for people, and more often than not
also just not very accurate. Seeing 'last reviewed: 2005' in
your docs is not very confidence-inspiring. Let's just remove
those comments.
2014-04-26 23:28:57 +01:00
Vincent Penquerc'h
505c803765 sdpmessage: fix multi statement macros
Wasn't playing nice with an if statement below.

Coverity 1139767
2014-04-10 12:35:03 +01:00
Wim Taymans
4a81605d02 sdp: guard against address parse errors. 2014-04-08 15:59:47 +02:00
Sebastian Rasmussen
5b4f2ba20b docs: Fix argument and annotation typos
* colorbalance: Fix misspelled annotation
 * rtsp: Replace incorrectly documented function argument
 * sdp: Escape @ character to avoid gtk-doc warning
 * video-*: Add missing annotation colon
 * videodecoder/video-color: Fix function argument typos
 * videoutils: Remove unknown annotation field

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=725521
2014-03-02 23:22:51 +00:00
Aleix Conchillo Flaqué
7a7ae7d5f4 sdp: parse encryption key field
* gst-libs/gst/sdp/gstsdpmessage.c: parse encryption key field (k).

  https://bugzilla.gnome.org/show_bug.cgi?id=720215
2013-12-17 16:32:06 -05:00
Matthieu Bouron
a4996f133b sdp: fix duplicate 'const' declaration warnings
https://bugzilla.gnome.org/show_bug.cgi?id=711258
2013-11-01 15:27:45 +01:00
Wim Taymans
ea45653db9 sdp: fix docs 2013-09-21 15:17:54 +02:00
Wim Taymans
b708c85535 sdp: use setter for the bandwidth 2013-04-26 10:10:41 +02:00
Sebastian Rasmussen
f7e879aa18 sdp: Store a copy of the bandwidth string
Otherwise we will free a string later that does not belong to us.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=698888
2013-04-26 08:41:12 +02:00
Wim Taymans
2de35e630c sdp: don't leak the temp buffer 2013-04-24 14:12:20 +02:00
Wim Taymans
8a5efb0014 sdp: NULL terminate the time array 2013-04-24 14:11:49 +02:00
Wim Taymans
85debdcf05 sdp: add more functions to modify the sdp message
Add functions to insert, replace and remove various sdp message fields
and structures.

See: https://bugzilla.gnome.org/show_bug.cgi?id=698558
2013-04-24 13:47:47 +02:00
Wim Taymans
04d5dafa71 sdp: dynamically allocate buffers
Remove the static maximum buffer size and replace with dynamic allocation of as
much bytes as needed. Also avoids doing large allocations on the stack.
2013-04-15 15:37:17 +02:00
Wim Taymans
83a877daf6 sdp: add Since markers 2013-04-15 14:27:47 +02:00
Jose Antonio Santos Cadenas
ba1e693853 sdp: add boxed type for GstSDPMessage
Also added some tests of this improvement.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=697808
2013-04-15 14:27:47 +02:00
Jose Antonio Santos Cadenas
a83f96d988 sdp: Set session as permanent (t=0 0) if there is no time information
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=697277
2013-04-05 09:52:10 +02:00
Jose Antonio Santos Cadenas
0940dae793 sdp: Do not assign -1 to an unsigned variable, use 0 instead
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=697162
2013-04-03 09:53:22 +02:00
Jose Antonio Santos Cadenas
83468609d8 sdp: If attribute value is emply do not print colon character
See https://bugzilla.gnome.org/show_bug.cgi?id=697162
2013-04-03 09:52:54 +02:00
Jose Antonio Santos Cadenas
27abdf51bf sdp: Do not add email line by default
As specified in rfc4566 email line is optional

See https://bugzilla.gnome.org/show_bug.cgi?id=697162
2013-04-03 09:49:18 +02:00
Tim-Philipp Müller
5f59b4f7ee Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-03 23:05:09 +00:00
Evan Nemerson
abcba2d0d7 sdpmessage: add some missing introspection annotations 2012-07-17 11:10:43 +02:00
Edward Hervey
2817bdadc9 libs: Remove "Since" markers and minor doc fixups 2012-07-13 12:11:06 +02:00
Sebastian Dröge
cfa7083e94 sdp: Port to GIO for multicast address detection 2012-01-17 13:27:05 +01:00
Stefan Kost
01bbdd6bdf docs: handle warnings emitted by gtk-doc
This is useful and in most cases someone had put arbitrary markup into the docs,
misspelled xref'ed symbols, forgot to add stuff to the docs etc..
2011-08-20 19:16:42 +02:00
Wim Taymans
626af33160 sdp: only parse TTL for IP4 addresses
Only IP4 addresses can have a TTL in the address.
2010-12-02 19:09:11 +01:00