Commit Graph

35 Commits

Author SHA1 Message Date
Nathan Adams 45a2ab69c0 chore: Use workspace version for thiserror 2024-04-04 17:29:00 +02:00
Nathan Adams 4e3cd75c30 chore: Use workspace version for bitflags 2024-04-04 17:29:00 +02:00
renovate[bot] d70560cb82 fix(deps): update rust dependencies 2024-03-22 11:10:59 +01:00
renovate[bot] 262dff83a4 fix(deps): update rust dependencies 2024-01-22 03:09:33 +01:00
TÖRÖK Attila d153290fd6 nits: Fix a whole bunch of typos all over the place 2024-01-17 23:59:19 +01:00
David Wendt ab02e89b3b core: FLV's Strict Array type holds values, not key/value pairs.
*draws a zero on the 'days since last misdocumented feature' sign*
2023-11-28 18:53:01 -07:00
renovate[bot] b427940431 fix(deps): update rust dependencies 2023-10-16 09:51:22 +02:00
David Wendt 9754d925a5 flv: `skip_back` needs to consider the offset of the back pointers and not just tags 2023-10-10 18:49:09 -06:00
renovate[bot] 93f08d7738 chore(deps): lock file maintenance rust dependencies 2023-08-14 23:58:45 +02:00
renovate[bot] 13b1078142 chore(deps): lock file maintenance rust dependencies 2023-07-03 08:28:13 +03:00
David Wendt ff1ed66729 flv: VP6 video packets have a horizontal and vertical adjustment before the actual video data. 2023-06-30 16:14:28 -06:00
David Wendt ea9c5ae830 flv: Break `io::Error` into kind and string at construction time to avoid having to do so when cloning. 2023-06-30 16:14:28 -06:00
David Wendt 0f176484ea flv: Refactor tag parsing to use error codes instead of `None`. 2023-06-30 16:14:28 -06:00
David Wendt e4b76ac149 flv: Sound format bits are ALSO specified backwards! 2023-06-30 16:14:28 -06:00
David Wendt c61b27a41b flv: Codec ID and frame type are specified backwards 2023-06-30 16:14:28 -06:00
David Wendt 4b81d65dc5 flv: Hitting the end of the script data block is treated like the variable terminator.
Add a test case with real FLV data to enforce this.
2023-06-30 16:14:28 -06:00
David Wendt 4f831b4351 flv: Script data blocks appear to start with a trash byte `0x02` 2023-06-30 16:14:28 -06:00
David Wendt 6358d3162b flv: The type flag bits in the FLV spec are written backwards. 2023-06-30 16:14:28 -06:00
David Wendt eed1ab492d flv: All relevant output data types need to be public. 2023-06-30 16:14:28 -06:00
David Wendt 0c145253b6 flv: `Tag` fields should be public. 2023-06-30 16:14:28 -06:00
David Wendt b2dd4d8305 flv: Add `Clone` to `Tag` and `Header`.
Some types also get `Copy` by virtue of being plain data with no pointers.
2023-06-30 16:14:28 -06:00
David Wendt 8fd80cd173 flv: `Tag` should be public as well. 2023-06-30 16:14:28 -06:00
David Wendt d23378dd80 flv: `Header::parse` should always leave the stream reader in a reasonable position 2023-06-30 16:14:28 -06:00
David Wendt 20d33df458 flv: Add `skip_back` method for reverse tag parsing 2023-06-30 16:14:28 -06:00
David Wendt 7bf28074c0 flv: `parse` now consumes the back pointer.
We also guarantee that when parsing fails we leave the reader where it is to allow reading later.
2023-06-30 16:14:28 -06:00
David Wendt 3e2a5eb43b flv: Impl `Seek` for `FlvReader` 2023-06-30 16:14:28 -06:00
David Wendt 0edfecfea0 flv: Allow breaking a Reader down into parts or building one up from parts. 2023-06-30 16:14:28 -06:00
David Wendt 4d829768a1 tests: Add integration tests for full tag parsing 2023-06-30 16:14:28 -06:00
David Wendt e50ee7c139 chore: errant & 2023-06-30 16:14:28 -06:00
David Wendt f115326f3e flv: Implement Script Data parsing.
Yes, FLVs support embedded ActionScript data. Who knew?!
2023-06-30 16:14:28 -06:00
David Wendt 65583a7173 flv: Add video tag parsing support 2023-06-30 16:14:28 -06:00
David Wendt 43aa4abe0e flv: Check for the AAC sequence header byte.
Note that we don't actually parse the sequence header yet.
2023-06-30 16:14:28 -06:00
David Wendt f998ec20e8 flv: Implement `AudioData` parsing 2023-06-30 16:14:28 -06:00
David Wendt 9cbc371a6a flv: Implement header parsing. 2023-06-30 16:14:28 -06:00
David Wendt 5b93a9e316 flv: Add new crate for FLV (de)muxing 2023-06-30 16:14:28 -06:00