giosink

This plugin writes incoming data to 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', 'ftp', or 'smb'.

If the URI or GFile already exists giosink will post a message of type GST_MESSAGE_ELEMENT with name "file-exists" on the bus. The message also contains the GFile and the corresponding URI. Applications can use the "file-exists" message to notify the user about the problem and to set a different target location or to remove the existing file. Note that right after the "file-exists" message a normal error message is posted on the bus which should be ignored if "file-exists" is handled by the application, for example by calling gst_bus_set_flushing(bus, TRUE) after the "file-exists" message was received and gst_bus_set_flushing(bus, FALSE) after the problem is resolved.

Similar to the "file-exist" message a "not-mounted" message is posted on the bus if the target location is not mounted yet and needs to be mounted. This message can be used by application to mount the location and retry after the location was mounted successfully.

Example pipelines

 gst-launch-1.0 -v filesrc location=input.xyz ! giosink location=file:///home/joe/out.xyz

The above pipeline will simply copy a local file. Instead of giosink, we could just as well have used the filesink element here.

 gst-launch-1.0 -v uridecodebin uri=file:///path/to/audio.file ! audioconvert ! flacenc ! giosink location=smb://othercomputer/foo.flac

The above pipeline will re-encode an audio file into FLAC format and store it on a remote host using the Samba protocol.

 gst-launch-1.0 -v audiotestsrc num-buffers=100 ! vorbisenc ! oggmux ! giosink location=file:///home/foo/bar.ogg

The above pipeline will encode a 440Hz sine wave to Ogg Vorbis and stores it in the home directory of user foo.

Hierarchy

GObject
    ╰──GInitiallyUnowned
        ╰──GstObject
            ╰──GstElement
                ╰──GstBaseSink
                    ╰──GstGioBaseSink
                        ╰──giosink

Factory details

Authors: – René Stadler , Sebastian Dröge

Classification:Sink/File

Rank – secondary

Plugin – gstgio

Package – GStreamer Base Plug-ins

Pad Templates

sink

ANY

Presencealways

Directionsink

Object typeGstPad


Properties

async

“async” gboolean

Go asynchronously to PAUSED

Flags : Read / Write

Default value : true


blocksize

“blocksize” guint

Size in bytes to pull per buffer (0 = default)

Flags : Read / Write

Default value : 4096


enable-last-sample

“enable-last-sample” gboolean

Enable the last-sample property

Flags : Read / Write

Default value : true


file

“file” GFile *

GFile to write to.

Flags : Read / Write


last-sample

“last-sample” GstSample *

The last sample received in the sink

Flags : Read


location

“location” gchararray

URI location to write to

Flags : Read / Write

Default value : NULL


max-bitrate

“max-bitrate” guint64

The maximum bits per second to render (0 = disabled)

Flags : Read / Write

Default value : 0


max-lateness

“max-lateness” gint64

Maximum number of nanoseconds that a buffer can be late before it is dropped (-1 unlimited)

Flags : Read / Write

Default value : 18446744073709551615


processing-deadline

“processing-deadline” guint64

Maximum processing time for a buffer in nanoseconds

Flags : Read / Write

Default value : 20000000


qos

“qos” gboolean

Generate Quality-of-Service events upstream

Flags : Read / Write

Default value : false


render-delay

“render-delay” guint64

Additional render delay of the sink in nanoseconds

Flags : Read / Write

Default value : 0


stats

“stats” GstStructure *

Sink Statistics

Flags : Read

Default value :

application/x-gst-base-sink-stats, average-rate=(double)0, dropped=(guint64)0, rendered=(guint64)0;

sync

“sync” gboolean

Sync on the clock

Flags : Read / Write

Default value : false


throttle-time

“throttle-time” guint64

The time to keep between rendered buffers (0 = disabled)

Flags : Read / Write

Default value : 0


ts-offset

“ts-offset” gint64

Timestamp offset in nanoseconds

Flags : Read / Write

Default value : 0


The results of the search are