README.rdoc
= rtcp {<img src="https://codeclimate.com/github/rusch/rtcp.png" />}[https://codeclimate.com/github/rusch/rtcp] {<img src="https://travis-ci.org/rusch/rtcp.png?branch=master" alt="Build Status" />}[https://travis-ci.org/rusch/rtcp]
* https://github.com/rusch/rtcp
* http://www.ietf.org/rfc/rfc3550.txt
* http://www.ietf.org/rfc/rfc4585.txt
== Description
The RTP Control Protocol (RTCP) gathers statistical data about RTP sessions,
for example transmitted octet and packet counts, lost packet counts,
round-trip delay time and interarrival jitter.
This library parses RTCP data into ruby objects.
== Features
* Parse RTCP Packets into Ruby Objects
* Supports the following RTCP Packet types:
* 200: Sender Report
* 201: Receiver Report
* 202: Source Description
* 203: Goodbye
* 204: Application-Defined (Does not decode application-dependent data)
* 206: Payload-Specific FB message (Does not decode FCI block)
* 207: Extended Report
* 209: Receiver Summary Information
== Examples
=== Parse an RTCP Packet
require 'rtcp'
rr = RTCP.decode(rtcp_rr_data) # => [RTCP::RR Object]
rr.ssrc # => 3945864703
rr.length # => 8
rr.version # => 2
rr.report_blocks # => []
=== Parse a sequence of RTCP Packets
require 'rtcp'
msgs = RTCP.decode(rtcp_data) # => [Array of RTCP::* Objects]
msgs[0].class # => RTCP::RR
msgs[0].ssrc # => 3945864703
msgs[1].class # => RTCP::SDES
msgs[1].chunks # => [Array of Hashes]
msgs[1].chunks[0][:ssrc] # => 3945864703
msgs[1].chunks[0][:type] # => :cname
msgs[1].chunks[0][:data] # => "00-09-df-1b-ec-0a"
msgs[2].class # => RTCP::RSI
msgs[2].ssrc # => 3945864703
msge[2].ntp_timestamp # => [Time Object]
msgs[3].class # => RTCP::APP
msgs[3].name # => "PLII"
msgs[3].app_data # => [Binary Data -- The application data]
msgs[4].class # => RTCP
msgs[4].to_s # => [Binary Data -- The whole RTCP packet]
== Requirements
* Rubies (tested, at least):
* 1.9.3
* JRuby 1.7.3 (1.9 mode)
== Install
$ gem install
== Copyright
Copyright (c) 2013 Christian Rusch