Gstreamer

Gstreamer as installed on the Pre is version 0.10.21, along with a patch. The patch seems to do minor error handling, along with registry adjustment. The registry in Gstreamer is used to "install" new plugins that are added to the library (plugins are generally located in /usr/lib/gstreamer-0.10/). As of Gstreamer version 0.10, this is an automated service, no user entry is neccesary to update plugins. In fact, each time "gst-inspect" is ran, plugins should update automatically. For an unknown reason, Palm has decided to edit it in such a way that this is no longer the case. One theory is that Palm-built plugins were not registering correctly, so they adjusted the mechanism of the gst registry. Palm did include, however, a script to force registering manually. This is located in /usr/bin/PmMediaGstBinRegistryApp (credit to ajames for discovering this functionality).

Many possibilities, including alternative audio and video filetype support (encoding and decoding), as well as video and audio streaming with the Pre as the source (icecast, etc) exist. It should even be possible to create an app to encode or recode various types of audio/video files into other formats, right on your phone.

To build working (registerable) plugins, it seems you must have a very specific compiling environment that is compatible with the Pre's native environment. The same applies whether you are on an arm host or have a cross compiling environment. The following are libraries or applications that are found to be compatible with the Pre's native runtime environment. glibc 2.5 (2.6.1 however is confirmed to work for the majority of applications, 2.7 fails on gst plugin registering), glib 2.14.4 (2.0-14.4), gstreamer 0.10.21, base 0.10.21, bad 0.10.9, liboil >0.3.8

Additional information can be found at the VideoRecording wiki page.