125 | | == Hardware Acceleration API Software / Tracing Implementation == |
126 | | |
127 | | [[Image(wiki:SponsoringPrograms/GSoC/2014:hwaccel.jpg, right, nolink)]] |
128 | | |
129 | | '''Description:''' Our support for hardware accelerated decoding basically remains untested. This is in part due to FFmpeg only implementing part of the required steps, and in part since it requires specific operating systems and hardware. |
130 | | |
131 | | The idea would be to start with a simple stub implementation of an API like e.g. VDPAU that provides only the most core functions. These would then serialize out the function calls and data to allow easy comparison and regression testing. Improvements to this approach are adding basic input validation and replay capability to allow testing regression data against real hardware. This would be similar to what [https://github.com/apitrace/apitrace apitrace] does for OpenGL. |
132 | | |
133 | | A further step would be to actually add support for decoding in software, so that full testing including visual inspection is possible without the need for special hardware. |
134 | | |
135 | | '''Prerequisites:''' C coding skills, basic familiarity with git |
136 | | |
137 | | '''Qualification Task:''' Anything related to the hardware acceleration code, though producing first ideas and code pieces for this task would also be reasonable |
138 | | |
139 | | '''Mentor:''' Reimar Doeffinger (''reimar'' in #ffmpeg-devel on Freenode IRC, but since I'm rarely there better email me first: Reimar.Doeffinger [at] gmx.de) |
140 | | |
141 | | '''Backup mentor:''' Reynaldo Verdejo (''reynaldo'' in #ffmpeg-devel on Freenode IRC, R Verdejo on g mail) |
142 | | |
143 | | |
144 | | == MXF Demuxer Improvements == |
145 | | |
146 | | '''Description:''' The MXF demuxer needs a proper, compact way to map !EssenceContainer ULs to !WrappingKind. See [https://trac.ffmpeg.org/ticket/2776 ticket #2776] in our bug tracker, and [https://trac.ffmpeg.org/ticket/2776 ticket #1916] contains additional relevant information. |
147 | | |
148 | | Essence in MXF is typically stored in one of two ways: as an audio/video interleave or with each stream in one huge chunk (such as 1 GiB audio followed by 10 GiB video). Previous ways of telling these apart have been technically wrong, but worked and we lack samples demonstrating the contrary. |
149 | | |
150 | | '''Expected results:''' The sample in ticket [https://trac.ffmpeg.org/ticket/2776 ticket #2776] should demux correctly. Add a test case in [http://ffmpeg.org/fate.html FATE]. The solution should grow libavformat by no more than 32 KiB. |
151 | | |
152 | | '''Prerequisites:''' C coding skills, basic familiarity with git. Knowledge of MXF would be useful |
153 | | |
154 | | '''Qualification Task:''' Investigate if there may be a compact way of representing the UL -> !WrappingKind mapping specified in the [http://www.smpte-ra.org/mdd/RP224v10-publication-20081215.xls official RP224 Excel document]. The tables takes up about half a megabyte verbatim which is unacceptable in a library as large as libavformat. |
155 | | |
156 | | '''Mentor:''' TBA |
157 | | |
158 | | '''Backup Mentor:''' Paul B Mahol (''durandal_1707'' in #ffmpeg-devel on Freenode IRC, onemda@gmail.com) |
159 | | |
160 | | |
161 | | == VDPAU filter == |
162 | | |
163 | | '''Description:''' VDPAU is not only about hardware-accelerated decoding but also allows some postprocessing - most notably deinterlacing. Other features of the API include scaling, noise removal, and a sharpening filter. See the [http://http.download.nvidia.com/XFree86/vdpau/doxygen/html/index.html VDPAU API documentation] for more information on some of the features. |
164 | | |
165 | | '''Expected results:''' Implement a filter that allows usage of the postprocessing features as defined by the VDPAU API. This should particularly include the deinterlacer, and ideally all features should be usable to allow comparing the quality and performance of different hardware and hardware vs. software. |
166 | | |
167 | | '''Prerequisites:''' C coding skills, and you will need hardware that allows VDPAU post-processing. |
168 | | |
169 | | '''Qualification Task:''' TBA |
170 | | |
171 | | '''Mentor:''' Carl Eugen Hoyos (''cehoyos'' in #ffmpeg-devel on Freenode IRC, ce AT hoyos.ws) |
172 | | |
173 | | '''Backup Mentor:''' Reimar Doeffinger (''reimar'' in #ffmpeg-devel on Freenode IRC, Reimar.Doeffinger [at] gmx.de), Thilo Borgmann (thilo DOT borgmann AT mail DOT de) |
204 | | |
205 | | |
206 | | == Improve and Cleanup Swscale == |
207 | | |
208 | | '''Description:''' Swscale is the part of FFmpeg responsible for scaling pictures, fields, slices of videos and converting colorspace and pixelformats. The code has a long history and grew alot. It is in need of some cleanup, it has been improved significantly in GSoC 2015, but there is a large number of possibly cleanups and improvments remaining. This is not a simple task. It requires to quickly learn and understand what the existing code does and how it can be restructured to be clearer and more modular without making it slower or otherwise worse in a practically relevant way. |
209 | | |
210 | | '''Expected results:''' A subset of: significantly improve clarity of the code, add features like multithreaded scaling, internal floating point support (swscale is largey integer only). The expected results for this task can also very easily be adjusted during the summer depending on how the work is progressing. Quality code is preferred over quantity! |
211 | | |
212 | | '''Prerequisites:''' Good C coding skills, basic familiarity with git, ability to quickly understand existing code. |
213 | | |
214 | | '''Qualification Task:''' Something that proofs that you understand the existing code and can manipulate it as you need to. A specific possibility would be to move some cases which are handled as cascaded contexts to run as part of the filters from ff_init_filters() wthout using cascaded contexts. |
215 | | |
216 | | '''Mentor:''' Michael Niedermayer (''michaelni'' in #ffmpeg-devel on Freenode IRC, michaelni@gmx.at) |
217 | | |
218 | | '''Backup Mentor:''' Paul B Mahol (''durandal_1707'' in #ffmpeg-devel on Freenode IRC, onemda@gmail.com) |