Xbmc software technology composition analysis
Xbmc is a cross-platform media and entertainment center software that can play audio and video, browse images, view weather, manage media resource files on memory, set the system, and support game controllers.
The biggest feature of xbmc is that the interface is superb and the Human-Computer Interaction Effect is outstanding.
1
Technical composition of xbmc:
1) xbmc uses the X11 library in the graphical aspect to build the interface
Note: X11 refers to X Window System Version 11, which is a graphic display system that is transparent to the network client/server architecture. It supports applications to draw pixels and lines on your screen, text, images, and so on. X11 also includes some other auxiliary function libraries so that it can easily draw user interfaces, such as buttons and text input areas. X11 is the de facto standard for Unix graphics systems. Linux, various BSD versions and most commercial Unix systems use it. Desktop environments such as CDE, Kde, and gnome run on them.
2
2) xbmc uses OpenGL Rendering
Xbmc uses the OpenGL rendering library to complete many special effects.
3) xbmc uses the vdpau decoder Library
Vdpau (video decode and presentation API for UNIX) is a GPU developed by NVIDIA for its g9x and later series, APIs in UNIX and Unix-like systems (including Linux, FreeBSD, and Solaris ). Vdpau can decode the video from the video player to the GPU for hard decoding. Currently, vdpau can process MPEG-1, MPEG-2, MPEG-4 AVC (H.264), VC-1 and wmv3/wmv9.
4) xbmc uses the gnu gprof Library
The gnu gprof library enables software customization.
5) xbmc uses the randroid Library
Randroid provides automatic screen resolution and update rate adaptation.
6) xbmc uses the pulseaudio, faac, and mid libraries.
Audio Processing database.
7) xbmc uses the dvdcss Library
A library for copy protection on the DVD.
8) xbmc uses the SQLite Database
SQLite is a lightweight embedded database. xbmc uses it to store local data, such as customized information.
9) there are also many libraries for image processing and video processing.
...
In general, xbmc uses C ++/C Programming in design, uses a variety of open-source libraries and OpenGL rendering, and uses SQLite database to store information in configuration data in the background. Xbmc is first developed on Linux/Unix. Visual Studio 2003 and Visual Studio 2008 are used for porting to Windows, and xcode is used for porting to MacOS.