1 /* GStreamer Editing Services
3 * Copyright (C) 2012 Thibault Saunier <thibault.saunier@collabora.com>
4 * Copyright (C) 2012 Volodymyr Rudyi <vladimir.rudoy@gmail.com>
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Library General Public License for more details.
16 * You should have received a copy of the GNU Library General Public
17 * License along with this library; if not, write to the
18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 * Boston, MA 02111-1307, USA.
24 #include <glib-object.h>
26 #include <ges/ges-types.h>
27 #include <ges/ges-asset.h>
28 #include <ges/ges-source-clip-asset.h>
29 #include <ges/ges-track-element-asset.h>
32 #define GES_TYPE_URI_CLIP_ASSET ges_uri_clip_asset_get_type()
33 GES_DECLARE_TYPE(UriClipAsset, uri_clip_asset, URI_CLIP_ASSET);
35 struct _GESUriClipAsset
37 GESSourceClipAsset parent;
40 GESUriClipAssetPrivate *priv;
42 /* Padding for API extension */
43 gpointer __ges_reserved[GES_PADDING];
46 struct _GESUriClipAssetClass
48 GESSourceClipAssetClass parent_class;
51 GstDiscoverer *discoverer; /* Unused */
52 GstDiscoverer *sync_discoverer; /* Unused */
54 void (*discovered) (GstDiscoverer * discoverer, /* Unused */
55 GstDiscovererInfo * info,
59 gpointer _ges_reserved[GES_PADDING -1];
63 GstDiscovererInfo *ges_uri_clip_asset_get_info (const GESUriClipAsset * self);
65 GstClockTime ges_uri_clip_asset_get_duration (GESUriClipAsset *self);
67 GstClockTime ges_uri_clip_asset_get_max_duration (GESUriClipAsset *self);
69 gboolean ges_uri_clip_asset_is_image (GESUriClipAsset *self);
71 void ges_uri_clip_asset_new (const gchar *uri,
72 GCancellable *cancellable,
73 GAsyncReadyCallback callback,
76 GESUriClipAsset * ges_uri_clip_asset_finish (GAsyncResult * res, GError ** error);
78 GESUriClipAsset* ges_uri_clip_asset_request_sync (const gchar *uri, GError **error);
80 void ges_uri_clip_asset_class_set_timeout (GESUriClipAssetClass *klass,
81 GstClockTime timeout);
83 const GList * ges_uri_clip_asset_get_stream_assets (GESUriClipAsset *self);
85 #define GES_TYPE_URI_SOURCE_ASSET ges_uri_source_asset_get_type()
86 GES_DECLARE_TYPE(UriSourceAsset, uri_source_asset, URI_SOURCE_ASSET);
91 * Asset to create a stream specific #GESSource for a media file.
93 * NOTE: You should never request such a #GESAsset as they will be created automatically
94 * by #GESUriClipAsset-s.
96 struct _GESUriSourceAsset
98 GESTrackElementAsset parent;
101 GESUriSourceAssetPrivate *priv;
103 /* Padding for API extension */
104 gpointer __ges_reserved[GES_PADDING];
107 struct _GESUriSourceAssetClass
109 GESTrackElementAssetClass parent_class;
111 gpointer _ges_reserved[GES_PADDING];
114 GstDiscovererStreamInfo * ges_uri_source_asset_get_stream_info (GESUriSourceAsset *asset);
116 const gchar * ges_uri_source_asset_get_stream_uri (GESUriSourceAsset *asset);
118 const GESUriClipAsset *ges_uri_source_asset_get_filesource_asset (GESUriSourceAsset *asset);
120 gboolean ges_uri_source_asset_is_image (GESUriSourceAsset *asset);