[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:
 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
 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 :
 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 :
 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>

More information about the Tracker mailing list