FFmpeg's bug/patch/feature request tracker manual
=================================================

NOTE: This is a draft.

Overview:
---------

FFmpeg uses Trac for tracking issues, new issues and changes to
existing issues can be done through a web interface.

Issues can be different kinds of things we want to keep track of
but that do not belong into the source tree itself. This includes
bug reports, patches, feature requests and license violations. We
might add more items to this list in the future, so feel free to
propose a new `type of issue' on the ffmpeg-devel mailing list if
you feel it is worth tracking.

It is possible to subscribe to individual issues by adding yourself to the
Cc list or to subscribe to the ffmpeg-trac mailing list which receives
a mail for every change to every issue.
(the above does all work already after light testing)

The subscription URL for the ffmpeg-trac list is:
http(s)://ffmpeg.org/mailman/listinfo/ffmpeg-trac
The URL of the webinterface of the tracker is:
http(s)://trac.ffmpeg.org

Type:
-----
bug / defect
    An error, flaw, mistake, failure, or fault in FFmpeg or libav* that
    prevents it from behaving as intended.

feature request / enhancement
    Request of support for encoding or decoding of a new codec, container
    or variant.
    Request of support for more, less or plain different output or behavior
    where the current implementation cannot be considered wrong.

license violation
    ticket to keep track of (L)GPL violations of ffmpeg by others

patch
    A patch as generated by diff which conforms to the patch submission and
    development policy.


Priority:
---------
critical
    Bugs and patches which deal with data loss and security issues.
    No feature request can be critical.

important
    Bugs which make FFmpeg unusable for a significant number of users, and
    patches fixing them.
    Examples here might be completely broken MPEG-4 decoding or a build issue
    on Linux.
    While broken 4xm decoding or a broken OS/2 build would not be important,
    the separation to normal is somewhat fuzzy.
    For feature requests this priority would be used for things many people
    want.
    Regressions also should be marked as important, regressions are bugs that
    don't exist in a past revision or another branch.

normal


minor
    Bugs and patches about things like spelling errors, "mp2" instead of
    "mp3" being shown and such.
    Feature requests about things few people want or which do not make a big
    difference.

wish
    Something that is desirable to have but that there is no urgency at
    all to implement, e.g. something completely cosmetic like a website
    restyle or a personalized doxy template or the FFmpeg logo.
    This priority is not valid for bugs.


Status:
-------
new
    initial state

open
    intermediate states

closed
    final state


Analyzed flag:
--------------
Bugs which have been analyzed and where it is understood what causes them
and which exact chain of events triggers them. This analysis should be
available as a message in the bug report.
Note, do not change the status to analyzed without also providing a clear
and understandable analysis.
This state implicates that the bug either has been reproduced or that
reproduction is not needed as the bug is already understood.


Type/Status/Substatus:
----------
*/new/new
    Initial state of new bugs, patches and feature requests submitted by
    users.

*/open/open
    Issues which have been briefly looked at and which did not look outright
    invalid.
    This implicates that no real more detailed state applies yet. Conversely,
    the more detailed states below implicate that the issue has been briefly
    looked at.

*/closed/duplicate
    Bugs, patches or feature requests which are duplicates.
    Note that patches dealing with the same thing in a different way are not
    duplicates.
    Note, if you mark something as duplicate, do not forget setting the
    superseder so bug reports are properly linked.

*/closed/invalid
    Bugs caused by user errors, random ineligible or otherwise nonsense stuff.

*/closed/needs_more_info
    Issues for which some information has been requested by the developers,
    but which has not been provided by anyone within reasonable time.


bug/closed/fixed
    Bugs which have to the best of our knowledge been fixed.

bug/closed/wont_fix
    Bugs which we will not fix. Possible reasons include legality, high
    complexity for the sake of supporting obscure corner cases, speed loss
    for similarly esoteric purposes, et cetera.
    This also means that we would reject a patch.
    If we are just too lazy to fix a bug then the correct state is open
    and unassigned. Closed means that the case is closed which is not
    the case if we are just waiting for a patch.

bug/closed/works_for_me
    Bugs for which sufficient information was provided to reproduce but
    reproduction failed - that is the code seems to work correctly to the
    best of our knowledge.

patch/open/approved
    Patches which have been reviewed and approved by a developer.
    Such patches can be applied anytime by any other developer after some
    reasonable testing (compile + regression tests + does the patch do
    what the author claimed).

patch/open/needs_changes
    Patches which have been reviewed and need changes to be accepted.

patch/closed/applied
    Patches which have been applied.

patch/closed/rejected
    Patches which have been rejected.

feature_request/closed/implemented
    Feature requests which have been implemented.

feature_request/closed/wont_implement
    Feature requests which will not be implemented. The reasons here could
    be legal, philosophical or others.

Note, please do not use type-status-substatus combinations other than the
above without asking on ffmpeg-dev first!

Note2, if you provide the requested info do not forget to remove the
needs_more_info substatus.

Component:
----------

avcodec
    issues in libavcodec/*

avformat
    issues in libavformat/*

avutil
    issues in libavutil/*

regression test
    issues in tests/*

ffmpeg
    issues in or related to ffmpeg.c

ffplay
    issues in or related to ffplay.c

ffprobe
    issues in or related to ffprobe.c

ffserver
    issues in or related to ffserver.c

build system
    issues in or related to configure/Makefile

regression
    bugs which were not present in a past revision

trac
    issues related to our issue tracker
