[Pidgin] #16315: New API for private Raw and RTP data streams
Pidgin
trac at pidgin.im
Mon Aug 11 16:57:49 EDT 2014
#16315: New API for private Raw and RTP data streams
----------------------+-----------------------
Reporter: kakaroto | Owner:
Type: patch | Status: new
Milestone: | Component: libpurple
Version: 3.0.0hg | Keywords:
----------------------+-----------------------
Hi,
I've added a new API to libpurple to add support for private PurpleMedia
that plugins can use as well as new APIs for sending/receiving raw and RTP
data.
I have sent this proposal to the pidgin-devel mailing list in June
(https://pidgin.im/pipermail/devel/2014-June/023514.html) and I've now
finished the implementation.
You will find all the commits here :
https://github.com/tieto/pidgin/commits/appdata
There are small differences between the implementation and the proposal.
Mainly, the callbacks that get register will signal readable or writable,
they won't send the actual data received. Also, I've added a
receive_application_data API in order to read. When the readable callback
gets called, the plugin must call receive_application_data until no data
is left.
You can see how the API can be used by a plugin in these commits to SIPE :
https://github.com/tieto/sipe/commit/bae7b738dfe31baafbe50200f5895fc432fc170a
https://github.com/tieto/sipe/commit/76a893337b4484d8c0736a8b651ccaa60bfee9e8
Note that the stream type is PURPLE_MEDIA_APPLICATION which is not shown
in those commits, and the media is created using create_private_media so
the UI doesn't get notified and the file transfer can use purple_xfer to
notify the UI instead and the private PurpleMedia internally to transfer
the data with the peer.
I also fixed a couple of bugs I found in pidgin, and added a signal to
PurpleMedia to notify when a candidate pair has been established, and
added a purple_media_set_send_rtcp_mux API to set the rtcp-mux option on
the FsStream.
Please review and merge these changes.
Thank you.
--
Ticket URL: <https://developer.pidgin.im/ticket/16315>
Pidgin <https://pidgin.im>
Pidgin
More information about the Tracker
mailing list