Difference between revisions of "SoC 2017"

From VideoLAN Wiki
Jump to navigation Jump to search
Line 45: Line 45:
 
libFuzzer ((http://llvm.org/docs/LibFuzzer.html).) is a library for coverage-guided fuzz testing.
 
libFuzzer ((http://llvm.org/docs/LibFuzzer.html).) is a library for coverage-guided fuzz testing.
  
* The first step of this GSoC project is to implement Fuzz Targets (http://llvm.org/docs/LibFuzzer.html#fuzz-target) to test various parts of the VLC project. The non exhaustive parts will be the following VLC modules API: "decoder", "packetizer", "demuxer". For each parts, the student will have to understand the module API in order to effectively implement the target.
+
* The first step of this GSoC project is to implement Fuzz Targets (http://llvm.org/docs/LibFuzzer.html#fuzz-target) to test various parts of the VLC project. The non exhaustive parts will be the following VLC modules API: "decoder", "encoder, "access", "packetizer", "demuxer". For each parts, the student will have to understand the module API in order to effectively implement the target.
  
 
* The second step is to find valid corpus (http://llvm.org/docs/LibFuzzer.html#corpus) for every module types and for every modules (mkv input for mkv demuxer, mp4 input for mp4 demuxer, h264 input for h264 decoder...).
 
* The second step is to find valid corpus (http://llvm.org/docs/LibFuzzer.html#corpus) for every module types and for every modules (mkv input for mkv demuxer, mp4 input for mp4 demuxer, h264 input for h264 decoder...).

Revision as of 17:09, 7 February 2017


This page summarize the current list of ideas for VideoLAN project, for Google Summer Of Code 2017. The list is not exhaustive, and is not limitative. Feel free to apply with your own idea!

Introduction & Information

This wiki page covers the attempt by the VideoLAN project to act as a mentoring organization for Google Summer of Code, in order to improve VLC media player and VLMC.

VideoLAN was a mentoring organization in 2007, 2008, 2009, 2010, 2011, 2013 and 2016.

This page list the ideas for VLC and VLMC.

VLC media player

VLC media player is a cross-platform multimedia player, encoder and streamer application. It is one of the most successful open-source projects without any professional structure underneath.

VLC media player is downloaded at an approximate monthly rate of 40 millions from the main website and that's not including third-party distributions (Linux)!

You can find more information on VLC on Wikipedia or on this wiki.

VideoLAN Movie Creator

VLMC is a cross-platform non-linear video editing software based on VLC technology. It was started as a final year student project at the French IT school EPITECH.

VLMC currently awaits a transition to the current libvlc API and it's actual 1.0 release!

Summer of Code

If selected and developed, SoC projects for VLC and VLMC will be included in later releases.

All projects are covered by the GPL (v2+) or LGPL (v2.1+) licenses depending on the module.

Compile VLC or VLMC

This may sound trivial, but it's harder than many expect. See https://wiki.videolan.org/Category:Building/ for more informations.

Provide a small patch

To demonstrate your skills, share a small patch with us. This will let you become familiar with Git, in case you don't know it already and our process on merging patches.

Let's get in touch

We have 3 major communication channels: Our mailing-lists to discuss patches and further development related topics. Furthermore, we have our web forums for VLC-related end-user support - a VLMC section will be created once the product is published. Finally, there is our IRC channel #videolan (for VLC) and #vlmc on the Freenode network. It's open to any kind of discussion. Usage issues, questions how to compile VLC/VLMC, getting to know the fellow developers, etc.

Key ideas for VLC

Fuzz VLC (and maybe LibVLC and VLC ports) with LibFuzzer

libFuzzer ((http://llvm.org/docs/LibFuzzer.html).) is a library for coverage-guided fuzz testing.

  • The first step of this GSoC project is to implement Fuzz Targets (http://llvm.org/docs/LibFuzzer.html#fuzz-target) to test various parts of the VLC project. The non exhaustive parts will be the following VLC modules API: "decoder", "encoder, "access", "packetizer", "demuxer". For each parts, the student will have to understand the module API in order to effectively implement the target.
  • The second step is to find valid corpus (http://llvm.org/docs/LibFuzzer.html#corpus) for every module types and for every modules (mkv input for mkv demuxer, mp4 input for mp4 demuxer, h264 input for h264 decoder...).
  • The third step is to host and run the fuzzer. It's not decided yet if the fuzzer will be hosted by google (https://github.com/google/oss-fuzz) or by the VideoLan association.
  • If there is enough time, the fourth and final step is to fix the issues that has emerged during the previous steps

Proposed mentor: tguillem

Other ideas coming soon

Key ideas for VLMC

Other ideas coming soon

VideoLAN Google Summer of Code (GSoC/SoC) mentoring projects
20072008200920102011 (GCi 2011SOCIS x264 2011)201220132016201720182019