Thibault Saunier
724a6c1bb5
smart-adder: Implement a GESSmartAdder bin element to be used as mixing element
...
..in audio tracks
2013-06-23 18:37:40 -04:00
Thibault Saunier
b87c800743
meta-container: Add a VOLUME default meta to layers
2013-06-23 18:28:53 -04:00
Thibault Saunier
29bfe9c0fe
ges: Misc documentation fixes
2013-06-23 18:28:53 -04:00
Thibault Saunier
7e25aaeccc
track: Implement infrastructure for mixing
2013-06-23 18:28:52 -04:00
Thibault Saunier
58aba118a6
track-element: Set a reference to the GESTrackElement on the GnlObjects using qdata
2013-06-23 18:28:52 -04:00
Thibault Saunier
55b7628382
ges: Make space in the GESTracks to be able to add mixing elements later
...
And update the tests
2013-06-23 18:28:52 -04:00
Thibault Saunier
700a56f88c
layer: Fix some mix up in variable names
2013-06-23 17:39:05 -04:00
Thibault Saunier
439f9b4cc0
layer: Simplify a bit how we handle priorities
2013-06-23 17:39:05 -04:00
Thibault Saunier
b57f55121b
timeline-element: Make it possible to reset the timeline property to NULL
...
+ Add some debug symbol
2013-06-23 17:39:05 -04:00
Thibault Saunier
9b14c001b0
ges: Implement GESAudioTrack and GESVideoTrack, subclasses of GESTrack
2013-06-23 17:38:57 -04:00
Thibault Saunier
f6038e3ad2
ges: Port to the new commit based API in GNL
...
The GNL API changed to go from a model where user could
enable/disable updates in the composition, which leaded to races
in many places, to a model where any positioning change in the
composition is not directly done but 'cached' and then the user
has to commit those changes so they become effective in the media
processing stack.
The new API in GES is pretty similare and is basically copy
pasting this new design.
We still need to see if in some context it would make sense to add
a mode where we would commit any changes ourself at the end of our
operation for basic use cases.
Removed APIs:
ges_timeline_enable_update
ges_timeline_is_updating
ges_track_enable_update
ges_track_is_updating
New APIs:
ges_track_commit
ges_timeline_commit
2013-06-23 16:33:33 -04:00
Lubosz Sarnecki
30f0924055
timeline: fix segfaults
...
don't call the timeline update, when the reference is invalid
https://bugzilla.gnome.org/show_bug.cgi?id=702605
2013-06-20 09:54:02 -04:00
Mathieu Duponchelle
1d00f45f4f
ges-uri-asset.c: Fix ges_uri_asset_request_sync annotations.
2013-06-16 22:02:49 -04:00
Thibault Saunier
d702b16e25
project: Disable update in the project rather than the formatter
...
We need to make sure the update are disabled until the project is fully
loaded, let the responsability to the project instead of the formatter
2013-06-12 12:00:59 -04:00
Thibault Saunier
284648e536
timeline: Sync track enable_update property with parent
...
When we add a track to a timeline, we want it "enable update" property
to be set to the timeline's
2013-06-12 11:16:37 -04:00
Thibault Saunier
7e121ff167
ges: Protect from Gst dynamic callbacks
...
The pad-added and no-more-pad signal can be emited from any thread
so we have to protect our code from that
2013-05-29 17:14:31 -04:00
Thibault Saunier
302e0ed5d7
track: Update all gaps when timeline duration changed
...
And add a unit test to check that a gap is created in empty tracks
2013-05-28 18:27:31 -04:00
Thibault Saunier
40bfdd508a
Finish renaming filesource to urisource
2013-05-28 18:27:31 -04:00
Thibault Saunier
9ea53465d2
track: Update gaps when we set the timeline
2013-05-28 18:27:31 -04:00
Sebastian Dröge
e7c748a7f2
ges-pitivi-formatter: Remove some unneeded includes and clean up includes
...
Fixes the build on Windows, where there's no unistd.h... which wasn't
needed at all.
https://bugzilla.gnome.org/show_bug.cgi?id=701115
2013-05-28 08:51:08 +02:00
Nicolas Dufresne
13fb847255
GESAssetLoadingReturn cannot be internal
...
The enumeration is referenced in a public API.
2013-05-10 18:13:11 -04:00
Thibault Saunier
ef4efa505f
clip: Avoid corruption of our list of children while ungrouping
2013-05-09 19:12:43 -04:00
Anton Belka
7d999c5ab8
timeline: add auto-transition
...
API:
ges_timeline_get_auto_transition
ges_timeline_set_auto_transition
GESTimeline::auto-transition
2013-05-09 18:54:56 -04:00
Thibault Saunier
51403f65be
basexmlformatter: Do not allow empty file loading
2013-04-30 18:26:57 +01:00
Thibault Saunier
602f49f3e1
video-test-src: Force video/x-raw
...
Avoiding to hit errors with video/x-bayer
2013-04-28 01:45:02 +02:00
Mathieu Duponchelle
a2f8dbd3d1
audiotransition: Add a resampler in the audio transition bin
2013-04-28 01:45:01 +02:00
Mathieu Duponchelle
e02681ca2a
audiotransition: Fix porting error of the interpollator
...
+ update debug statements s/LOG/INFO
(acontrolsource != bcontrolsource)
2013-04-28 01:44:55 +02:00
Thibault Saunier
54bf3c05c5
test-clip: Do not set black/silent by default
2013-04-28 01:44:55 +02:00
Mathieu Duponchelle
c57e463b2d
replace query_caps with get_current_caps. don't check for unused gnlobject.
2013-04-23 23:05:17 -03:00
Thibault Saunier
b2b96c743d
Rename GESTimelineLayer to GESLayer
2013-04-23 20:22:31 -03:00
Thibault Saunier
b5c52a17ec
layer: Remove the "rate" property of ges_timeline_layer_add_asset
...
API:
- ges_timeline_layer_add_asset (layer, asset, start, inpoint, duration, rate, track_types);
+ ges_timeline_layer_add_asset (layer, asset, start, inpoint, duration, track_types);
2013-04-23 20:22:27 -03:00
Mathieu Duponchelle
5ef1a8afa9
trackelement: asynchronously add bindings if the track-element is not in a track yet.
...
Also fix annotations.
2013-04-23 19:31:32 -03:00
Thibault Saunier
f3372dfb0f
formatter: Pass a dummy instance of formatter to virtual method
...
Instead of passing the class itself
2013-04-23 19:31:32 -03:00
Thibault Saunier
bf4a05d2e7
Fix compilation
2013-04-22 09:42:10 -03:00
Thibault Saunier
dcb1114806
xml-formatter: Use G_GUINT64_FORMAT where needed
2013-04-21 21:29:29 -03:00
Thibault Saunier
f5eb42c664
uri-clip-asset: Add "_class_" to a class method
...
API CHANGE:
- ges_uri_clip_asset_set_timeout
+ ges_uri_clip_asset_class_set_timeout
2013-04-21 21:13:00 -03:00
Thibault Saunier
5ab40ce5cb
ges: Fix compilation with clang
2013-04-21 21:11:52 -03:00
Thibault Saunier
723fee10b6
project: Accept NULL as a valid value for @id in _create_asset
2013-04-19 19:59:26 -03:00
Thibault Saunier
10c25fef13
clip: Rework the splitting method
...
+ Avoid setting clip duration of our parent ourself
Now each and every TrackElement inside a clip have the same
start/inpoint/duration
2013-04-19 19:05:43 -03:00
Thibault Saunier
858a630e65
ges: Fix compilation
2013-04-18 18:59:52 -03:00
Thibault Saunier
64e188772e
pipeline: Add API guards where needed
2013-04-18 18:48:19 -03:00
Thibault Saunier
70d5680748
pipeline: Add a GError argument
2013-04-18 18:48:19 -03:00
Thibault Saunier
fee4167292
pipeline: Return FALSE in save_thumbnail when the operation fails
2013-04-17 16:48:05 -03:00
Thibault Saunier
e1cac75df4
container: The TimelineElement.inpoint property is call "in-point" not inpoint
2013-04-15 00:18:05 -03:00
Thibault Saunier
cdd00ed207
ges-clip: Remove the unlocked TrackElement APIs
...
Remove APIs:
ges_track_element_set_locked
ges_track_element_is_locked
Those APIs where really not nice to use and were causing more issues
than solving them. If 2 time related properties of TimelineElement must
be different, then those element can *not* have the same parent.
Plus, with the new ges_container_group () API, we will recreate 1
GESClip containing the proper GESTimelineElements if it is the thing
to do.
2013-04-15 00:18:05 -03:00
Thibault Saunier
6775097e66
pitivi-formatter: Remove broken code to handle unlocked track object
...
WARNING: The plan is to remove unlocked track object APIs so this is
the first part of that process... that code was already broken, and
*needs* to be fixed anyway, better do it using new APIs
2013-04-15 00:18:05 -03:00
Thibault Saunier
fff2511597
pitivi-formatter: Remove saving code
2013-04-15 00:18:04 -03:00
Thibault Saunier
4039468b57
timeline: call sync_state_with_parent when adding a child
2013-04-09 00:11:18 -03:00
Thibault Saunier
78d80c8ca4
track-element: Rename set_property_controlling_parameters set_control_source
...
+ Generate the documentation
2013-03-31 16:37:41 +02:00
Mathieu Duponchelle
e655a75605
[Keyframes] Adds API to set a control binding on a track element, and the serialization code.
2013-03-31 16:31:26 +02:00
Thibault Saunier
811e68811c
Changing remaining clip::track-element-added to container::child-added
2013-03-30 15:40:38 +01:00
Thibault Saunier
d3595d4706
pipeline: Implement the video overlay interface
2013-03-30 14:35:45 +01:00
Thibault Saunier
8b1039a87a
timeline-pipeline: Enhance API guards
2013-03-30 13:34:56 +01:00
Thibault Saunier
40376f9219
timeline: Do no unref the timeline before returning it
2013-03-30 13:34:36 +01:00
Thibault Saunier
8d4ce97fc3
container: s/get_priorty_range/get_priority_range/
2013-03-30 12:31:50 +01:00
Thibault Saunier
f114b6eb3b
timeline: Comment some variables goals
2013-03-29 15:50:12 +01:00
Thibault Saunier
cd188c851d
container: Let subclasses handle the height
...
+ Fix tests (starting using GESTestClip instead of GESCustomClip)
Now the height is not only growing, but can also go down, as the value
is just simply computed
API:
GESContainer::compute_height virtual method
2013-03-28 11:16:41 +01:00
Thibault Saunier
b5f2c819fc
container: Properly implement ges_container_group
2013-03-28 11:16:41 +01:00
Thibault Saunier
134ce9a8d8
clip: Emit notify signal when setting Clip.layer
2013-03-28 11:16:41 +01:00
Thibault Saunier
7313916ae8
timeline: Remove TrackElement from its container on GESTimelineLayer::"clip-removed"
...
.... when the Track is NULL
2013-03-28 11:16:41 +01:00
Thibault Saunier
0df2d4f945
container: Make sure that the child exists when emiting the "child-removed" signal
...
+ Add a test
2013-03-28 11:16:41 +01:00
Thibault Saunier
229ec5f435
container: Replace ignore_notify by a GESChildrenControlMode flag
2013-03-23 03:26:33 -03:00
Thibault Saunier
c6078abc97
container: Stop ignoring notifies if ->add_child fails
2013-03-23 01:35:02 -03:00
Thibault Saunier
7f1fbd2300
internal: Add a element_end_compare
2013-03-23 01:34:50 -03:00
Thibault Saunier
e72f5a6012
timeline-element: Add a macro to get element 'end'
2013-03-23 01:31:23 -03:00
Thibault Saunier
c84f4ec9fb
ges: Keep ges-gerror categories simple.
2013-03-22 17:39:04 -03:00
Thibault Saunier
fa5ed5111d
Misc cleaning
2013-03-21 22:17:10 -03:00
Thibault Saunier
48b5903ef8
track-element: Make ges_track_element_set_track internal
...
Removed API:
+ ges_track_element_set_track
2013-03-21 22:12:47 -03:00
Thibault Saunier
cae3aabbca
ges: Make ges_clip_create_track_element(s) internal methods
...
+ Fix tests (we still need a round of modernisation, making use of
assets where it makes sense)
There is no reason to use those method outside of GES, so remove them,
cleaning the API and making it easier for users.
Removed APIs:
-----------
* ges_clip_create_track_element
* ges_clip_create_track_elements
2013-03-21 22:05:45 -03:00
Thibault Saunier
9a751269bb
uri-asset: Properly handle images and do not duplicate the TrackType
2013-03-19 21:07:58 -03:00
Thibault Saunier
855270566c
uri-asset: Implement a ges_uri_clip_asset_request_sync method
...
This way we let the possibility to the user to actually do it, but we avoid him to do it
without knowing it is absolutely not recommanded to.
API:
+ ges_uri_clip_asset_request_sync
2013-03-19 20:06:30 -03:00
Thibault Saunier
6a3331cc67
Start categorizing GError types in GES
2013-03-19 20:06:30 -03:00
Thibault Saunier
5b2183076a
timeline-element: Do not give a reference to the calles of g_object_get_property
...
... for both the "parent" and the "timeline" properties
Making things simpler to handle for the copy method.
2013-03-19 20:06:30 -03:00
Thibault Saunier
f8334dba24
clip: Make it mandatory that a clip is in a layer to be splittable
...
Otherwize we will not be able to describe if the returned object has a floating reference or not, and this would screw the introspection.
2013-03-19 20:06:30 -03:00
Thibault Saunier
5a5b07297c
Use gst_object_ref_sink instead of g_object_ref_sink when appropriate
...
Making refcount issue debugging simpler
2013-03-18 12:48:42 -03:00
Thibault Saunier
0767f08c7a
Always prefer gst_object_(un)ref over g_object_(un)ref
...
Making the refcount issue debugging easier
2013-03-18 12:48:41 -03:00
Thibault Saunier
dd50427714
clip: Make set/is_moving_from_layer internal
2013-03-15 12:01:58 -03:00
Thibault Saunier
058f0d0099
clip: Reindent header and make ges_clip_set_layer internal
2013-03-15 11:58:59 -03:00
Thibault Saunier
2fede3adeb
track: Cleanup header and add a FIXME
2013-03-15 11:38:03 -03:00
Thibault Saunier
aa740d86bd
Remove GESTrackElements from GESTracks when removing from a GESClip
...
... Not the other way round.
+ Add and enhance debugging info on the way
The user should not be responsible for removing the GESTrackElements from
GESTracks, instead, removing it from a GESClip should imply removing
it from any GESTrack it is in.
This patch changes sensibly the behaviour when we remove a
GESTrackElement from a GESTrack, not remoing it from the GESClip it is
in. *But*, users should never remove a GESTrackElement from a GESTrack
anyway. The testsuite has been updated to that new behaviour.
2013-03-15 11:17:06 -03:00
Thibault Saunier
7943bb510a
ges: Make GESTimeline responsible for adding GESTrackElement to GESTrack
...
+ Fix tests as necessary (Do not use agingtv as it can be "applied" on any TrackType
and is not representative of what happens IRL)
We already had the infrastructure so the user can have the control over where to add
the elements (through the "select-track-for-object" signal). We now make use of that
signal everytime a GESClip is added to a GESTimelineLayer. This make user's life easier,
and object responsability clearer.
2013-03-15 00:13:09 -03:00
Thibault Saunier
b397a41f2f
Add a GESEffectAsset class, and make sure to set the GESTrackType asap on effects
...
+ Make use of the asset in ges_effect_new
2013-03-15 00:13:09 -03:00
Thibault Saunier
eaf30dd4c5
ges: Use GESAsset in clip contructors when possible
2013-03-15 00:13:09 -03:00
Thibault Saunier
fceb80dda3
timeline-element: Set asset from the copied element to the new copy
2013-03-15 00:13:09 -03:00
Thibault Saunier
f579a6a95c
container: Add a ges_container_group method
...
+ Add some basic unit tests
API:
GESContainer:group vmethod
ges_container_group
2013-03-15 00:13:09 -03:00
Thibault Saunier
ae80f08869
track: Do not remove a TrackElement from a NULL clip
2013-03-15 00:13:09 -03:00
Thibault Saunier
c73ced52f8
container: Add a way to ungroup a GESContainer into several GESContainers
...
+ Add simple unit test
API:
GESContainerClass::ungroup vmethod
ges_container_ungroup
2013-03-15 00:13:09 -03:00
Thibault Saunier
c72c14b398
timeline-element: Make it possible to reset parent to NULL
2013-03-15 00:13:08 -03:00
Thibault Saunier
3136ccf84c
Fix some documentations
2013-03-15 00:13:08 -03:00
Thibault Saunier
795b8df1b6
Implement GESContainer
...
+ Fix unit tests
+ Minor enhancement in unit tests
API changes:
-----------
* ges_track_element_get_clip -> ges_timeline_element_get_parent
* ges_clip_add_track_element -> ges_container_add
* ges_clip_release_track_element -> ges_container_remove
* ges_clip_get_track_elements -> ges_container_get_children
(or GES_CONTAINER_CHILDREN)
2013-03-15 00:13:08 -03:00
Thibault Saunier
25bcb023ca
timeline-element: Enhance debug statement and documentation
...
+ Accept NULL as a parent
2013-03-14 18:11:56 -03:00
Thibault Saunier
0cb8c671ea
timeline-element: Add a "timeline" property
2013-03-14 18:10:34 -03:00
Руслан Ижбулатов
7a81dd8669
ges-timeline-element: Fix GST_DEBUG_OBJECT invocations
...
Fixes #695267
2013-03-06 08:33:21 +01:00
Thibault Saunier
0888e5e25b
Rename object/tobj/trobj to clip or track_element as necessary
...
Not really complete but it is a good start!
2013-02-15 16:26:30 -03:00
Thibault Saunier
7f3c952737
Finish renaming tck_obj and derivate to track_element
2013-02-15 15:23:16 -03:00
Thibault Saunier
d21791a8d0
Rename GESTimelineLayer.xxx_object to GESTimelineLayer.xxx_clip
2013-02-15 15:23:15 -03:00
Thibault Saunier
ec1db99266
track: Rename all GESTrack.xxx_object to GESTrack.xxx_element
2013-02-15 15:23:15 -03:00
Thibault Saunier
fc8f06eedb
Properly rename object-added to clip-added
2013-02-15 15:23:15 -03:00
Thibault Saunier
4ddcfb642d
Finish renaming timeline object to clip
2013-02-15 15:23:15 -03:00
Thibault Saunier
b4e1131b70
Finish renaming track object to track element
2013-02-15 15:23:15 -03:00