Chapter 1. VLC Overview
Table of Contents
LibVLC
VLC
Modules
Threads
Code conventions
LibVLC
LibVLC is the core part of VLC,It is a library providing an interface for programs such as VLC of a lot of functionalities such as stream access,audio and video output,plugin handing, a thread system. All the LibVLC source files are located int the src./ directory and its subdirectories:
----- interface/: contains code for user interaction such as key presses and device ejection.
----- playlist/: managers playlist interaction such as stop,play,next, or randow playback.
----- input/: opens an input module,read packets, pares them and passes reconstituted elementary
streams to the decoder(s).
----- video_output:/ initializes the video display, gets all pictures and subpictures (ie. subtiles) from the
decoder(s), optinally convents them to another format (such as YUV to RGB), and display
them.
----- audio_output/: initializes the audio mixer, ie. finds the right playing frequency, and the resamples
audio frames received from the decoder(s).
----- stream_output/: TODO
----- 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.
Data flow between modules
I. playlist
playlist module include six files : playlist.c,sort.c,group.c,info.c,item.c,item_ext.c
|---playlist.c
| |------------- playlist_t * __playlist_Create ( vlc_object_t *p_parent )
| | 建立一个 playlist 对象,初始化playlist_t sturct 相关的值
| | 加载相关模块和功能
| | 相关函数:
| | int __var_Create( vlc_object_t *p_this, const char *psz_name, int i_type );
| | int __var_Set( vlc_object_t *p_this, const char *psz_name, vlc_value_t val );
| |------------- void playlist_Destroy( playlist_t * p_playlist )
| | 释放playlist_t 对象,和卸载相关模块
| |
Table of Contents
LibVLC
VLC
Modules
Threads
Code conventions
LibVLC
LibVLC is the core part of VLC,It is a library providing an interface for programs such as VLC of a lot of functionalities such as stream access,audio and video output,plugin handing, a thread system. All the LibVLC source files are located int the src./ directory and its subdirectories:
----- interface/: contains code for user interaction such as key presses and device ejection.
----- playlist/: managers playlist interaction such as stop,play,next, or randow playback.
----- input/: opens an input module,read packets, pares them and passes reconstituted elementary
streams to the decoder(s).
----- video_output:/ initializes the video display, gets all pictures and subpictures (ie. subtiles) from the
decoder(s), optinally convents them to another format (such as YUV to RGB), and display
them.
----- audio_output/: initializes the audio mixer, ie. finds the right playing frequency, and the resamples
audio frames received from the decoder(s).
----- stream_output/: TODO
----- 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.
Data flow between modules
I. playlist
playlist module include six files : playlist.c,sort.c,group.c,info.c,item.c,item_ext.c
|---playlist.c
| |------------- playlist_t * __playlist_Create ( vlc_object_t *p_parent )
| | 建立一个 playlist 对象,初始化playlist_t sturct 相关的值
| | 加载相关模块和功能
| | 相关函数:
| | int __var_Create( vlc_object_t *p_this, const char *psz_name, int i_type );
| | int __var_Set( vlc_object_t *p_this, const char *psz_name, vlc_value_t val );
| |------------- void playlist_Destroy( playlist_t * p_playlist )
| | 释放playlist_t 对象,和卸载相关模块
| |