Difference between revisions of "Multimedia"

From eLinux.org
Jump to: navigation, search
(Graphics/Video out)
(Graphics/Video out)
Line 37: Line 37:
 
*http://www.x.org/
 
*http://www.x.org/
 
*[[X11]]
 
*[[X11]]
====Gstreamer====
 
*http://www.gstreamer.net/
 
 
====NanoX====
 
====NanoX====
 
*http://www.microwindows.org/
 
*http://www.microwindows.org/
Line 52: Line 50:
 
====Enlightenment Foundation Libraries (EFL)====
 
====Enlightenment Foundation Libraries (EFL)====
 
*http://www.enlightenment.org/ contains Evas, an object-oriented 2d canvs on top of OpenGL/X11, XRender/X11, X11, FB, DirectFB, DirectDraw and more. It includes scene management and integrates with Ecore, matches nicely other EFL components like Edje. It's used by some media centers and the OpenMoko phone.
 
*http://www.enlightenment.org/ contains Evas, an object-oriented 2d canvs on top of OpenGL/X11, XRender/X11, X11, FB, DirectFB, DirectDraw and more. It includes scene management and integrates with Ecore, matches nicely other EFL components like Edje. It's used by some media centers and the OpenMoko phone.
 
+
====Gstreamer====
 +
*http://www.gstreamer.net/ is a modular media engine based on pipelines, you can construct them as you wish to either record or playback, from/to any media supported by its plugins. It's very flexible, but that also makes it complex to use, however it ships with helpers like playbin and decodebin to make simple case easy to use. It is built on top of GLib/GObject and integrates well with GNOME platform, but can be used with others as well.
 +
====Xine====
 +
*http://xinehq.de/ is a playback media engine that handles most of the complexity for you. It's based on threads, so clock and synchronization are handled automatically. May worth noticing that this library is GPL and your application must be GPL as well to use it.
 +
====MPlayer====
 +
*http://mplayerhq.hu/ it's not a library but an application, however it's controllable from other applications and it's used as media framework for some systems. It's GPL as well as xine, but since it's externally controlled you don't need to make your application GPL to use it.
 
====Documentation====
 
====Documentation====
 
* Presentation [http://tree.celinuxforum.org/CelfPubWiki/ELCEurope2008Presentations?action=AttachFile&do=get&target=choosing-embedded-graphical-libraries.pdf Choosing embedded graphical libraries] held by Thomas Petazzoni at the ELCE 2008
 
* Presentation [http://tree.celinuxforum.org/CelfPubWiki/ELCEurope2008Presentations?action=AttachFile&do=get&target=choosing-embedded-graphical-libraries.pdf Choosing embedded graphical libraries] held by Thomas Petazzoni at the ELCE 2008

Revision as of 15:04, 18 November 2008

Here are some miscellaneous resources related to audio, video and graphics systems under Linux:

Also see the section on User Interfaces.

CELF 2.0 Specification for AVG

(more like a set of recommendations rather than a specification)


Audio Video Working Group

Please see the CELF wiki for more information: Audio Video Graphics Working Group

DirectFB study

What is DirectFB, How Does DirectFB Work

DirectFB

Sample Implementation of DirectFB on an embedded Linux platform

Porting DirectFB

Some DirectFB benchmark on embedded Linux platform

Benchmark DirectFB

Related Projects

Graphics/Video out

Framebuffer

DirectFB

X11

NanoX

OpenGL (OpenML)

SDL

  • http://www.libsdl.org/ immediate renderer library with very bare bones primitives like rectangle fill and blit. Since it exposes just framebuffer and few primitives, it's easy to port to different platforms, actually it was born as a way to port Windows games to Linux.

Cairo

  • http://www.cairographics.org/ is an immediate renderer library that can do complex vector graphics, including matrix transforms. It runs on top of DirectFB, X11, memory buffers and more. It is the base of some toolkits like GTK and applications like Firefox.

Clutter

  • http://clutter-project.org/ is an object-oriented 3d canvas on top of OpenGL (or OpenGL-ES) with scene management. It is based on GLib/GObject and matches nicely GNOME platform. Many powerful Linux mobile devices will ship with Clutter-based intefaces in near future, like Intel's Moblin, Ubuntu Mobile and Maemo.

Enlightenment Foundation Libraries (EFL)

  • http://www.enlightenment.org/ contains Evas, an object-oriented 2d canvs on top of OpenGL/X11, XRender/X11, X11, FB, DirectFB, DirectDraw and more. It includes scene management and integrates with Ecore, matches nicely other EFL components like Edje. It's used by some media centers and the OpenMoko phone.

Gstreamer

  • http://www.gstreamer.net/ is a modular media engine based on pipelines, you can construct them as you wish to either record or playback, from/to any media supported by its plugins. It's very flexible, but that also makes it complex to use, however it ships with helpers like playbin and decodebin to make simple case easy to use. It is built on top of GLib/GObject and integrates well with GNOME platform, but can be used with others as well.

Xine

  • http://xinehq.de/ is a playback media engine that handles most of the complexity for you. It's based on threads, so clock and synchronization are handled automatically. May worth noticing that this library is GPL and your application must be GPL as well to use it.

MPlayer

  • http://mplayerhq.hu/ it's not a library but an application, however it's controllable from other applications and it's used as media framework for some systems. It's GPL as well as xine, but since it's externally controlled you don't need to make your application GPL to use it.

Documentation

Video in

V4L[2]

OpenML

LinuxTV (DVB API)

Audio in/out

OSS

ALSA

OpenAL

Users of AVG

Video Lan

Freevo

LinuxTV

MythTV

DVR

OpenPVR

Morphine.TV

Other

ARIB architecture

Boot Splash

Digital Home Working Group

Disko Framework

Free Type

UPnP

TV Anytime

TV Linux Alliance

Note (1) - KD26 refers to the Linux 2.6.X kernel tree, which has a "Documentation" sub-directory.