Try to clarify the semantics of AVPacket.duration.
[ffmpeg.git] / doc / issue_tracker.txt
1 FFmpeg's bug/patch/feature request tracker manual
2 =================================================
3
4 NOTE: This is a draft.
5
6 Overview:
7 ---------
8 FFmpeg uses Roundup for tracking issues, new issues and changes to
9 existing issues can be done through a web interface and through email.
10 It is possible to subscribe to individual issues by adding yourself to the
11 nosy list or to subscribe to the ffmpeg-issues mailing list which receives
12 a mail for every change to every issue. Replies to such mails will also
13 be properly added to the respective issue.
14 (the above does all work already after light testing)
15 The subscription URL for the ffmpeg-issues list is:
16 http://live.polito/mailman/listinfo/ffmpeg-issues
17 The URL of the webinterface of the tracker is:
18 http(s)://roundup.mplayerhq/roundup/ffmpeg/
19 Note the URLs in this document are obfuscated, you must append the top level
20 domain of Hungary to the tracker, and of Italy to the mailing list.
21
22 Email Interface:
23 ----------------
24 There is a mailing list to which all new issues and changes to existing issues
25 are sent. You can subscribe through
26 http://live.polito/mailman/listinfo/ffmpeg-issues
27 Replies to messages there will have their text added to the specific issues.
28 Attachments will be added as if they had been uploaded via the web interface.
29 You can change the status, substatus, topic, ... by changing the subject in
30 your reply like:
31 Re: [issue94] register_avcodec and allcodecs.h [type=patch;status=open;substatus=approved]
32 Roundup will then change things as you requested and remove the [...] from
33 the subject before forwarding the mail to the mailing list.
34
35
36 NOTE: issue = (bug report || patch || feature request)
37
38 Type:
39 -----
40 bug
41     An error, flaw, mistake, failure, or fault in FFmpeg or libav* that
42     prevents it from behaving as intended.
43
44 feature request
45     Request of support for encoding or decoding of a new codec, container
46     or variant.
47     Request of support for more, less or plain different output or behavior
48     where the current implementation cannot be considered wrong.
49
50 patch
51     A patch as generated by diff which conforms to the patch submission and
52     development policy.
53
54
55 Priority:
56 ---------
57 critical
58     Bugs and patches which deal with data loss and security issues.
59     No feature request can be critical.
60
61 important
62     Bugs which make FFmpeg unusable for a significant number of users, and
63     patches fixing them.
64     Examples here might be completely broken MPEG-4 decoding or a build issue
65     on Linux.
66     While broken 4xm decoding or a broken OS/2 build would not be important,
67     the separation to normal is somewhat fuzzy.
68     For feature requests this priority would be used for things many people
69     want.
70
71 normal
72
73
74 minor
75     Bugs and patches about things like spelling errors, "mp2" instead of
76     "mp3" being shown and such.
77     Feature requests about things few people want or which do not make a big
78     difference.
79
80 wish
81     Something that is desirable to have but that there is no urgency at
82     all to implement, e.g. something completely cosmetic like a website
83     restyle or a personalized doxy template or the FFmpeg logo.
84     This priority is not valid for bugs.
85
86
87 Status:
88 -------
89 new
90     initial state
91
92 open
93     intermediate states
94
95 closed
96     final state
97
98
99 Type/Status/Substatus:
100 ----------
101 */new/new
102     Initial state of new bugs, patches and feature requests submitted by
103     users.
104
105 */open/open
106     Issues which have been briefly looked at and which did not look outright
107     invalid.
108     This implicates that no real more detailed state applies yet. Conversely,
109     the more detailed states below implicate that the issue has been briefly
110     looked at.
111
112 */closed/duplicate
113     Bugs, patches or feature requests which are duplicates.
114     Note that patches dealing with the same thing in a different way are not
115     duplicates.
116     Note, if you mark something as duplicate, do not forget setting the
117     superseder so bug reports are properly linked.
118
119 */closed/invalid
120     Bugs caused by user errors, random ineligible or otherwise nonsense stuff.
121
122 */closed/needs_more_info
123     Issues for which some information has been requested by the developers,
124     but which has not been provided by anyone within reasonable time.
125
126 bug/open/reproduced
127     Bugs which have been reproduced.
128
129 bug/open/analyzed
130     Bugs which have been analyzed and where it is understood what causes them
131     and which exact chain of events triggers them. This analysis should be
132     available as a message in the bug report.
133     Note, do not change the status to analyzed without also providing a clear
134     and understandable analysis.
135     This state implicates that the bug either has been reproduced or that
136     reproduction is not needed as the bug is already understood.
137
138 bug/open/needs_more_info
139     Bug reports which are incomplete and or where more information is needed
140     from the submitter or another person who can provide it.
141     This state implicates that the bug has not been analyzed or reproduced.
142     Note, the idea behind needs_more_info is to offload work from the
143     developers to the users whenever possible.
144
145 bug/closed/fixed
146     Bugs which have to the best of our knowledge been fixed.
147
148 bug/closed/wont_fix
149     Bugs which we will not fix. Possible reasons include legality, high
150     complexity for the sake of supporting obscure corner cases, speed loss
151     for similarly esoteric purposes, et cetera.
152     This also means that we would reject a patch.
153     If we are just too lazy to fix a bug then the correct state is open
154     and unassigned. Closed means that the case is closed which is not
155     the case if we are just waiting for a patch.
156
157 bug/closed/works_for_me
158     Bugs for which sufficient information was provided to reproduce but
159     reproduction failed - that is the code seems to work correctly to the
160     best of our knowledge.
161
162 patch/open/approved
163     Patches which have been reviewed and approved by a developer.
164     Such patches can be applied anytime by any other developer after some
165     reasonable testing (compile + regression tests + does the patch do
166     what the author claimed).
167
168 patch/open/needs_changes
169     Patches which have been reviewed and need changes to be accepted.
170
171 patch/closed/applied
172     Patches which have been applied.
173
174 patch/closed/rejected
175     Patches which have been rejected.
176
177 feature_request/open/needs_more_info
178     Feature requests where it is not clear what exactly is wanted
179     (these also could be closed as invalid ...).
180
181 feature_request/closed/implemented
182     Feature requests which have been implemented.
183
184 feature_request/closed/wont_implement
185     Feature requests which will not be implemented. The reasons here could
186     be legal, philosophical or others.
187
188 Note, please do not use type-status-substatus combinations other than the
189 above without asking on ffmpeg-dev first!
190
191 Note2, if you provide the requested info do not forget to remove the
192 needs_more_info substate.
193
194 Topic:
195 ------
196 A topic is a tag you should add to your issue in order to make grouping them
197 easier.
198
199 avcodec
200     issues in libavcodec/*
201
202 avformat
203     issues in libavformat/*
204
205 avutil
206     issues in libavutil/*
207
208 regression test
209     issues in tests/*
210
211 ffmpeg
212     issues in or related to ffmpeg.c
213
214 ffplay
215     issues in or related to ffplay.c
216
217 ffserver
218     issues in or related to ffserver.c
219
220 build system
221     issues in or related to configure/Makefile
222
223 regression
224     bugs which were working in a past revision
225
226 roundup
227     issues related to our issue tracker