Commit graph

217 commits

Author SHA1 Message Date
b64e3f4bac use Bytes for shared buffers in WebM chunks 2018-10-21 01:53:16 -04:00
5d25d5adb7 Have subcommands control launching the runtime. 2018-10-20 23:02:24 -04:00
713a7d4741 Be less "clever" in main.rs, don't twist everything into the runtime. 2018-10-20 22:06:42 -04:00
40a137e906 update tokio version 2018-09-20 20:58:51 -04:00
17427be5ef Update version of bytes 2018-09-20 20:13:27 -04:00
08e8b1311f Use hyper-provided runtime instead of tokio-core 2018-09-18 02:29:01 -04:00
14d468cc7d Update hyper to 0.12 2018-09-18 02:15:02 -04:00
55e1f29906 use impl Future in a few places 2018-05-13 21:05:51 -04:00
4f6cc00fe6 Add anticaching headers 2018-04-26 02:19:14 -04:00
603e741753 Add X-Accel-Buffering header & Nginx proxying instructions 2018-04-25 01:24:43 -04:00
0e370556a2 add a little documentation re: soft buffer limits 2018-04-16 01:58:28 -04:00
32cf6dd2ef Add buffer size limit to chunker 2018-04-16 01:16:03 -04:00
982c5c2dcb Limit buffer size for stream parser 2018-04-16 00:59:53 -04:00
0f3e941031 Remove debug prints from relay command 2018-04-15 23:43:15 -04:00
8b27dc7d8f Fix upload tool, keep request active instead of dropping the Response 2018-04-15 22:07:21 -04:00
8d76bd5c57 Cleanup error handling 2018-04-15 22:06:42 -04:00
739862bc35 Add send subcommand for uploading WebM 2018-04-15 01:43:23 -04:00
885681f009 Add some reusable error conversions 2018-04-15 01:42:47 -04:00
ee82846590 Use tokio_core instead of runtime as top loop 2018-04-15 01:21:00 -04:00
49541347a4 Give all subcommands option of returning a future to run in a Tokio context 2018-04-14 22:35:32 -04:00
0075e52f7b Run filter under Tokio runtime so that Delay works 2018-04-14 18:44:53 -04:00
ab55d951a0 Use nonzero exit code on error. 2018-04-14 18:44:19 -04:00
a847d62b34 Have utilities read stdin via tokio_io wrapper 2018-04-14 18:18:50 -04:00
e77a3d0e98 Implement Throttle filter (fails because not executed on runtime) 2018-04-14 05:04:46 -04:00
9123d63343 Express filter as a future 2018-04-14 04:56:24 -04:00
8b0467c1d7 Add Send bound to WebmetroError::Unknown 2018-04-14 04:56:24 -04:00
2170096a21 Make WebmChunker use WebmetroError 2018-04-14 04:56:24 -04:00
bf56789810 Make EbmlStreamingParser use WebmetroErrors specifically 2018-04-14 04:56:24 -04:00
a9932ee6a1 Create unified error type 2018-04-14 04:56:24 -04:00
6434db0f82 Stub out throttle filter 2018-04-12 23:29:12 -04:00
413375102e Implement core of filter subcommand 2018-04-12 23:07:13 -04:00
bac34e94c5 impl Error for error types 2018-04-12 02:07:46 -04:00
e61244bce3 Factor StdinStream out of dump applet 2018-04-12 00:14:16 -04:00
9b1e61ff80 delete bin/ toys that aren't especially useful anymore 2018-04-11 22:47:03 -04:00
f890437c17 convert bin/stub into a sanity test 2018-04-11 22:45:53 -04:00
da54623006 Move bin/dump into a debug subcommand, read stdin instead of a file 2018-04-11 21:54:02 -04:00
9dbd59c313 Use ? error handling in subcommands 2018-04-11 19:45:02 -04:00
97359801c2 Print help by default 2018-04-11 01:50:18 -04:00
7563c3ef46 Support PUT streams too 2018-04-11 01:43:40 -04:00
98f7f446f9 Move relay_server into a subcommand 2018-04-11 01:39:28 -04:00
f3aa76243f Create stub main binary, using clap argument parser 2018-04-11 00:55:41 -04:00
2310aabe2f Rename crate to webmetro 2018-04-10 01:53:58 -04:00
4970603236 Drop unknown elements when building header 2018-04-09 22:52:01 -04:00
bf0f727b03 Stub out a one-channel video relay server 2018-04-09 21:00:51 -04:00
96f6ec8115 bit of debug support 2018-04-09 21:00:36 -04:00
075c840a46 Use Never type & add missing Transmitter::new() to channel.rs 2018-04-09 18:26:52 -04:00
adea1e4389 Remove unused generic parameter from Chunk 2018-04-09 17:53:32 -04:00
065e653f86 channel.rs: First stab at core of a relay server 2018-04-09 15:53:30 -04:00
ff8d4e9126 Break out "find starting point" fixer operator 2018-04-08 02:31:00 -04:00
b7ee425905 Tidy Stream extension trait impl 2018-04-07 01:09:17 -04:00
9ca384f9da streamline loop_server stream construction 2018-04-05 20:16:37 -04:00
7d4a26dad5 Make chunker handle additional headers (such as from concatenated files) 2018-04-05 20:14:10 -04:00
6eca0b923d Zap unused lifetime 2018-04-05 19:59:39 -04:00
409e6eb029 Make control flow of chunker state machine slightly clearer. 2018-04-05 19:58:21 -04:00
2bdbe21a73 Rename timecode_fixer to fixers 2018-04-04 20:26:02 -04:00
45e9054f36 Move redundant fixer implementation into example code 2018-04-04 20:19:28 -04:00
7b9df1e269 Treat WebmElements as value types 2018-04-04 19:55:20 -04:00
45012385c2 Tidy stream_parser 2018-04-04 19:46:28 -04:00
be92d04c09 rename EbmlStreamingParser to reflect genericity, change construction to Stream extension 2018-04-04 01:36:15 -04:00
8189794287 Tidy some imports 2018-04-04 01:21:13 -04:00
d0fd4d4bc9 Simplify EbmlIterator & EbmlSlice's next() methods, fix EbmlIterator generic
(they don't have dynamic buffers to worry about)
2018-04-04 01:18:56 -04:00
3a92da1883 Split apart iterator and slice modules 2018-04-04 00:43:32 -04:00
9686eb2713 Rename EbmlError 2018-04-04 00:16:35 -04:00
ee068bc887 Shrink EbmlSlice trait implementations 2018-04-04 00:12:55 -04:00
2db227c5f9 Cleanup, use EbmlSlice as name 2018-04-03 23:38:31 -04:00
0909a20a8c generalize WebmEventSource -> EbmlEventSource 2018-04-03 23:23:19 -04:00
413f7759c6 Make the buffer generic 2018-04-03 22:06:09 -04:00
c92273625e Cleanup poll_event's try_decode hack. 2018-04-03 21:19:46 -04:00
bebe593c30 Lifetime simplification reflecting probably-better understanding of them 2018-04-03 19:07:16 -04:00
724eabf326 Use WebmBuffer in loop_server 2018-04-02 20:12:26 -04:00
12cd1bdd4b Debugging formatting 2018-04-02 20:11:54 -04:00
c5a42afd32 Fix bug with WebmBuffer double-counting reads 2018-04-02 20:11:14 -04:00
c6ab5e8e89 Fix name collision 2018-04-02 20:10:50 -04:00
719b11dd01 Zap some generic code that wasn't going anywhere 2018-04-02 19:37:36 -04:00
90c1892668 Commonize some code for EbmlCursor 2018-04-02 19:12:28 -04:00
0e2e5ad48a Tidy cursor iteration module a little 2018-04-02 18:46:50 -04:00
56a7284e32 Focus on Webm case specifically to get working code
can retry generic EBML later
2018-04-02 18:37:47 -04:00
11bb7f4412 Fix EBML Source lifetimes, breaking the chunker 2018-04-02 13:55:13 -04:00
495ca0f555 Stream buffer/parser experiment, lifetime issues are snarling though 2018-03-31 21:36:47 -04:00
f385371bb9 Make loop server iteration count more flexible than a chain 2018-03-30 02:54:02 -04:00
00fc1fcb2a Correct the chunk-based timecode fixer 2018-03-30 02:44:42 -04:00
d9e197ec7d Skip Info/Void in header for now 2018-03-30 02:26:52 -04:00
86d047e217 Debug derives 2018-03-30 02:26:35 -04:00
a8fa279201 bump dependency versions 2018-03-30 01:43:44 -04:00
417cbf49c7 Create EbmlEventSource trait since Iterators/Streams can't return borrows 2018-03-30 01:33:13 -04:00
f8db95e61e Make ClusterHead a first-class struct, simplifying a lot of enum wrangling 2018-03-28 00:31:58 -04:00
cdcff869aa Replace Schema types with a FromEbml trait on the Element type
simplify lifetimes
2018-03-25 21:33:38 -04:00
972a88c35b Handle errors in chunking code in some fashion 2017-10-06 00:17:18 -04:00
0902a810e5 Use webm chunker operator in loop_server 2017-10-04 02:11:19 -04:00
e0346ae30a leave mark-keyframes reminder in webm chunker 2017-10-04 02:10:58 -04:00
b0b4f204f2 strip out extra header chunks in timecode_fixer() 2017-10-04 02:03:19 -04:00
639dc50c35 Implement chunking Clusters, including flushing the last one 2017-10-04 01:49:41 -04:00
9c9db1c505 Better-adapt extend_timespan to its real use, observe_simpleblock_timecode 2017-10-04 01:48:33 -04:00
0aa2f1cbdd Implement header chunking for chunk_webm() operator 2017-10-04 01:05:23 -04:00
52c1843311 Add stub Webm chunking stream operator 2017-10-01 00:21:33 -04:00
27aff20c46 Implement rewriting timestamps for chunks 2017-09-30 17:36:09 -04:00
bad7b42e5b Create stub stream operator to bolt on fixing chunk timecodes 2017-09-30 02:33:36 -04:00
3e1bec93ee Fix tests for chunk.rs 2017-09-30 02:23:27 -04:00
15386e9638 Repeat test video body a few times 2017-09-29 02:11:42 -04:00
c4fc13fe0b Fix final cluster not displaying right 2017-09-29 01:54:08 -04:00