Difference between revisions of "Hacker Guide"

From VideoLAN Wiki
Jump to navigation Jump to search
Line 1: Line 1:
== Introduction ==
+
== Introduction ==
  
{{VLC}} is a large and complex piece of software. It also uses a large number of [[Contrib_Status|dependencies]].
+
{{VLC}} is a large and complex piece of software. It also uses a large number of [[Contrib Status|dependencies]].  
  
 +
Being open source allows VLC development to benefit from a large community of developers worldwide. <br>However, entering a project such as {{VLC}} can be long and complex for new developers.
  
Being open source allows VLC development to benefit from a large community of developers worldwide.  
+
This '''guide''' seeks to help understanding the VLC code base and VLC internals to quickly get up to speed.<br>
  
However, entering a project such as {{VLC}} can be long and complex for new developers.
+
''NB: this guide is '''not''' about compiling VLC.''
  
This '''guide''' seeks to help understanding the VLC code base and VLC internals to quickly get up to speed.
+
<br>
  
 +
== The layers of VLC and libVLC  ==
  
It will tell you what you need to know about {{VLC}}.
+
=== VLC's Core /libvlccore  ===
  
''NB: this guide is '''not''' about compiling VLC.''
+
The most important (and probably most complex) part of VLC is the core, located in src/ in the repository.  
  
 
+
*[[Documentation:Hacker's Guide/Core|Introduction to the core]] This is a '''MUST-READ'''.  
== The layers of VLC and libVLC ==
+
*[[Documentation:Hacker's Guide/Input|Input]]  
=== VLC's Core /libvlccore ===
+
*[[Documentation:Hacker's Guide/Object Management|VLC Object Management]]  
The most important (and probably most complex) part of VLC is the core, located in src/ in the repository.
 
 
 
*[[Documentation:Hacker's Guide/Core|Core]]
 
*[[Documentation:Hacker's Guide/Input|Input]]
 
 
*[[Documentation:Hacker's Guide/VLM Internals|VLM Internals]]
 
*[[Documentation:Hacker's Guide/VLM Internals|VLM Internals]]
  
 
=== Plugins / Modules  ===
 
=== Plugins / Modules  ===
  
*[[Documentation:Hacker's Guide/Interfaces|Interfaces]]
+
*[[Documentation:Hacker's Guide/Interfaces|Interfaces]]  
*[[Documentation:Hacker's Guide/Access|Access]]  
+
*[[Documentation:Hacker's Guide/Access|Access]]
  
 
*[[Documentation:Hacker's Guide/Demux|Demux]]  
 
*[[Documentation:Hacker's Guide/Demux|Demux]]  
 
*[[Documentation:Hacker's Guide/Decoder|Decoder]]  
 
*[[Documentation:Hacker's Guide/Decoder|Decoder]]  
 
*[[Documentation:Hacker's Guide/Audio Filters|Audio Filters]]  
 
*[[Documentation:Hacker's Guide/Audio Filters|Audio Filters]]  
*[[Documentation:Hacker's Guide/Video Filters|Video Filters]]  
+
*[[Documentation:Hacker's Guide/Video Filters|Video Filters]]
  
 
*[[Documentation:Hacker's Guide/Audio Mixers|Audio Mixers]]  
 
*[[Documentation:Hacker's Guide/Audio Mixers|Audio Mixers]]  
Line 38: Line 36:
 
*[[Documentation:Hacker's Guide/Video Output|Video Output]]
 
*[[Documentation:Hacker's Guide/Video Output|Video Output]]
  
 +
<br> Modules types not documented (yet)
  
Modules not documented (yet)
+
*[[Documentation:Hacker's Guide/Stream Filters|Stream Filters]]  
*[[Documentation:Hacker's Guide/Stream Filters|Stream Filters]]
 
 
*[[Documentation:Hacker's Guide/Visualization|Visualization]]  
 
*[[Documentation:Hacker's Guide/Visualization|Visualization]]  
 
*[[Documentation:Hacker's Guide/Encoder|Encoder]]  
 
*[[Documentation:Hacker's Guide/Encoder|Encoder]]  
Line 48: Line 46:
 
*[[Documentation:Hacker's Guide/Access Output|Access Output]]
 
*[[Documentation:Hacker's Guide/Access Output|Access Output]]
  
=== libVLC and bindings ===
+
=== libVLC and bindings ===
* Using [[Documentation:Hacker's Guide/libvlc|libvlc]]
+
 
* bindings
+
*Using [[Documentation:Hacker's Guide/libvlc|libvlc]]  
 +
*bindings
  
== VLC source code overview ==
+
== VLC source code overview ==
  
 
*[[VLC source tree]]  
 
*[[VLC source tree]]  
 
*[[Documentation:Hacker's Guide/Module Writers Guide|VLC modules]] (also see [[Modules source tree]] )  
 
*[[Documentation:Hacker's Guide/Module Writers Guide|VLC modules]] (also see [[Modules source tree]] )  
*[[Documentation:Hacker's Guide/Object Management|VLC Object Management]]
 
 
*[[Documentation:Hacker's Guide/Preferences|VLC Preferences]]  
 
*[[Documentation:Hacker's Guide/Preferences|VLC Preferences]]  
 
*[[Documentation:Hacker's Guide/Playlist|VLC Playlist and Media Library]]  
 
*[[Documentation:Hacker's Guide/Playlist|VLC Playlist and Media Library]]  
Line 62: Line 60:
 
*[http://www.videolan.org/developers/vlc/doc/doxygen/html/ Doxygen Documentation]
 
*[http://www.videolan.org/developers/vlc/doc/doxygen/html/ Doxygen Documentation]
  
== Coding for VLC ==
+
== Coding for VLC ==
  
 
*[[Sending Patches]]  
 
*[[Sending Patches]]  
Line 68: Line 66:
 
*[[Adding a module]]
 
*[[Adding a module]]
  
 +
<br>
 +
 +
=== Authors  ===
  
=== Authors ===
 
 
*Derk-Jan Hartman  
 
*Derk-Jan Hartman  
 
*Christophe Massiot  
 
*Christophe Massiot  
 
*Samuel Hocevar  
 
*Samuel Hocevar  
*Geoffroy Couprie
+
*Geoffroy Couprie  
 
*Jean-Baptiste Kempf
 
*Jean-Baptiste Kempf
  
 
{{Documentation}}
 
{{Documentation}}

Revision as of 13:41, 29 October 2010

Introduction

VLC media player is a large and complex piece of software. It also uses a large number of dependencies.

Being open source allows VLC development to benefit from a large community of developers worldwide.
However, entering a project such as VLC media player can be long and complex for new developers.

This guide seeks to help understanding the VLC code base and VLC internals to quickly get up to speed.

NB: this guide is not about compiling VLC.


The layers of VLC and libVLC

VLC's Core /libvlccore

The most important (and probably most complex) part of VLC is the core, located in src/ in the repository.

Plugins / Modules


Modules types not documented (yet)

libVLC and bindings

VLC source code overview

Coding for VLC


Authors

  • Derk-Jan Hartman
  • Christophe Massiot
  • Samuel Hocevar
  • Geoffroy Couprie
  • Jean-Baptiste Kempf
This page is part of official VLC media player Documentation (User GuideStreaming HowToHacker GuideModules)
Please read the Documentation Editing Guidelines before you edit the documentation
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.