GstTranscoder

GstTranscoder — High level API to transcode media files from one format to any other format using the GStreamer framework.

Functions

Properties

gboolean avoid-reencoding Read / Write
char * dest-uri Read / Write / Construct Only
guint64 duration Read
GstElement * pipeline Read
guint64 position Read
guint position-update-interval Read / Write
GstEncodingProfile * profile Read / Write / Construct Only
GstTranscoderSignalDispatcher * signal-dispatcher Write / Construct Only
char * src-uri Read / Write / Construct Only

Signals

void done No Hooks
void duration-changed No Hooks
void position-updated No Hooks

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstTranscoder

Description

Functions

gst_transcoder_new ()

GstTranscoder *
gst_transcoder_new (const gchar *source_uri,
                    const gchar *dest_uri,
                    const gchar *encoding_profile);

Parameters

source_uri

The URI of the media stream to transcode

 

dest_uri

The URI of the destination of the transcoded stream

 

encoding_profile

The serialized GstEncodingProfile defining the output format. Have a look at the GstEncodingProfile documentation to find more about the serialization format.

 

Returns

a new GstTranscoder instance


gst_transcoder_new_full ()

GstTranscoder *
gst_transcoder_new_full (const gchar *source_uri,
                         const gchar *dest_uri,
                         GstEncodingProfile *profile,
                         GstTranscoderSignalDispatcher *signal_dispatcher);

Parameters

source_uri

The URI of the media stream to transcode

 

dest_uri

The URI of the destination of the transcoded stream

 

profile

The GstEncodingProfile defining the output format have a look at the GstEncodingProfile documentation to find more about the serialization format.

 

signal_dispatcher

The GstTranscoderSignalDispatcher to be used to dispatch the various signals.

 

Returns

a new GstTranscoder instance


gst_transcoder_run ()

gboolean
gst_transcoder_run (GstTranscoder *self,
                    GError **error);

Run the transcoder task synchonously. You can connect to the 'position' signal to get information about the progress of the transcoding.

Parameters

self

The GstTranscoder to run

 

error

An error to be set if transcoding fails.

[allow-none]

gst_transcoder_set_cpu_usage ()

void
gst_transcoder_set_cpu_usage (GstTranscoder *self,
                              gint cpu_usage);

Sets cpu_usage as target percentage CPU usage of the process running the transcoding task. It will modulate the transcoding speed to reach that target usage.

Parameters

self

The GstTranscoder to limit CPU usage on.

 

cpu_usage

The percentage of the CPU the process running the transcoder should try to use. It takes into account the number of cores avalaible.

 

gst_transcoder_run_async ()

void
gst_transcoder_run_async (GstTranscoder *self);

Run the transcoder task asynchonously. You should connect to the 'done' signal to be notified about when the transcoding is done, and to the 'error' signal to be notified about any error.

Parameters

self

The GstTranscoder to run

 

gst_transcoder_set_position_update_interval ()

void
gst_transcoder_set_position_update_interval
                               (GstTranscoder *self,
                                guint interval);

Set interval in milliseconds between two position-updated signals. Pass 0 to stop updating the position.

Parameters

self

GstTranscoder instance

 

interval

interval in ms

 

gst_transcoder_get_source_uri ()

gchar *
gst_transcoder_get_source_uri (GstTranscoder *self);

Gets the URI of the currently-transcoding stream.

Parameters

self

GstTranscoder instance

 

Returns

a string containing the URI of the source stream. g_free() after usage.

[transfer full]


gst_transcoder_get_dest_uri ()

gchar *
gst_transcoder_get_dest_uri (GstTranscoder *self);

Gets the URI of the destination of the transcoded stream.

Parameters

self

GstTranscoder instance

 

Returns

a string containing the URI of the destination of the transcoded stream. g_free() after usage.

[transfer full]


gst_transcoder_get_position_update_interval ()

guint
gst_transcoder_get_position_update_interval
                               (GstTranscoder *self);

Parameters

self

GstTranscoder instance

 

Returns

current position update interval in milliseconds


gst_transcoder_get_position ()

GstClockTime
gst_transcoder_get_position (GstTranscoder *self);

Parameters

self

GstTranscoder instance

 

Returns

the absolute position time, in nanoseconds, of the transcoding stream.


gst_transcoder_get_duration ()

GstClockTime
gst_transcoder_get_duration (GstTranscoder *self);

Retrieves the duration of the media stream that self represents.

Parameters

self

GstTranscoder instance

 

Returns

the duration of the transcoding media stream, in nanoseconds.


gst_transcoder_get_pipeline ()

GstElement *
gst_transcoder_get_pipeline (GstTranscoder *self);

Parameters

self

GstTranscoder instance

 

Returns

The internal uritranscodebin instance.

[transfer full]


gst_transcoder_get_avoid_reencoding ()

gboolean
gst_transcoder_get_avoid_reencoding (GstTranscoder *self);

Parameters

self

The GstTranscoder to check whether reencoding is avoided or not.

 

Returns

TRUE if the transcoder tries to avoid reencoding streams where reencoding is not strictly needed, FALSE otherwise.


gst_transcoder_set_avoid_reencoding ()

void
gst_transcoder_set_avoid_reencoding (GstTranscoder *self,
                                     gboolean avoid_reencoding);

Parameters

self

The GstTranscoder to set whether reencoding should be avoided or not.

 

avoid_reencoding

TRUE if the transcoder should try to avoid reencoding streams where * reencoding is not strictly needed, FALSE otherwise.

 

Types and Values

GstTranscoder

typedef struct _GstTranscoder GstTranscoder;

Property Details

The “avoid-reencoding” property

  “avoid-reencoding”         gboolean

Whether to re-encode portions of compatible video streams that lay on segment boundaries.

Owner: GstTranscoder

Flags: Read / Write

Default value: FALSE


The “dest-uri” property

  “dest-uri”                 char *

Source URI.

Owner: GstTranscoder

Flags: Read / Write / Construct Only

Default value: NULL


The “duration” property

  “duration”                 guint64

Duration.

Owner: GstTranscoder

Flags: Read

Default value: 18446744073709551615


The “pipeline” property

  “pipeline”                 GstElement *

GStreamer pipeline that is used.

Owner: GstTranscoder

Flags: Read


The “position” property

  “position”                 guint64

Current Position.

Owner: GstTranscoder

Flags: Read

Default value: 18446744073709551615


The “position-update-interval” property

  “position-update-interval” guint

Interval in milliseconds between two position-updated signals.Pass 0 to stop updating the position.

Owner: GstTranscoder

Flags: Read / Write

Allowed values: <= 10000

Default value: 100


The “profile” property

  “profile”                  GstEncodingProfile *

The GstEncodingProfile to use.

Owner: GstTranscoder

Flags: Read / Write / Construct Only


The “signal-dispatcher” property

  “signal-dispatcher”        GstTranscoderSignalDispatcher *

Dispatcher for the signals to e.g. event loops.

Owner: GstTranscoder

Flags: Write / Construct Only


The “src-uri” property

  “src-uri”                  char *

Source URI.

Owner: GstTranscoder

Flags: Read / Write / Construct Only

Default value: NULL

Signal Details

The “done” signal

void
user_function (GstTranscoder *gsttranscoder,
               gpointer       user_data)

Flags: No Hooks


The “duration-changed” signal

void
user_function (GstTranscoder *gsttranscoder,
               guint64        arg1,
               gpointer       user_data)

Flags: No Hooks


The “position-updated” signal

void
user_function (GstTranscoder *gsttranscoder,
               guint64        arg1,
               gpointer       user_data)

Flags: No Hooks