Difference between revisions of "Multimedia"

From eLinux.org
Jump to: navigation, search
(CELF 1.0 specification for AVG)
(Added the ELC2013 Contest section)
(40 intermediate revisions by 20 users not shown)
Line 1: Line 1:
 +
==[[File:Robot64x64.png]] ELC2013 Tech Zone Contest==
 +
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#ffffcc; align:right; ">
 +
To add a link to your new page use the following wiki link format:
 +
 +
<nowiki>[[My New Page]]</nowiki>
 +
 +
Save this page/section and your new page link will appear in Red.  Click it and begin editing your new page.  Remember to conduct all Discussions on the Discussion page associated to every wiki page.  The link is at the top, directly above the page title.
 +
</div>
 +
----
 +
 +
==Introduction==
 
Here are some miscellaneous resources related to audio, video and graphics systems under Linux:
 
Here are some miscellaneous resources related to audio, video and graphics systems under Linux:
  
== CELF 1.0 specification for AVG ==
+
Also see the section on [[User Interfaces]].
 +
 
 +
== CELF 2.0 Specification for AVG ==
 
(more like a set of recommendations rather than a specification)
 
(more like a set of recommendations rather than a specification)
 
*{{pdf|CelfAudioVideoGraphicsSpec2 accepted 20060606.pdf|AVG Spec V2}}
 
*{{pdf|CelfAudioVideoGraphicsSpec2 accepted 20060606.pdf|AVG Spec V2}}
  
== CELF AVG 2.0 specification ==
+
 
*[[Audio Video Graphics Spec]]_V2]]
 
  
 
== Audio Video Working Group ==
 
== Audio Video Working Group ==
  
 
Please see the CELF wiki for more information:
 
Please see the CELF wiki for more information:
[http://tree.celinuxforum.org/pubwiki/moin.cgi/AudioVideoGraphicsWorkingGroup Audio Video Graphics Working Group]
+
[http://www.celinuxforum.org/CelfPubWiki/AudioVideoGraphicsWorkingGroup Audio Video Graphics Working Group]
 +
 
 +
Some AVWG related [[Outdated pages]]
  
 
== DirectFB study ==
 
== DirectFB study ==
 
=== What is DirectFB, How Does DirectFB Work ===
 
=== What is DirectFB, How Does DirectFB Work ===
[[What Direct F B]]
+
[[DirectFB]]
  
 
=== Sample Implementation of DirectFB on an embedded Linux platform ===
 
=== Sample Implementation of DirectFB on an embedded Linux platform ===
[[Port Direct F B]]
+
[[Porting DirectFB]]
  
 
=== Some DirectFB benchmark on embedded Linux platform ===
 
=== Some DirectFB benchmark on embedded Linux platform ===
[[Benchmark Direct F B]]
+
[[Benchmark DirectFB]]
  
 
== Related Projects ==
 
== Related Projects ==
Line 29: Line 43:
 
*http://linuxconsole.sourceforge.net/fbdev/HOWTO/
 
*http://linuxconsole.sourceforge.net/fbdev/HOWTO/
 
*http://www.tldp.org/HOWTO/Framebuffer-HOWTO.html
 
*http://www.tldp.org/HOWTO/Framebuffer-HOWTO.html
 +
 +
 +
Stores the frame information in the videos ....
 +
 
====DirectFB====
 
====DirectFB====
 
*http://www.directfb.org/
 
*http://www.directfb.org/
 
*http://www.directfb.org/documentation/DirectFB_overview_V0.2.pdf
 
*http://www.directfb.org/documentation/DirectFB_overview_V0.2.pdf
 +
*[[DirectFB]]
 +
====V4L2====
 +
*http://www.linuxtv.org/
 +
*http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html
 +
 +
====X11====
 +
*http://www.x.org/
 +
*[[X11]]
 
====NanoX====
 
====NanoX====
 
*http://www.microwindows.org/
 
*http://www.microwindows.org/
====SDL====
 
*http://www.libsdl.org/
 
====Gstreamer====
 
*http://www.gstreamer.net/
 
 
====OpenGL (OpenML)====
 
====OpenGL (OpenML)====
 
*http://www.opengl.org/
 
*http://www.opengl.org/
 
*http://www.khronos.org/opengles/
 
*http://www.khronos.org/opengles/
 +
====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/ The Enlightenment Foundation Libraries] 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.
 +
See Gustavo Barbieri conference at Embedded Linux Conference Europe 2008, [http://tree.celinuxforum.org/CelfPubWiki/ELCEurope2008Presentations?action=AttachFile&do=get&target=Rich_GUI_without_pain.pdf slides] and [http://free-electrons.com/pub/video/2008/elce/elce2008-barbieri-rich-gui-without-pain.ogv video]. Gustavo's company, [http://profusion.mobi/ ProFUSION], offers services around EFL.
 +
 +
====Qt====
 +
*Qt is a crossplatform graphics toolkit with support for framebuffer and X. Has advanced animation capabilities using [http://doc.trolltech.com/4.5/graphicsview.html Graphics View] framework.
 +
 +
====Storyboard Suite (Storyboard Designer/Engine from Crank Software)====
 +
*http://www.cranksoftware.com/storyboard The Storyboard Suite from Crank Software provides a complete environment to design, develop and deploy embedded user interfaces across multiple rendering technologies (DirectFB, FBDev, SDL, OpenGL, OpenVG, ...), multiple operating systems (Linux, QNX, VxWorks, WinCE/Win32, ...) and multiple architectures (x86, ARM, PPC, SH, ...).  The Storyboard approach is unique in that it has been developed to incorporate content directly from graphic designers and deploy data bundles that are specifically optimized for each OS/CPU/Rendering technology set.
 +
 +
====GStreamer====
 +
*http://www.gstreamer.net/ is a open-source multimedia framework allowing the creation of multimedia applications by  assembling processing nodes (called elements) in a graph (called pipeline). The range of plugins available allow easy creation of playback applications, recorders, audio/video editors, streaming servers, visioconference system. The variety of plugins range from decoders, encoders, muxer, demuxers, network sources for a variety of protocols, hardware accelerated features (decoding, display, capture,..), video filters. Its low-level flexibility also makes it sometimes complex to use, but is assisted by several convenience plugins linke playbin, decodebin, camerabin making simple use-cases easy to use. It is built on top of GLib/GObject, making it easily portable to any new platform. It is being used in more and more in embedded devices due to the availability of quality LGPL plugins for various format support, support for lip-sync, support for network streaming, standard linux API, and easy wrapability of hardware devices like DSP-accelerated codecs.
 +
 +
====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. Note that this library is GPL licensed so your application must be GPL compatible 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====
 +
* 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
  
 
=== Video in ===
 
=== Video in ===
 
====V4L[2]====
 
====V4L[2]====
 
*http://www.kernel.org/ (1) KD26/video4linux
 
*http://www.kernel.org/ (1) KD26/video4linux
*http://bytesex.org/v4l/
+
*http://www.linuxtv.org
 +
*http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html
 +
 
 
====OpenML====
 
====OpenML====
 
*http://www.khronos.org/openml/  
 
*http://www.khronos.org/openml/  
Line 60: Line 111:
 
====OpenAL====
 
====OpenAL====
 
*http://www.openal.org/
 
*http://www.openal.org/
 +
====PulseAudio====
 +
*http://pulseaudio.org PulseAudio is a multi-platform sound server which brings a lot of cool features to Linux sound. Why you want to use it for for embedded systems (besides having support for cool stuff like bluetooth audio, apple airport etc) is described here: http://0pointer.de/blog/projects/pulse-glitch-free.html
  
 
=== Users of AVG ===
 
=== Users of AVG ===
Line 75: Line 128:
 
*http://www.funktronics.ca/openpvr/
 
*http://www.funktronics.ca/openpvr/
 
*http://sourceforge.net/projects/openpvr/
 
*http://sourceforge.net/projects/openpvr/
 +
====Morphine.TV====
 +
*http://wiki.morphine.tv
 +
*http://sourceforge.net/projects/mms4l/
  
 
=== Other ===
 
=== Other ===
====TV Linux Alliance====
+
====ARIB architecture====
*http://www.tvlinuxalliance.com/
+
*http://www.arib.or.jp/english/html/overview/ov/std_b24.html
====TV Anytime====
+
 
*http://www.tv-anytime.org/  
+
====Boot Splash====
 +
*[http://www.BootSplash.org/ www.bootsplash.org]
 +
 
 
====Digital Home Working Group====
 
====Digital Home Working Group====
 
*http://www.dhwg.org/
 
*http://www.dhwg.org/
====Boot Splash====
+
 
*http://www.[[Boot Splash]].org/
+
====Disko Framework====
 +
*http://www.diskohq.org
 +
*http://www.directfb.org
 +
 
 
====Free Type====
 
====Free Type====
 
*http://freetype.sourceforge.net/freetype2/
 
*http://freetype.sourceforge.net/freetype2/
====ARIB architecture====
+
 
*http://www.arib.or.jp/english/html/overview/ov/std_b24.html
+
====UPnP====
+
* see [[UPnP]]
 +
 
 +
====TV Anytime====
 +
*http://www.tv-anytime.org/  
 +
 
 +
====TV Linux Alliance====
 +
*http://www.tvlinuxalliance.com/
 +
 
 
'''Note (1)''' - KD26 refers to the [http://www.kernel.org/pub/linux/kernel/v2.6/ Linux 2.6.X kernel] tree, which has a "Documentation" sub-directory.
 
'''Note (1)''' - KD26 refers to the [http://www.kernel.org/pub/linux/kernel/v2.6/ Linux 2.6.X kernel] tree, which has a "Documentation" sub-directory.
 +
 
[[Category:Multimedia]]
 
[[Category:Multimedia]]
 +
[[Category:CE Linux Working Groups]]

Revision as of 11:00, 13 February 2013

Robot64x64.png ELC2013 Tech Zone Contest

To add a link to your new page use the following wiki link format:

[[My New Page]]

Save this page/section and your new page link will appear in Red. Click it and begin editing your new page. Remember to conduct all Discussions on the Discussion page associated to every wiki page. The link is at the top, directly above the page title.


Introduction

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

Some AVWG related Outdated pages

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


Stores the frame information in the videos ....

DirectFB

V4L2

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)

The Enlightenment Foundation Libraries 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. See Gustavo Barbieri conference at Embedded Linux Conference Europe 2008, slides and video. Gustavo's company, ProFUSION, offers services around EFL.

Qt

  • Qt is a crossplatform graphics toolkit with support for framebuffer and X. Has advanced animation capabilities using Graphics View framework.

Storyboard Suite (Storyboard Designer/Engine from Crank Software)

  • http://www.cranksoftware.com/storyboard The Storyboard Suite from Crank Software provides a complete environment to design, develop and deploy embedded user interfaces across multiple rendering technologies (DirectFB, FBDev, SDL, OpenGL, OpenVG, ...), multiple operating systems (Linux, QNX, VxWorks, WinCE/Win32, ...) and multiple architectures (x86, ARM, PPC, SH, ...). The Storyboard approach is unique in that it has been developed to incorporate content directly from graphic designers and deploy data bundles that are specifically optimized for each OS/CPU/Rendering technology set.

GStreamer

  • http://www.gstreamer.net/ is a open-source multimedia framework allowing the creation of multimedia applications by assembling processing nodes (called elements) in a graph (called pipeline). The range of plugins available allow easy creation of playback applications, recorders, audio/video editors, streaming servers, visioconference system. The variety of plugins range from decoders, encoders, muxer, demuxers, network sources for a variety of protocols, hardware accelerated features (decoding, display, capture,..), video filters. Its low-level flexibility also makes it sometimes complex to use, but is assisted by several convenience plugins linke playbin, decodebin, camerabin making simple use-cases easy to use. It is built on top of GLib/GObject, making it easily portable to any new platform. It is being used in more and more in embedded devices due to the availability of quality LGPL plugins for various format support, support for lip-sync, support for network streaming, standard linux API, and easy wrapability of hardware devices like DSP-accelerated codecs.

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. Note that this library is GPL licensed so your application must be GPL compatible 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

PulseAudio

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.