summaryrefslogtreecommitdiff
path: root/GstOpenMAX.mdwn
blob: 8b7cf6dba82e7f8130d36fc201422bf94f3305ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146

**gst-openmax** is a GStreamer plug-in that allows communication with OpenMAX IL components. 

OpenMAX IL is an industry standard that provides an abstraction layer for computer graphics, video, and sound routines. 

This project is a collaboration between [[Nokia|http://www.nokia.com]], [[NXP|http://www.nxp.com]], [[Collabora|http://www.collabora.co.uk]], [[STMicroelectronics|http://www.st.com]], [[Texas Instruments|http://www.ti.com]], and the open source community. 


## What's the status?

Many component wrappers have been developed for different OpenMAX IL implementations 


### ti (OMAP-3430)

Hardware-accelerated through DSP. 

* H.264 video encoder/decoder 
* H.263 video encoder/decoder 
* MPEG4 video encoder/decoder 
* WMV video decoder 
* JPEG image encoder 

### Maemo

Uses bellagio. 

* MP3 audio decoder 
* AAC audio encoder/decoder 
* G.711 audio encoder/decoder 
* G.719 audio encoder/decoder 
* iLBC audio encoder/decoder 
* AMR-NB audio encoder/decoder 
* AMR-WB audio encoder/decoder 

### bellagio

* MP3 audio decoder (libmad) 
* Vorbis audio decoder 
* MPEG4 video decoder (FFmpeg) 
* H.263 video decoder (FFmpeg) 
* Audio sink (ALSA... not maintained) 
We are missing: 

* OpenMAX IL facilities (tunneling, clock) 

## How to get it

gst-openmax is already distributed in many embedded platforms, such as Angstrom and Maemo. If you need the source-code it's available just as any other GStreamer modules. 

* [[git repository|http://cgit.freedesktop.org/gstreamer/gst-openmax/]] 

## How to try it

It depends on your platform, but if want to try on x86 you can use Bellagio's implementation: 


### omxil

So, first install Bellagio's omxil from [[here|http://omxil.sourceforge.net/]], or [[direct link|http://downloads.sourceforge.net/omxil/libomxil-bellagio-0.9.1.tar.gz]]. Version 0.9.1 is recommended. 

Install as usual: 


[[!format txt """
./configure --prefix="$HOME/omx"
make
make install
"""]]
Register the components: 


[[!format txt """
$HOME/omx/bin/omxregister-bellagio -v
"""]]
You'll get an output like this: 


[[!format txt """
 Scanning directory /home/felipec/omx/lib/bellagio/

 Scanning openMAX libary /home/felipec/omx/lib/bellagio/libomxvorbis.so
Component OMX.st.audio_decoder.ogg.single registered
  Specific role OMX.st.audio_decoder.ogg.single registered

 1 OpenMAX IL ST static components with 1 roles successfully scanned
"""]]
Make sure you have: 

* "OMX.st.audio_decoder.mp3.mad" for MP3 decoding 
* "OMX.st.audio_decoder.ogg.single" for Vorbis decoding 
* "OMX.st.video_decoder.mpeg4" for MPEG4 video decoding 

### gst-openmax

It's always better to get the latest code: 


[[!format txt """
git clone git://anongit.freedesktop.org/gstreamer/gst-openmax
./autogen.sh --noconfigure
./configure --prefix="$HOME/omx"
make install
"""]]

### Running

To actually use the plug-in: 
[[!format txt """
export GST_PLUGIN_PATH=$HOME/omx/lib/gstreamer-0.10
export LD_LIBRARY_PATH=$HOME/omx/lib
"""]]
You'll be able to play audio and video with MP3, Vorbis, MPEG4, H.264, or H.263 content using Bellagio's components. 

For MP3 you'll also need the mp3parse element, otherwise you'll get: 
[[!format txt """
GStreamer-CRITICAL **: gst_segment_clip: assertion `segment->format == format' failed
"""]]
If you want to see what's happening: 
[[!format txt """
export GST_DEBUG=omx:4
"""]]

## How to contribute

We have a [[mailing list|https://lists.sourceforge.net/lists/listinfo/gstreamer-openmax]]. You can [[subscribe|https://lists.sourceforge.net/lists/listinfo/gstreamer-openmax]], check the [[archives|http://sourceforge.net/mailarchive/forum.php?forum_name=gstreamer-openmax]] or send a direct e-mail to [[gstreamer-openmax@lists.sourceforge.net|mailto:gstreamer-openmax@lists.sourceforge.net]]. 

If you find any issues please fill a bug report [[here|http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer&component=gst-openmax]]. 


## Roadmap

* Merge tunneling branch 
* Documentation 
* More unit tests 
* First real release 

## News

* [[gst-openmax on the beagleboard (video)|http://www.youtube.com/watch?v=EH4ZSpehNQw]] 
* [[Maemo News - GstOpenMAX kicked off|http://maemo.org/news/view/1183357408.html]] 

## External Links

* [[OpenMAX's homepage|http://www.khronos.org/openmax/]] 
* [[Bellagio's homepage|http://omxil.sourceforge.net/]]