Simple tasks

The following collection of task is suggested to people willing to start contributing to Libav in small steps.

The tasks are on increasing difficulty.

Non coding tasks

Bugwrangle

Going over our bugzilla and making sure the open issues aren't fixed already is a simple task, but helps a lot and if many people go over it takes a small amount of time for each. Bugdays could be organized every third week of the month if enough volunteers are available.

Contribute documentation

The wiki can always enjoy more content you could check for incomplete pages or extend the snippet collection.

Coding tasks

Cosmetic Patches

Libav codebase has still some parts keeping some inconsistent formatting from the origin of the project, converting them to fit the coding style is more than welcome.

Is possible to leverage uncrustify to take care of the bulk of the issues, and then manually edit. Knowledge of Git patch mode (e.g. git add -p) might be of help.

Make sure to use the updated configuration

Return values

Libav has specific AVERROR macros to deliver in a succinct way what went wrong. Old code might still use -1. Fixing those instances and making sure the errors are forwarded correctly not only helps getting better debugging information but, from time to time, also fixes more serious bugs.

Informative error messages

Libav is laden with error paths such as

if (condition > MAX_VAL && condition < ctx->min_val) {
    av_log(ctx, AV_LOG_ERROR, "condition not respected\n");
    return -1;
}

Fixing it to report properly the which is the value of condition would help debugging error reports.

if (condition < ctx->min_val) {
    av_log(ctx, AV_LOG_ERROR, "condition %d respected.\n", condition);
    return AVERROR_INVALIDDATA;
}


CategoryHowTo