Commit Graph

189 Commits

Author SHA1 Message Date
Saxon a0fb299b06 protocol/rtsp: moved client functionality into client.go file 2019-04-26 13:57:18 +09:30
Alan Noble 149a2fa6b9 Fix package-level doc comment. 2019-04-26 00:36:23 +00:00
Saxon 9169afe34f protocol/rtsp: general clean up 2019-04-25 15:30:28 +09:30
Saxon f3f3be5fc6 protocol/rtsp: completed test for rtsp
Completed test to check that each method we support works and can produce valid requests. The requests are compared to requests that have been proven valid. This test also checks that the RTSP
client communicates over tcp correctly. i.e. we have set up a client and server, and we check that this communication happens correctly.
2019-04-25 14:46:21 +09:30
Saxon adbb9d1c99 protocol/rtsp: added testing file and wrote some signature for possible tests 2019-04-23 17:27:37 +09:30
Saxon e00c959a84 protocol/rtcp: renamed NTPTimestamp to Timestamp
Renamed NTPTimestamp and referenced specifications rather than quoting. Renamed Timestamp func to ParseTimestamp.
2019-04-23 16:40:26 +09:30
Saxon a256dc9133 protocol/rtsp: made rtsp/cmd/stream functional 2019-04-23 16:22:58 +09:30
Saxon 34c59c95d6 protocol/rtsp: working on main.go in rtsp/cmd/stream
Added file header to main.go, and modified rtsp.go to work with cmd/stream/main.go. This change modifies writeRequest, which now takes a *url.URL. This means the Setup() method can parse a new
URL that contains a given track, and then give this to writeRequest.
2019-04-23 15:49:54 +09:30
Saxon d03ae3ff7e protocol/rtsp: fixed rtsp.go file header indentation 2019-04-23 15:33:07 +09:30
Saxon 63da7dbb59 protocol/rtcp: removed unecessary logging in test files 2019-04-23 14:45:16 +09:30
Saxon 017abea667 protocol/rtcp: fixed indentation in file headers 2019-04-23 14:38:26 +09:30
Saxon 4c2962ba75 protocol/rtcp: renamed SourceDescription to Description 2019-04-23 14:33:27 +09:30
Saxon 889072bde0 protocol/rtcp: improve ReportBlock field names 2019-04-23 14:30:05 +09:30
Saxon 4068aea207 protocol/rtp: better comment for NTPTimestamp and renamed fields 2019-04-23 14:25:22 +09:30
Saxon b43f6f8072 protocol/rtcp: renamed highestSequence() to sequence. 2019-04-23 14:16:40 +09:30
Saxon 6b994d0dba protocol/rtcp: made Client error channel unexported
Renamed Client ErrChan field to err, i.e. made unexported. Wrote Err() accessor that allows user to only read from error channel.
2019-04-23 13:26:56 +09:30
Saxon a43ef56618 protocol/rtcp: addressing PR feedback 2019-04-22 00:34:03 +09:30
Saxon cbad00b6e6 av: fixed conflict 2019-04-21 23:58:59 +09:30
Saxon a0c324a813 protocol/rtp: simplified test
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.
2019-04-21 23:07:30 +09:30
Saxon be76998c7d protocol/rtp: wrote TestReceiveNoOp
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.
2019-04-21 22:40:08 +09:30
Saxon f454a34856 protocol/rtp: added client_test.go for client testing 2019-04-20 21:10:03 +09:30
Saxon 00db293b44 protocol/rtp: consts for chan and ringbuffer sizes 2019-04-20 21:05:34 +09:30
Saxon 190d546c58 protocol/rtp: commented file 2019-04-19 18:40:15 +09:30
Saxon b302eafa68 protocol/rtp: setting Client's op field in constructor 2019-04-19 18:22:43 +09:30
Saxon ccc08bfad1 protoocl/rtp: added client.go file
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.
2019-04-19 18:17:06 +09:30
Saxon a8e56311c2 protocol/rtcp: addressing PR feedback 2019-04-19 14:15:43 +09:30
Saxon 68b996f698 protocol/rtsp: removed LICENSE.BSD file as license now in rtsp.go 2019-04-18 13:53:02 +09:30
Saxon e87eadf8fd protocol/rtsp/rtsp.go: commenting and general clean up. 2019-04-17 18:31:03 +09:30
Saxon c9082c1b4c protocol/rtsp/rtsp.go: put tcp dial in new session
tcp dial is now in new session, firstly so that we don't have to do the s.conn == nil check and also so that we dont't have to pass around the url everywhere.
2019-04-17 12:45:02 +09:30
Saxon 85bb88c325 protocol/rtsp: removed README 2019-04-17 12:22:54 +09:30
Saxon 1bcf05830d protocol/rtsp: removing rtp package
We already have an rtp package, which I will extend with client functionality, so we don't need this here.
2019-04-17 12:20:36 +09:30
Saxon 02c11c234f protocol/rtsp/rtsp.go: added back beatgammits structs
Added them back because i realised I can't use http Requests and Responses and the accompanying methods because then this wouldn't be the RTSP protocol, it would be the HTTP protocol, which is not what we're doing.
2019-04-17 12:18:23 +09:30
Saxon 0543cb0968 protocol/rtsp/rtsp.go: got rid of NewRequest and put logic into writeRequest 2019-04-17 10:20:49 +09:30
Saxon 948e9a67e1 protocol/rtsp/rtsp.go: simplified RTSP method functions wrap a single writeRequest func 2019-04-17 09:05:34 +09:30
Saxon 6f4738a04c protocol/rtsp: removed sdp stuff
We won't be using this, at least not initially, so it's being deleted.
2019-04-17 08:15:52 +09:30
Saxon cd7e2ce3f3 protocol/rtsp: removed response writer interface, which was just http.ResponseWriter 2019-04-17 07:51:34 +09:30
Saxon d34eabcd34 protocol/rtcp/client.go: not using defer for simple setters/getters 2019-04-17 07:41:31 +09:30
Saxon 9de1b541a9 protocol/rtsp: removed unused stuff
Firstly removed unused RTSP method string consts. Also removed all the unused http response codes. Removed
ReadRequest, as this was also not used.
2019-04-16 23:32:50 +09:30
Saxon 4a97a626a0 protocol/rtsp: added beatgammits pkg and also my stream/main.go program
Most of this is unmodified except for the stream/main.go program. I am going to use this as a test that simply streams from an RTSP server to vlc.
2019-04-16 22:47:13 +09:30
Saxon 881ddc3d38 protocol/rtcp: using defer where I can 2019-04-16 22:01:38 +09:30
Saxon f66a94543a protocol/rtcp: fixed some further feedback 2019-04-16 17:17:48 +09:30
Saxon 51478ee064 protocol/rtcp: addressing of PR feedback 2019-04-16 17:16:13 +09:30
Saxon f54dd13959 protocol/rtcp: added file headers 2019-04-16 16:45:44 +09:30
Saxon 5cf39595eb protocol/rtcp: fix case of protocols in comments 2019-04-16 16:31:04 +09:30
Saxon 9e55feafe7 protocol: removed rtsp stuff
For this branch we will only include efforts regarding rtcp.
2019-04-16 12:38:14 +09:30
Saxon 1a19412223 protocol/rtcp: finished client_test.go improved usability or client
Finished writing the client_test.go file and through the process fixed some bugs in the client. Also increased usability by providing a Stop() method
so that the send and recv routines, and also the connection can be terminated. Also created a sender report struct in rtcp.go - this helped with
testing.
2019-04-16 12:33:58 +09:30
Saxon Milton 6ee286e988 Merged in rtp-parsing (pull request )
protocol/rtp: can parse payload from RTP packet

Approved-by: Alan Noble <anoble@gmail.com>
Approved-by: kortschak <dan@kortschak.io>
2019-04-16 00:31:21 +00:00
Saxon aa947d112c protocol/rtcp: wrote test for Client.formPayload 2019-04-15 17:35:36 +09:30
Saxon dca007a5ba rtcp/protocol: tried to make Bytes funcs and client formation of payload more efficient 2019-04-15 16:56:52 +09:30
Saxon 2669862ced protocol/rtcp: wrote struct for RTCP sender report 2019-04-15 15:53:06 +09:30
Saxon af664b0661 protocol/rtsp: more commenting and started writing client_test.go to check the behaviour of the rtcp client 2019-04-15 14:01:38 +09:30
Saxon 56a9b7d6ef av: fixed broken tests 2019-04-15 11:43:46 +09:30
Saxon 4a613e600c protocol/rtp: fixed gnu license url in file headers for parse_test.go and parse.go 2019-04-14 17:08:42 +09:30
Saxon 5fa0969530 protocol/rtcp: changed Timestamp func so that it returns msw and lsw 2019-04-13 19:48:20 +09:30
Saxon 757564a2ed protocol/rtcp: wrote body for Timestamp and added testing. 2019-04-12 18:02:27 +09:30
Saxon 8f452e1155 protocol/rtcp/rtcp.go: added placeholder functions for getting sender report timestamp words 2019-04-12 16:40:52 +09:30
Saxon 81048d1613 protocol/rtcp/client.go: writing rtcp client
Added client.go file which contains an rtcp client abstraction. This will listen for incoming sender reports and send out receiver reports.
2019-04-12 16:29:35 +09:30
Saxon db81547962 protocol/rtcp: wrote test for SourceDescription.Bytes() and made modifiations to make it pass. 2019-04-12 11:14:07 +09:30
Saxon 22d71f8a57 protocol/rtcp: fixed writing of SenderSSRC in ReceiverReport header, now test passing. 2019-04-10 17:12:00 +09:30
Saxon 0700a8270d protocol/rtp: updated parse.go function comments 2019-04-10 16:56:32 +09:30
Saxon 956110f0ef protocol/rtcp: wrote test for ReceiverReport.Bytes()
This uses data from a "good" packet that vlc used during a stream from a geovision. I have filled the fields
of a receiver report with the same data, and am checking that the result from Bytes() is the same as the
good data.
2019-04-10 16:54:01 +09:30
Saxon 139d4b92ab protocol/rtcp: added rtcp_test.go file with signatures for some likely tests 2019-04-10 16:33:12 +09:30
scruzin 863db58a84 Removed references to obsolete Session. 2019-04-10 16:32:07 +09:30
Saxon ddabd9afbf protocol/rtcp: wrote Bytes for for SourceDescription type 2019-04-10 16:29:40 +09:30
Saxon 5bdea4a09f protocol: moved rtcp protocol stuff to under protocol rather than under rtsp. 2019-04-10 15:22:38 +09:30
Saxon 32d232908a protocol/rtsp/rtcp: start writing rtcp structs
Wrote structure for Header, ReceiverReport, ReportBlocks, Chunks and Source Description. Wrote Bytes function for ReceiverReport.
2019-04-10 15:21:06 +09:30
Saxon 1160985b2a protocol/rtsp: fixing url usage 2019-04-10 14:01:13 +09:30
Saxon 6b9f552610 protocol/rtsp: removed rtsp-util/main.go and create cmd/stream/main.go
cmd/stream/main.go will be a simple client that sets up an rtsp connection and asks for the server to stream.
2019-04-10 13:12:31 +09:30
Saxon a0fb380717 protocol/rtp: simplified hasExt function 2019-04-10 12:52:05 +09:30
Saxon ff0c62910c protcol/rtp: panic in Payload if length is not sufficiently long to be RTP packet. 2019-04-10 12:51:05 +09:30
Saxon 6992ab395b protocol/rtp: removed extHeaderLen func 2019-04-09 15:45:40 +09:30
Saxon b5c018276f protocol/rtp: commented rtpVer const and made defaultHeadSize 12 rather than 4*3 2019-04-09 15:45:40 +09:30
Saxon df3e66e5b2 protocol/rtp: removed redundant version checks from helper funcs in parse.go 2019-04-09 15:45:40 +09:30
Saxon 09b8a2baff protocol/rtp: fixed indentation issue in file header in parse_test.go 2019-04-09 15:45:40 +09:30
Saxon b5711d18c5 protocol/rtp: fixed indentation issue in file header 2019-04-09 15:45:40 +09:30
Saxon 3dfc7ed990 protocol/rtp: wrote TestPayload
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.
2019-04-09 15:45:40 +09:30
Saxon 275b86285e protocol/rtp: added TestExtHeaderLen
Added test TestExtHeaderLen which checks that extHeaderLen returns the correct len for
an RTP packet with an extension header.
2019-04-09 15:45:40 +09:30
Saxon 3dc6d7733b protocol/rtp: wrote TestHasExt
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.
2019-04-09 15:45:40 +09:30
Saxon c2b67d7fb9 protocol/rtp: wrote TestCsrcCount
Wrote test TestCsrcCount to check behaviour of csrcCount is expected.
2019-04-09 15:45:40 +09:30
Saxon 74b25e646a protocol/rtp: wrote TestVersion
Wrote test that checks the version func will correctly get the
version from an RTP packet.
2019-04-09 15:45:40 +09:30
Saxon fa9888723f protocol/rtp: added parse_test.go file and fixed copyrights. 2019-04-09 15:45:40 +09:30
Saxon af9a9bc6c0 protocol/rtp: added parse.go file with parsing functionality
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.
2019-04-09 15:45:40 +09:30
Saxon 4978db2f2b revid: fixed silly rtp bug 2019-04-09 15:44:18 +09:30
Saxon 83122d0ac5 protocol/rtsp: adding beatgammit's rtsp pkg to our codebase
Much of the functionality we require for rtsp input is here, but some modification will be required to fix some bugs and get it functional; which will come in later PRs.
2019-04-09 12:32:12 +09:30
Saxon 6dbbee81d2 protocol/rtp: rtp packet payload comment update 2019-04-03 12:20:54 +10:30
Saxon efa0d38aad protocol/rtp: removed Len field from ExtensionHeader struct as we can gather from len(ExtensionHeader.Header) 2019-04-02 21:49:11 +10:30
Saxon 95a9e4a2ef protocol/rtp: extended functionality of rtp pkg
rtp.Bytes can now deal with CSRC fields, extension fields and padding. Tests have been updated to be more extensive in checks.
2019-03-29 15:48:34 +10:30
Saxon 5366eca2f2 av: fixed imports 2019-03-25 11:51:03 +10:30
Saxon 3a736172ee av: restructured directories 2019-03-25 11:34:56 +10:30