![]() |
![]() |
![]() |
GStreamer Base Plugins 0.10 Library Reference Manual | ![]() |
---|---|---|---|---|
Top | Description | Object Hierarchy | Properties | Signals |
#include <gst/pbutils/pbutils.h> GstDiscoverer; GstDiscoverer * gst_discoverer_new (GstClockTime timeout
,GError **err
); void gst_discoverer_start (GstDiscoverer *discoverer
); void gst_discoverer_stop (GstDiscoverer *discoverer
); GstDiscovererInfo * gst_discoverer_discover_uri (GstDiscoverer *discoverer
,const gchar *uri
,GError **err
); gboolean gst_discoverer_discover_uri_async (GstDiscoverer *discoverer
,const gchar *uri
); GstDiscovererInfo; enum GstDiscovererResult; GstClockTime gst_discoverer_info_get_duration (GstDiscovererInfo *info
); const GstStructure* gst_discoverer_info_get_misc (GstDiscovererInfo *info
); GstDiscovererResult gst_discoverer_info_get_result (GstDiscovererInfo *info
); GstDiscovererStreamInfo* gst_discoverer_info_get_stream_info (GstDiscovererInfo *info
); GList* gst_discoverer_info_get_stream_list (GstDiscovererInfo *info
); const GstTagList* gst_discoverer_info_get_tags (GstDiscovererInfo *info
); const gchar* gst_discoverer_info_get_uri (GstDiscovererInfo *info
); #define gst_discoverer_info_unref (info) GstDiscovererStreamInfo; GstDiscovererContainerInfo; GstDiscovererAudioInfo; GstDiscovererVideoInfo; GstCaps* gst_discoverer_stream_info_get_caps (GstDiscovererStreamInfo *info
); const GstStructure* gst_discoverer_stream_info_get_misc (GstDiscovererStreamInfo *info
); GstDiscovererStreamInfo* gst_discoverer_stream_info_get_next (GstDiscovererStreamInfo *info
); GstDiscovererStreamInfo* gst_discoverer_stream_info_get_previous (GstDiscovererStreamInfo *info
); const GstTagList* gst_discoverer_stream_info_get_tags (GstDiscovererStreamInfo *info
); #define gst_discoverer_stream_info_ref (info) #define gst_discoverer_stream_info_unref (info) void gst_discoverer_stream_info_list_free (GList *infos
); const gchar * gst_discoverer_stream_info_get_stream_type_nick (GstDiscovererStreamInfo *info
); GstDiscovererInfo* gst_discoverer_info_copy (GstDiscovererInfo *ptr
); #define gst_discoverer_info_ref (info) GList * gst_discoverer_info_get_audio_streams (GstDiscovererInfo *info
); GList * gst_discoverer_info_get_container_streams (GstDiscovererInfo *info
); GList * gst_discoverer_info_get_streams (GstDiscovererInfo *info
,GType streamtype
); GList * gst_discoverer_info_get_video_streams (GstDiscovererInfo *info
); guint gst_discoverer_audio_info_get_bitrate (GstDiscovererStreamInfo *info
); guint gst_discoverer_audio_info_get_channels (GstDiscovererStreamInfo *info
); guint gst_discoverer_audio_info_get_depth (GstDiscovererStreamInfo *info
); guint gst_discoverer_audio_info_get_max_bitrate (GstDiscovererStreamInfo *info
); guint gst_discoverer_audio_info_get_sample_rate (GstDiscovererStreamInfo *info
); GList * gst_discoverer_container_info_get_streams (GstDiscovererStreamInfo *info
); guint gst_discoverer_video_info_get_bitrate (GstDiscovererStreamInfo *info
); guint gst_discoverer_video_info_get_depth (GstDiscovererStreamInfo *info
); guint gst_discoverer_video_info_get_framerate_denom (GstDiscovererStreamInfo *info
); guint gst_discoverer_video_info_get_framerate_num (GstDiscovererStreamInfo *info
); guint gst_discoverer_video_info_get_height (GstDiscovererStreamInfo *info
); gboolean gst_discoverer_video_info_get_interlaced (GstDiscovererStreamInfo *info
); gboolean gst_discoverer_video_info_get_is_image (GstDiscovererStreamInfo *info
); guint gst_discoverer_video_info_get_max_bitrate (GstDiscovererStreamInfo *info
); guint gst_discoverer_video_info_get_par_denom (GstDiscovererStreamInfo *info
); guint gst_discoverer_video_info_get_par_num (GstDiscovererStreamInfo *info
); guint gst_discoverer_video_info_get_width (GstDiscovererStreamInfo *info
);
The GstDiscoverer is a utility object which allows to get as much information as possible from one or many URIs.
It provides two APIs, allowing usage in blocking or non-blocking mode.
The blocking mode just requires calling gst_discoverer_discover_uri()
with the URI one wishes to discover.
The non-blocking mode requires a running GMainLoop in the default
GMainContext, where one connects to the various signals, appends the
URIs to be processed (through gst_discoverer_discover_uri_async()
) and then
asks for the discovery to begin (through gst_discoverer_start()
).
All the information is returned in a GstDiscovererInfo structure.
Since 0.10.31
typedef struct _GstDiscoverer GstDiscoverer;
The GstDiscoverer structure.
Since 0.10.31
GstDiscoverer * gst_discoverer_new (GstClockTime timeout
,GError **err
);
Creates a new GstDiscoverer with the provided timeout.
|
timeout per file, in nanoseconds. Allowed are values between one second (GST_SECOND) and one hour (3600 * GST_SECOND) |
|
a pointer to a GError. can be NULL
|
Returns : |
The new GstDiscoverer. Free with gst_object_unref() when done.
If an error happened when creating the discoverer, err will be set
accordingly and NULL will be returned. If err is set, the caller must
free it when no longer needed using g_error_free() .
|
Since 0.10.31
void gst_discoverer_start (GstDiscoverer *discoverer
);
Allow asynchronous discovering of URIs to take place. A GMainLoop must be available for GstDiscoverer to properly work in asynchronous mode.
|
A GstDiscoverer |
Since 0.10.31
void gst_discoverer_stop (GstDiscoverer *discoverer
);
Stop the discovery of any pending URIs and clears the list of pending URIS (if any).
Since 0.10.31
|
A GstDiscoverer |
GstDiscovererInfo * gst_discoverer_discover_uri (GstDiscoverer *discoverer
,const gchar *uri
,GError **err
);
Synchronously discovers the given uri
.
A copy of uri
will be done internally, the caller can safely g_free()
afterwards.
|
A GstDiscoverer |
|
The URI to run on. |
|
If an error occured, this field will be filled in. |
Returns : |
see GstDiscovererInfo. The caller must free this structure after use. [transfer none] |
Since 0.10.31
gboolean gst_discoverer_discover_uri_async (GstDiscoverer *discoverer
,const gchar *uri
);
Appends the given uri
to the list of URIs to discoverer. The actual
discovery of the uri
will only take place if gst_discoverer_start()
has
been called.
A copy of uri
will be done internally, the caller can safely g_free()
afterwards.
|
A GstDiscoverer |
|
the URI to add. |
Returns : |
TRUE if the uri was succesfully appended to the list of pending
uris, else FALSE
|
Since 0.10.31
typedef struct _GstDiscovererInfo GstDiscovererInfo;
Structure containing the information of a URI analyzed by GstDiscoverer.
Since 0.10.31
typedef enum { GST_DISCOVERER_OK = 0, GST_DISCOVERER_URI_INVALID = 1, GST_DISCOVERER_ERROR = 2, GST_DISCOVERER_TIMEOUT = 3, GST_DISCOVERER_BUSY = 4, GST_DISCOVERER_MISSING_PLUGINS = 5 } GstDiscovererResult;
Result values for the discovery process.
The discovery was successful | |
the URI is invalid | |
an error happened and the GError is set | |
the discovery timed-out | |
the discoverer was already discovering a file | |
Some plugins are missing for full discovery |
Since 0.10.31
GstClockTime gst_discoverer_info_get_duration (GstDiscovererInfo *info
);
|
a GstDiscovererInfo |
Returns : |
the duration of the URI in GstClockTime (nanoseconds). Since 0.10.31 |
const GstStructure* gst_discoverer_info_get_misc (GstDiscovererInfo *info
);
|
a GstDiscovererInfo |
Returns : |
Miscellaneous information stored as a GstStructure (for example:
information about missing plugins). If you wish to use the GstStructure
after the life-time of info , you will need to copy it.
Since 0.10.31
|
GstDiscovererResult gst_discoverer_info_get_result (GstDiscovererInfo *info
);
|
a GstDiscovererInfo |
Returns : |
the result of the discovery as a GstDiscovererResult. Since 0.10.31 |
GstDiscovererStreamInfo* gst_discoverer_info_get_stream_info
(GstDiscovererInfo *info
);
|
a GstDiscovererInfo |
Returns : |
the structure (or topology) of the URI as a GstDiscovererStreamInfo. This structure can be traversed to see the original hierarchy. Unref with gst_discoverer_stream_info_unref after usage. Since 0.10.31 |
GList* gst_discoverer_info_get_stream_list (GstDiscovererInfo *info
);
|
a GstDiscovererInfo |
Returns : |
the list of all streams contained in the info. Free after usage with gst_discoverer_stream_info_list_free. Since 0.10.31 |
const GstTagList* gst_discoverer_info_get_tags (GstDiscovererInfo *info
);
|
a GstDiscovererInfo |
Returns : |
all tags contained in the URI . If you wish to use the tags after
the life-time of info , you will need to copy them.
Since 0.10.31
|
const gchar* gst_discoverer_info_get_uri (GstDiscovererInfo *info
);
|
a GstDiscovererInfo |
Returns : |
the URI to which this information corresponds to. Copy it if you
wish to use it after the life-time of info .
Since 0.10.31
|
#define gst_discoverer_info_unref(info) (gst_mini_object_unref((GstMiniObject*)info))
|
typedef struct _GstDiscovererStreamInfo GstDiscovererStreamInfo;
Base structure for informations concerning a media stream. Depending on the streamtype
,
One can find more media-specific information in GstDiscovererAudioInfo,
GstDiscovererVideoInfo, GstDiscovererContainerInfo.
Since 0.10.31
typedef struct _GstDiscovererContainerInfo GstDiscovererContainerInfo;
GstDiscovererStreamInfo specific to container streams.
Since 0.10.31
typedef struct _GstDiscovererAudioInfo GstDiscovererAudioInfo;
GstDiscovererStreamInfo specific to audio streams.
Since 0.10.31
typedef struct _GstDiscovererVideoInfo GstDiscovererVideoInfo;
GstDiscovererStreamInfo specific to video streams.
Since 0.10.31
GstCaps* gst_discoverer_stream_info_get_caps (GstDiscovererStreamInfo *info
);
|
a GstDiscovererStreamInfo |
Returns : |
the GstCaps of the stream. Unref with gst_caps_unref after usage. Since 0.10.31 |
const GstStructure* gst_discoverer_stream_info_get_misc (GstDiscovererStreamInfo *info
);
|
a GstDiscovererStreamInfo |
Returns : |
additional information regarding the stream (for example codec version,
profile, etc..). If you wish to use the GstStructure after the life-time of
info you will need to copy it.
Since 0.10.31
|
GstDiscovererStreamInfo* gst_discoverer_stream_info_get_next
(GstDiscovererStreamInfo *info
);
|
a GstDiscovererStreamInfo |
Returns : |
the next GstDiscovererStreamInfo in a chain. NULL for final streams.
Unref with gst_discoverer_stream_info_unref after usage.
Since 0.10.31
|
GstDiscovererStreamInfo* gst_discoverer_stream_info_get_previous
(GstDiscovererStreamInfo *info
);
|
a GstDiscovererStreamInfo |
Returns : |
the previous GstDiscovererStreamInfo in a chain. NULL for starting
points. Unref with gst_discoverer_stream_info_unref after usage.
Since 0.10.31
|
const GstTagList* gst_discoverer_stream_info_get_tags (GstDiscovererStreamInfo *info
);
|
a GstDiscovererStreamInfo |
Returns : |
the tags contained in this stream. If you wish to use the tags after
the life-time of info you will need to copy them.
Since 0.10.31
|
#define gst_discoverer_stream_info_ref(info) ((GstDiscovererStreamInfo*) gst_mini_object_ref((GstMiniObject*) info))
|
#define gst_discoverer_stream_info_unref(info) (gst_mini_object_unref((GstMiniObject*) info))
|
void gst_discoverer_stream_info_list_free
(GList *infos
);
Decrements the reference count of all contained GstDiscovererStreamInfo and fress the GList.
|
a GList of GstDiscovererStreamInfo |
const gchar * gst_discoverer_stream_info_get_stream_type_nick
(GstDiscovererStreamInfo *info
);
|
a GstDiscovererStreamInfo |
Returns : |
a human readable name for the stream type of the given info (ex : "audio",
"container",...).
Since 0.10.31
|
GstDiscovererInfo* gst_discoverer_info_copy (GstDiscovererInfo *ptr
);
|
|
Returns : |
#define gst_discoverer_info_ref(info) (gst_mini_object_ref((GstMiniObject*)info))
|
GList * gst_discoverer_info_get_audio_streams
(GstDiscovererInfo *info
);
Finds all the GstDiscovererAudioInfo contained in info
|
a GstDiscovererInfo |
Returns : |
A GList of matching GstDiscovererStreamInfo. The caller should free it with gst_discoverer_stream_info_list_free. Since 0.10.31 |
GList * gst_discoverer_info_get_container_streams
(GstDiscovererInfo *info
);
Finds all the GstDiscovererContainerInfo contained in info
|
a GstDiscovererInfo |
Returns : |
A GList of matching GstDiscovererStreamInfo. The caller should free it with g_list_free. Since 0.10.31 |
GList * gst_discoverer_info_get_streams (GstDiscovererInfo *info
,GType streamtype
);
Finds the GstDiscovererStreamInfo contained in info
that match the
given streamtype
.
|
a GstDiscovererInfo |
|
a GType of GstDiscovererStreamInfo |
Returns : |
A GList of matching GstDiscovererStreamInfo. The caller should free it with gst_discoverer_stream_info_list_free. Since 0.10.31 |
GList * gst_discoverer_info_get_video_streams
(GstDiscovererInfo *info
);
Finds all the GstDiscovererVideoInfo contained in info
|
a GstDiscovererInfo |
Returns : |
A GList of matching GstDiscovererStreamInfo. The caller should free it with gst_discoverer_stream_info_list_free. Since 0.10.31 |
guint gst_discoverer_audio_info_get_bitrate
(GstDiscovererStreamInfo *info
);
|
a GstDiscovererStreamInfo |
Returns : |
the average or nominal bitrate of the stream in bits/second. Since 0.10.31 |
guint gst_discoverer_audio_info_get_channels
(GstDiscovererStreamInfo *info
);
|
a GstDiscovererStreamInfo |
Returns : |
the number of channels in the stream. Since 0.10.31 |
guint gst_discoverer_audio_info_get_depth (GstDiscovererStreamInfo *info
);
|
a GstDiscovererStreamInfo |
Returns : |
the number of bits used per sample in each channel. Since 0.10.31 |
guint gst_discoverer_audio_info_get_max_bitrate
(GstDiscovererStreamInfo *info
);
|
a GstDiscovererStreamInfo |
Returns : |
the maximum bitrate of the stream in bits/second. Since 0.10.31 |
guint gst_discoverer_audio_info_get_sample_rate
(GstDiscovererStreamInfo *info
);
|
a GstDiscovererStreamInfo |
Returns : |
the sample rate of the stream in Hertz. Since 0.10.31 |
GList * gst_discoverer_container_info_get_streams
(GstDiscovererStreamInfo *info
);
|
a GstDiscovererStreamInfo |
Returns : |
the list of GstDiscovererStreamInfo this container stream offers. Free with gst_discoverer_stream_info_list_free after usage. Since 0.10.31 |
guint gst_discoverer_video_info_get_bitrate
(GstDiscovererStreamInfo *info
);
|
a GstDiscovererStreamInfo |
Returns : |
the average or nominal bitrate of the video stream in bits/second. Since 0.10.31 |
guint gst_discoverer_video_info_get_depth (GstDiscovererStreamInfo *info
);
|
a GstDiscovererStreamInfo |
Returns : |
the depth in bits of the video stream (only relevant for video streams). Since 0.10.31 |
guint gst_discoverer_video_info_get_framerate_denom
(GstDiscovererStreamInfo *info
);
|
a GstDiscovererStreamInfo |
Returns : |
the framerate of the video stream (denominator). Since 0.10.31 |
guint gst_discoverer_video_info_get_framerate_num
(GstDiscovererStreamInfo *info
);
|
a GstDiscovererStreamInfo |
Returns : |
the framerate of the video stream (numerator). Since 0.10.31 |
guint gst_discoverer_video_info_get_height
(GstDiscovererStreamInfo *info
);
|
a GstDiscovererStreamInfo |
Returns : |
the height of the video stream in pixels. Since 0.10.31 |
gboolean gst_discoverer_video_info_get_interlaced
(GstDiscovererStreamInfo *info
);
|
a GstDiscovererStreamInfo |
Returns : |
TRUE if the stream is interlaced, else FALSE .
Since 0.10.31
|
gboolean gst_discoverer_video_info_get_is_image
(GstDiscovererStreamInfo *info
);
|
a GstDiscovererStreamInfo |
Returns : |
TRUE if the video stream corresponds to an image (i.e. only contains one frame). Since 0.10.31 |
guint gst_discoverer_video_info_get_max_bitrate
(GstDiscovererStreamInfo *info
);
|
a GstDiscovererStreamInfo |
Returns : |
the maximum bitrate of the video stream in bits/second. Since 0.10.31 |
guint gst_discoverer_video_info_get_par_denom
(GstDiscovererStreamInfo *info
);
|
a GstDiscovererStreamInfo |
Returns : |
the Pixel Aspect Ratio (PAR) of the video stream (denominator). Since 0.10.31 |
guint gst_discoverer_video_info_get_par_num
(GstDiscovererStreamInfo *info
);
|
a GstDiscovererStreamInfo |
Returns : |
the Pixel Aspect Ratio (PAR) of the video stream (numerator). Since 0.10.31 |
guint gst_discoverer_video_info_get_width (GstDiscovererStreamInfo *info
);
|
a GstDiscovererStreamInfo |
Returns : |
the width of the video stream in pixels. Since 0.10.31 |
"timeout"
property"timeout" guint64 : Read / Write / Construct
The duration (in nanoseconds) after which the discovery of an individual URI will timeout.
If the discovery of a URI times out, the GST_DISCOVERER_TIMEOUT
will be
set on the result flags.
Allowed values: [1000000000,3600000000000]
Default value: 15000000000
"discovered"
signalvoid user_function (GstDiscoverer *discoverer, GstDiscovererInfo *info, GError *error, gpointer user_data) : Run Last
Will be emitted when all information on a URI could be discovered.
|
the GstDiscoverer |
|
the results GstDiscovererInfo |
|
GError, which will be non-NULL if an error occured during discovery. [type GLib.Error] |
|
user data set when the signal handler was connected. |
"finished"
signalvoid user_function (GstDiscoverer *discoverer, gpointer user_data) : Run Last
Will be emitted when all pending URIs have been processed.
|
the GstDiscoverer |
|
user data set when the signal handler was connected. |
"starting"
signalvoid user_function (GstDiscoverer *discoverer, gpointer user_data) : Run Last
Will be emitted when the discover starts analyzing the pending URIs
|
the GstDiscoverer |
|
user data set when the signal handler was connected. |