Hi Michael, Thank you for the earlier guidance, especially about using the correct local setup with `./configure --samples=...` and `make fate-rsync`.
I reran my local coverage work with the samples configured properly and selected the 3 files I will use as my starting qualification-task targets: - `libavutil/avstring.c` - `libavcodec/mjpegenc_huffman.c` - `libavformat/url.c` I am planning to submit my GSoC proposal with this direction, since the Google deadline is now very close. Even so, I would still appreciate any feedback on the file selection or the proposal direction while I continue finishing the qualification task work. I have included relevant section of the submitted proposal below. Thanks, Mahlet Kassa ---------------------------------------------------------------------------------------------------------------- GSOC Proposal (selected sections) I have selected the following files as my starting qualification-task targets: - `libavutil/avstring.c` - `libavcodec/mjpegenc_huffman.c` - `libavformat/url.c` I chose these files because each one is under 50% coverage, each comes from a different library, and each has a realistic path to targeted testing without forcing broad feature work or sample-heavy exploration at the very start. `libavcodec/mjpegenc_huffman.c` is my codec-side target because it is already exercised by the dedicated FATE target `fate-libavcodec-huffman`, backed by `libavcodec/tests/mjpegenc_huffman.c`. `libavformat/url.c` is my `libavformat` target because it is medium-sized, still under-covered, and already has a nearby standalone test binary (`libavformat/tests/url.c`) wired into FATE as `fate-url`. `libavutil/avstring.c` is my `libavutil` target because it is a contained utility file with deterministic behavior and a realistic path to focused coverage work. This preparation has already been useful because it forced me to learn the build process, the coverage tools, the role of FATE in FFmpeg, the importance of sample-based testing in local coverage runs, and the mailing-list contribution process that FFmpeg expects. ## Proposed work My plan is to improve FATE coverage in a small number of carefully chosen areas across different FFmpeg libraries. I want to begin with the areas I am already exploring through the qualification task, then build on that work with further test additions and coverage improvements. ### 1. Start from a fixed 3-file qualification-task set The first step is to begin with the 3 files I have already selected: `libavutil/avstring.c`, `libavcodec/mjpegenc_huffman.c`, and `libavformat/url.c`. I chose them because their coverage can be improved through contained test additions, the test path can be understood locally, and the resulting tests should strengthen regression checking in a meaningful way. ### 2. Improve coverage one file at a time For each selected file, I would: - study the current code paths and related tests - identify behavior that is still missing from the current coverage - add targeted tests for those paths - measure the resulting coverage changes - use those results and any review feedback to shape the next steps Working one file at a time would keep the project focused and make it easier to adjust the plan if one target proves less suitable than expected. ### 3. Turn the work into useful long-term test coverage The goal is not only to raise coverage numbers for the selected files. I want the added tests to be useful to FFmpeg itself. That means focusing on areas where stronger coverage would improve regression detection, where existing standalone test binaries or FATE patterns can be extended cleanly, and where the tests are maintainable after the project ends. ------------------------------------------------------------------------------------------------------------ On Fri, Mar 27, 2026 at 10:17 AM Mahlet Kassa <[email protected]> wrote: > > Thanks for the feedback!! > > On Thu, Mar 26, 2026 at 4:20 PM Michael Niedermayer <[email protected]> > wrote: >> >> Hi Mahlet >> >> On Thu, Mar 26, 2026 at 03:32:05PM +0100, Mahlet Kassa via ffmpeg-devel >> wrote: >> > Hi, >> > I am preparing a GSoC 2026 application for FFmpeg and I am currently >> > working toward the qualification task for the "Improving FATE (self tests) >> > coverage" project. >> > >> > I have set up a local FFmpeg checkout, completed a normal build, set up a >> > gcov build, run several FATE targets, and generated local lcov reports to >> > start narrowing candidate files. >> >> when testing locally, make sure you set ./configure --samples=... >> and download the fate samples "make fate-rsync" >> otherwise coverage tests would be incomplete >> >> >> > >> > My current candidates are: >> > - libavutil/avstring.c >> > - libavcodec/huffman.c >> > >> > I am still narrowing down the best libavformat candidate. The current >> > option from my local coverage run is movenc.c, but that looks broader than >> > I want to commit to without checking first. >> >> yes >> >> >> > >> > Before I go further, I wanted to ask whether this direction looks >> > reasonable and whether these candidate areas are currently free. >> >> also note, our most qualified candiatate for this just told me that he >> accepted an internship and will not be available for GSoC in 2026 >> >> thx >> >> [...] >> >> -- >> Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB >> >> If you drop bombs on a foreign country and kill a hundred thousand >> innocent people, expect your government to call the consequence >> "unprovoked inhuman terrorist attacks" and use it to justify dropping >> more bombs and killing more people. The technology changed, the idea is old. _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
