Difference between revisions of "Hacker Guide"
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 [[ | + | {{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. | ||
− | + | 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.'' | |
− | + | <br> | |
+ | == 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. | |
− | + | *[[Documentation:Hacker's Guide/Core|Introduction to the core]] This is a '''MUST-READ'''. | |
− | + | *[[Documentation:Hacker's Guide/Input|Input]] | |
− | + | *[[Documentation:Hacker's Guide/Object Management|VLC Object Management]] | |
− | |||
− | |||
− | *[[Documentation:Hacker's Guide/ | ||
− | *[[Documentation:Hacker's Guide/ | ||
*[[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) | ||
− | + | *[[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/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 === | ||
− | |||
*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
Contents
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.
- Introduction to the core This is a MUST-READ.
- Input
- VLC Object Management
- VLM Internals
Plugins / Modules
Modules types not documented (yet)
libVLC and bindings
- Using libvlc
- bindings
VLC source code overview
- VLC source tree
- VLC modules (also see Modules source tree )
- VLC Preferences
- VLC Playlist and Media Library
- VLC variables
- Doxygen Documentation
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 Guide • Streaming HowTo • Hacker Guide • Modules)
Please read the Documentation Editing Guidelines before you edit the documentation
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.