## giosink

giosink — Write to any GIO-supported location

## Synopsis

    struct              GstGioSink;

## Object Hierarchy

      GObject
       +----GstObject
             +----GstElement
                   +----GstBaseSink
                         +----GstGioBaseSink
                               +----GstGioSink

## Implemented Interfaces

GstGioSink implements GstURIHandler.

## Properties

      "location"                 gchar*                : Read / Write
      "file"                     GFile*                : Read / Write

## Description

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

    1

    gst-launch -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.

    1

    gst-launch -v filesrc location=foo.mp3 ! mad ! flacenc ! giosink location=smb://othercomputer/foo.flac

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

    1

    gst-launch -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.

## Synopsis

### Element Information

plugin | gio
author | René Stadler <mail@renestadler.de>, Sebastian Dröge <sebastian.droege@collabora.co.uk>
class | Sink/File

### Element Pads

name | sink
direction | sink
presence | always
details | ANY

## Details

### struct GstGioSink

    struct GstGioSink;

Opaque data structure.

## Property Details

### The `"location"` property

      "location"                 gchar*                : Read / Write

URI location to write to.

Default value: NULL

### The `"file"` property

      "file"                     GFile*                : Read / Write

`GFile` to write to.

Since 0.10.20

## See Also

GstFileSink, GstGnomeVFSSink, GstGioSrc