Difference between revisions of "Hacker Guide/Core"

From VideoLAN Wiki
Jump to navigation Jump to search
Line 1: Line 1:
==Introduction==
 
 
The core of VLC media player is the [[LibVLC]], which provides an interface for applications to handle features such as playlist management, audio and video decoding and output, a thread system. All the [[LibVLC]] source files are located in the src/  directory and its subdirectories:
 
The core of VLC media player is the [[LibVLC]], which provides an interface for applications to handle features such as playlist management, audio and video decoding and output, a thread system. All the [[LibVLC]] source files are located in the src/  directory and its subdirectories:
  

Revision as of 22:40, 20 April 2008

The core of VLC media player is the LibVLC, which provides an interface for applications to handle features such as playlist management, audio and video decoding and output, a thread system. All the LibVLC source files are located in the src/ directory and its subdirectories:

  • config/: load the configuration from command line and configuration file, provides functions for the modules to read and write to configuration
  • control/: functions to control the behaviour of LibVLC, like Play/Pause, volume management, fullscreen, log verbosity, etc.
  • extras/: mostly platform-specific code
  • modules/: module management
  • network/: network interface (socket management, network errors, etc.)
  • osd/: On Screen Display manipulation
  • test/: LibVLC needs to be tested, and not only by users :)
  • text/: charset stuff
  • interface/: contains code for user interaction such as key presses and device ejection.
  • playlist/: manages playlist interaction such as stop, play, next, or random playback.
  • input/: opens an input module, reads packets, parses them and passes reconstituted elementary streams to the decoder(s).
  • video_output/: initializes the video display, gets all pictures and subpictures (ie. subtitles) from the decoder(s), optionally converts them to another format (such as YUV to RGB), and displays them.
  • audio_output/: initializes the audio mixer, ie. finds the right playing frequency, and then resamples audio frames received from the decoder(s).
  • stream_output/: functions to stream audio and video to the network
  • misc/: miscellaneous utilities used in other parts of libvlc, such as the thread system, the message queue, CPU detection, the object lookup system, or platform-specific code.