Skip to content

[FEAT] added demuxer module #1662

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 14 commits into
base: master
Choose a base branch
from

Conversation

steel-bucket
Copy link

@steel-bucket steel-bucket commented Feb 11, 2025

In raising this pull request, I confirm the following (please check boxes):

  • I have read and understood the contributors guide.
  • I have checked that another pull request for this purpose does not exist.
  • I have considered, and confirmed that this submission will be valuable to others.
  • I accept that this submission may not be used, and the pull request closed at the will of the maintainer.
  • I give this submission freely, and claim no ownership to its content.
  • I have mentioned this change in the changelog.

My familiarity with the project is as follows (check one):

  • I have never used CCExtractor.
  • I have used CCExtractor just a couple of times.
  • I absolutely love CCExtractor, but have not contributed previously.
  • I am an active contributor to CCExtractor(2 previous contributions).

In this PR, I have attempted to port the large demuxer module to Rust, the primary logic of the heavily interconnected C libraries file_functions.c, ccx_gxf.c, ccx_demuxer.c and their corresponding header files has aleady been implemented here. There's one more small C library, the ccx_demuxer_mxf.c but It was not connected to this, so it could be easily implemented later. I am using a step by step method in which the first step is to use libc to write all the logic, which I have done here. After this I have replaced libc wherever it is used with inbuilt rust functions to ensure memory safety. Only after that I have directly called them through C and then writing tests. This PR was inspired by the ones done for the 708 Decoder in CCextractor.
By the way, the tests are fully working when run with cargo test -- --test-threads=1 but not with only cargo test. As it may slow down the build process I'll not insert that into the workflow.

  • Instead, I'll shortly be wrapping each file-related test with a Mutex and fix the remaining build errors.
    Any criticism or suggestion is wholeheartedly welcome.
  • It is built and ready to be reviewed now.

@cfsmp3 cfsmp3 requested a review from prateekmedia February 12, 2025 20:45
@prateekmedia
Copy link
Member

@steel-bucket Is it still WIP?

@steel-bucket
Copy link
Author

@steel-bucket Is it still WIP?

Yes, I'm done with the hard part though, file_functions module is fully tested and ready. And the demuxer module just needs a couple more tests. Then I just have the gxf one to do. It won't be long though. Sorry to be late with it, I had some exams which are cleared out now.

@steel-bucket steel-bucket changed the title [WIP] feat: added demuxer module [FEAT]feat: added demuxer module Mar 27, 2025
@prateekmedia prateekmedia changed the title [FEAT]feat: added demuxer module [FEAT] added demuxer module Mar 29, 2025
@ccextractor-bot
Copy link
Collaborator

CCExtractor CI platform finished running the test files on linux. Below is a summary of the test results, when compared to test for commit 9e2a594...:

Report Name Tests Passed
Broken 0/13
CEA-708 0/14
DVB 0/7
DVD 0/3
DVR-MS 0/2
General 0/27
Hauppage 0/3
MP4 0/3
NoCC 0/10
Options 0/86
Teletext 0/21
WTV 0/13
XDS 0/34

All tests passing on the master branch were passed completely.

NOTE: The following tests have been failing on the master branch as well as the PR:


Check the result page for more info.

@steel-bucket
Copy link
Author

steel-bucket commented Mar 31, 2025

Hi, @prateekmedia the builds and tests are all working(other than regression). Please review it if time permits. Also should I squash the commits together?
Thank you so much.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants