[gst-devel] your chance to merge Ardour and GStreamer

Paul Davis paul at linuxaudiosystems.com
Wed Feb 27 14:51:53 CET 2008


Yes folks, its finally happened. I've finally conceded that Ardour might
actually have a role for GStreamer :)

I've just finished the work to use Apple's ExtAudioFile API to add
support for a number of audio file formats to Ardour on OS X, formats
not handled by libsndfile. It has occured to me that we could follow an
identical pathway on Linux (and OS X) to add support for files
handleable by GStreamer/GstPlugins that are not handled by libsndfile.
So this is a chance for some brave soul to unite GStreamer with Ardour
(and who knows where it will lead ...)

What is needed is relatively simple. Really nothing more than this
class:

class GstAudioFileSource : public AudioFileSource {
 public: 
	GstAudioFileSource (const std::string& path);
	~GstAudioFileSource ();

	/* should be obvious */
	float sample_rate () const;

	static int get_soundfile_info (const std::string& path, 
               SoundFileInfo& _info, std::string& error_msg);

  protected:
	/* read cnt samples from one channel, in 32 bit float format, 
           starting at start 
         */

	nframes_t read_unlocked (float *dst, 
                          nframes_t start, nframes_t cnt) const;

};

that is: code to initialize the object give a path, a static function to
return length, channel count and sample rate info given a path, and a
method to read a given number of audio samples from a specified
location.

Are there existing helper libs for Gst that would make this trivial to
implement? Is anyone interested in helping out with this? The result
would be:
   
   (a) in combination with Fluendo's MP3 support, Ardour could read
        MP3 files
   (b) in combination with existing Gstreamer plugins, Ardour could
        import (and edit) the audio from existing A/V files.

--p






More information about the gstreamer-devel mailing list