FmInputGst
Reads audio from a GStreamer pipeline.
Element info
| Inherits from | FmInput? |
| Input ports | (none) |
| Output ports | 1 |
| Depends on other elements | (none) |
| Depends on external libraries | gstreamer-0.10 gstreamer-plugins-base-0.10 |
| Available on platforms | Linux, OS X, Win32 |
Status
Works under most conditions.
Technical description
The FmInputGst element is one of the most important elements available to the fm_server, as it's the only input element able to read audio files. It uses the GStreamer framework (0.10 release series) to decode and convert input files to the internal audio representation of the fm_server.
It has a complex buffering structure that allows the pipeline thread to read audio data without use of locking, while GStreamer itself can't mantain these realtime requirements. It safely handles seeking requests and tries to honor them with the minimun possible latency.
This highly complex element is divided into three parts:
- FmInputGst
- the main part, which implements the standard FmElement interface, and the parts of it which works in the pipeline thread.
- GstFmSink?
- a statically-linked GstElement which acts as a sink for the GStreamer pipeline. It handles audio data to FmInputGst using several ringbuffers and performs seeking requests.
- FmInputGstCommon?
- a small data structure which contains data shared between FmInputGst and GstFmSink?. It offers the implementation of FmChunk?.
Source
Directory: /fm_server/trunk/src/fm_input_gst
