- Organisation: CCExtractor Development
- Project Link: CCExtractor - Release 1.00
CCExtractor is a CLI tool used to produce subtitles for TV recordings which is Open Source and made in C.
CCExtractor is currently in the process of migrating its existing C code to Rust. This transition is being made primarily for security reasons, while ensuring that the existing C code remains unaffected.
My project is focused on supporting this migration as part of the effort to finalize the release of CCExtractor 1.00. The key goals of the project include:
- Porting C Code to Rust: A significant portion of the existing C code will be rewritten in Rust to improve security and reliability.
- Simplifying CCExtractor Usage: Created a Docker image to make it easier for users to run CCExtractor without having to worry about environmental setup.
- Code Testing: Added unit tests to all Rust code to ensure its correctness, as well as running regression tests to verify that the overall functionality remains intact.
- Resolving Unfinished Work: The project also involves resolving some previously unfinished pull requests, including work from Elberronnie's previous GSoC work(https://github.com/elbertronnie/gsoc23-report).
Serial No. | Pull Request | Heading | Status |
---|---|---|---|
1 | #1611 | Create Docker image for CCExtractor | Merged |
2 | #1615 | Create unit test for rust code | Merged |
3 | #1618 | Initialize data structures for the rust CEA-708 decoder and correct Dtvcc | Open |
4 | #1621 | Create lib_ccxr and libccxr_exports |
Merged |
5 | #1622 | Add log module in lib_ccxr |
Merged |
6 | #1623 | Add time units module in lib_ccxr |
Merged |
7 | #1624 | Add constants module in lib_ccxr |
Merged |
8 | #1627 | Add bits and levenshtein module in lib_ccxr |
Merged |
9 | #1628 | Add encoding module in lib_ccxr |
Merged |
10 | #1629 | Add C to Rust code migration guide (just a volunteer work) | Merged |
11 | #1634 | Add net module in lib_ccxr |
Open |
12 | #1640 | Add timing module in lib_ccxr |
Merged |
Pull Request #1618 has been completed, but some regression tests are still failing. I need to thoroughly investigate these issues to resolve the PR and get it merged.
I want to thank Carlos Fernandez Sanz for creating this incredible product and for the opportunity to collaborate with Google Summer of Code.
I'm also very grateful to my mentors, Punit Lodha, canihavesomecoffee, and thealphadollar, for helping & guiding in contribution.
A special thanks to Prateek Sunal & elbertronnie for collaborating and working with me in this project.