Commit graph

157 commits

Author SHA1 Message Date
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
9481d53adc Parse, chunk, & reconstruct served WebM file. 2017-09-29 01:31:06 -04:00
a7804891ae add chunk mutators/utilities 2017-09-29 00:12:49 -04:00
031d32352a Fix dumping the whole cluster head buffer instead of the used portion 2017-09-29 00:07:56 -04:00
7f214920ae switch Chunks to use Arcs 2017-09-28 22:11:27 -04:00
d20081d9a1 Serve single, unparsed video file. 2017-09-26 02:21:32 -04:00
c3f0de71fa Move Chunk timecode updating into the struct impl proper. 2017-09-25 01:41:56 -04:00
d0f1cde464 Stub using Chunk stream in loop_server. 2017-09-25 00:23:20 -04:00
27642f7b14 Make Chunk flexible in the type of backing buffer used 2017-09-25 00:22:41 -04:00
0a18cb408f Create Chunk type for use in packaging WebM streams for clients. 2017-09-22 23:58:03 -04:00
db1731f776 Experiment with using a Stream for a Response Body 2017-09-21 00:59:11 -04:00
ef45728779 Have stub server recognize a URL path 2017-09-10 19:44:54 -04:00
6f80da4735 Create stub Hyper server 2017-09-10 19:34:08 -04:00
e633517d3a Rewrite timestamps on clusters to allow splicing 2017-09-07 01:42:14 -04:00
13e75a6415 Add a stage to resynth test's output pipeline to permit patching timestamps 2017-09-06 02:02:50 -04:00
9b3a6db074 fixup bin for reference refactor. 2017-09-06 01:53:49 -04:00
84c7ec734b Don't require encode_ functions to consume their argument element. 2017-09-05 00:24:38 -04:00
271782bb91 Create test tool to deconstruct and reassemble a WebM file 2017-09-05 00:17:11 -04:00
93883e2683 refactor SimpleBlock struct to be independent of Element enum 2017-09-04 01:41:48 -04:00
fd8b820eef Stub-encode Tracks 2017-08-14 00:58:06 -04:00
dd376e146e Implement encoding SimpleBlocks 2017-08-12 16:48:24 -04:00
01e81c6a9f Fix tests 2017-08-10 00:14:42 -04:00
509dcd3827 Generalize string writing to binary writing 2017-08-09 01:49:44 -04:00
b76f244022 Encode Timecodes into WebM stub 2017-08-07 01:12:18 -04:00
120fe26b6b Cleanup results more 2017-08-07 01:11:43 -04:00
c969627510 Extend stub WebM structure 2017-08-07 01:03:20 -04:00
2ecedf795d Cleanup dead line 2017-08-07 00:56:18 -04:00
ff4c2d796e Remove IoResult<usize> return, value not needed and confuses ? operator 2017-08-07 00:55:57 -04:00
45fe373ee6 Implement writing a barebones EBML header from scratch 2017-08-06 01:21:53 -04:00
95fcc6c86b Add fixed-size varint encoder function to simplify writing complex EBML element sizes 2017-08-06 01:20:51 -04:00
b5bbf952b0 Stub some EBML encoding funcs 2017-08-02 01:30:14 -04:00
cf4821599e Make encode_varint use a generic Writer 2017-07-30 01:43:09 -04:00
da81b741a3 Change encode_varint to write into a Bufmut 2017-07-10 21:26:00 -04:00
a1e8aef5d3 Swap to "bytes" crate 2017-07-10 19:36:20 -04:00
8d73a2e577 Fix range of varint encoder; add more boundary tests. 2017-07-08 01:08:21 -04:00
b1b157c6be Make varint sizing logic use smallest working size;
fix bad constant/test.
2017-07-07 02:27:30 -04:00
6c99eca673 Initial ebml varint encoder 2017-07-07 01:25:32 -04:00
7109e30dcb Use ByteOrder function in decode_uint 2017-07-03 01:44:11 -04:00
6383f12ad0 Make tests pass again 2017-07-01 16:55:24 -04:00
a00d43e124 Implement decode_simple_block 2017-07-01 01:30:43 -04:00
51156d9fde implement decode_uint 2017-06-29 02:38:08 -04:00
8c88ff25d0 Define Timecode & SimpleBlock tags (tests broken) 2017-06-29 02:08:19 -04:00
ba9d00d0b4 Move tests under appropriate modules 2017-06-28 01:54:30 -04:00
8411363035 Break code into modules 2017-06-27 02:31:17 -04:00
124536d703 Create dump tool for debugging/research 2017-06-27 02:31:17 -04:00
13660fe802 Streamline adapting schema to source. 2017-05-01 02:44:49 -04:00
466f0c46f0 Parse whole test file, using constants for ids. 2017-05-01 02:44:46 -04:00
c567099b73 Add SeekHead & Cluster to Webm schema 2017-04-16 16:35:48 -04:00
efe708ca6b Make Ebml struct generic over source type 2017-04-16 16:24:15 -04:00
bc1569a461 use IntoIterator to get Ebml iterator 2017-01-28 02:34:01 -05:00
a23a29bf9b Experiment with WebM Schema 2017-01-27 02:09:09 -05:00
3253f32d03 Split generic EBML test from WebM test 2017-01-27 01:24:17 -05:00
fd0fb41acf move decode_element & iterator creation onto Schema trait 2017-01-26 01:43:35 -05:00
128192c622 genericize EBML iterator 2017-01-24 19:11:59 -05:00
4a42b7ae82 implement WebM iterator 2017-01-24 03:20:49 -05:00
6ab32205bb Change Schema to be implemented by a dedicated type instead of its element type. 2017-01-17 03:11:17 -05:00
8b0021e3eb Stub WebM schema, just make all elements unknown. 2017-01-17 00:11:49 -05:00
50eb02b9ac Implement decode_element, which uses a Schema trait to turn EBML elements into user types. 2017-01-16 23:42:27 -05:00
6c82234c9e Add a test webm file 2017-01-16 09:11:50 -05:00
31b5eb8931 Fix comments 2017-01-16 01:39:25 -05:00
0fc2f5e76c Add some general error codes for future 2017-01-15 20:30:52 -05:00