Removed buffering in rtp client. This simplified things alot e.g. the recv routine has been removed, and therefore anything that was there to help with handling of the routine is also gone
like the Start() and Stop() methods as well as signalling channels and waitgroups. The client is now just effectively a wrapper for a udp conn.
Simplified clien_test.go file by testing two different RTP packet operations using loop. We now first test no operation,
and then test a rtp.Payload operation, which gets the payload of the packets and stores them in the client ringbuffer for the
user of the client to read.
Wrote test TestReceiveNoOP to check that client works correctly when we give no operation to perform on RTP packets before
storing in the client ringBuffer, which calling io.Reader implementation Read will get packets form.
Added client.go which contains a struct to describe an RTP client. It provides a method, Start, which will
invoke a recv routine to start receiving packets and process them using an op function passed on the Client's
creation. Client implements io.Reader, so that the client may be read from.
Wrote test TestPayload which will check that we can correctly get the payload from an RTP
packet using Payload for a variety of different RTP packet configurations.
Wrote test TestHasExt which checks the behaviour of hasExt for when it's call with an
RTP packet with an extension indicator and also for an RTP packet with no extension
indicator.
Added parse.go. This file contains functionality to obtain the Payload from an RTP packet.
Unexported functions to help with this extraction have been added; extHeaderLen, hasExt,
csrcCount and version.