This plugin reads data from a local or remote location specified by an URI. This location can be specified using any protocol supported by the GIO library or it's VFS backends. Common protocols are 'file', 'http', 'ftp', or 'smb'.

If an URI or GFile is not mounted giosrc will post a message of type GST_MESSAGE_ELEMENT with name "not-mounted" on the bus. The message also contains the GFile and the corresponding URI. Applications can use the "not-mounted" message to mount the GFile by calling g_file_mount_enclosing_volume and then restart the pipeline after the mounting has succeeded. Note that right after the "not-mounted" message a normal error message is posted on the bus which should be ignored if "not-mounted" is handled by the application, for example by calling gst_bus_set_flushing(bus, TRUE) after the "not-mounted" message was received and gst_bus_set_flushing(bus, FALSE) after the mounting was successful.

Example launch lines

 gst-launch-1.0 -v giosrc location=file:///home/joe/ ! fakesink

The above pipeline will simply read a local file and do nothing with the data read. Instead of giosrc, we could just as well have used the filesrc element here.

 gst-launch-1.0 -v giosrc location=smb://othercomputer/ ! filesink location=/home/joe/

The above pipeline will copy a file from a remote host to the local file system using the Samba protocol.

 gst-launch-1.0 -v giosrc location=smb://othercomputer/demo.mp3 ! decodebin ! audioconvert ! audioresample ! autoaudiosink

The above pipeline will read and decode and play an mp3 file from a SAMBA server.



Implemented interfaces

Factory details

Authors: – René Stadler , Sebastian Dröge


Rank – secondary

Plugin – gio

Package – GStreamer Base Plug-ins

Pad Templates





Object typeGstPad



“file” GFile *

GFile to read from.

Flags : Read / Write


“location” gchararray

URI location to read from

Flags : Read / Write

Default value : NULL

The results of the search are