2009-08-06 10:14:37 +00:00
|
|
|
/* GStreamer Editing Services
|
2009-11-30 14:14:25 +00:00
|
|
|
* Copyright (C) 2009 Edward Hervey <edward.hervey@collabora.co.uk>
|
|
|
|
* 2009 Nokia Corporation
|
2009-08-06 10:14:37 +00:00
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Library General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 2 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Library General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Library General Public
|
|
|
|
* License along with this library; if not, write to the
|
2012-11-04 00:25:20 +00:00
|
|
|
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
|
|
* Boston, MA 02110-1301, USA.
|
2009-08-06 10:14:37 +00:00
|
|
|
*/
|
|
|
|
|
2020-03-17 21:13:51 +00:00
|
|
|
#pragma once
|
2009-08-06 10:14:37 +00:00
|
|
|
|
2016-04-28 10:39:41 +00:00
|
|
|
#include <glib.h>
|
2018-03-13 13:45:24 +00:00
|
|
|
#include <ges/ges-prelude.h>
|
2016-04-28 10:39:41 +00:00
|
|
|
|
2016-04-25 12:11:00 +00:00
|
|
|
G_BEGIN_DECLS
|
|
|
|
|
2019-05-01 16:56:44 +00:00
|
|
|
/**
|
|
|
|
* GES_PADDING: (attributes doc.skip=true)
|
|
|
|
*/
|
2012-09-22 16:51:46 +00:00
|
|
|
#define GES_PADDING 4
|
|
|
|
|
2019-05-01 16:56:44 +00:00
|
|
|
/**
|
|
|
|
* GES_PADDING_LARGE: (attributes doc.skip=true)
|
|
|
|
*/
|
2012-09-22 16:51:46 +00:00
|
|
|
#define GES_PADDING_LARGE 20
|
2010-11-29 12:24:13 +00:00
|
|
|
|
2020-02-21 12:17:11 +00:00
|
|
|
/**
|
|
|
|
* GESFrameNumber:
|
|
|
|
*
|
|
|
|
* A datatype to hold a frame number.
|
|
|
|
*/
|
|
|
|
typedef gint64 GESFrameNumber;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* GES_FRAME_NUMBER_NONE: (value 9223372036854775807) (type GESFrameNumber)
|
|
|
|
*
|
|
|
|
* Constant to define an undefined frame number
|
|
|
|
*/
|
|
|
|
#define GES_FRAME_NUMBER_NONE ((gint64) 9223372036854775807)
|
|
|
|
|
|
|
|
/**
|
|
|
|
* GES_FRAME_NUMBER_IS_VALID:
|
|
|
|
* Tests if a given GESFrameNumber represents a valid frame
|
|
|
|
*/
|
|
|
|
#define GES_FRAME_NUMBER_IS_VALID(frames) (((GESFrameNumber) frames) != GES_FRAME_NUMBER_NONE)
|
|
|
|
|
|
|
|
/**
|
|
|
|
* GES_TYPE_FRAME_NUMBER:
|
|
|
|
*
|
|
|
|
* The #GType of a #GESFrameNumber.
|
|
|
|
*/
|
|
|
|
#define GES_TYPE_FRAME_NUMBER G_TYPE_UINT64
|
|
|
|
|
2010-11-29 12:24:13 +00:00
|
|
|
/* Type definitions */
|
|
|
|
|
2009-08-06 10:14:37 +00:00
|
|
|
typedef struct _GESTimeline GESTimeline;
|
|
|
|
typedef struct _GESTimelineClass GESTimelineClass;
|
|
|
|
|
2013-04-23 23:04:04 +00:00
|
|
|
typedef struct _GESLayer GESLayer;
|
|
|
|
typedef struct _GESLayerClass GESLayerClass;
|
2009-08-06 10:14:37 +00:00
|
|
|
|
2013-01-15 13:52:17 +00:00
|
|
|
typedef struct _GESTimelineElementClass GESTimelineElementClass;
|
|
|
|
typedef struct _GESTimelineElement GESTimelineElement;
|
|
|
|
|
2013-03-01 01:27:50 +00:00
|
|
|
typedef struct _GESContainer GESContainer;
|
|
|
|
typedef struct _GESContainerClass GESContainerClass;
|
|
|
|
|
2013-01-20 15:42:29 +00:00
|
|
|
typedef struct _GESClip GESClip;
|
|
|
|
typedef struct _GESClipClass GESClipClass;
|
2009-08-06 10:14:37 +00:00
|
|
|
|
2013-01-17 03:26:35 +00:00
|
|
|
typedef struct _GESOperationClip GESOperationClip;
|
|
|
|
typedef struct _GESOperationClipClass GESOperationClipClass;
|
2010-12-09 13:25:22 +00:00
|
|
|
|
2013-07-01 14:27:54 +00:00
|
|
|
typedef struct _GESPipeline GESPipeline;
|
|
|
|
typedef struct _GESPipelineClass GESPipelineClass;
|
2009-08-06 10:14:37 +00:00
|
|
|
|
2013-01-17 03:35:39 +00:00
|
|
|
typedef struct _GESSourceClip GESSourceClip;
|
|
|
|
typedef struct _GESSourceClipClass GESSourceClipClass;
|
2009-08-06 10:14:37 +00:00
|
|
|
|
2013-01-25 18:45:07 +00:00
|
|
|
typedef struct _GESBaseEffectClip GESBaseEffectClip;
|
|
|
|
typedef struct _GESBaseEffectClipClass GESBaseEffectClipClass;
|
2011-01-31 12:28:44 +00:00
|
|
|
|
2013-01-20 15:44:57 +00:00
|
|
|
typedef struct _GESUriClip GESUriClip;
|
|
|
|
typedef struct _GESUriClipClass GESUriClipClass;
|
2010-06-14 11:31:15 +00:00
|
|
|
|
2013-01-25 14:26:14 +00:00
|
|
|
typedef struct _GESBaseTransitionClip GESBaseTransitionClip;
|
|
|
|
typedef struct _GESBaseTransitionClipClass GESBaseTransitionClipClass;
|
2009-08-06 10:14:37 +00:00
|
|
|
|
2013-01-25 18:16:21 +00:00
|
|
|
typedef struct _GESTransitionClip GESTransitionClip;
|
|
|
|
typedef struct _GESTransitionClipClass GESTransitionClipClass;
|
2010-12-09 16:09:11 +00:00
|
|
|
|
2013-01-17 03:58:28 +00:00
|
|
|
typedef struct _GESTestClip GESTestClip;
|
|
|
|
typedef struct _GESTestClipClass GESTestClipClass;
|
2010-06-10 11:23:59 +00:00
|
|
|
|
2013-01-17 03:55:03 +00:00
|
|
|
typedef struct _GESTitleClip GESTitleClip;
|
|
|
|
typedef struct _GESTitleClipClass GESTitleClipClass;
|
2010-06-14 11:31:15 +00:00
|
|
|
|
2013-01-17 03:49:43 +00:00
|
|
|
typedef struct _GESOverlayClip GESOverlayClip;
|
|
|
|
typedef struct _GESOverlayClipClass GESOverlayClipClass;
|
2010-07-01 10:34:46 +00:00
|
|
|
|
2013-01-17 03:53:26 +00:00
|
|
|
typedef struct _GESTextOverlayClip GESTextOverlayClip;
|
|
|
|
typedef struct _GESTextOverlayClipClass GESTextOverlayClipClass;
|
2010-06-21 13:47:04 +00:00
|
|
|
|
2013-01-25 18:51:02 +00:00
|
|
|
typedef struct _GESEffectClip GESEffectClip;
|
|
|
|
typedef struct _GESEffectClipClass GESEffectClipClass;
|
2011-02-10 15:15:50 +00:00
|
|
|
|
2013-06-26 21:08:57 +00:00
|
|
|
typedef struct _GESGroup GESGroup;
|
|
|
|
typedef struct _GESGroupClass GESGroupClass;
|
|
|
|
|
2009-08-06 10:14:37 +00:00
|
|
|
typedef struct _GESTrack GESTrack;
|
|
|
|
typedef struct _GESTrackClass GESTrackClass;
|
|
|
|
|
2013-01-26 15:31:33 +00:00
|
|
|
typedef struct _GESTrackElement GESTrackElement;
|
|
|
|
typedef struct _GESTrackElementClass GESTrackElementClass;
|
2009-08-06 10:14:37 +00:00
|
|
|
|
2013-01-26 16:08:20 +00:00
|
|
|
typedef struct _GESSource GESSource;
|
|
|
|
typedef struct _GESSourceClass GESSourceClass;
|
2009-08-06 16:54:01 +00:00
|
|
|
|
2013-01-27 15:27:19 +00:00
|
|
|
typedef struct _GESOperation GESOperation;
|
|
|
|
typedef struct _GESOperationClass GESOperationClass;
|
2010-06-30 15:50:49 +00:00
|
|
|
|
2013-01-26 15:35:19 +00:00
|
|
|
typedef struct _GESBaseEffect GESBaseEffect;
|
|
|
|
typedef struct _GESBaseEffectClass GESBaseEffectClass;
|
2010-11-05 11:12:24 +00:00
|
|
|
|
2013-01-26 15:40:51 +00:00
|
|
|
typedef struct _GESEffect GESEffect;
|
|
|
|
typedef struct _GESEffectClass GESEffectClass;
|
2011-02-10 11:17:50 +00:00
|
|
|
|
2013-07-09 13:31:15 +00:00
|
|
|
typedef struct _GESVideoSource GESVideoSource;
|
|
|
|
typedef struct _GESVideoSourceClass GESVideoSourceClass;
|
|
|
|
|
|
|
|
typedef struct _GESAudioSource GESAudioSource;
|
|
|
|
typedef struct _GESAudioSourceClass GESAudioSourceClass;
|
|
|
|
|
|
|
|
typedef struct _GESVideoUriSource GESVideoUriSource;
|
|
|
|
typedef struct _GESVideoUriSourceClass GESVideoUriSourceClass;
|
|
|
|
|
|
|
|
typedef struct _GESAudioUriSource GESAudioUriSource;
|
|
|
|
typedef struct _GESAudioUriSourceClass GESAudioUriSourceClass;
|
2009-09-21 10:51:16 +00:00
|
|
|
|
2013-01-26 17:21:56 +00:00
|
|
|
typedef struct _GESImageSource GESImageSource;
|
|
|
|
typedef struct _GESImageSourceClass GESImageSourceClass;
|
2010-08-06 10:58:08 +00:00
|
|
|
|
2013-11-12 11:13:31 +00:00
|
|
|
typedef struct _GESMultiFileSource GESMultiFileSource;
|
|
|
|
typedef struct _GESMultiFileSourceClass GESMultiFileSourceClass;
|
|
|
|
|
2013-01-27 15:31:10 +00:00
|
|
|
typedef struct _GESTransition GESTransition;
|
|
|
|
typedef struct _GESTransitionClass GESTransitionClass;
|
2010-05-24 12:58:55 +00:00
|
|
|
|
2013-01-27 15:44:13 +00:00
|
|
|
typedef struct _GESAudioTransition GESAudioTransition;
|
|
|
|
typedef struct _GESAudioTransitionClass
|
|
|
|
GESAudioTransitionClass;
|
2010-06-18 09:09:28 +00:00
|
|
|
|
2013-01-27 15:41:51 +00:00
|
|
|
typedef struct _GESVideoTransition GESVideoTransition;
|
|
|
|
typedef struct _GESVideoTransitionClass
|
|
|
|
GESVideoTransitionClass;
|
2010-06-18 09:24:07 +00:00
|
|
|
|
2013-01-26 16:03:39 +00:00
|
|
|
typedef struct _GESVideoTestSource GESVideoTestSource;
|
|
|
|
typedef struct _GESVideoTestSourceClass
|
|
|
|
GESVideoTestSourceClass;
|
2010-06-10 15:44:17 +00:00
|
|
|
|
2013-01-26 16:02:02 +00:00
|
|
|
typedef struct _GESAudioTestSource GESAudioTestSource;
|
|
|
|
typedef struct _GESAudioTestSourceClass
|
|
|
|
GESAudioTestSourceClass;
|
2010-06-11 08:39:14 +00:00
|
|
|
|
2013-01-26 17:25:14 +00:00
|
|
|
typedef struct _GESTitleSource GESTitleSource;
|
|
|
|
typedef struct _GESTitleSourceClass
|
|
|
|
GESTitleSourceClass;
|
2010-06-14 15:52:09 +00:00
|
|
|
|
2013-01-27 15:24:44 +00:00
|
|
|
typedef struct _GESTextOverlay GESTextOverlay;
|
|
|
|
typedef struct _GESTextOverlayClass
|
|
|
|
GESTextOverlayClass;
|
2010-06-23 14:30:18 +00:00
|
|
|
|
2010-09-13 23:21:15 +00:00
|
|
|
typedef struct _GESFormatter GESFormatter;
|
|
|
|
typedef struct _GESFormatterClass GESFormatterClass;
|
2010-06-23 14:30:18 +00:00
|
|
|
|
2011-08-28 01:55:46 +00:00
|
|
|
typedef struct _GESPitiviFormatter GESPitiviFormatter;
|
|
|
|
typedef struct _GESPitiviFormatterClass GESPitiviFormatterClass;
|
2010-10-07 12:49:15 +00:00
|
|
|
|
2012-09-01 02:36:37 +00:00
|
|
|
typedef struct _GESAsset GESAsset;
|
|
|
|
typedef struct _GESAssetClass GESAssetClass;
|
2012-09-10 00:15:17 +00:00
|
|
|
|
2013-01-27 15:51:52 +00:00
|
|
|
typedef struct _GESClipAsset GESClipAsset;
|
|
|
|
typedef struct _GESClipAssetClass GESClipAssetClass;
|
2012-12-21 21:51:26 +00:00
|
|
|
|
2013-01-20 15:44:57 +00:00
|
|
|
typedef struct _GESUriClipAsset GESUriClipAsset;
|
|
|
|
typedef struct _GESUriClipAssetClass GESUriClipAssetClass;
|
2012-09-01 02:36:37 +00:00
|
|
|
|
2013-01-26 17:14:57 +00:00
|
|
|
typedef struct _GESTrackElementAsset GESTrackElementAsset;
|
|
|
|
typedef struct _GESTrackElementAssetClass GESTrackElementAssetClass;
|
2012-12-21 23:48:03 +00:00
|
|
|
|
2013-01-26 17:07:01 +00:00
|
|
|
typedef struct _GESUriSourceAsset GESUriSourceAsset;
|
|
|
|
typedef struct _GESUriSourceAssetClass GESUriSourceAssetClass;
|
2012-12-21 17:28:16 +00:00
|
|
|
|
2012-09-02 12:14:27 +00:00
|
|
|
typedef struct _GESProject GESProject;
|
|
|
|
typedef struct _GESProjectClass GESProjectClass;
|
|
|
|
|
2012-09-10 00:12:06 +00:00
|
|
|
typedef struct _GESExtractable GESExtractable;
|
|
|
|
typedef struct _GESExtractableInterface GESExtractableInterface;
|
|
|
|
|
2013-03-28 17:51:45 +00:00
|
|
|
typedef struct _GESVideoTrackClass GESVideoTrackClass;
|
|
|
|
typedef struct _GESVideoTrack GESVideoTrack;
|
|
|
|
|
|
|
|
typedef struct _GESAudioTrackClass GESAudioTrackClass;
|
|
|
|
typedef struct _GESAudioTrack GESAudioTrack;
|
|
|
|
|
2019-08-22 16:50:00 +00:00
|
|
|
typedef struct _GESMarkerList GESMarkerList;
|
|
|
|
typedef struct _GESMarker GESMarker;
|
|
|
|
|
2020-03-17 18:51:39 +00:00
|
|
|
typedef struct _GESEffectAssetClass GESEffectAssetClass;
|
|
|
|
typedef struct _GESEffectAsset GESEffectAsset;
|
|
|
|
|
|
|
|
typedef struct _GESXmlFormatterClass GESXmlFormatterClass;
|
|
|
|
typedef struct _GESXmlFormatter GESXmlFormatter;
|
|
|
|
|
|
|
|
#define GES_DECLARE_TYPE(ObjName, obj_name, OBJ_NAME) \
|
|
|
|
GES_API GType ges_##obj_name##_get_type(void); \
|
|
|
|
G_GNUC_BEGIN_IGNORE_DEPRECATIONS \
|
|
|
|
typedef struct _GES##ObjName##Private GES##ObjName##Private; \
|
|
|
|
\
|
|
|
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GES##ObjName, gst_object_unref) \
|
|
|
|
\
|
|
|
|
static G_GNUC_UNUSED inline GES##ObjName *GES_##OBJ_NAME(gpointer ptr) { \
|
|
|
|
return G_TYPE_CHECK_INSTANCE_CAST(ptr, ges_##obj_name##_get_type(), \
|
|
|
|
GES##ObjName); \
|
|
|
|
} \
|
|
|
|
static G_GNUC_UNUSED inline GES##ObjName##Class *GES_##OBJ_NAME##_CLASS(gpointer ptr) { \
|
|
|
|
return G_TYPE_CHECK_CLASS_CAST(ptr, ges_##obj_name##_get_type(), \
|
|
|
|
GES##ObjName##Class); \
|
|
|
|
} \
|
|
|
|
static G_GNUC_UNUSED inline gboolean GES_IS_##OBJ_NAME(gpointer ptr) { \
|
|
|
|
return G_TYPE_CHECK_INSTANCE_TYPE(ptr, ges_##obj_name##_get_type()); \
|
|
|
|
} \
|
|
|
|
static G_GNUC_UNUSED inline gboolean GES_IS_##OBJ_NAME##_CLASS(gpointer ptr) { \
|
|
|
|
return G_TYPE_CHECK_CLASS_TYPE(ptr, ges_##obj_name##_get_type()); \
|
|
|
|
} \
|
|
|
|
static G_GNUC_UNUSED inline GES##ObjName##Class *GES_##OBJ_NAME##_GET_CLASS( \
|
|
|
|
gpointer ptr) { \
|
|
|
|
return G_TYPE_INSTANCE_GET_CLASS(ptr, ges_##obj_name##_get_type(), \
|
|
|
|
GES##ObjName##Class); \
|
|
|
|
} \
|
|
|
|
G_GNUC_END_IGNORE_DEPRECATIONS
|
|
|
|
|
2016-04-25 12:11:00 +00:00
|
|
|
G_END_DECLS
|