Thibault Saunier
bce084f4fd
timeline-element: Add a method to get the topelevel parent of an element
...
API:
ges_timeline_element_get_toplevel_parent
2013-07-09 22:13:42 +02:00
Thibault Saunier
4e51b347ff
tests: More safely check if objects where destroyed
...
Check if an object rthat has already been freed has been destroyed is not safe.
Add a helper function that uses weak reference to check that objects that are expected
to be destroyed when unrefing an object are actually destroyed.
2013-07-09 22:13:42 +02:00
Thibault Saunier
2b9606437c
clip: Emit the notify::layer signal only when actually needed
...
That means:
- only when we do change layer
- At the end of moving between two layers
2013-07-09 22:13:42 +02:00
Thibault Saunier
89e2a69d37
clip: Avoid list corruption when grouping objects
...
We are currently iterating over a list that is modified in the same
method, we have to get a copy of the list, and iterate over the copy.
2013-07-09 22:13:42 +02:00
Thibault Saunier
12eebdabda
clip: Add an internal method to easily get the priority of the layer the clip is in
2013-07-09 22:13:42 +02:00
Thibault Saunier
30eb9e4474
container: Remove the get_priority_range vmethod
...
We now let full control to subclasses so we do not need it anymore.
2013-07-09 22:13:42 +02:00
Thibault Saunier
9e15e13983
container: Let full control of children priorities to subclasses
...
For that we make the children_control_mode a protected filed, directly usable by
subclasses, removing the method to set it.
And we let the subclass set and get the priority offsets to the container class.
2013-07-09 22:13:42 +02:00
Thibault Saunier
ed9dcddef4
track: Make sure that new gaps are filled before removing the old ones
...
Currently we can end up having gaps in track as the first step of the
gap filling method removes currently set gaps.
2013-07-09 22:13:41 +02:00
Thibault Saunier
534bf481ed
clip: Handle child priority offsets when setting priority
2013-07-09 22:13:41 +02:00
Thibault Saunier
9d13c5cbd3
container: Do not allow adding an element to a container if it already has a parent
...
This should never happen, an element can have 1 and only 1 parent.
2013-07-09 22:13:41 +02:00
Thibault Saunier
bcfeada696
container: "Implement" the set_priority vmethod
...
This way we will just accept any value setted
2013-07-09 22:13:41 +02:00
Thibault Saunier
7412de6f6c
ges: Avoid leaking the timeline when grouping containers
2013-07-09 22:13:41 +02:00
Thibault Saunier
8bc88a2ba8
container: Let subclasses decide when height change should be computed
...
API:
- GESContainer.compute_height vmethod
+ _ges_container_set_height
2013-07-09 22:13:41 +02:00
Thibault Saunier
b5858c5b04
base-xml-formatter: s/ducation/duration/
2013-07-09 22:13:41 +02:00
Thibault Saunier
91ebdc7efb
container: ges_container_ungroup return a transfer full list
2013-07-09 22:13:41 +02:00
Thibault Saunier
663f9884ef
ges: Move ges_clip_edit to GESContainer
...
This exact same method will be needed in GESGroup, so we should have the method
in the common parent class.
API:
- ges_clip_edit
+ ges_container_edit
+ GESContainer->edit vmethod
2013-07-09 22:13:41 +02:00
Thibault Saunier
87cfcca5e7
container: Update offsets in GESTimelineElement vmethod implementations
...
So subclasses just have to link up to resync offsets
2013-07-09 22:13:41 +02:00
Thibault Saunier
cd111fa10a
docs: Misc documentation fixes
2013-07-09 22:13:41 +02:00
Thibault Saunier
fe043e0231
clip: Never try to set the start after the end of an element when trimming
2013-07-09 22:13:40 +02:00
Thibault Saunier
71f877c611
internal: Add a macro to make it easier to get the end of a TimelineElement
2013-07-09 22:13:40 +02:00
Thibault Saunier
dd7085d2ed
track: Update gaps only when commiting
...
We were still updating them at useless moments, do it only when absolutely needed.
2013-07-09 22:13:40 +02:00
Thibault Saunier
4020ca54ff
container: Fix the way we check priority of subclasses when grouping objects
...
The resulting list was from lower to higher, we need the contrary
2013-07-09 22:13:40 +02:00
Thibault Saunier
ab98f370c8
ges: Move GESTimelineElemt vmethod implementation from container to clip
...
This is where they belong to has they are specific to that
implementation of the baseclass
2013-07-09 22:13:40 +02:00
Thibault Saunier
f5aee5df57
container: Make initiated_move a read only protected member
...
It is a interesting information for subclasses.
Conflicts:
ges/ges-container.c
2013-07-09 22:13:40 +02:00
Thibault Saunier
5a29cd0c88
internal: Fix typo in the header
...
ges_base_xml_formatter_add_control_bindingi was meant to be
ges_base_xml_formatter_add_control_binding
2013-07-09 10:57:51 -04:00
Mathieu Duponchelle
2cb71e730a
track-element: Remove duration_changed virtual method.
...
We use notifies for the properties.
+ Use notifies in audio-transition and video-transition
2013-07-08 19:32:15 -04:00
Mathieu Duponchelle
f1a3d65ef6
formatters: Save and load bindings applied to sources.
2013-07-08 19:32:09 -04:00
Alban Browaeys
6a187e09dd
ges-launch: make it portable to all locales.
...
Call setlocale (LC_ALL, "") as per setlocale man page
to make ges-launch portable to all locales (instead of default
"C" one).
Fixes g_option_context_parse on:
$ ges-launch-1.0 --verbose -r -q /home/prahal/Vidéos/Test3.xges -o
file:///home/prahal/Test3.mpeg
Error initializing: Invalid byte sequence in conversion input
The accentuated character in "Vidéos" the french xdg user directory
for "Videos" is what is choked upon.
https://bugzilla.gnome.org/show_bug.cgi?id=702425
2013-07-01 10:02:10 +02:00
Tim-Philipp Müller
3b8bfc1f16
timelinepipeline: fix caps leak
2013-06-28 00:24:33 +01:00
Руслан Ижбулатов
e4b1153846
timelinepipeline: make the caps from encoding profile writable
...
https://bugzilla.gnome.org/show_bug.cgi?id=703121
2013-06-28 00:20:14 +01:00
Thibault Saunier
d49efabb93
urisource: Do not let user reset the URI property
...
This is not supported right now and would lead to unexpected behaviours
2013-06-23 18:43:00 -04:00
Mathieu Duponchelle
9e0632e353
ges: Add a framepositionner element used in ges-smart-mixer and ges-uri-source
...
It adds metadata on the buffers and the mixer parses them.
This is done because we want to keep positionning properties
and set them on the dynamic mixer pad.
Conflicts:
ges/Makefile.am
2013-06-23 18:42:59 -04:00
Mathieu Duponchelle
b3fafa7928
tests: Add a audio/video mixing test.
2013-06-23 18:42:59 -04:00
Mathieu Duponchelle
2b4609bfe7
video-track: "implement" get_mixing_element.
2013-06-23 18:37:41 -04:00
Mathieu Duponchelle
859f4c3c05
ges-smart-mixer: first code dump, mainly copy paste from ges-smart-adder.
2013-06-23 18:37:41 -04:00
Simon Corsin
bc4186d9c8
ges-layer.c: notify priority changes.
2013-06-23 18:37:41 -04:00
Mathieu Duponchelle
fc182b8026
ges-uri-source: Refactoring work.
...
+ Categorize functions (Callbacks, vmethods)
+ make more generic functions for the creation of the bin.
2013-06-23 18:37:40 -04:00
Mathieu Duponchelle
6be4f79ca0
uri-source: Expose the volume property.
...
+ Make the pspec_hash function an internal util.
+ Add a create_props_hashtable implementation
+ If TRACK_TYPE_AUDIO, put the volume properties in the hashtable.
2013-06-23 18:37:40 -04:00
Mathieu Duponchelle
800325db02
uri-source: when creating the audio element, set the volume to the layr volume when necessary.
2013-06-23 18:37:40 -04:00
Mathieu Duponchelle
86b893e54c
ges-uri-source: don't use gnlurisource but a custom bin.
...
+ This bin is a uridecodebin when GES_TRACK_TYPE_VIDEO
+ This bin contains a uridecodebin and a volume when GES_TRACK_TYPE_AUDIO
2013-06-23 18:37:40 -04:00
Mathieu Duponchelle
65670509f9
smart-adder: remove volume from the bin, which quite simplifies the code.
...
+ Don't be too smart, adder.
2013-06-23 18:37:40 -04:00
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
d6a2f90a17
tests:effects: Make use of normal layers, and enhance tests
2013-06-23 17:39:05 -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