Commit Graph

231 Commits

Author SHA1 Message Date
Tangent 128 9dbd59c313 Use ? error handling in subcommands 2018-04-11 19:45:02 -04:00
Tangent 128 97359801c2 Print help by default 2018-04-11 01:50:18 -04:00
Tangent 128 7563c3ef46 Support PUT streams too 2018-04-11 01:43:40 -04:00
Tangent 128 98f7f446f9 Move relay_server into a subcommand 2018-04-11 01:39:28 -04:00
Tangent 128 f3aa76243f Create stub main binary, using clap argument parser 2018-04-11 00:55:41 -04:00
Tangent 128 2310aabe2f Rename crate to webmetro 2018-04-10 01:53:58 -04:00
Tangent 128 4970603236 Drop unknown elements when building header 2018-04-09 22:52:01 -04:00
Tangent 128 bf0f727b03 Stub out a one-channel video relay server 2018-04-09 21:00:51 -04:00
Tangent 128 96f6ec8115 bit of debug support 2018-04-09 21:00:36 -04:00
Tangent 128 075c840a46 Use Never type & add missing Transmitter::new() to channel.rs 2018-04-09 18:26:52 -04:00
Tangent 128 adea1e4389 Remove unused generic parameter from Chunk 2018-04-09 17:53:32 -04:00
Tangent 128 065e653f86 channel.rs: First stab at core of a relay server 2018-04-09 15:53:30 -04:00
Tangent 128 ff8d4e9126 Break out "find starting point" fixer operator 2018-04-08 02:31:00 -04:00
Tangent 128 b7ee425905 Tidy Stream extension trait impl 2018-04-07 01:09:17 -04:00
Tangent 128 9ca384f9da streamline loop_server stream construction 2018-04-05 20:16:37 -04:00
Tangent 128 7d4a26dad5 Make chunker handle additional headers (such as from concatenated files) 2018-04-05 20:14:10 -04:00
Tangent 128 6eca0b923d Zap unused lifetime 2018-04-05 19:59:39 -04:00
Tangent 128 409e6eb029 Make control flow of chunker state machine slightly clearer. 2018-04-05 19:58:21 -04:00
Tangent 128 2bdbe21a73 Rename timecode_fixer to fixers 2018-04-04 20:26:02 -04:00
Tangent 128 45e9054f36 Move redundant fixer implementation into example code 2018-04-04 20:19:28 -04:00
Tangent 128 7b9df1e269 Treat WebmElements as value types 2018-04-04 19:55:20 -04:00
Tangent 128 45012385c2 Tidy stream_parser 2018-04-04 19:46:28 -04:00
Tangent 128 be92d04c09 rename EbmlStreamingParser to reflect genericity, change construction to Stream extension 2018-04-04 01:36:15 -04:00
Tangent 128 8189794287 Tidy some imports 2018-04-04 01:21:13 -04:00
Tangent 128 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
Tangent 128 3a92da1883 Split apart iterator and slice modules 2018-04-04 00:43:32 -04:00
Tangent 128 9686eb2713 Rename EbmlError 2018-04-04 00:16:35 -04:00
Tangent 128 ee068bc887 Shrink EbmlSlice trait implementations 2018-04-04 00:12:55 -04:00
Tangent 128 2db227c5f9 Cleanup, use EbmlSlice as name 2018-04-03 23:38:31 -04:00
Tangent 128 0909a20a8c generalize WebmEventSource -> EbmlEventSource 2018-04-03 23:23:19 -04:00
Tangent 128 413f7759c6 Make the buffer generic 2018-04-03 22:06:09 -04:00
Tangent 128 c92273625e Cleanup poll_event's try_decode hack. 2018-04-03 21:19:46 -04:00
Tangent 128 bebe593c30 Lifetime simplification reflecting probably-better understanding of them 2018-04-03 19:07:16 -04:00
Tangent 128 724eabf326 Use WebmBuffer in loop_server 2018-04-02 20:12:26 -04:00
Tangent 128 12cd1bdd4b Debugging formatting 2018-04-02 20:11:54 -04:00
Tangent 128 c5a42afd32 Fix bug with WebmBuffer double-counting reads 2018-04-02 20:11:14 -04:00
Tangent 128 c6ab5e8e89 Fix name collision 2018-04-02 20:10:50 -04:00
Tangent 128 719b11dd01 Zap some generic code that wasn't going anywhere 2018-04-02 19:37:36 -04:00
Tangent 128 90c1892668 Commonize some code for EbmlCursor 2018-04-02 19:12:28 -04:00
Tangent 128 0e2e5ad48a Tidy cursor iteration module a little 2018-04-02 18:46:50 -04:00
Tangent 128 56a7284e32 Focus on Webm case specifically to get working code
can retry generic EBML later
2018-04-02 18:37:47 -04:00
Tangent 128 11bb7f4412 Fix EBML Source lifetimes, breaking the chunker 2018-04-02 13:55:13 -04:00
Tangent 128 495ca0f555 Stream buffer/parser experiment, lifetime issues are snarling though 2018-03-31 21:36:47 -04:00
Tangent 128 f385371bb9 Make loop server iteration count more flexible than a chain 2018-03-30 02:54:02 -04:00
Tangent 128 00fc1fcb2a Correct the chunk-based timecode fixer 2018-03-30 02:44:42 -04:00
Tangent 128 d9e197ec7d Skip Info/Void in header for now 2018-03-30 02:26:52 -04:00
Tangent 128 86d047e217 Debug derives 2018-03-30 02:26:35 -04:00
Tangent 128 a8fa279201 bump dependency versions 2018-03-30 01:43:44 -04:00
Tangent 128 417cbf49c7 Create EbmlEventSource trait since Iterators/Streams can't return borrows 2018-03-30 01:33:13 -04:00
Tangent 128 f8db95e61e Make ClusterHead a first-class struct, simplifying a lot of enum wrangling 2018-03-28 00:31:58 -04:00
Tangent 128 cdcff869aa Replace Schema types with a FromEbml trait on the Element type
simplify lifetimes
2018-03-25 21:33:38 -04:00
Tangent 128 972a88c35b Handle errors in chunking code in some fashion 2017-10-06 00:17:18 -04:00
Tangent 128 0902a810e5 Use webm chunker operator in loop_server 2017-10-04 02:11:19 -04:00
Tangent 128 e0346ae30a leave mark-keyframes reminder in webm chunker 2017-10-04 02:10:58 -04:00
Tangent 128 b0b4f204f2 strip out extra header chunks in timecode_fixer() 2017-10-04 02:03:19 -04:00
Tangent 128 639dc50c35 Implement chunking Clusters, including flushing the last one 2017-10-04 01:49:41 -04:00
Tangent 128 9c9db1c505 Better-adapt extend_timespan to its real use, observe_simpleblock_timecode 2017-10-04 01:48:33 -04:00
Tangent 128 0aa2f1cbdd Implement header chunking for chunk_webm() operator 2017-10-04 01:05:23 -04:00
Tangent 128 52c1843311 Add stub Webm chunking stream operator 2017-10-01 00:21:33 -04:00
Tangent 128 27aff20c46 Implement rewriting timestamps for chunks 2017-09-30 17:36:09 -04:00
Tangent 128 bad7b42e5b Create stub stream operator to bolt on fixing chunk timecodes 2017-09-30 02:33:36 -04:00
Tangent 128 3e1bec93ee Fix tests for chunk.rs 2017-09-30 02:23:27 -04:00
Tangent 128 15386e9638 Repeat test video body a few times 2017-09-29 02:11:42 -04:00
Tangent 128 c4fc13fe0b Fix final cluster not displaying right 2017-09-29 01:54:08 -04:00
Tangent 128 9481d53adc Parse, chunk, & reconstruct served WebM file. 2017-09-29 01:31:06 -04:00
Tangent 128 a7804891ae add chunk mutators/utilities 2017-09-29 00:12:49 -04:00
Tangent 128 031d32352a Fix dumping the whole cluster head buffer instead of the used portion 2017-09-29 00:07:56 -04:00
Tangent 128 7f214920ae switch Chunks to use Arcs 2017-09-28 22:11:27 -04:00
Tangent 128 d20081d9a1 Serve single, unparsed video file. 2017-09-26 02:21:32 -04:00
Tangent 128 c3f0de71fa Move Chunk timecode updating into the struct impl proper. 2017-09-25 01:41:56 -04:00
Tangent 128 d0f1cde464 Stub using Chunk stream in loop_server. 2017-09-25 00:23:20 -04:00
Tangent 128 27642f7b14 Make Chunk flexible in the type of backing buffer used 2017-09-25 00:22:41 -04:00
Tangent 128 0a18cb408f Create Chunk type for use in packaging WebM streams for clients. 2017-09-22 23:58:03 -04:00
Tangent 128 db1731f776 Experiment with using a Stream for a Response Body 2017-09-21 00:59:11 -04:00
Tangent 128 ef45728779 Have stub server recognize a URL path 2017-09-10 19:44:54 -04:00
Tangent 128 6f80da4735 Create stub Hyper server 2017-09-10 19:34:08 -04:00
Tangent 128 e633517d3a Rewrite timestamps on clusters to allow splicing 2017-09-07 01:42:14 -04:00
Tangent 128 13e75a6415 Add a stage to resynth test's output pipeline to permit patching timestamps 2017-09-06 02:02:50 -04:00
Tangent 128 9b3a6db074 fixup bin for reference refactor. 2017-09-06 01:53:49 -04:00
Tangent 128 84c7ec734b Don't require encode_ functions to consume their argument element. 2017-09-05 00:24:38 -04:00
Tangent 128 271782bb91 Create test tool to deconstruct and reassemble a WebM file 2017-09-05 00:17:11 -04:00
Tangent 128 93883e2683 refactor SimpleBlock struct to be independent of Element enum 2017-09-04 01:41:48 -04:00
Tangent 128 fd8b820eef Stub-encode Tracks 2017-08-14 00:58:06 -04:00
Tangent 128 dd376e146e Implement encoding SimpleBlocks 2017-08-12 16:48:24 -04:00
Tangent 128 01e81c6a9f Fix tests 2017-08-10 00:14:42 -04:00
Tangent 128 509dcd3827 Generalize string writing to binary writing 2017-08-09 01:49:44 -04:00
Tangent 128 b76f244022 Encode Timecodes into WebM stub 2017-08-07 01:12:18 -04:00
Tangent 128 120fe26b6b Cleanup results more 2017-08-07 01:11:43 -04:00
Tangent 128 c969627510 Extend stub WebM structure 2017-08-07 01:03:20 -04:00
Tangent 128 2ecedf795d Cleanup dead line 2017-08-07 00:56:18 -04:00
Tangent 128 ff4c2d796e Remove IoResult<usize> return, value not needed and confuses ? operator 2017-08-07 00:55:57 -04:00
Tangent 128 45fe373ee6 Implement writing a barebones EBML header from scratch 2017-08-06 01:21:53 -04:00
Tangent 128 95fcc6c86b Add fixed-size varint encoder function to simplify writing complex EBML element sizes 2017-08-06 01:20:51 -04:00
Tangent 128 b5bbf952b0 Stub some EBML encoding funcs 2017-08-02 01:30:14 -04:00
Tangent 128 cf4821599e Make encode_varint use a generic Writer 2017-07-30 01:43:09 -04:00
Tangent 128 da81b741a3 Change encode_varint to write into a Bufmut 2017-07-10 21:26:00 -04:00
Tangent 128 a1e8aef5d3 Swap to "bytes" crate 2017-07-10 19:36:20 -04:00
Tangent 128 8d73a2e577 Fix range of varint encoder; add more boundary tests. 2017-07-08 01:08:21 -04:00
Tangent 128 b1b157c6be Make varint sizing logic use smallest working size;
fix bad constant/test.
2017-07-07 02:27:30 -04:00
Tangent 128 6c99eca673 Initial ebml varint encoder 2017-07-07 01:25:32 -04:00
Tangent 128 7109e30dcb Use ByteOrder function in decode_uint 2017-07-03 01:44:11 -04:00
Tangent 128 6383f12ad0 Make tests pass again 2017-07-01 16:55:24 -04:00
Tangent 128 a00d43e124 Implement decode_simple_block 2017-07-01 01:30:43 -04:00
Tangent 128 51156d9fde implement decode_uint 2017-06-29 02:38:08 -04:00
Tangent 128 8c88ff25d0 Define Timecode & SimpleBlock tags (tests broken) 2017-06-29 02:08:19 -04:00
Tangent 128 ba9d00d0b4 Move tests under appropriate modules 2017-06-28 01:54:30 -04:00
Tangent 128 8411363035 Break code into modules 2017-06-27 02:31:17 -04:00
Tangent 128 124536d703 Create dump tool for debugging/research 2017-06-27 02:31:17 -04:00
Tangent 128 13660fe802 Streamline adapting schema to source. 2017-05-01 02:44:49 -04:00
Tangent 128 466f0c46f0 Parse whole test file, using constants for ids. 2017-05-01 02:44:46 -04:00
Tangent 128 c567099b73 Add SeekHead & Cluster to Webm schema 2017-04-16 16:35:48 -04:00
Tangent 128 efe708ca6b Make Ebml struct generic over source type 2017-04-16 16:24:15 -04:00
Tangent 128 bc1569a461 use IntoIterator to get Ebml iterator 2017-01-28 02:34:01 -05:00
Tangent 128 a23a29bf9b Experiment with WebM Schema 2017-01-27 02:09:09 -05:00
Tangent 128 3253f32d03 Split generic EBML test from WebM test 2017-01-27 01:24:17 -05:00
Tangent 128 fd0fb41acf move decode_element & iterator creation onto Schema trait 2017-01-26 01:43:35 -05:00
Tangent 128 128192c622 genericize EBML iterator 2017-01-24 19:11:59 -05:00
Tangent 128 4a42b7ae82 implement WebM iterator 2017-01-24 03:20:49 -05:00
Tangent 128 6ab32205bb Change Schema to be implemented by a dedicated type instead of its element type. 2017-01-17 03:11:17 -05:00
Tangent 128 8b0021e3eb Stub WebM schema, just make all elements unknown. 2017-01-17 00:11:49 -05:00
Tangent 128 50eb02b9ac Implement decode_element, which uses a Schema trait to turn EBML elements into user types. 2017-01-16 23:42:27 -05:00
Tangent 128 6c82234c9e Add a test webm file 2017-01-16 09:11:50 -05:00
Tangent 128 31b5eb8931 Fix comments 2017-01-16 01:39:25 -05:00
Tangent 128 0fc2f5e76c Add some general error codes for future 2017-01-15 20:30:52 -05:00
Tangent 128 a0bf40a25c Implement tag parsing 2017-01-12 08:44:48 -05:00
Tangent 128 b571c8a29c Import errors in tests 2017-01-12 08:37:03 -05:00
Tangent 128 3b6c946bb4 fixup comment 2017-01-12 07:59:09 -05:00
Tangent 128 a171b18e4f Fix comments 2017-01-12 07:55:49 -05:00
Tangent 128 502da6b29d simplify enum name 2017-01-12 07:37:29 -05:00
Tangent 128 112e7da3f3 Implement EBML varint parser 2017-01-12 00:41:35 -05:00
Tangent 128 5de9bf9aee Futures hello world. 2017-01-09 22:40:21 -05:00