gstplayer

gstplayer — Player

Synopsis

                    GstPlayer;
GstPlayer *         gst_player_new                      (GstPlayerVideoRenderer *video_renderer,
                                                         GstPlayerSignalDispatcher *signal_dispatcher);
void                gst_player_play                     (GstPlayer *player);
void                gst_player_pause                    (GstPlayer *player);
void                gst_player_stop                     (GstPlayer *player);
void                gst_player_seek                     (GstPlayer *player,
                                                         GstClockTime position);
void                gst_player_set_uri                  (GstPlayer *player,
                                                         const gchar *uri);
gchar *             gst_player_get_uri                  (GstPlayer *player);
GstClockTime        gst_player_get_duration             (GstPlayer *player);
GstClockTime        gst_player_get_position             (GstPlayer *player);
void                gst_player_set_volume               (GstPlayer *player,
                                                         gdouble val);
void                gst_player_set_mute                 (GstPlayer *player,
                                                         gboolean val);
gdouble             gst_player_get_volume               (GstPlayer *player);
gboolean            gst_player_get_mute                 (GstPlayer *player);
GstElement *        gst_player_get_pipeline             (GstPlayer *player);
void                gst_player_set_position_update_interval
                                                        (GstPlayer *player,
                                                         guint interval);
guint               gst_player_get_position_update_interval
                                                        (GstPlayer *player);
enum                GstPlayerState;
const gchar *       gst_player_state_get_name           (GstPlayerState state);
#define             GST_PLAYER_ERROR
enum                GstPlayerError;
const gchar *       gst_player_error_get_name           (GstPlayerError error);
GstPlayerMediaInfo * gst_player_get_media_info          (GstPlayer *player);
GList *             gst_player_get_audio_streams        (const GstPlayerMediaInfo *info);
GList *             gst_player_get_video_streams        (const GstPlayerMediaInfo *info);
GList *             gst_player_get_subtitle_streams     (const GstPlayerMediaInfo *info);
gboolean            gst_player_set_audio_track          (GstPlayer *player,
                                                         gint stream_index);
gboolean            gst_player_set_video_track          (GstPlayer *player,
                                                         gint stream_index);
gboolean            gst_player_set_subtitle_track       (GstPlayer *player,
                                                         gint stream_index);
GstPlayerAudioInfo * gst_player_get_current_audio_track (GstPlayer *player);
GstPlayerVideoInfo * gst_player_get_current_video_track (GstPlayer *player);
GstPlayerSubtitleInfo * gst_player_get_current_subtitle_track
                                                        (GstPlayer *player);
void                gst_player_set_audio_track_enabled  (GstPlayer *player,
                                                         gboolean enabled);
void                gst_player_set_video_track_enabled  (GstPlayer *player,
                                                         gboolean enabled);
void                gst_player_set_subtitle_track_enabled
                                                        (GstPlayer *player,
                                                         gboolean enabled);
gboolean            gst_player_set_subtitle_uri         (GstPlayer *player,
                                                         const gchar *uri);
gchar *             gst_player_get_subtitle_uri         (GstPlayer *player);
gboolean            gst_player_set_visualization        (GstPlayer *player,
                                                         const gchar *name);
void                gst_player_set_visualization_enabled
                                                        (GstPlayer *player,
                                                         gboolean enabled);
gchar *             gst_player_get_current_visualization
                                                        (GstPlayer *player);
enum                GstPlayerColorBalanceType;
const gchar *       gst_player_color_balance_type_get_name
                                                        (GstPlayerColorBalanceType type);
gboolean            gst_player_has_color_balance        (GstPlayer *player);
void                gst_player_set_color_balance        (GstPlayer *player,
                                                         GstPlayerColorBalanceType type,
                                                         gdouble value);
gdouble             gst_player_get_color_balance        (GstPlayer *player,
                                                         GstPlayerColorBalanceType type);
gdouble             gst_player_get_rate                 (GstPlayer *player);
void                gst_player_set_rate                 (GstPlayer *player,
                                                         gdouble rate);
                    GstPlayerSignalDispatcher;
struct              GstPlayerSignalDispatcherInterface;
                    GstPlayerVideoRenderer;
struct              GstPlayerVideoRendererInterface;

Object Hierarchy

  GObject
   +----GInitiallyUnowned
         +----GstObject
               +----GstPlayer
  GEnum
   +----GstPlayerState
  GEnum
   +----GstPlayerError
  GEnum
   +----GstPlayerColorBalanceType
  GInterface
   +----GstPlayerSignalDispatcher
  GInterface
   +----GstPlayerVideoRenderer

Prerequisites

GstPlayerSignalDispatcher requires GObject.

GstPlayerVideoRenderer requires GObject.

Known Implementations

GstPlayerVideoRenderer is implemented by GstPlayerVideoOverlayVideoRenderer.

Properties

  "current-audio-track"      GstPlayerAudioInfo*   : Read
  "current-subtitle-track"   GstPlayerSubtitleInfo*  : Read
  "current-video-track"      GstPlayerVideoInfo*   : Read
  "duration"                 guint64               : Read
  "media-info"               GstPlayerMediaInfo*   : Read
  "mute"                     gboolean              : Read / Write
  "pipeline"                 GstElement*           : Read
  "position"                 guint64               : Read
  "position-update-interval" guint                 : Read / Write
  "rate"                     gdouble               : Read / Write
  "signal-dispatcher"        GstPlayerSignalDispatcher*  : Write / Construct Only
  "suburi"                   gchar*                : Read / Write
  "uri"                      gchar*                : Read / Write
  "video-renderer"           GstPlayerVideoRenderer*  : Write / Construct Only
  "volume"                   gdouble               : Read / Write

Signals

  "buffering"                                      : No Hooks
  "duration-changed"                               : No Hooks
  "end-of-stream"                                  : No Hooks
  "error"                                          : No Hooks
  "media-info-updated"                             : No Hooks
  "mute-changed"                                   : No Hooks
  "position-updated"                               : No Hooks
  "seek-done"                                      : No Hooks
  "state-changed"                                  : No Hooks
  "video-dimensions-changed"                       : No Hooks
  "volume-changed"                                 : No Hooks
  "warning"                                        : No Hooks

Description

Details

GstPlayer

typedef struct _GstPlayer GstPlayer;

gst_player_new ()

GstPlayer *         gst_player_new                      (GstPlayerVideoRenderer *video_renderer,
                                                         GstPlayerSignalDispatcher *signal_dispatcher);

Creates a new GstPlayer instance that uses signal_dispatcher to dispatch signals to some event loop system, or emits signals directly if NULL is passed. See gst_player_g_main_context_signal_dispatcher_new().

Video is going to be rendered by video_renderer, or if NULL is provided no special video set up will be done and some default handling will be performed.

video_renderer :

GstPlayerVideoRenderer to use. [transfer full][allow-none]

signal_dispatcher :

GstPlayerSignalDispatcher to use. [transfer full][allow-none]

Returns :

a new GstPlayer instance

gst_player_play ()

void                gst_player_play                     (GstPlayer *player);

Request to play the loaded stream.

player :

GstPlayer instance

gst_player_pause ()

void                gst_player_pause                    (GstPlayer *player);

Pauses the current stream.

player :

GstPlayer instance

gst_player_stop ()

void                gst_player_stop                     (GstPlayer *player);

Stops playing the current stream and resets to the first position in the stream.

player :

GstPlayer instance

gst_player_seek ()

void                gst_player_seek                     (GstPlayer *player,
                                                         GstClockTime position);

Seeks the currently-playing stream to the absolute position time in nanoseconds.

player :

GstPlayer instance

position :

position to seek in nanoseconds

gst_player_set_uri ()

void                gst_player_set_uri                  (GstPlayer *player,
                                                         const gchar *uri);

Sets the next URI to play.

player :

GstPlayer instance

uri :

next URI to play.

gst_player_get_uri ()

gchar *             gst_player_get_uri                  (GstPlayer *player);

Gets the URI of the currently-playing stream.

player :

GstPlayer instance

Returns :

a string containing the URI of the currently-playing stream. g_free() after usage. [transfer full]

gst_player_get_duration ()

GstClockTime        gst_player_get_duration             (GstPlayer *player);

Retrieves the duration of the media stream that self represents.

player :

GstPlayer instance

Returns :

the duration of the currently-playing media stream, in nanoseconds.

gst_player_get_position ()

GstClockTime        gst_player_get_position             (GstPlayer *player);

player :

GstPlayer instance

Returns :

the absolute position time, in nanoseconds, of the currently-playing stream.

gst_player_set_volume ()

void                gst_player_set_volume               (GstPlayer *player,
                                                         gdouble val);

Sets the volume level of the stream as a percentage between 0 and 1.

player :

GstPlayer instance

val :

the new volume level, as a percentage between 0 and 1

gst_player_set_mute ()

void                gst_player_set_mute                 (GstPlayer *player,
                                                         gboolean val);

TRUE if the currently-playing stream should be muted.

player :

GstPlayer instance

val :

Mute state the should be set

gst_player_get_volume ()

gdouble             gst_player_get_volume               (GstPlayer *player);

Returns the current volume level, as a percentage between 0 and 1.

player :

GstPlayer instance

Returns :

the volume as percentage between 0 and 1.

gst_player_get_mute ()

gboolean            gst_player_get_mute                 (GstPlayer *player);

player :

GstPlayer instance

Returns :

TRUE if the currently-playing stream is muted.

gst_player_get_pipeline ()

GstElement *        gst_player_get_pipeline             (GstPlayer *player);

player :

GstPlayer instance

Returns :

The internal playbin instance. [transfer full]

gst_player_set_position_update_interval ()

void                gst_player_set_position_update_interval
                                                        (GstPlayer *player,
                                                         guint interval);

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

player :

GstPlayer instance

interval :

interval in ms

gst_player_get_position_update_interval ()

guint               gst_player_get_position_update_interval
                                                        (GstPlayer *player);

player :

GstPlayer instance

Returns :

current position update interval in milliseconds

enum GstPlayerState

typedef enum {
  GST_PLAYER_STATE_STOPPED,
  GST_PLAYER_STATE_BUFFERING,
  GST_PLAYER_STATE_PAUSED,
  GST_PLAYER_STATE_PLAYING
} GstPlayerState;

GST_PLAYER_STATE_STOPPED

the player is stopped.

GST_PLAYER_STATE_BUFFERING

the player is buffering.

GST_PLAYER_STATE_PAUSED

the player is paused.

GST_PLAYER_STATE_PLAYING

the player is currently playing a stream.

gst_player_state_get_name ()

const gchar *       gst_player_state_get_name           (GstPlayerState state);

Gets a string representing the given state.

state :

a GstPlayerState

Returns :

a string with the name of the state. [transfer none]

GST_PLAYER_ERROR

#define      GST_PLAYER_ERROR                         (gst_player_error_quark ())

enum GstPlayerError

typedef enum {
  GST_PLAYER_ERROR_FAILED = 0
} GstPlayerError;

GST_PLAYER_ERROR_FAILED

generic error.

gst_player_error_get_name ()

const gchar *       gst_player_error_get_name           (GstPlayerError error);

Gets a string representing the given error.

error :

a GstPlayerError

Returns :

a string with the given error. [transfer none]

gst_player_get_media_info ()

GstPlayerMediaInfo * gst_player_get_media_info          (GstPlayer *player);

A Function to get the current media info GstPlayerMediaInfo instance.

player :

GstPlayer instance

Returns :

media info instance. The caller should free it with g_object_unref(). [transfer full]

gst_player_get_audio_streams ()

GList *             gst_player_get_audio_streams        (const GstPlayerMediaInfo *info);

info :

a GstPlayerMediaInfo

Returns :

A GList of matching GstPlayerAudioInfo. [transfer none][element-type GstPlayerAudioInfo]

gst_player_get_video_streams ()

GList *             gst_player_get_video_streams        (const GstPlayerMediaInfo *info);

info :

a GstPlayerMediaInfo

Returns :

A GList of matching GstPlayerVideoInfo. [transfer none][element-type GstPlayerVideoInfo]

gst_player_get_subtitle_streams ()

GList *             gst_player_get_subtitle_streams     (const GstPlayerMediaInfo *info);

info :

a GstPlayerMediaInfo

Returns :

A GList of matching GstPlayerSubtitleInfo. [transfer none][element-type GstPlayerSubtitleInfo]

gst_player_set_audio_track ()

gboolean            gst_player_set_audio_track          (GstPlayer *player,
                                                         gint stream_index);

player :

GstPlayer instance

stream_index :

stream index

Returns :

TRUE or FALSE Sets the audio track stream_idex.

gst_player_set_video_track ()

gboolean            gst_player_set_video_track          (GstPlayer *player,
                                                         gint stream_index);

player :

GstPlayer instance

stream_index :

stream index

Returns :

TRUE or FALSE Sets the video track stream_index.

gst_player_set_subtitle_track ()

gboolean            gst_player_set_subtitle_track       (GstPlayer *player,
                                                         gint stream_index);

player :

GstPlayer instance

stream_index :

stream index

Returns :

TRUE or FALSE Sets the subtitle strack stream_index.

gst_player_get_current_audio_track ()

GstPlayerAudioInfo * gst_player_get_current_audio_track (GstPlayer *player);

A Function to get current audio GstPlayerAudioInfo instance.

player :

GstPlayer instance

Returns :

current audio track. The caller should free it with g_object_unref(). [transfer full]

gst_player_get_current_video_track ()

GstPlayerVideoInfo * gst_player_get_current_video_track (GstPlayer *player);

A Function to get current video GstPlayerVideoInfo instance.

player :

GstPlayer instance

Returns :

current video track. The caller should free it with g_object_unref(). [transfer full]

gst_player_get_current_subtitle_track ()

GstPlayerSubtitleInfo * gst_player_get_current_subtitle_track
                                                        (GstPlayer *player);

A Function to get current subtitle GstPlayerSubtitleInfo instance.

player :

GstPlayer instance

Returns :

current subtitle track. The caller should free it with g_object_unref(). [transfer none]

gst_player_set_audio_track_enabled ()

void                gst_player_set_audio_track_enabled  (GstPlayer *player,
                                                         gboolean enabled);

Enable or disable the current audio track.

player :

GstPlayer instance

enabled :

TRUE or FALSE

gst_player_set_video_track_enabled ()

void                gst_player_set_video_track_enabled  (GstPlayer *player,
                                                         gboolean enabled);

Enable or disable the current video track.

player :

GstPlayer instance

enabled :

TRUE or FALSE

gst_player_set_subtitle_track_enabled ()

void                gst_player_set_subtitle_track_enabled
                                                        (GstPlayer *player,
                                                         gboolean enabled);

Enable or disable the current subtitle track.

player :

GstPlayer instance

enabled :

TRUE or FALSE

gst_player_set_subtitle_uri ()

gboolean            gst_player_set_subtitle_uri         (GstPlayer *player,
                                                         const gchar *uri);

player :

GstPlayer instance

uri :

subtitle URI

Returns :

TRUE or FALSE Sets the external subtitle URI.

gst_player_get_subtitle_uri ()

gchar *             gst_player_get_subtitle_uri         (GstPlayer *player);

current subtitle URI

player :

GstPlayer instance

Returns :

URI of the current external subtitle. g_free() after usage. [transfer full]

gst_player_set_visualization ()

gboolean            gst_player_set_visualization        (GstPlayer *player,
                                                         const gchar *name);

player :

GstPlayer instance

name :

visualization element obtained from #gst_player_visualizations_get()

Returns :

TRUE if the visualizations was set correctly. Otherwise, FALSE.

gst_player_set_visualization_enabled ()

void                gst_player_set_visualization_enabled
                                                        (GstPlayer *player,
                                                         gboolean enabled);

Enable or disable the visualization.

player :

GstPlayer instance

enabled :

TRUE or FALSE

gst_player_get_current_visualization ()

gchar *             gst_player_get_current_visualization
                                                        (GstPlayer *player);

player :

GstPlayer instance

Returns :

Name of the currently enabled visualization. g_free() after usage. [transfer full]

enum GstPlayerColorBalanceType

typedef enum {
  GST_PLAYER_COLOR_BALANCE_BRIGHTNESS,
  GST_PLAYER_COLOR_BALANCE_CONTRAST,
  GST_PLAYER_COLOR_BALANCE_SATURATION,
  GST_PLAYER_COLOR_BALANCE_HUE,
} GstPlayerColorBalanceType;

GST_PLAYER_COLOR_BALANCE_BRIGHTNESS

brightness or black level.

GST_PLAYER_COLOR_BALANCE_CONTRAST

contrast or luma gain.

GST_PLAYER_COLOR_BALANCE_SATURATION

color saturation or chroma gain.

GST_PLAYER_COLOR_BALANCE_HUE

hue or color balance.

gst_player_color_balance_type_get_name ()

const gchar *       gst_player_color_balance_type_get_name
                                                        (GstPlayerColorBalanceType type);

Gets a string representing the given color balance type.

type :

a GstPlayerColorBalanceType

Returns :

a string with the name of the color balance type. [transfer none]

gst_player_has_color_balance ()

gboolean            gst_player_has_color_balance        (GstPlayer *player);

Checks whether the player has color balance support available.

player :

GstPlayer instance

Returns :

TRUE if player has color balance support. Otherwise, FALSE.

gst_player_set_color_balance ()

void                gst_player_set_color_balance        (GstPlayer *player,
                                                         GstPlayerColorBalanceType type,
                                                         gdouble value);

Sets the current value of the indicated channel type to the passed value.

player :

GstPlayer instance

type :

GstPlayerColorBalanceType

value :

The new value for the type, ranged [0,1]

gst_player_get_color_balance ()

gdouble             gst_player_get_color_balance        (GstPlayer *player,
                                                         GstPlayerColorBalanceType type);

Retrieve the current value of the indicated type.

player :

GstPlayer instance

type :

GstPlayerColorBalanceType

Returns :

The current value of type, between [0,1]. In case of error -1 is returned.

gst_player_get_rate ()

gdouble             gst_player_get_rate                 (GstPlayer *player);

player :

GstPlayer instance

Returns :

current playback rate

gst_player_set_rate ()

void                gst_player_set_rate                 (GstPlayer *player,
                                                         gdouble rate);

Playback at specified rate

player :

GstPlayer instance

rate :

playback rate

GstPlayerSignalDispatcher

typedef struct _GstPlayerSignalDispatcher GstPlayerSignalDispatcher;

struct GstPlayerSignalDispatcherInterface

struct GstPlayerSignalDispatcherInterface {
  GTypeInterface parent_iface;

  void (*dispatch) (GstPlayerSignalDispatcher * self,
                    GstPlayer * player,
                    GstPlayerSignalDispatcherFunc emitter,
                    gpointer data,
                    GDestroyNotify destroy);
};

GstPlayerVideoRenderer

typedef struct _GstPlayerVideoRenderer GstPlayerVideoRenderer;

struct GstPlayerVideoRendererInterface

struct GstPlayerVideoRendererInterface {
  GTypeInterface parent_iface;

  GstElement * (*create_video_sink) (GstPlayerVideoRenderer * self, GstPlayer * player);
};

Property Details

The "current-audio-track" property

  "current-audio-track"      GstPlayerAudioInfo*   : Read

Current audio track information.


The "current-subtitle-track" property

  "current-subtitle-track"   GstPlayerSubtitleInfo*  : Read

Current audio subtitle information.


The "current-video-track" property

  "current-video-track"      GstPlayerVideoInfo*   : Read

Current video track information.


The "duration" property

  "duration"                 guint64               : Read

Duration.

Default value: 18446744073709551615


The "media-info" property

  "media-info"               GstPlayerMediaInfo*   : Read

Current media information.


The "mute" property

  "mute"                     gboolean              : Read / Write

Mute.

Default value: FALSE


The "pipeline" property

  "pipeline"                 GstElement*           : Read

GStreamer pipeline that is used.


The "position" property

  "position"                 guint64               : Read

Current Position.

Default value: 18446744073709551615


The "position-update-interval" property

  "position-update-interval" guint                 : Read / Write

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

Allowed values: <= 10000

Default value: 100


The "rate" property

  "rate"                     gdouble               : Read / Write

Playback rate.

Allowed values: [-64,64]

Default value: 1


The "signal-dispatcher" property

  "signal-dispatcher"        GstPlayerSignalDispatcher*  : Write / Construct Only

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


The "suburi" property

  "suburi"                   gchar*                : Read / Write

Current Subtitle URI.

Default value: NULL


The "uri" property

  "uri"                      gchar*                : Read / Write

Current URI.

Default value: NULL


The "video-renderer" property

  "video-renderer"           GstPlayerVideoRenderer*  : Write / Construct Only

Video renderer to use for rendering videos.


The "volume" property

  "volume"                   gdouble               : Read / Write

Volume.

Allowed values: [0,10]

Default value: 1

Signal Details

The "buffering" signal

void                user_function                      (GstPlayer *gstplayer,
                                                        gint       arg1,
                                                        gpointer   user_data)      : No Hooks

The "duration-changed" signal

void                user_function                      (GstPlayer *gstplayer,
                                                        guint64    arg1,
                                                        gpointer   user_data)      : No Hooks

The "end-of-stream" signal

void                user_function                      (GstPlayer *gstplayer,
                                                        gpointer   user_data)      : No Hooks

The "error" signal

void                user_function                      (GstPlayer *gstplayer,
                                                        GError    *arg1,
                                                        gpointer   user_data)      : No Hooks

The "media-info-updated" signal

void                user_function                      (GstPlayer          *gstplayer,
                                                        GstPlayerMediaInfo *arg1,
                                                        gpointer            user_data)      : No Hooks

The "mute-changed" signal

void                user_function                      (GstPlayer *gstplayer,
                                                        gpointer   user_data)      : No Hooks

The "position-updated" signal

void                user_function                      (GstPlayer *gstplayer,
                                                        guint64    arg1,
                                                        gpointer   user_data)      : No Hooks

The "seek-done" signal

void                user_function                      (GstPlayer *gstplayer,
                                                        guint64    arg1,
                                                        gpointer   user_data)      : No Hooks

The "state-changed" signal

void                user_function                      (GstPlayer     *gstplayer,
                                                        GstPlayerState arg1,
                                                        gpointer       user_data)      : No Hooks

The "video-dimensions-changed" signal

void                user_function                      (GstPlayer *gstplayer,
                                                        gint       arg1,
                                                        gint       arg2,
                                                        gpointer   user_data)      : No Hooks

The "volume-changed" signal

void                user_function                      (GstPlayer *gstplayer,
                                                        gpointer   user_data)      : No Hooks

The "warning" signal

void                user_function                      (GstPlayer *gstplayer,
                                                        GError    *arg1,
                                                        gpointer   user_data)      : No Hooks