## giostreamsink giostreamsink — Write to any GIO stream |

## Properties

GOutputStream * | stream | Read / Write

## Types and Values

struct | GstGioStreamSink

## Object Hierarchy

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

## Description

This plugin writes incoming data to a custom GIO GOutputStream.

It can, for example, be used to write a stream to memory with a GMemoryOuputStream or to write to a file with a GFileOuputStream.

### Example code

The following example writes the received data to a GMemoryOutputStream.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #include <gst/gst.h>
    #include <gio/gio.h>

    ...

    GstElement *sink;
    GMemoryOuputStream *stream;
    // out_data will contain the received data
    guint8 *out_data;

    ...

    stream = G_MEMORY_OUTPUT_STREAM (g_memory_output_stream_new (NULL, 0,
              (GReallocFunc) g_realloc, (GDestroyNotify) g_free));
    sink = gst_element_factory_make ("giostreamsink", "sink");
    g_object_set (G_OBJECT (sink), "stream", stream, NULL);

    ...

    // after processing get the written data
    out_data = g_memory_ouput_stream_get_data (G_MEMORY_OUTPUT_STREAM (stream));

    ...

## Synopsis

### Element Information

plugin | gio
author | Sebastian Dröge <sebastian.droege@collabora.co.uk>
class | Sink

### Element Pads

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

## Functions

## Types and Values

### struct GstGioStreamSink

    struct GstGioStreamSink;

Opaque data structure.

## Property Details

### The `“stream”` property

      “stream”                   GOutputStream *

Stream to write to.

Flags: Read / Write