Commit graph

62 commits

Author SHA1 Message Date
b2760dcb78 wrapped all RTMP tcp reads in io.ReadFull 2024-03-11 14:00:21 +05:00
d0c3bffd3b wrap read in io.ReadFull so that it actually reads everything over latency between TCP packets 2024-02-27 14:45:36 +05:00
53af3d325f Moved transcoder command creation to separate package entirely 2023-09-08 14:56:21 +05:00
33fc16f38c change cleanup to check for active stream (prevents segment wipe on reconnect) 2023-08-24 12:51:12 +05:00
82a426ef49 h264 keyframe fix to keep desired hls segment length 2023-08-22 15:08:55 +05:00
355b1bfa77 fix for weird obs bug with chunkstream ids on rapid i3 workspace switching (maybe also alt+tabs?) 2023-08-22 14:59:17 +05:00
7b5021f8d2 switch to fragmented mp4 from ts 2023-08-22 14:58:01 +05:00
699666695e Comments 2023-08-21 20:25:54 +05:00
21fc4a5816 Now adds EXT-X-PROGRAM-DATE-TIME to m3u8 for player syncing 2023-08-21 18:44:12 +05:00
e026a83d06 Proper deferred stream state flip on connection break 2023-08-21 18:43:35 +05:00
14336095ea shorten playlist size, use stream key to construct uri for http server 2023-08-21 15:10:07 +05:00
Muaz Ahmad
5941184ada auto-clean stream directory at start of new stream and after 1m at end of stream, holy shit it just works 2023-08-18 16:26:06 +05:00
Muaz Ahmad
f80e86fcf6 pipe flv to ffmpeg hls segmentation 2023-08-18 15:50:24 +05:00
Muaz Ahmad
f165efcdc2 Audio+video handling, break data loop on command message since it should only ever be an unpublish if working correctly, or exit anyway for non-proper protocol 2023-08-18 14:43:52 +05:00
Muaz Ahmad
5a21ef83d2 Also write tag size at end 2023-08-18 14:21:31 +05:00
Muaz Ahmad
fc4560076c metadata handling, errors for invalid message type but successful read, flv byte write index removed since unneeded 2023-08-18 13:24:54 +05:00
Muaz Ahmad
cbf1492b0e flv stream data handling, temporary dump to a file instead of ffmpeg 2023-08-18 12:48:05 +05:00
Muaz Ahmad
050e8b104f basic data loop handle (placeholder) 2023-08-17 16:35:06 +05:00
Muaz Ahmad
70d7ba474e add publish handling, refactor command for easier value checking 2023-08-17 15:01:12 +05:00
Muaz Ahmad
10089f4f25 add server publish checking 2023-08-17 14:58:07 +05:00
Muaz Ahmad
579bf2e195 read and write publishing, check stream key validity (if dir exists) 2023-08-17 14:57:30 +05:00
Muaz Ahmad
f6e23abbaf msg stream id little-endian fix 2023-08-17 13:28:00 +05:00
Muaz Ahmad
4f4a896b84 Finish stream creation response 2023-08-15 17:46:41 +05:00
Muaz Ahmad
9f0cf39b3b Process and check create stream command, store transaction id 2023-08-15 15:55:41 +05:00
Muaz Ahmad
b0239ed761 Fix format 3 handling for new messages with the same delta and other params 2023-08-15 15:55:11 +05:00
Muaz Ahmad
56b6c2ff69 Redo param init, handle reading createStream and placeholder for response 2023-08-15 15:54:04 +05:00
Muaz Ahmad
5efc3d0970 Allow tracking transaction id 2023-08-15 15:53:20 +05:00
Muaz Ahmad
a38fbea911 Basic create stream handle, void releasestream and fcpublish calls since no doc, and only going to accept stream data anyway 2023-08-15 15:29:46 +05:00
Muaz Ahmad
83c61128d8 Remove pointless pointer ref for a single string 2023-08-15 14:34:48 +05:00
Muaz Ahmad
881cbe28f8 Pass successful connect return 2023-08-15 14:27:54 +05:00
Muaz Ahmad
ae9bb63d04 Complete encoding of main types 2023-08-15 14:27:28 +05:00
Muaz Ahmad
a526753112 Add null parsing 2023-08-15 14:27:00 +05:00
Muaz Ahmad
7311b761b2 Fixed cyclic package dep 2023-08-15 13:16:38 +05:00
Muaz Ahmad
d1b5ade036 Added connect response writing 2023-08-15 12:32:44 +05:00
Muaz Ahmad
a070e0c952 Added chunk size and bandwidth write to peer 2023-08-13 14:43:07 +05:00
Muaz Ahmad
94bd146e77 Basic msg chunking and writing 2023-08-13 14:31:04 +05:00
Muaz Ahmad
d90127def6 Try writing chunks, start with window ack size msg 2023-08-13 14:30:39 +05:00
Muaz Ahmad
dbc55a2880 Object read, root obj access fix 2023-08-12 02:18:03 +05:00
Muaz Ahmad
369a7c40f4 Added number, bool and string amf decoding 2023-08-11 15:51:46 +05:00
Muaz Ahmad
74d95d4769 Basic root and number AMF decoding 2023-08-11 15:22:25 +05:00
Muaz Ahmad
ca36226491 Stream key not involved until publish stage, just check if proper command and app 2023-08-11 15:21:49 +05:00
Muaz Ahmad
3d7e00169b Refactor command process to separate file 2023-08-11 13:12:12 +05:00
Muaz Ahmad
0c054b67c0 connect object processing, stream key checking 2023-08-11 13:09:36 +05:00
Muaz Ahmad
7782f14eb5 Add connect command read code, import amf package 2023-08-10 23:53:58 +05:00
Muaz Ahmad
ac5834a12e Add amf encoding package, test code 2023-08-10 23:53:23 +05:00
Muaz Ahmad
58d12652e5 Remove chunk size test code, add connect command test code 2023-08-10 23:52:52 +05:00
Muaz Ahmad
d5d5e71270 Added \"stream key\" to params storage 2023-08-10 23:51:54 +05:00
Muaz Ahmad
48c3bb1df4 Refactor, remove unused buffer and stream map init 2023-08-10 23:51:24 +05:00
Muaz Ahmad
c7ea01e3bd Force read peer chunk size message from client 2023-08-10 20:58:01 +05:00
Muaz Ahmad
5df64adcbd Refactor, wrapper around ReadChunk to manage structs 2023-08-10 20:34:10 +05:00