mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-11 19:06:33 +00:00
e835042f04
APIs: - ges_timeline_get_frame_time - ges_timeline_get_frame_at - ges_clip_asset_get_frame_time - ges_clip_get_timeline_time_from_source_frame Extracting ges_util_structure_get_clocktime to internal utilities adding support for specifying timing values in frames with the special f<frame-number> synthax.
254 lines
9.1 KiB
C
254 lines
9.1 KiB
C
/* GStreamer Editing Services
|
|
* Copyright (C) 2009 Edward Hervey <edward.hervey@collabora.co.uk>
|
|
* 2009 Nokia Corporation
|
|
*
|
|
* 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
|
|
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
* Boston, MA 02110-1301, USA.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <glib.h>
|
|
#include <ges/ges-prelude.h>
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
/**
|
|
* GES_PADDING: (attributes doc.skip=true)
|
|
*/
|
|
#define GES_PADDING 4
|
|
|
|
/**
|
|
* GES_PADDING_LARGE: (attributes doc.skip=true)
|
|
*/
|
|
#define GES_PADDING_LARGE 20
|
|
|
|
/**
|
|
* 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
|
|
|
|
/* Type definitions */
|
|
|
|
typedef struct _GESTimeline GESTimeline;
|
|
typedef struct _GESTimelineClass GESTimelineClass;
|
|
|
|
typedef struct _GESLayer GESLayer;
|
|
typedef struct _GESLayerClass GESLayerClass;
|
|
|
|
typedef struct _GESTimelineElementClass GESTimelineElementClass;
|
|
typedef struct _GESTimelineElement GESTimelineElement;
|
|
|
|
typedef struct _GESContainer GESContainer;
|
|
typedef struct _GESContainerClass GESContainerClass;
|
|
|
|
typedef struct _GESClip GESClip;
|
|
typedef struct _GESClipClass GESClipClass;
|
|
|
|
typedef struct _GESOperationClip GESOperationClip;
|
|
typedef struct _GESOperationClipClass GESOperationClipClass;
|
|
|
|
typedef struct _GESPipeline GESPipeline;
|
|
typedef struct _GESPipelineClass GESPipelineClass;
|
|
|
|
typedef struct _GESSourceClip GESSourceClip;
|
|
typedef struct _GESSourceClipClass GESSourceClipClass;
|
|
|
|
typedef struct _GESBaseEffectClip GESBaseEffectClip;
|
|
typedef struct _GESBaseEffectClipClass GESBaseEffectClipClass;
|
|
|
|
typedef struct _GESUriClip GESUriClip;
|
|
typedef struct _GESUriClipClass GESUriClipClass;
|
|
|
|
typedef struct _GESBaseTransitionClip GESBaseTransitionClip;
|
|
typedef struct _GESBaseTransitionClipClass GESBaseTransitionClipClass;
|
|
|
|
typedef struct _GESTransitionClip GESTransitionClip;
|
|
typedef struct _GESTransitionClipClass GESTransitionClipClass;
|
|
|
|
typedef struct _GESTestClip GESTestClip;
|
|
typedef struct _GESTestClipClass GESTestClipClass;
|
|
|
|
typedef struct _GESTitleClip GESTitleClip;
|
|
typedef struct _GESTitleClipClass GESTitleClipClass;
|
|
|
|
typedef struct _GESOverlayClip GESOverlayClip;
|
|
typedef struct _GESOverlayClipClass GESOverlayClipClass;
|
|
|
|
typedef struct _GESTextOverlayClip GESTextOverlayClip;
|
|
typedef struct _GESTextOverlayClipClass GESTextOverlayClipClass;
|
|
|
|
typedef struct _GESEffectClip GESEffectClip;
|
|
typedef struct _GESEffectClipClass GESEffectClipClass;
|
|
|
|
typedef struct _GESGroup GESGroup;
|
|
typedef struct _GESGroupClass GESGroupClass;
|
|
|
|
typedef struct _GESTrack GESTrack;
|
|
typedef struct _GESTrackClass GESTrackClass;
|
|
|
|
typedef struct _GESTrackElement GESTrackElement;
|
|
typedef struct _GESTrackElementClass GESTrackElementClass;
|
|
|
|
typedef struct _GESSource GESSource;
|
|
typedef struct _GESSourceClass GESSourceClass;
|
|
|
|
typedef struct _GESOperation GESOperation;
|
|
typedef struct _GESOperationClass GESOperationClass;
|
|
|
|
typedef struct _GESBaseEffect GESBaseEffect;
|
|
typedef struct _GESBaseEffectClass GESBaseEffectClass;
|
|
|
|
typedef struct _GESEffect GESEffect;
|
|
typedef struct _GESEffectClass GESEffectClass;
|
|
|
|
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;
|
|
|
|
typedef struct _GESImageSource GESImageSource;
|
|
typedef struct _GESImageSourceClass GESImageSourceClass;
|
|
|
|
typedef struct _GESMultiFileSource GESMultiFileSource;
|
|
typedef struct _GESMultiFileSourceClass GESMultiFileSourceClass;
|
|
|
|
typedef struct _GESTransition GESTransition;
|
|
typedef struct _GESTransitionClass GESTransitionClass;
|
|
|
|
typedef struct _GESAudioTransition GESAudioTransition;
|
|
typedef struct _GESAudioTransitionClass
|
|
GESAudioTransitionClass;
|
|
|
|
typedef struct _GESVideoTransition GESVideoTransition;
|
|
typedef struct _GESVideoTransitionClass
|
|
GESVideoTransitionClass;
|
|
|
|
typedef struct _GESVideoTestSource GESVideoTestSource;
|
|
typedef struct _GESVideoTestSourceClass
|
|
GESVideoTestSourceClass;
|
|
|
|
typedef struct _GESAudioTestSource GESAudioTestSource;
|
|
typedef struct _GESAudioTestSourceClass
|
|
GESAudioTestSourceClass;
|
|
|
|
typedef struct _GESTitleSource GESTitleSource;
|
|
typedef struct _GESTitleSourceClass
|
|
GESTitleSourceClass;
|
|
|
|
typedef struct _GESTextOverlay GESTextOverlay;
|
|
typedef struct _GESTextOverlayClass
|
|
GESTextOverlayClass;
|
|
|
|
typedef struct _GESFormatter GESFormatter;
|
|
typedef struct _GESFormatterClass GESFormatterClass;
|
|
|
|
typedef struct _GESPitiviFormatter GESPitiviFormatter;
|
|
typedef struct _GESPitiviFormatterClass GESPitiviFormatterClass;
|
|
|
|
typedef struct _GESAsset GESAsset;
|
|
typedef struct _GESAssetClass GESAssetClass;
|
|
|
|
typedef struct _GESClipAsset GESClipAsset;
|
|
typedef struct _GESClipAssetClass GESClipAssetClass;
|
|
|
|
typedef struct _GESUriClipAsset GESUriClipAsset;
|
|
typedef struct _GESUriClipAssetClass GESUriClipAssetClass;
|
|
|
|
typedef struct _GESTrackElementAsset GESTrackElementAsset;
|
|
typedef struct _GESTrackElementAssetClass GESTrackElementAssetClass;
|
|
|
|
typedef struct _GESUriSourceAsset GESUriSourceAsset;
|
|
typedef struct _GESUriSourceAssetClass GESUriSourceAssetClass;
|
|
|
|
typedef struct _GESProject GESProject;
|
|
typedef struct _GESProjectClass GESProjectClass;
|
|
|
|
typedef struct _GESExtractable GESExtractable;
|
|
typedef struct _GESExtractableInterface GESExtractableInterface;
|
|
|
|
typedef struct _GESVideoTrackClass GESVideoTrackClass;
|
|
typedef struct _GESVideoTrack GESVideoTrack;
|
|
|
|
typedef struct _GESAudioTrackClass GESAudioTrackClass;
|
|
typedef struct _GESAudioTrack GESAudioTrack;
|
|
|
|
typedef struct _GESMarkerList GESMarkerList;
|
|
typedef struct _GESMarker GESMarker;
|
|
|
|
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
|
|
|
|
G_END_DECLS
|