Commit Graph

14 Commits

Author SHA1 Message Date
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 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 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 4d829768a1 tests: Add integration tests for full tag parsing 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 f998ec20e8 flv: Implement `AudioData` 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