BaconVideoWidget

BaconVideoWidget — video playing widget and abstraction

Stability Level

Unstable, unless otherwise indicated

Functions

GtkWidget * bacon_video_widget_new ()
gboolean bacon_video_widget_check_init ()
void bacon_video_widget_open ()
gboolean bacon_video_widget_play ()
void bacon_video_widget_pause ()
gboolean bacon_video_widget_seek ()
gboolean bacon_video_widget_seek_time ()
void bacon_video_widget_stop ()
void bacon_video_widget_close ()
gboolean bacon_video_widget_can_direct_seek ()
gboolean bacon_video_widget_can_get_frames ()
gboolean bacon_video_widget_can_set_volume ()
void bacon_video_widget_dvd_event ()
gboolean bacon_video_widget_has_menus ()
BvwAspectRatio bacon_video_widget_get_aspect_ratio ()
void bacon_video_widget_set_aspect_ratio ()
BvwAudioOutputType bacon_video_widget_get_audio_output_type ()
void bacon_video_widget_set_audio_output_type ()
GdkPixbuf * bacon_video_widget_get_current_frame ()
gint64 bacon_video_widget_get_current_time ()
gboolean bacon_video_widget_get_deinterlacing ()
void bacon_video_widget_set_deinterlacing ()
GList * bacon_video_widget_get_languages ()
void bacon_video_widget_lang_info_free ()
int bacon_video_widget_get_language ()
void bacon_video_widget_set_language ()
void bacon_video_widget_get_metadata ()
GOptionGroup * bacon_video_widget_get_option_group ()
double bacon_video_widget_get_position ()
void bacon_video_widget_set_referrer ()
BvwRotation bacon_video_widget_get_rotation ()
void bacon_video_widget_set_rotation ()
gint64 bacon_video_widget_get_stream_length ()
GList * bacon_video_widget_get_subtitles ()
int bacon_video_widget_get_subtitle ()
void bacon_video_widget_set_subtitle ()
void bacon_video_widget_set_text_subtitle ()
void bacon_video_widget_set_subtitle_encoding ()
void bacon_video_widget_set_subtitle_font ()
void bacon_video_widget_set_user_agent ()
int bacon_video_widget_get_video_property ()
void bacon_video_widget_set_video_property ()
double bacon_video_widget_get_volume ()
void bacon_video_widget_set_volume ()
BvwZoomMode bacon_video_widget_get_zoom ()
void bacon_video_widget_set_zoom ()
gboolean bacon_video_widget_has_angles ()
void bacon_video_widget_set_next_angle ()
gboolean bacon_video_widget_has_next_track ()
gboolean bacon_video_widget_has_previous_track ()
gboolean bacon_video_widget_is_playing ()
gboolean bacon_video_widget_is_seekable ()
gfloat bacon_video_widget_get_rate ()
gboolean bacon_video_widget_set_rate ()
gboolean bacon_video_widget_step ()
void bacon_video_widget_set_next_language ()
void bacon_video_widget_set_next_subtitle ()

Properties

BvwAudioOutputType audio-output-type Read / Write
gint64 av-offset Read / Write
int brightness Read / Write
int contrast Read / Write
gboolean deinterlacing Read / Write
char * download-filename Read / Write
int hue Read / Write
gboolean playing Read
double position Read
char * referrer Read / Write
int saturation Read / Write
gboolean seekable Read
gboolean show-cursor Read / Write
gint64 stream-length Read
char * user-agent Read / Write
double volume Read / Write

Signals

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBin
                    ╰── GtkOverlay
                        ╰── BaconVideoWidget

Implemented Interfaces

BaconVideoWidget implements AtkImplementorIface and GtkBuildable.

Includes

#include <bacon-video-widget.h>

Description

BaconVideoWidget is a widget to play audio or video streams It has a GStreamer backend, and abstracts away the differences to provide a simple interface to the functionality required by Totem. It handles all the low-level audio and video work for Totem (or passes the work off to the backend).

Functions

bacon_video_widget_new ()

GtkWidget *
bacon_video_widget_new (void);

Creates a new BaconVideoWidget.

Returns

a new BaconVideoWidget; destroy with gtk_widget_destroy()


bacon_video_widget_check_init ()

gboolean
bacon_video_widget_check_init (BaconVideoWidget *bvw,
                               GError **error);

Parameters

error

a GError, or NULL.

 

Returns

if an error occured during initialisation, FALSE is returned and error is set. Otherwise, TRUE is returned.


bacon_video_widget_open ()

void
bacon_video_widget_open (BaconVideoWidget *bvw,
                         const char *mrl);

Opens the given mrl in bvw for playing.

The MRL is loaded and waiting to be played with bacon_video_widget_play().

Parameters

bvw

a BaconVideoWidget

 

mrl

an MRL

 

bacon_video_widget_play ()

gboolean
bacon_video_widget_play (BaconVideoWidget *bvw,
                         GError **error);

Plays the currently-loaded video in bvw .

Errors from the GStreamer backend will be returned asynchronously via the “error” signal, even if this function returns TRUE.

Parameters

bvw

a BaconVideoWidget

 

error

a GError, or NULL

 

Returns

TRUE on success, FALSE otherwise


bacon_video_widget_pause ()

void
bacon_video_widget_pause (BaconVideoWidget *bvw);

Pauses the current stream in the video widget.

If a live stream is being played, playback is stopped entirely.

Parameters

bvw

a BaconVideoWidget

 

bacon_video_widget_seek ()

gboolean
bacon_video_widget_seek (BaconVideoWidget *bvw,
                         double position,
                         GError **error);

Seeks the currently-playing stream to position as a percentage of the total stream length.

Parameters

bvw

a BaconVideoWidget

 

position

the percentage of the way through the stream to which to seek

 

error

a GError, or NULL

 

Returns

TRUE on success, FALSE otherwise


bacon_video_widget_seek_time ()

gboolean
bacon_video_widget_seek_time (BaconVideoWidget *bvw,
                              gint64 _time,
                              gboolean accurate,
                              GError **error);

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

Parameters

bvw

a BaconVideoWidget

 

_time

the time to which to seek, in milliseconds

 

accurate

whether to use accurate seek, an accurate seek might be slower for some formats (see GStreamer docs)

 

error

a GError, or NULL

 

Returns

TRUE on success, FALSE otherwise


bacon_video_widget_stop ()

void
bacon_video_widget_stop (BaconVideoWidget *bvw);

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

Parameters

bvw

a BaconVideoWidget

 

bacon_video_widget_close ()

void
bacon_video_widget_close (BaconVideoWidget *bvw);

Closes the current stream and frees the resources associated with it.

Parameters

bvw

a BaconVideoWidget

 

bacon_video_widget_can_direct_seek ()

gboolean
bacon_video_widget_can_direct_seek (BaconVideoWidget *bvw);

Determines whether direct seeking is possible for the current stream.

Parameters

bvw

a BaconVideoWidget

 

Returns

TRUE if direct seeking is possible, FALSE otherwise


bacon_video_widget_can_get_frames ()

gboolean
bacon_video_widget_can_get_frames (BaconVideoWidget *bvw,
                                   GError **error);

Determines whether individual frames from the current stream can be returned using bacon_video_widget_get_current_frame().

Frames cannot be returned for audio-only streams.

Parameters

bvw

a BaconVideoWidget

 

error

a GError, or NULL

 

Returns

TRUE if frames can be captured, FALSE otherwise


bacon_video_widget_can_set_volume ()

gboolean
bacon_video_widget_can_set_volume (BaconVideoWidget *bvw);

Returns whether the volume level can be set, given the current settings.

The volume cannot be set if the audio output type is set to BVW_AUDIO_SOUND_AC3PASSTHRU.

Parameters

bvw

a BaconVideoWidget

 

Returns

TRUE if the volume can be set, FALSE otherwise


bacon_video_widget_dvd_event ()

void
bacon_video_widget_dvd_event (BaconVideoWidget *bvw,
                              BvwDVDEvent type);

Issues a DVD navigation event to the video widget, such as one to skip to the next chapter, or navigate to the DVD title menu.

This is a no-op if the current stream is not navigable.

Parameters

bvw

a BaconVideoWidget

 

type

the type of DVD event to issue

 

bacon_video_widget_has_menus ()

gboolean
bacon_video_widget_has_menus (BaconVideoWidget *bvw);

Returns whether the widget is currently displaying a menu, such as a DVD menu.

Parameters

bvw

a BaconVideoWidget

 

Returns

TRUE if a menu is displayed, FALSE otherwise


bacon_video_widget_get_aspect_ratio ()

BvwAspectRatio
bacon_video_widget_get_aspect_ratio (BaconVideoWidget *bvw);

Returns the current aspect ratio used by the widget, from BvwAspectRatio.

Parameters

bvw

a BaconVideoWidget

 

Returns

the aspect ratio


bacon_video_widget_set_aspect_ratio ()

void
bacon_video_widget_set_aspect_ratio (BaconVideoWidget *bvw,
                                     BvwAspectRatio ratio);

Sets the aspect ratio used by the widget, from BvwAspectRatio.

Changes to this take effect immediately.

Parameters

bvw

a BaconVideoWidget

 

ratio

the new aspect ratio

 

bacon_video_widget_get_audio_output_type ()

BvwAudioOutputType
bacon_video_widget_get_audio_output_type
                               (BaconVideoWidget *bvw);

Returns the current audio output type (e.g. how many speaker channels) from BvwAudioOutputType.

Parameters

bvw

a BaconVideoWidget

 

Returns

the audio output type, or -1


bacon_video_widget_set_audio_output_type ()

void
bacon_video_widget_set_audio_output_type
                               (BaconVideoWidget *bvw,
                                BvwAudioOutputType type);

Sets the audio output type (number of speaker channels) in the video widget.

Parameters

bvw

a BaconVideoWidget

 

type

the new audio output type

 

bacon_video_widget_get_current_frame ()

GdkPixbuf *
bacon_video_widget_get_current_frame (BaconVideoWidget *bvw);

Returns a GdkPixbuf containing the current frame from the playing stream. This will wait for any pending seeks to complete before capturing the frame.

Parameters

bvw

a BaconVideoWidget

 

Returns

the current frame, or NULL; unref with g_object_unref()


bacon_video_widget_get_current_time ()

gint64
bacon_video_widget_get_current_time (BaconVideoWidget *bvw);

Returns the current position in the stream, as the time (in milliseconds) since the beginning of the stream.

Parameters

bvw

a BaconVideoWidget

 

Returns

time since the beginning of the stream, in milliseconds, or -1


bacon_video_widget_get_deinterlacing ()

gboolean
bacon_video_widget_get_deinterlacing (BaconVideoWidget *bvw);

Returns whether deinterlacing of videos is enabled for this widget.

Parameters

bvw

a BaconVideoWidget

 

Returns

TRUE if automatic deinterlacing is enabled, FALSE otherwise


bacon_video_widget_set_deinterlacing ()

void
bacon_video_widget_set_deinterlacing (BaconVideoWidget *bvw,
                                      gboolean deinterlace);

Sets whether the widget should deinterlace videos.

Parameters

bvw

a BaconVideoWidget

 

deinterlace

TRUE if videos should be automatically deinterlaced, FALSE otherwise

 

bacon_video_widget_get_languages ()

GList *
bacon_video_widget_get_languages (BaconVideoWidget *bvw);

Returns a list of BvwLangInfo for each audio track.

Parameters

bvw

a BaconVideoWidget

 

Returns

a GList of BvwLangInfo, or NULL; this list is owned by the bvw , do not free.


bacon_video_widget_lang_info_free ()

void
bacon_video_widget_lang_info_free (BvwLangInfo *info);

Frees a BvwLangInfo structure.

Parameters

info

a BvwLangInfo

 

bacon_video_widget_get_language ()

int
bacon_video_widget_get_language (BaconVideoWidget *bvw);

Returns the id of the current audio language.

If the widget is not playing, or the default language is in use, -1 will be returned.

Parameters

bvw

a BaconVideoWidget

 

Returns

the audio language index


bacon_video_widget_set_language ()

void
bacon_video_widget_set_language (BaconVideoWidget *bvw,
                                 int language);

Sets the audio language id for bvw .

Parameters

bvw

a BaconVideoWidget

 

language

an audio language index

 

bacon_video_widget_get_metadata ()

void
bacon_video_widget_get_metadata (BaconVideoWidget *bvw,
                                 BvwMetadataType type,
                                 GValue *value);

Provides metadata of the given type about the current stream in value .

Free the GValue with g_value_unset().

Parameters

bvw

a BaconVideoWidget

 

type

the type of metadata to return

 

value

a GValue

 

bacon_video_widget_get_option_group ()

GOptionGroup *
bacon_video_widget_get_option_group (void);

Returns the GOptionGroup containing command-line options for BaconVideoWidget.

Applications must call either this exactly once.

Returns

a GOptionGroup giving command-line options for BaconVideoWidget


bacon_video_widget_get_position ()

double
bacon_video_widget_get_position (BaconVideoWidget *bvw);

Returns the current position in the stream, as a value between

0 and 1.

Parameters

bvw

a BaconVideoWidget

 

Returns

the current position, or -1


bacon_video_widget_set_referrer ()

void
bacon_video_widget_set_referrer (BaconVideoWidget *bvw,
                                 const char *referrer);

Sets the HTTP referrer URI to use when fetching HTTP ressources.

Parameters

bvw

a BaconVideoWidget

 

referrer

a HTTP referrer URI, or NULL

 

bacon_video_widget_get_rotation ()

BvwRotation
bacon_video_widget_get_rotation (BaconVideoWidget *bvw);

Returns the angle of rotation of the video, in degrees.

Parameters

bvw

a BaconVideoWidget

 

Returns

a BvwRotation.


bacon_video_widget_set_rotation ()

void
bacon_video_widget_set_rotation (BaconVideoWidget *bvw,
                                 BvwRotation rotation);

Sets the rotation to be applied to the video when it is displayed.

Parameters

bvw

a BaconVideoWidget

 

rotation

the BvwRotation of the video in degrees

 

bacon_video_widget_get_stream_length ()

gint64
bacon_video_widget_get_stream_length (BaconVideoWidget *bvw);

Returns the total length of the stream, in milliseconds.

Parameters

bvw

a BaconVideoWidget

 

Returns

the stream length, in milliseconds, or -1


bacon_video_widget_get_subtitles ()

GList *
bacon_video_widget_get_subtitles (BaconVideoWidget *bvw);

Returns a list of BvwLangInfo for each subtitle track.

Parameters

bvw

a BaconVideoWidget

 

Returns

a GList of BvwLangInfo, or NULL; this list is owned by the bvw , do not free.


bacon_video_widget_get_subtitle ()

int
bacon_video_widget_get_subtitle (BaconVideoWidget *bvw);

Returns the id of the current subtitles.

Parameters

bvw

a BaconVideoWidget

 

Returns

the subtitle id


bacon_video_widget_set_subtitle ()

void
bacon_video_widget_set_subtitle (BaconVideoWidget *bvw,
                                 int subtitle);

Sets the subtitle id for bvw .

Parameters

bvw

a BaconVideoWidget

 

subtitle

a subtitle id

 

bacon_video_widget_set_text_subtitle ()

void
bacon_video_widget_set_text_subtitle (BaconVideoWidget *bvw,
                                      const gchar *subtitle_uri);

Sets the URI for the text subtitle file to be displayed alongside the current video. Use NULL if you want to unload the current text subtitle file being used.

Parameters

bvw

a BaconVideoWidget

 

subtitle_uri

the URI of a subtitle file, or NULL.

[allow-none]

bacon_video_widget_set_subtitle_encoding ()

void
bacon_video_widget_set_subtitle_encoding
                               (BaconVideoWidget *bvw,
                                const char *encoding);

Sets the encoding system for the subtitles, so that they can be decoded properly.

Parameters

bvw

a BaconVideoWidget

 

encoding

an encoding system

 

bacon_video_widget_set_subtitle_font ()

void
bacon_video_widget_set_subtitle_font (BaconVideoWidget *bvw,
                                      const char *font);

Sets the font size and style in which to display subtitles.

font is a Pango font description string, as understood by pango_font_description_from_string().

Parameters

bvw

a BaconVideoWidget

 

font

a font description string

 

bacon_video_widget_set_user_agent ()

void
bacon_video_widget_set_user_agent (BaconVideoWidget *bvw,
                                   const char *user_agent);

Sets the HTTP user agent string to use when fetching HTTP ressources.

Parameters

bvw

a BaconVideoWidget

 

user_agent

a HTTP user agent string, or NULL to use the default

 

bacon_video_widget_get_video_property ()

int
bacon_video_widget_get_video_property (BaconVideoWidget *bvw,
                                       BvwVideoProperty type);

Returns the given property of the video display, such as its brightness or saturation.

It is returned as a percentage in the full range of integer values; from 0 to 65535 (inclusive), where 32768 is the default.

Parameters

bvw

a BaconVideoWidget

 

type

the type of property

 

Returns

the property's value, in the range 0 to 65535


bacon_video_widget_set_video_property ()

void
bacon_video_widget_set_video_property (BaconVideoWidget *bvw,
                                       BvwVideoProperty type,
                                       int value);

Sets the given property of the video display, such as its brightness or saturation.

It should be given as a percentage in the full range of integer values; from 0 to 65535 (inclusive), where 32768 is the default.

Parameters

bvw

a BaconVideoWidget

 

type

the type of property

 

value

the property's value, in the range 0 to 65535

 

bacon_video_widget_get_volume ()

double
bacon_video_widget_get_volume (BaconVideoWidget *bvw);

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

Parameters

bvw

a BaconVideoWidget

 

Returns

the volume as a percentage between 0 and 1


bacon_video_widget_set_volume ()

void
bacon_video_widget_set_volume (BaconVideoWidget *bvw,
                               double volume);

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

If bacon_video_widget_can_set_volume() returns FALSE, this is a no-op.

Parameters

bvw

a BaconVideoWidget

 

volume

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

 

bacon_video_widget_get_zoom ()

BvwZoomMode
bacon_video_widget_get_zoom (BaconVideoWidget *bvw);

Returns the zoom mode applied to videos displayed by the widget.

Parameters

bvw

a BaconVideoWidget

 

Returns

a BvwZoomMode


bacon_video_widget_set_zoom ()

void
bacon_video_widget_set_zoom (BaconVideoWidget *bvw,
                             BvwZoomMode mode);

Sets the zoom type applied to the video when it is displayed.

Parameters

bvw

a BaconVideoWidget

 

mode

the BvwZoomMode

 

bacon_video_widget_has_angles ()

gboolean
bacon_video_widget_has_angles (BaconVideoWidget *bvw);

Returns whether the widget is currently playing a stream with multiple angles.

Parameters

bvw

a BaconVideoWidget

 

Returns

TRUE if the current video stream has multiple angles, FALSE otherwise


bacon_video_widget_set_next_angle ()

void
bacon_video_widget_set_next_angle (BaconVideoWidget *bvw);

Select the next angle, or video track in the playing stream.

Parameters

bvw

a BaconVideoWidget

 

bacon_video_widget_has_next_track ()

gboolean
bacon_video_widget_has_next_track (BaconVideoWidget *bvw);

Determines whether there is another track after the current one, typically as a chapter on a DVD.

Parameters

bvw

a BaconVideoWidget

 

Returns

TRUE if there is another track, FALSE otherwise


bacon_video_widget_has_previous_track ()

gboolean
bacon_video_widget_has_previous_track (BaconVideoWidget *bvw);

Determines whether there is another track before the current one, typically as a chapter on a DVD.

Parameters

bvw

a BaconVideoWidget

 

Returns

TRUE if there is another track, FALSE otherwise


bacon_video_widget_is_playing ()

gboolean
bacon_video_widget_is_playing (BaconVideoWidget *bvw);

Returns whether the widget is currently playing a stream.

Parameters

bvw

a BaconVideoWidget

 

Returns

TRUE if a stream is playing, FALSE otherwise


bacon_video_widget_is_seekable ()

gboolean
bacon_video_widget_is_seekable (BaconVideoWidget *bvw);

Returns whether seeking is possible in the current stream.

If no stream is loaded, FALSE is returned.

Parameters

bvw

a BaconVideoWidget

 

Returns

TRUE if the stream is seekable, FALSE otherwise


bacon_video_widget_get_rate ()

gfloat
bacon_video_widget_get_rate (BaconVideoWidget *bvw);

Get the current playback rate, with 1.0 being normal rate.

Parameters

bvw

a BaconVideoWidget

 

Returns

the current playback rate


bacon_video_widget_set_rate ()

gboolean
bacon_video_widget_set_rate (BaconVideoWidget *bvw,
                             gfloat new_rate);

Sets the current playback rate.

Parameters

bvw

a BaconVideoWidget

 

new_rate

the new playback rate

 

Returns

TRUE on success, FALSE on failure.


bacon_video_widget_step ()

gboolean
bacon_video_widget_step (BaconVideoWidget *bvw,
                         gboolean forward,
                         GError **error);

Step one frame forward, if forward is TRUE, or backwards, if forward is FALSE

Parameters

bvw

a BaconVideoWidget

 

forward

the direction of the frame step

 

error

a GError, or NULL

 

Returns

TRUE on success, FALSE otherwise


bacon_video_widget_set_next_language ()

void
bacon_video_widget_set_next_language (BaconVideoWidget *bvw);

Switch to the next audio language for the current video. See bacon_video_widget_set_language().

Parameters

bvw

a BaconVideoWidget

 

Since: 3.12


bacon_video_widget_set_next_subtitle ()

void
bacon_video_widget_set_next_subtitle (BaconVideoWidget *bvw);

Switch to the next text subtitle for the current video. See bacon_video_widget_set_subtitle().

Parameters

bvw

a BaconVideoWidget

 

Since: 3.12

Types and Values

BaconVideoWidget

typedef struct _BaconVideoWidget BaconVideoWidget;

enum BvwAspectRatio

The pixel aspect ratios available in which to display videos using bacon_video_widget_set_aspect_ratio() .

Members

BVW_RATIO_AUTO

automatic

 

BVW_RATIO_SQUARE

square (1:1)

 

BVW_RATIO_FOURBYTHREE

four-by-three (4:3)

 

BVW_RATIO_ANAMORPHIC

anamorphic (16:9)

 

BVW_RATIO_DVB

DVB (20:9)

 

enum BvwAudioOutputType

The audio output types available for use with bacon_video_widget_set_audio_output_type().

Members

BVW_AUDIO_SOUND_STEREO

stereo output

 

BVW_AUDIO_SOUND_4CHANNEL

4-channel output

 

BVW_AUDIO_SOUND_41CHANNEL

4.1-channel output

 

BVW_AUDIO_SOUND_5CHANNEL

5-channel output

 

BVW_AUDIO_SOUND_51CHANNEL

5.1-channel output

 

BVW_AUDIO_SOUND_AC3PASSTHRU

AC3 passthrough output

 

enum BvwDVDEvent

The DVD navigation actions available to fire as DVD events to the BaconVideoWidget.

Members

BVW_DVD_ROOT_MENU

root menu

 

BVW_DVD_TITLE_MENU

title menu

 

BVW_DVD_SUBPICTURE_MENU

subpicture menu (if available)

 

BVW_DVD_AUDIO_MENU

audio menu (if available)

 

BVW_DVD_ANGLE_MENU

angle menu (if available)

 

BVW_DVD_CHAPTER_MENU

chapter menu

 

BVW_DVD_NEXT_CHAPTER

the next chapter

 

BVW_DVD_PREV_CHAPTER

the previous chapter

 

BVW_DVD_NEXT_TITLE

the next title in the current chapter

 

BVW_DVD_PREV_TITLE

the previous title in the current chapter

 

BVW_DVD_ROOT_MENU_UP

go up in the menu

 

BVW_DVD_ROOT_MENU_DOWN

go down in the menu

 

BVW_DVD_ROOT_MENU_LEFT

go left in the menu

 

BVW_DVD_ROOT_MENU_RIGHT

go right in the menu

 

BVW_DVD_ROOT_MENU_SELECT

select the current menu entry

 

BvwLangInfo

typedef struct {
	char *title;
	char *language;
	char *codec;
	guint id;
} BvwLangInfo;

BvwLangInfo holds the title, language code and codec for each subtitle or audio track for a media, which would allow the front-ends to present appropriate information to the user.

Members

char *title;

the title of the track, or NULL if unset.

 

char *language;

the ISO-639 language code for the track, or "und" if unknown. Can never be NULL.

 

char *codec;

the codec for the track, or NULL if unknown or unset.

 

guint id;

   

enum BvwMetadataType

The different metadata available for querying from a BaconVideoWidget stream with bacon_video_widget_get_metadata().

Members

BVW_INFO_TITLE

the stream's title

 

BVW_INFO_ARTIST

the artist who created the work

 

BVW_INFO_YEAR

the year in which the work was created

 

BVW_INFO_COMMENT

a comment attached to the stream

 

BVW_INFO_ALBUM

the album in which the work was released

 

BVW_INFO_DURATION

the stream's duration, in seconds

 

BVW_INFO_TRACK_NUMBER

the track number of the work on the album

 

BVW_INFO_CONTAINER

the type of stream container

 

BVW_INFO_HAS_VIDEO

whether the stream has video

 

BVW_INFO_DIMENSION_X

the video's width, in pixels

 

BVW_INFO_DIMENSION_Y

the video's height, in pixels

 

BVW_INFO_VIDEO_BITRATE

the video's bitrate, in kilobits per second

 

BVW_INFO_VIDEO_CODEC

the video's codec

 

BVW_INFO_FPS

the number of frames per second in the video

 

BVW_INFO_HAS_AUDIO

whether the stream has audio

 

BVW_INFO_AUDIO_BITRATE

the audio's bitrate, in kilobits per second

 

BVW_INFO_AUDIO_CODEC

the audio's codec

 

BVW_INFO_AUDIO_SAMPLE_RATE

the audio sample rate, in bits per second

 

BVW_INFO_AUDIO_CHANNELS

a string describing the number of audio channels in the stream

 

enum BvwRotation

The rotation is used by the video widget, as set by bacon_video_widget_set_rotation().

Members

BVW_ROTATION_R_ZERO

No rotation

 

BVW_ROTATION_R_90R

Rotate 90 degrees to the right

 

BVW_ROTATION_R_180

Rotate 180 degrees

 

BVW_ROTATION_R_90L

Rotate 90 degrees to the left

 

enum BvwTrackType

A type of media track.

Members

BVW_TRACK_TYPE_AUDIO

an audio track

 

BVW_TRACK_TYPE_SUBTITLE

a subtitle track

 

BVW_TRACK_TYPE_VIDEO

a video track

 

enum BvwVideoProperty

The video properties queryable with bacon_video_widget_get_video_property(), and settable with bacon_video_widget_set_video_property().

Members

BVW_VIDEO_BRIGHTNESS

the video brightness

 

BVW_VIDEO_CONTRAST

the video contrast

 

BVW_VIDEO_SATURATION

the video saturation

 

BVW_VIDEO_HUE

the video hue

 

enum BvwZoomMode

The zoom mode used by the video widget, as set by bacon_video_widget_set_zoom().

Members

BVW_ZOOM_NONE

No video zooming/cropping

 

BVW_ZOOM_EXPAND

Fill area with video, and crop the excess

 

enum BvwError

Error codes for BaconVideoWidget operations.

Members

BVW_ERROR_NO_PLUGIN_FOR_FILE

A required GStreamer plugin is missing.

 

BVW_ERROR_BROKEN_FILE

The movie file is broken and cannot be decoded.

 

BVW_ERROR_FILE_GENERIC

A generic error for problems with movie files.

 

BVW_ERROR_FILE_PERMISSION

Permission was refused to access the stream, or authentication was required.

 

BVW_ERROR_FILE_ENCRYPTED

The stream is encrypted and cannot be played.

 

BVW_ERROR_FILE_NOT_FOUND

The stream cannot be found.

 

BVW_ERROR_DVD_ENCRYPTED

The DVD is encrypted and libdvdcss is not installed.

 

BVW_ERROR_INVALID_DEVICE

The device given in an MRL (e.g. DVD drive or DVB tuner) did not exist.

 

BVW_ERROR_UNKNOWN_HOST

The host for a given stream could not be resolved.

 

BVW_ERROR_NETWORK_UNREACHABLE

The host for a given stream could not be reached.

 

BVW_ERROR_CONNECTION_REFUSED

The server for a given stream refused the connection.

 

BVW_ERROR_INVALID_LOCATION

An MRL was malformed, or CDDB playback was attempted (which is now unsupported).

 

BVW_ERROR_GENERIC

A generic error occurred.

 

BVW_ERROR_CODEC_NOT_HANDLED

The audio or video codec required by the stream is not supported.

 

BVW_ERROR_CANNOT_CAPTURE

Error determining frame capture support for a video with bacon_video_widget_can_get_frames().

 

BVW_ERROR_READ_ERROR

A generic error for problems reading streams.

 

BVW_ERROR_PLUGIN_LOAD

A library or plugin could not be loaded.

 

BVW_ERROR_EMPTY_FILE

A movie file was empty.

 

Property Details

The “audio-output-type” property

  “audio-output-type”        BvwAudioOutputType

The type of audio output to use (e.g. the number of channels).

Owner: BaconVideoWidget

Flags: Read / Write

Default value: BVW_AUDIO_SOUND_STEREO


The “av-offset” property

  “av-offset”                gint64

Control the synchronisation offset between the audio and video streams. Positive values make the audio ahead of the video and negative values make the audio go behind the video.

Owner: BaconVideoWidget

Flags: Read / Write

Default value: 0


The “brightness” property

  “brightness”               int

The brightness of the video display.

Owner: BaconVideoWidget

Flags: Read / Write

Allowed values: [0,65535]

Default value: 32768


The “contrast” property

  “contrast”                 int

The contrast of the video display.

Owner: BaconVideoWidget

Flags: Read / Write

Allowed values: [0,65535]

Default value: 32768


The “deinterlacing” property

  “deinterlacing”            gboolean

Whether to automatically deinterlace videos.

Owner: BaconVideoWidget

Flags: Read / Write

Default value: FALSE


The “download-filename” property

  “download-filename”        char *

The filename of the fully downloaded stream when using download buffering.

Owner: BaconVideoWidget

Flags: Read / Write

Default value: NULL


The “hue” property

  “hue”                      int

The hue of the video display.

Owner: BaconVideoWidget

Flags: Read / Write

Allowed values: [0,65535]

Default value: 32768


The “playing” property

  “playing”                  gboolean

Whether a stream is currently playing.

Owner: BaconVideoWidget

Flags: Read

Default value: FALSE


The “position” property

  “position”                 double

The current position in the stream, as a percentage between 0 and 1.

Owner: BaconVideoWidget

Flags: Read

Allowed values: [0,1]

Default value: 0


The “referrer” property

  “referrer”                 char *

The HTTP referrer URI.

Owner: BaconVideoWidget

Flags: Read / Write

Default value: NULL


The “saturation” property

  “saturation”               int

The saturation of the video display.

Owner: BaconVideoWidget

Flags: Read / Write

Allowed values: [0,65535]

Default value: 32768


The “seekable” property

  “seekable”                 gboolean

Whether the current stream can be seeked.

Owner: BaconVideoWidget

Flags: Read

Default value: FALSE


The “show-cursor” property

  “show-cursor”              gboolean

Whether the mouse cursor is shown.

Owner: BaconVideoWidget

Flags: Read / Write

Default value: FALSE


The “stream-length” property

  “stream-length”            gint64

The length of the current stream, in milliseconds.

Owner: BaconVideoWidget

Flags: Read

Allowed values: >= 0

Default value: 0


The “user-agent” property

  “user-agent”               char *

The HTTP user agent string to use.

Owner: BaconVideoWidget

Flags: Read / Write

Default value: NULL


The “volume” property

  “volume”                   double

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

Owner: BaconVideoWidget

Flags: Read / Write

Allowed values: [0,1]

Default value: 0

Signal Details

The “buffering” signal

void
user_function (BaconVideoWidget *bvw,
               double            percentage,
               gpointer          user_data)

Emitted regularly when a network stream is being buffered, to provide status updates on the buffering progress.

Parameters

bvw

the BaconVideoWidget which received the signal

 

percentage

the percentage of buffering completed, between 0 and 1

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “channels-change” signal

void
user_function (BaconVideoWidget *bvw,
               gpointer          user_data)

Emitted when the number of audio languages available changes, or when the selected audio language is changed.

Query the new list of audio languages with bacon_video_widget_get_languages().

Parameters

bvw

the BaconVideoWidget which received the signal

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “download-buffering” signal

void
user_function (BaconVideoWidget *bvw,
               double            percentage,
               gpointer          user_data)

Emitted regularly when a network stream is being cached on disk, to provide status updates on the buffering level of the stream.

Parameters

bvw

the BaconVideoWidget which received the signal

 

percentage

the percentage of download buffering completed, between 0 and 1

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “eos” signal

void
user_function (BaconVideoWidget *bvw,
               gpointer          user_data)

Emitted when the end of the current stream is reached.

Parameters

bvw

the BaconVideoWidget which received the signal

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “error” signal

void
user_function (BaconVideoWidget *bvw,
               char             *message,
               gboolean          playback_stopped,
               gpointer          user_data)

Emitted when the backend wishes to asynchronously report an error. If fatal is TRUE, playback of this stream cannot be restarted.

Parameters

bvw

the BaconVideoWidget which received the signal

 

message

the error message

 

playback_stopped

TRUE if playback has stopped due to the error, FALSE otherwise

 

fatal

TRUE if the error was fatal to playback, FALSE otherwise

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “got-metadata” signal

void
user_function (BaconVideoWidget *bvw,
               gpointer          user_data)

Emitted when the widget has updated the metadata of the current stream. This will typically happen just after opening a stream.

Call bacon_video_widget_get_metadata() to query the updated metadata.

Parameters

bvw

the BaconVideoWidget which received the signal

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “got-redirect” signal

void
user_function (BaconVideoWidget *bvw,
               char             *new_mrl,
               gpointer          user_data)

Emitted when a redirect response is received from a stream's server.

Parameters

bvw

the BaconVideoWidget which received the signal

 

new_mrl

the new MRL

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “languages-changed” signal

void
user_function (BaconVideoWidget *bvw,
               gpointer          user_data)

Emitted when the list of languages/audio tracks has changed.

Parameters

bvw

the BaconVideoWidget which received the signal

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “missing-plugins” signal

gboolean
user_function (BaconVideoWidget *bvw,
               GStrv             details,
               GStrv             descriptions,
               gboolean          playing,
               gpointer          user_data)

Emitted when plugins required to play the current stream are not found. This allows the application to request the user install them before proceeding to try and play the stream again.

Note that this signal is only available for the GStreamer backend.

Parameters

bvw

the BaconVideoWidget which received the signal

 

details

a NULL-terminated array of missing plugin details for use when installing the plugins with libgimme-codec

 

descriptions

a NULL-terminated array of missing plugin descriptions for display to the user

 

playing

TRUE if the stream could be played even without these plugins, FALSE otherwise

 

user_data

user data set when the signal handler was connected.

 

Returns

TRUE if the signal was handled and some action was taken, FALSE otherwise

Flags: Run Last


The “play-starting” signal

void
user_function (BaconVideoWidget *bvw,
               gpointer          user_data)

Emitted when a movie will start playing, meaning it's not buffering, or paused waiting for plugins to be installed, drives to be mounted or authentication to succeed.

This usually means that OSD popups can be hidden.

Parameters

bvw

the BaconVideoWidget which received the signal

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “subtitles-changed” signal

void
user_function (BaconVideoWidget *bvw,
               gpointer          user_data)

Emitted when the list of subtitle tracks has changed.

Parameters

bvw

the BaconVideoWidget which received the signal

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “tick” signal

void
user_function (BaconVideoWidget *bvw,
               gint64            current_time,
               gint64            stream_length,
               double            current_position,
               gboolean          seekable,
               gpointer          user_data)

Emitted every time an important time event happens, or at regular intervals when playing a stream.

Parameters

bvw

the BaconVideoWidget which received the signal

 

current_time

the current position in the stream, in milliseconds since the beginning of the stream

 

stream_length

the length of the stream, in milliseconds

 

current_position

the current position in the stream, as a percentage between 0 and 1

 

seekable

TRUE if the stream can be seeked, FALSE otherwise

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last