Difference between revisions of "Hacker Guide"

From VideoLAN Wiki
Jump to navigation Jump to search
m
Line 7: Line 7:
 
This '''guide''' seeks to help understanding the VLC code base and VLC internals to quickly get up to speed.<br>  
 
This '''guide''' seeks to help understanding the VLC code base and VLC internals to quickly get up to speed.<br>  
  
''NB: this guide is '''not''' about compiling VLC.''
+
''NB: this guide is '''not''' about compiling VLC.''  
  
 
== The layers of VLC and libVLC  ==
 
== The layers of VLC and libVLC  ==
Line 15: Line 15:
 
The most important (and probably most complex) part of VLC is the core, located in src/ in the repository.  
 
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''' for developers.
+
*[[Documentation:Hacker's Guide/Core|Introduction to the core]] This is a '''MUST-READ''' for developers.  
*[[Documentation:VLC_Modules_Loading|VLC modules loading]]
+
*[[Documentation:VLC Modules Loading|VLC modules loading]]  
 
*[[Documentation:Hacker's Guide/Input|Input]] (slightly outdated)  
 
*[[Documentation:Hacker's Guide/Input|Input]] (slightly outdated)  
*[[Documentation:Hacker's Guide/Object Management|VLC Object Management]]
+
*[[Documentation:Hacker's Guide/Object Management|VLC Object Management]]  
*VLC variables '''TODO'''
+
*[[Documentation:Hacker's Guide/Variables|VLC variables]]
 
*[[Documentation:Hacker's Guide/VLM Internals|VLM Internals]]
 
*[[Documentation:Hacker's Guide/VLM Internals|VLM Internals]]
  
Line 26: Line 26:
 
[[Documentation:Hacker's Guide/Module Writers Guide|Writing a VLC module]]  
 
[[Documentation:Hacker's Guide/Module Writers Guide|Writing a VLC module]]  
  
'''Input'''
+
'''Input'''  
*[[Documentation:Hacker's Guide/Access|Access]]
+
 
*[[Documentation:Hacker's Guide/Demux|Demuxer]]
+
*[[Documentation:Hacker's Guide/Access|Access]]  
*[[Documentation:Hacker's Guide/Access_Demux|Access-Demuxer]]
+
*[[Documentation:Hacker's Guide/Demux|Demuxer]]  
*[[Documentation:Hacker's Guide/Decoder|Decoder]]  
+
*[[Documentation:Hacker's Guide/Access Demux|Access-Demuxer]]  
 +
*[[Documentation:Hacker's Guide/Decoder|Decoder]]
 +
 
 +
'''Audio'''
  
'''Audio'''
 
 
*[[Documentation:Hacker's Guide/Audio Filters|Audio Filters]]  
 
*[[Documentation:Hacker's Guide/Audio Filters|Audio Filters]]  
 
*[[Documentation:Hacker's Guide/Audio Mixers|Audio Mixers]]  
 
*[[Documentation:Hacker's Guide/Audio Mixers|Audio Mixers]]  
*[[Documentation:Hacker's Guide/Audio Output|Audio Output]]  
+
*[[Documentation:Hacker's Guide/Audio Output|Audio Output]]
 +
 
 +
'''Video'''
  
'''Video'''
+
*[[Documentation:Hacker's Guide/Video Filters|Video Filters]]  
*[[Documentation:Hacker's Guide/Video Filters|Video Filters]]
 
 
*[[Documentation:Hacker's Guide/Video Output|Video Output]]
 
*[[Documentation:Hacker's Guide/Video Output|Video Output]]
  
*[[Documentation:Hacker's Guide/Interfaces|Interfaces]]  
+
*[[Documentation:Hacker's Guide/Interfaces|Interfaces]]
  
 
<br> Modules types not documented (yet)  
 
<br> Modules types not documented (yet)  
Line 63: Line 66:
 
*[[Modules source tree]]  
 
*[[Modules source tree]]  
 
*[[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]]
  
 
== Coding for VLC  ==
 
== Coding for VLC  ==
  
*[[Patches|Patching]]
+
*[[Patches|Patching]]  
 
*[[Sending Patches]]  
 
*[[Sending Patches]]  
 
*[[Code Conventions]]  
 
*[[Code Conventions]]  
*[[Documentation:Hacker's Guide/Module Writers Guide|Adding a module]]
+
*[[Documentation:Hacker's Guide/Module Writers Guide|Adding a module]]  
*[[Documentation:Unicode]]
+
*[[Documentation:Unicode]]  
*[http://www.videolan.org/developers/vlc/doc/doxygen/html/ Doxygen Documentation]
+
*[http://www.videolan.org/developers/vlc/doc/doxygen/html/ Doxygen Documentation]  
*[[C Types]]
+
*[[C Types]]  
 
*[[Strings]]
 
*[[Strings]]
  
Line 84: Line 87:
 
*Jean-Baptiste Kempf
 
*Jean-Baptiste Kempf
  
== Testing ==
+
== Testing ==
 +
 
 
*[[Test Suite]]
 
*[[Test Suite]]
  
 
{{Documentation}}
 
{{Documentation}}

Revision as of 12:40, 21 March 2011

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

Writing a VLC module

Input

Audio

Video


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

Testing

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.