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]

Reply via email to