Commit graph

1028 commits

Author SHA1 Message Date
Thibault Saunier
38bcd59bfa ges: Make sure not to initialize twice 2012-12-29 19:36:50 -03:00
Thibault Saunier
7ecf33130a timelineobject: Add a method to add a GESAsset
+ Avoid to assume function arguments are correct before actually testing
      them in ges_timeline_object_add_track_object

API: ges_timeline_object_add_asset
2012-12-29 19:36:50 -03:00
Thibault Saunier
e47701b226 timeline-standard-transition: Override the GESExtractable implementation
Standard transition material have the vtype property as ID, it has the particularity
that the ID can be changed at runtime

	+ Implement tests to make sure it behaves properly
2012-12-29 19:36:50 -03:00
Thibault Saunier
c1110f2c85 timelinefilesource: Remove deprectated methods
Removed API:
	ges_timeline_filesource_get_supported_formats
2012-12-29 19:36:50 -03:00
Thibault Saunier
45c7f609da timeline: Make use of the Project API for timeline saving
API:
    *  Add a formatter_type paramatter to ges_timeline_save_to_uri
2012-12-29 19:36:50 -03:00
Thibault Saunier
774e14fff0 xml-formatter: Implement a GESXmlFormatter 2012-12-29 19:36:50 -03:00
Thibault Saunier
7c00521b4e track: Set the gap element creator function when tracks are using raw audio/video 2012-12-19 18:59:51 -03:00
Thibault Saunier
bf742ced65 pipeline: Minor documentation fixes 2012-12-19 18:59:51 -03:00
Thibault Saunier
9a2ba1f9f7 Check in TimelineObject what tracks are supported before creating TrackObject-s
We used to do it in TimelineFileSource which does not make sense.

At the same time we set  AUDIO | VIDEO as default supported types as it is more
likely to be what subclasses support. If it is not the case, they need to
specify it as shown in ges-timeline-custom-timeline-source.c

+ Fix the tests accordingly
2012-12-19 18:59:51 -03:00
Thibault Saunier
8ff97af65d timeline: Implement the GESMetaContainerInterface 2012-12-19 18:59:51 -03:00
Thibault Saunier
dbab748bfc timeline: Implement the GESExtractable interface 2012-12-19 18:59:50 -03:00
Thibault Saunier
543ab28228 timeline: Make timeline->track and timeline->layers public fields 2012-12-19 18:59:50 -03:00
Thibault Saunier
66abaa40d4 formatter: Make it work with GESProject
+ Compile new GESProject code

The formatter and projects should work together, and the user will in the end not need
the GESFormatter API in most cases. Start making that happening

Update the GESPitiviFormatter to the new behaviour and remove APIs that became
obselete

API:
 + Adds:

    * Pass the GESFormatterClass to can_load/save_uri vmethods
    * Add an @overwrite argumenent to ges_formatter_save_to_uri and the
      corresponding vmethod
    * Add name, description, extension, mimetype, version, rank metadatas
      to GESFormatterClass

 + Removes:

    * ges_pitivi_formatter_set_sources:
    * ges_pitivi_formatter_get_sources:
2012-12-19 18:59:50 -03:00
Thibault Saunier
a89683f06a formatter: Implement the GESExtractable interface
Make it a GInitially unowned, GESProject will become the owner
2012-12-19 18:59:50 -03:00
Thibault Saunier
49867a95fc project: Implement GESProject
Do not build yet, waiting for everythnig to be in place before doing so

Co-Authored-By: Volodymyr Rudyi <vladimir.rudoy@gmail.com>
2012-12-19 18:59:49 -03:00
Thibault Saunier
571e9c63d8 track: Implement the GESMetaContainer interface 2012-12-19 18:59:49 -03:00
Thibault Saunier
b39ed6a379 trackobject: Implement the GESMetaContainerInterface 2012-12-19 18:59:49 -03:00
Thibault Saunier
c2fe7f0c82 timeline-object: Implement the GESMetadataContainer interface 2012-12-19 18:59:49 -03:00
Thibault Saunier
ca0bcfcd50 trackobject: Implement the GESExtractable interface 2012-12-19 18:59:49 -03:00
Thibault Saunier
04c8b4a7d9 docs: Update GESTimelineTestSource documentation 2012-12-19 18:59:49 -03:00
Thibault Saunier
0232f57003 customtimelinesource: Override Extractable
API: ges_material_custom_timeline_source_new (helper method)
2012-12-19 18:59:49 -03:00
Thibault Saunier
a7280fb59d ges: Implement the ges_timeline_layer_add_asset method
+ Remove GstDiscoverer related code in GESTimeline as we do not need it anymore
  + Refactor the ges_timeline_layer_add_object method to make sure it is still working as intended

API:
  ges_timeline_layer_add_asset
2012-12-19 18:59:48 -03:00
Volodymyr Rudyi
c7cefd0f37 timelinefilesource: Override default GESExtractable interface implementation 2012-12-19 18:59:48 -03:00
Thibault Saunier
b5c21da0d8 timelineobject: Implement the GESExtractable interface 2012-12-19 18:59:48 -03:00
Volodymyr Rudyi
107b4ad0c6 ges: Implement GESAssetFileSource
+ Generate the documentation
	+ Make the new Asset infrastructure compile

Co-Authored-By: Thibault Saunier <thibault.saunier@collabora.com>
2012-12-19 18:59:47 -03:00
Thibault Saunier
f4858a97f7 ges: Implement the GESExtractable interface
+ Generate the documentation

Note: Do not compile (add to Makefile.am) for now as we are missing pieces at that point

Co-Authored-By: Volodymyr Rudyi <vladimir.rudoy@gmail.com>
2012-12-19 11:45:38 -03:00
Volodymyr Rudyi
55ddfebb64 ges: Implement GESAsset
+ Generate the documentation

Note: Do not compile (add to Makefile.am) for now as we are missing pieces at that point

Co-Authored-By: Thibault Saunier <thibault.saunier@collabora.com>
2012-12-19 11:45:38 -03:00
Thibault Saunier
30e12995fd filesource: Make the uri property CONSTRUCT_ONLY
This is the way it should always have been.
2012-12-19 11:45:38 -03:00
Paul Lange
6ea0dffb47 timeline-layer: implement the GESMetaContainer interface 2012-12-19 11:45:38 -03:00
Thibault Saunier
3de2670b00 metacontainer: Finnish GESMetaContainer implementation 2012-12-19 11:45:38 -03:00
Paul Lange
97862bbe48 implement the GESMetaContainer interface 2012-12-19 11:45:38 -03:00
Thibault Saunier
1752e0db9f timeline-layer: Fix track-added Callback parametters 2012-12-19 11:45:38 -03:00
Thibault Saunier
ab9e2364c3 timeline-object: Edit can only work work with GESTrackSource 2012-12-19 11:45:38 -03:00
Thibault Saunier
ce9aa02723 formatter: Remove obselete APIs
Removed APIs:
ges_formatter_update_source_uri
GESFormatter::source-moved
ges_formatter_update_source_uri
ges_formatter_load
ges_formatter_save
ges_formatter_set_data
ges_formatter_clear_data
ges_formatter_get_data
GESFormatterLoadMethod
GESFormatterSaveMethod

This is now GESProject's role
2012-12-19 11:45:38 -03:00
Thibault Saunier
97973f1eba Remove the GESKeyFileFormatter
It was using deprecated URI, and can not be used in real life anymore.

Also remove the ges_formatter_default_new method ges_formatter_new_for_uri
that are useless now
2012-12-19 11:45:37 -03:00
Thibault Saunier
35a3f72ad5 pitiviformatter: Some minor restrtucturation 2012-12-19 11:45:37 -03:00
Thibault Saunier
b0cc5c6b87 track: Force video/x-raw in raw gaps 2012-12-19 11:45:37 -03:00
Thibault Saunier
346b04ecb4 timeline: Keep track of GSequenceIter for each GESTrackObject
This way we do not have to look for them in the sequence itself, and
make things simpler
2012-12-19 11:45:37 -03:00
Thibault Saunier
5772bd4c91 timelineobject: Give a direct access to the list of TrackObject
Avoid to have to copy the list each time we want to access it
2012-12-19 11:45:37 -03:00
Thibault Saunier
f8037f857d trackobject: Properly rename get/set_child_property
We used to have a ges_track_object_get/set_child_property that was in
fact letting user set/get various properties at once, rename it to
get/set_properties, and implement:

API:
    ges_track_object_get_child_property (GESTrackObject *object, const gchar
            *property_name, GValue * value);
    ges_track_object_set_child_property (GESTrackObject *object, const gchar
            *property_name, GValue * value);
2012-12-19 11:44:26 -03:00
Thibault Saunier
dcfda73777 trackobject: Some GI annotation fix 2012-12-18 22:06:09 -03:00
Tim-Philipp Müller
a61489df53 ges-track-effect: don't use deprecated API 2012-11-17 00:10:20 +00:00
Tim-Philipp Müller
426fffb6c3 Fix FSF address 2012-11-04 00:25:20 +00:00
Thibault Saunier
76400fa07c ges: fix g-i search path for GstAudio GstVideo GstTag and GstBase 2012-10-31 14:49:44 -03:00
Xabier Rodriguez Calvar
101240e67c timeline: Added timeline and mode as properties 2012-10-25 12:44:00 +02:00
Xabier Rodriguez Calvar
8a298d1fab timeline: Adding GObject property API to get/set preview audio and video sinks 2012-10-25 12:43:44 +02:00
Xabier Rodriguez Calvar
fd30629eed timeline: Initialize as NULL the preview sinks when getting them.
This way, if there is a problem getting the properties from the
playsink, we do not return garbage.
2012-10-25 12:43:28 +02:00
Thibault Saunier
4d73e4d67f ges: Update reported version to 1.0 2012-09-25 15:11:41 +02:00
Volodymyr Rudyi
f68757ce2c timeline: Added 'const' modifier 2012-09-25 15:11:41 +02:00
Thibault Saunier
04f2347f37 titlesource: Use GST_DEBUG_OBJECT when appropriate 2012-09-25 15:10:35 +02:00
Thibault Saunier
d4fdc9b5d1 Reset ABI for 1.0 and ensure that extensible baseclasses are extensible enough 2012-09-25 15:10:35 +02:00
Thibault Saunier
fbefd6dae3 pitiviformatter: Implement can_load_uri vmethod 2012-09-25 15:10:33 +02:00
Thibault Saunier
f0e9691c96 formatter: Implement a usefull version of ges_formatter_can_load_uri 2012-09-23 02:37:12 +02:00
Thibault Saunier
52edf1704d formatter: Add GError everywhere needed in the API
We should give as much information as possible to the user when serialization/deserialization doesn't work.
2012-09-23 02:37:12 +02:00
Thibault Saunier
933d41f15d timeline: Plug a leak in the movecontext code 2012-09-23 02:37:12 +02:00
Nicolas Dufresne
76ccc417c8 timeline-pipeline: use downstream block probe to avoid deadlock on duration query 2012-09-07 19:20:08 +01:00
Nicolas Dufresne
b3e1bd5dbb timeline-pipeline: Clean the blocked pad
We do need to cleanup the pad now, otherwise the probe will get remove a
second time in pad_removed_cb causing an assertion.
2012-09-06 16:58:21 -04:00
Matas Brazdeikis
aaec341f79 title-source: add background color option 2012-08-26 16:12:01 -04:00
Matas Brazdeikis
0b3c1333d8 timeline-title-source: remove audio-test-source 2012-08-26 16:10:34 -04:00
Thibault Saunier
37e6cb43cf Misc documentation fixing 2012-08-18 15:32:54 -04:00
Thibault Saunier
cc6200292f GI: Fix some annotations in TrackObject 2012-08-18 15:05:23 -04:00
Thibault Saunier
19fa2acc02 ges: Remove useless and error prone 'transfer full' annotations
transfer full is default and there is currently a bug in GES when constructor
are declared as transfer full
2012-07-28 21:45:03 -04:00
Thibault Saunier
7eed7ef46c Merge remote-tracking branch 'origin/0.10'
Conflicts:
	common
2012-07-01 20:54:42 -04:00
Thibault Saunier
b13942c5b5 formatter: Make the emit_loaded a real method and not a virtual method
+ Modify formatter subclasses accordingly

API:ges_formatter_emit_loaded

This API wasn't released so it could still be changed
2012-07-01 20:07:46 -04:00
Thibault Saunier
2d13b12878 pitivi-formatter: Make use of the Formatter:timeline protected field 2012-07-01 20:07:44 -04:00
Thibault Saunier
76c7ba5264 formatter: Add a timeline protected field 2012-07-01 20:07:09 -04:00
Volodymyr Rudyi
963cce240c ges-pitivi-formatter: Fixed loading of projects with empty timeline
Because 'project-loaded' signal was triggered from track object loading
callback in case with projects that have empty timeline this signal was
never emitted.
2012-07-01 19:26:02 -04:00
Volodymyr Rudyi
b102df2d4d ges-formatter: Removed assert to allow saving projects with empty timeline
Removed assert in ges-formatter.c to allow saving projects with empty timeline.
2012-07-01 19:26:02 -04:00
Sebastian Dröge
5e824ef5af gestimelinepipeline: Fix for gst_element_make_from_uri() API changes 2012-06-25 10:32:36 +02:00
Thibault Saunier
4b84218434 track: Make sure to remove the proper TrackObject from the GSequence 2012-05-27 23:26:03 -04:00
Thibault Saunier
70b343e121 track: Make sure to remove the proper TrackObject from the GSequence 2012-05-27 23:13:09 -04:00
Thibault Saunier
f32fdf13b7 Merge remote-tracking branch 'origin/0.10'
Conflicts:
	bindings/python/ges.defs
	ges/ges-screenshot.c
	ges/ges-track-video-transition.c
2012-05-26 17:00:50 -04:00
Thibault Saunier
7012280e48 timeline: Do not use meaningless offset values when snapping 2012-05-21 19:39:10 -04:00
Thibault Saunier
410a3e4c3f formatter: Disable updates when loading a project 2012-05-21 18:12:52 -04:00
Thibault Saunier
a8f32d2e48 videotransition: Some explanations about the invert property 2012-05-21 18:12:52 -04:00
Thibault Saunier
28585bc87a videotransition: Misc cleanup in the smpte/crossfade transition type switches 2012-05-21 18:12:51 -04:00
Thibault Saunier
d8488cf061 videotransition: Do not wait pad to be blocked before switching transitions
... from smpte to crossfad and the other way around


This avoid useless async operations
2012-05-21 13:05:14 -04:00
Thibault Saunier
861a06e7ce timeline: Move all callbacks to the callback section of the file 2012-05-19 13:57:36 -04:00
Thibault Saunier
c199c24507 timeline: Make the update property a GObject property
API: timeline::update property
2012-05-19 13:57:36 -04:00
Thibault Saunier
4c79afcbe4 timeline: Try to resnap at same snapping point before calculating new value 2012-05-19 13:57:36 -04:00
Thibault Saunier
9913d48e5c timeline: Avoid to recalculate the moving context unecessarly 2012-05-19 13:57:35 -04:00
Thibault Saunier
5a29478c2d timeline: Create a debug logging category for the timeline 2012-05-19 13:57:35 -04:00
Thibault Saunier
4c28e59046 timeline: Properly set TimelineFileSource-s duration and max duration
When we get the information of duration of files after discoverying them,
use that information to set the values on the TimelineFileSource-s
2012-05-19 13:57:35 -04:00
Thibault Saunier
f19a8af81f timeline-layer: Rework the way we calculate in which layer a TrackObject is 2012-05-19 13:57:35 -04:00
Thibault Saunier
1e3e7c5276 docs: Misc documentation fixing 2012-05-19 13:57:35 -04:00
Thibault Saunier
f84c183f63 track: Properly fill gaps
API: GESCreateElementForGapFunc Virtual method type
API: ges_track_set_create_element_for_gap_func
2012-05-19 13:57:35 -04:00
Thibault Saunier
b0e1b20cc3 track: Restructurate file so we have private method and API properly separeted 2012-05-19 13:40:00 -04:00
Thibault Saunier
c2bedb182e track: Use a GSequence to keep the sorted list of TrackObject-s
Use a GSequence instead of a GList to optimise the process.

Conflicts:

	ges/ges-track.c
2012-05-19 13:40:00 -04:00
Thibault Saunier
171bf8e627 timeline: Make use of our own knowledge of the timeline duration
Do not use each Track durations as it end going in loop as we have the Tracks
that need to know about timeline's duration to create or not gaps in the end and
then the timeline references on Tracks duration for its duration. We have this
information locally so just make proper use of it.
2012-05-19 13:40:00 -04:00
Thibault Saunier
ce8afba367 timeline: Add a method to get the timeline duration
+ Bind it in python

API: ges_timeline_get_duration
2012-05-19 13:39:45 -04:00
Thibault Saunier
406bc5fe28 Merge remote-tracking branch 'origin/0.10' 2012-05-10 14:56:34 -04:00
Thibault Saunier
9ee94b3d40 track-object: Keep a reference to our gnlobject
Avoid refering to an object that doesn't exists and segfault in some cases.

We do not need to increase the reference to the gnlobj when the trackobject
is removed from a track because the TrackObject as its own reference and will
handle the disposal gracefully.

Add some guard around related APIs
2012-05-10 14:49:59 -04:00
Thibault Saunier
20e7d4349c timeline: Avoid segfault when debug logging 2012-05-08 19:43:51 -04:00
Tim-Philipp Müller
ea254c4621 ges: fix printf arguments in debug message
https://bugzilla.gnome.org/show_bug.cgi?id=675547
2012-05-07 16:11:26 +01:00
Mathieu Duponchelle
dd55b0084b track-video-transition: Make the invert property management coherent 2012-05-06 14:10:17 -04:00
Mathieu Duponchelle
c22fa97088 track-video-transition: Fix set_inverted 2012-05-06 13:11:11 -04:00
Thibault Saunier
2e52fe15f0 Merge remote-tracking branch 'origin/0.10'
Conflicts:
	bindings/python/ges.defs
	ges/ges-track-video-transition.c
2012-05-05 13:02:20 -04:00
Thibault Saunier
43b815925a track-object: Set minimum value of max-duration to 0
GST_CLOCK_TIME_NONE was nonsense

Minor documentation fixing on the way
2012-05-05 12:34:26 -04:00
Edward Hervey
151f491549 ges: Remove invalid ' < 0' checks
It's an unsigned value, it will never be < 0.
2012-05-03 15:41:08 +02:00
Thibault Saunier
7a7690a9e0 Do no check if GLib >2.26 as we depend on GLib 2.28 2012-05-02 23:56:35 -04:00
Thibault Saunier
686792609a track-video-transition: Properly emit notify for the invert and border properties 2012-05-02 23:49:08 -04:00
Thibault Saunier
26aebe2d3d track-video-transition: Expose the transition type as a GObject property
API: GESTrackVideoTransition::transition-type property
2012-05-02 23:49:08 -04:00
Mathieu Duponchelle
fa7e9a4d39 track-video-transition: expose border and inverted as GObject properties 2012-05-02 23:18:29 -04:00
Mathieu Duponchelle
7e4bcd950b track-video-transition: Expose the invert property from smpte
Also, add/fixup some doc

API: ges_track_video_transition_get_inverted
API: ges_track_video_transition_set_inverted
2012-05-02 23:05:25 -04:00
Thibault Saunier
2c6e4f2e69 Merge remote-tracking branch 'origin/0.10'
Conflicts:
	bindings/python/ges.defs
	ges/ges-track-video-transition.c
2012-05-02 22:03:51 -04:00
Thibault Saunier
959bc5e0cb track-video-transition: Reuse interpollation setting functions when possible 2012-05-02 20:18:09 -04:00
Thibault Saunier
b891eb042c track-video-transition: Reindent header 2012-05-02 20:18:09 -04:00
Thibault Saunier
d780cf474f track-video-transition: Add a way to get current border value
Add some documentation for the border property
Change the border value in set_border to a guint as the value can be negative

API: ges_track_video_transition_get_border
2012-05-02 20:18:09 -04:00
Mathieu Duponchelle
1a3fde1bee track-video-transition: Return pending type in transition_get_type when needed 2012-05-02 20:18:09 -04:00
Mathieu Duponchelle
15c7e9738c track-video-transition: expose the border property of smptealpha
API: ges_track_video_transition_set_border
2012-05-02 20:18:09 -04:00
Mathieu Duponchelle
1e6c82fb3c ges-track-video-transition: Enables switching from crossfade to smpte and vice versa
Fix the tests properly
2012-05-02 20:18:09 -04:00
Руслан Ижбулатов
fdb06182fa ges: fix some format strings in debug messages
https://bugzilla.gnome.org/show_bug.cgi?id=674265
2012-05-01 19:18:54 +01:00
Tim-Philipp Müller
6ab94bc79b ges: fix some not entirely correct casts for vararg function arguments 2012-05-01 19:16:42 +01:00
Tim-Philipp Müller
efeb450be8 track-video-transition: update for videomixer pad template name change 2012-05-01 19:06:20 +01:00
Tim-Philipp Müller
4198aebd18 ges: fix gnonlin version check 2012-05-01 18:51:30 +01:00
Tim-Philipp Müller
423e7078f9 track-audio-transition: fix adder sink pad template name 2012-05-01 18:51:30 +01:00
Руслан Ижбулатов
f65df0ec24 timeline-pipeline: fix src pad request template for tee
https://bugzilla.gnome.org/show_bug.cgi?id=674339
2012-05-01 18:51:10 +01:00
Thibault Saunier
b1a8596256 Merge remote-tracking branch 'origin/0.10'
Conflicts:
	bindings/python/ges-types.defs
	bindings/python/ges.defs
	bindings/python/ges.override
	configure.ac
	ges/ges-timeline.c
2012-04-25 17:54:36 -04:00
Thibault Saunier
9e21741b90 docs: Add some more docs about editing mode
Also add the documentation "Section" into ges-enum.c so the file documentation ar
 actualy taken into account in the final generated documentation.
2012-04-25 17:09:19 -04:00
Thibault Saunier
28d73a4441 timeline: Rework snapping signaling so it is easier to use
API: GESTimeline::snap-started signal
API: GESTimeline::snap-ended signal

(This code has not been released so we can still change the API)
2012-04-25 16:13:44 -04:00
Thibault Saunier
606a788314 trackobject: Take into account the max duration when trying to set a new duration
Change its default value to GST_CLOCK_TIME_NONE instead of 0.

(unreleased code so it still can be changed)
2012-04-23 22:03:12 -04:00
Thibault Saunier
5cae3f844f trackobject: Add API guards all around 2012-04-23 22:03:12 -04:00
Thibault Saunier
6735e877b3 trackobject: Add the copy method to the API
Add documentation and plug a leak at the same time.

API: ges_track_object_copy
2012-04-23 22:03:11 -04:00
Thibault Saunier
c238b356fe timelineobject: Ignore notifies when needed 2012-04-23 22:03:11 -04:00
Thibault Saunier
f06ca66012 timelineobject: Fix wrong naming when connection to in-point notify
inpoint -> in-point
2012-04-23 22:03:11 -04:00
Thibault Saunier
cb29c31337 timelineobject: Make changing start/duration sensible to snapping
Adapt the documentation so users are aware of the behaviour

Conflicts:

	ges/ges-timeline-object.c
2012-04-23 22:03:11 -04:00
Thibault Saunier
91b55adec2 timeline: Minor documentations fixes 2012-04-23 22:03:11 -04:00
Thibault Saunier
2fd5364927 ges: Add a timeline edition mode API
+ timeline: Add a snapping-distance property
        + Bump the GLib dependency to 2.28 in the mean time as we need some functions from GSequence that only landed
	+ Update the testsuite accordingly

    API: GESTimeline:snapping-distance property
    API: ges_timeline_object_edit
    API: ges_timeline_object_ripple
    API: ges_timeline_object_ripple_end
    API: ges_timeline_object_roll_start
    API: ges_timeline_object_roll_end
    API: ges_timeline_object_trim_start
    API: ges_track_object_edit
    API: GESEdge enum
    API: GESEditMode enum
2012-04-23 22:03:11 -04:00
Thibault Saunier
beae7dbd34 timelineobject: Make the 'position' argument of the split method a guint64 not gin64
This makes more sense to be a guint64 as it actually is a GstClockTime,
and this way we keep the API concistent.

(This code has not been release so we can still change the API.)
2012-04-23 20:33:58 -04:00
Thibault Saunier
f6c060b3fb timelineobject: Reimplement properly the splitting method 2012-04-23 20:33:58 -04:00
Thibault Saunier
30d9ba2acf timelineobject: Misc API guard fixes 2012-04-23 20:25:08 -04:00
Thibault Saunier
efc28fd35e track-object: Add method to copy a TrackObject
API: ges_track_object_copy
2012-04-23 20:25:08 -04:00
Thibault Saunier
7b0797c992 ges-track-object: Make possible to add a track already containing a gnlobject to a track 2012-04-23 20:25:07 -04:00
Thiago Santos
299e186480 ges-timeline-pipeline: add todo to remember to remove hack
Remove playsink hack once we depend on gst-plugins-base 0.10.37
(next gst-plugins-base release)
2012-04-23 14:40:26 -03:00
Thiago Santos
094669391d Revert "ges: timeline-pipeline: Remove playsink send_event hack"
This reverts commit 54aac450da.

We need this hack until we depend on gst-p-base 0.10.36
2012-04-23 14:38:31 -03:00
Thibault Saunier
4be360c4e5 Port to the new GMutex API 2012-04-20 14:18:34 -04:00
Sebastian Dröge
3afca7521f configure: Modernize autotools setup a bit
Also we now only create tar.bz2 and tar.xz tarballs.
2012-04-13 14:00:35 +02:00
Thibault Saunier
672a162062 Merge branch '0.10'
Conflicts:
	bindings/python/ges.defs
2012-04-07 22:31:23 -04:00
Thibault Saunier
2741a8fb38 timeline-object: Add TrackObject to the Track after the TimelineObject
This way, the Track::track-object-added is emited after the TrackObject is ready to be used, and it make the API easier to use.
2012-04-07 22:26:08 -04:00
Thibault Saunier
2e43caf911 timeline-layer: Factor out a method to start observing timeline for auto-transitions 2012-04-07 22:26:08 -04:00
Thibault Saunier
e172c294fe timeline-layer: Reorganize file 2012-04-07 22:26:08 -04:00
Thibault Saunier
64b4a38494 timeline-layer: Rework auto transition callbacks management
We now have a GESTrack::track-object-added signal so we now depend on it rather than on each GESTimelineObject::track-object-added signal.
2012-04-07 22:24:55 -04:00
Thibault Saunier
259af361bc timeline-object: Properly reflect contained TrackObject duration and inpoint properties changes 2012-04-07 22:24:55 -04:00
Thibault Saunier
c783f4140a trackobject: Some documentation fixing 2012-04-07 22:24:55 -04:00
Thibault Saunier
8ae1cddae2 trackobject: Add API documentation 2012-04-07 22:24:55 -04:00
Thibault Saunier
ad5bc85516 ges: Calm logging when not created TrackObject on purpose 2012-04-07 22:24:55 -04:00
Thibault Saunier
979b9ac0b6 timeline: Restructurate the file separting methods/callbacks/API 2012-04-07 22:24:55 -04:00
Thibault Saunier
1c04feace0 timelineobject: Emit effect-added when adding any kind of TrackEffect
We were only emitting it when working with TrackParseLaunch effects
2012-04-07 22:24:55 -04:00
Thibault Saunier
83dc13c63d docs: Tell users that adding an object to a timeline layer creates media related objects 2012-04-07 22:24:55 -04:00
Thibault Saunier
a1aa78cd28 ges: Misc debug loggin cleanup 2012-04-07 22:24:55 -04:00
Thibault Saunier
4b34d2bbb3 timeline: Plug a leak when calling enable_update 2012-04-07 22:24:55 -04:00
Thibault Saunier
7e7059d37d timeline: Rework the append_layer method
ges_timeline_append_layer now creates a new layer, adds it to the timeline
and returns it

This code has not been released yet so we can break this API.
2012-04-07 22:24:55 -04:00
Thibault Saunier
4a881a43d9 layer: Add a method to check if a layer is empty or not
API: ges_timeline_layer_is_empty
2012-04-07 22:24:55 -04:00
Thibault Saunier
4c26b89e3c ges: Move the max-duration property from TrackFileSource to TrackObject
This property was firstly added to TrackFileSource, but in the end, it makes
more sense for it to be directly in TrackOject as it can be usefull in other cases.
2012-04-07 22:24:55 -04:00
Thibault Saunier
13a2857db7 timeline-layer: Do not call track_get_by_layer when track == NULL 2012-04-04 20:15:19 -04:00
Thiago Santos
8a3fc66e70 Merge branch '0.10' 2012-04-04 14:02:43 -03:00
Thiago Santos
54aac450da ges: timeline-pipeline: Remove playsink send_event hack
This is fixed now in upstream playsink, remove the hack

https://bugzilla.gnome.org/show_bug.cgi?id=673211
2012-04-04 11:44:27 -03:00
Sebastian Dröge
e2e2f1261e ges: Update versioning 2012-04-04 14:50:23 +02:00
Sebastian Dröge
8429fd526c Merge remote-tracking branch 'origin/0.10'
Conflicts:
	bindings/python/Makefile.am
	ges/Makefile.am
2012-04-04 12:08:06 +02:00
Thibault Saunier
7282ee2ff4 formatter: Try to figure out new paths when media files have moved
Introduces a dependency to GIO
2012-04-03 20:41:27 -04:00
Thibault Saunier
1728704d09 Merge branch '0.10'
Conflicts:
	bindings/python/ges.defs
2012-03-29 12:55:44 -04:00
Sebastian Dröge
fa44d050f5 Merge remote-tracking branch 'origin/0.10' 2012-03-29 15:10:09 +02:00
Thibault Saunier
148e7ef411 timelineobject: Set TrackObject's TimelineObject only when calling the add function
ges_timeline_object_add_track_object actually calls
ges_track_object_set_timeline_object so do not do it once more ourself.
Especially since it results in having a TrackObject.timeline_object refering
to a TimelineObject it is not actually in yet.
2012-03-28 13:10:27 -04:00
Volodymyr Rudyi
1dcb142307 ges-track: Set gnlobject state to NULL before disposing it
Work around a deadlock if setting state to NULL right before removing the
gnlobject from the composition.

https://bugzilla.gnome.org/show_bug.cgi?id=672751
2012-03-27 22:35:26 -04:00
Thibault Saunier
6447a50001 timelineobject: Update the nb_effect when releasing a TrackEffect 2012-03-27 22:33:57 -04:00
Thibault Saunier
d5b4fa215e ges: Add a way to know whether a timeline is updating on each changes
+ Bind the new API in python

API: ges_timeline_is_updating
API: ges_track_is_updating
2012-03-27 22:33:57 -04:00
Thibault Saunier
a762e72c13 trackobject: Enable adding a TrackObject in a Track before a TimelineObject
We were requiring it only for GESCustomTimelineSource, but it is not actually
necessary so, we can just check if the TrackObject is in a TimelineObject or
not, and react accordingly.
2012-03-27 22:33:57 -04:00
Thibault Saunier
149ceeab2e timeline-layer: Add a method to get the timeline it is currently in
API: ges_timeline_layer_get_timeline

Bind it in python
2012-03-27 22:33:57 -04:00
Volodymyr Rudyi
4148d605ad ges-track: Set gnlobject state to NULL before disposing it
Work around a deadlock if setting state to NULL right before removing the
gnlobject from the composition.

https://bugzilla.gnome.org/show_bug.cgi?id=672751
2012-03-27 22:33:00 -04:00
Tim-Philipp Müller
70c023626a ges-pitivi-formatter: add copyright/license headers
https://bugzilla.gnome.org/show_bug.cgi?id=644943
2012-03-19 10:57:14 +00:00
Tim-Philipp Müller
f043f05698 ges-timeline-pipeline: port to 0.11 2012-03-12 16:22:22 +00:00
Tim-Philipp Müller
1f37aefdcd Remove ges-marshal.[ch] and use the generic marshaller 2012-03-12 15:46:42 +00:00
Tim-Philipp Müller
5d02075d9b Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	bindings/python/Makefile.am
	bindings/python/ges-types.defs
	bindings/python/ges.defs
	bindings/python/ges.override
	bindings/python/gesmodule.c
	bindings/python/testsuite/test_textoverlay.py
2012-03-12 15:25:49 +00:00
Tim-Philipp Müller
e121368e37 configure: check for libxml2 explicitly
GStreamer may be built without the libxml2 dependency.
2012-03-12 15:15:22 +00:00
Tim-Philipp Müller
6a3391eae8 ges-pitivi-formatter: move libxml includes into .c file
There's no need to have them in the header file.
2012-03-12 15:09:39 +00:00
Sebastian Dröge
2fc0a0c619 ges: Fix 'implicit conversion from enumeration type 'GESTextHAlign' to different enumeration type 'GESTextVAlign'' and similar compiler warnings 2012-03-06 15:37:18 +01:00
Sebastian Dröge
70fda7d45d ges: Fix 'comparison of unsigned expression < 0 is always false' 2012-03-06 15:35:51 +01:00
Tim-Philipp Müller
1a48407337 track: add g-i annotation that ges_track_new() takes ownership of caps passed 2012-02-10 19:36:49 +00:00
Tim-Philipp Müller
7b7bf95268 ges: port to new raw audio/video caps
Completely untested, but more likely to work than the
existing code.
2012-02-10 19:35:28 +00:00
Tim-Philipp Müller
b1361c556f g-i: need to call gst_init() before ges_init() so GST_TYPE_CAPS is set
Fixes "g_param_spec_boxed: assertion `G_TYPE_IS_BOXED (boxed_type)' failed"
warnings when running g-ir-scanner.
2012-02-10 19:14:24 +00:00
Tim-Philipp Müller
1e1012602e track-{audio,video}-transition: update for controller API changes 2012-02-10 19:01:03 +00:00
Tim-Philipp Müller
1b2bb14aab timeline-pipeline: use standard GLib API to save thumbnail data to file 2012-02-10 18:43:51 +00:00
Tim-Philipp Müller
c69ea5652d timeline-pipeline: update for new gst_buffer_map() API 2012-02-10 18:35:07 +00:00
Mark Nauwelaerts
2162c635e2 ges: support and handle no-more-pads in GESTimeline(Pipeline)
... to arrange for a clean READY to PAUSED state change transition.
Not doing so might have playsink reaching PAUSED prematurely
as one track prerolls, only to lose this state again (temporarily)
when the other track needs to preroll.

This is generally not nice or convenient, and particularly nasty
when trying to perform seek in PAUSED.
2012-01-30 11:35:13 +01:00
Edward Hervey
ee237ec523 ges: Various doc fixups and cleanups 2012-01-12 16:34:57 +01:00
Mark Nauwelaerts
282c3c4b49 ges: only use glib constructs as required in configure.ac 2012-01-12 15:12:14 +01:00
Thibault Saunier
3df2f0ae0a pitivi-formatter: Use the new Formatter->project_loaded vmethod 2012-01-11 11:56:18 -03:00
Thibault Saunier
f5c861ddc3 formatter: Add a "loaded" signal
API: GESFormatter::loaded signal
API: GESFormatter->project_loaded VMethod
2012-01-11 11:56:18 -03:00
Thibault Saunier
5672ac8159 docs: Add a pitivi-formatter documentation
Move the API to the API section of the pitivi-formatter file
2012-01-11 11:56:18 -03:00
Thibault Saunier
c2d5992af0 formatter: Enhance some debug logging 2012-01-11 11:56:18 -03:00
Thibault Saunier
10803b553d ges: Rework the ges_pitivi_get_sources method
+ Remove the URI parameter of ges_pitivi_get_sources

    + Rework how we handle the PitiviFormatterPrivate.source_table HashTable
      rename it to sources_table to make a difference between it and the
      source_table(s) it containes
2012-01-11 11:56:17 -03:00
Thibault Saunier
31430b1e0a ges: Let user set a source list on the PitiviFormatter
API: ges_pitivi_formatter_set_sources

Bind it in python
2012-01-11 11:56:17 -03:00
Thibault Saunier
a904904b77 ges: Handle the new SourceMoved API in PitiviFormatter 2012-01-11 11:56:17 -03:00
Thibault Saunier
7c0ba83b26 ges: Add an API to Formatter to be able to handle moved sources
API: GESFormatter::source-moved signal
API: GESFormatter::update_source_uri virtual method

Conflicts:

	ges/ges-formatter.h
2012-01-11 11:56:17 -03:00
Thibault Saunier
b844ff04de ges: Add a "discovery-error" signal to GESTimeline
API: GESTimeline::discovery-error signal
2012-01-11 11:56:17 -03:00
Thibault Saunier
3ca5e7bcaa ges: Let user set TimelineObject URI while not containing any TrackObject
In the case of not properly set uri, we can keep using the same
TimelineFileSource changing its URI until its TrackObject could be created.

This is particularly usefull in the case of formatter trying to load filesource
when the file has been moved
2012-01-11 11:56:17 -03:00
mathieu duponchelle
ac6f8599fe Add API to get all sources from xptv project 2012-01-11 11:56:17 -03:00
mathieu duponchelle
2376c313a1 Disconnect handlers when object is removed from layer 2012-01-11 11:56:17 -03:00
mathieu duponchelle
1bd6e9b758 Edit : typos 2012-01-11 11:56:17 -03:00
Mathieu Duponchelle
93046aad6b GES : remove transitions when needed
Conflicts:

	ges/ges-timeline.c
2012-01-11 11:56:17 -03:00
mathieu duponchelle
cc031a5f6a Fixes auto transitions on layers + n. 2012-01-11 11:56:17 -03:00
Thibault Saunier
4acc711e52 ges: Add a maxduration property to TrackFileSource
API: GESTrackFileSource::maxduration property
2012-01-11 11:56:17 -03:00
Thibault Saunier
ce6edd94f4 ges: Disconnect the TrackObject when removed from a Track 2012-01-11 11:56:17 -03:00
Thibault Saunier
ba57355d95 ges: Add a runtime version checking function
Bind it in python

API: ges_version
2012-01-11 11:56:17 -03:00
Thibault Saunier
6c242b8cb1 ges: Reindent ges-track-object.h 2012-01-11 11:56:17 -03:00
Thibault Saunier
a71b46e080 ges: Make TrackObject:locked a GObject property 2012-01-11 11:56:16 -03:00
Thibault Saunier
9d4a528b9e ges: Fix the TimelineObject::effect-added signal emission timing
We were emitting it before it gets added to the track_object list,
so the list we were getting with get_top_effects was containing
a TrackObject that wasen't a TrackEffect

+ A bit of refactoring
2012-01-11 11:56:16 -03:00
Thibault Saunier
059b798d12 ges: Reindent ges-track.h 2012-01-11 11:56:16 -03:00
Thibault Saunier
bc8c709303 ges: Some debug logging enhancements 2012-01-11 11:56:16 -03:00
Thibault Saunier
ef96f26e8a ges: Expand track background duration equal to timeline duration 2012-01-11 11:56:16 -03:00
Thibault Saunier
ffd196d06a ges: Add a duration property to GESTimeline
API: GESTimeline:duration property
2012-01-11 11:56:16 -03:00
Thibault Saunier
53c4eb35db ges: Fix TimelineObject movement that contains unlocked and relocked objects
Record the TrackObject that initiated a TimelineObject movement so we don't
get inifite loops.

Also fix the new TrackObject calculation:
    child.start = time - offset (not time + offset)
2012-01-11 11:56:16 -03:00
Thibault Saunier
826d4f9a71 ges: Bump layer height from 10 to 1000 2012-01-11 11:56:16 -03:00
Thibault Saunier
4d802c1241 ges: Little fixes to timeline_object_g(s)et_supprted_formats 2012-01-11 11:56:16 -03:00
Thibault Saunier
c0d60b9d17 ges: Add guards to all API calls in GESTimelineObject
And reindent the .h file
2012-01-11 11:56:16 -03:00
Thibault Saunier
714a7bf886 ges: Add a method to TimelineObject to set contained TrackObject-s locked state
API: ges_timeline_object_objects_set_locked
2012-01-11 11:56:16 -03:00
Thibault Saunier
5d35024cd3 docs: Update documentation 2012-01-11 11:56:16 -03:00
Thibault Saunier
97846d698c ges: Remove transitions properly 2012-01-11 11:56:16 -03:00
Thibault Saunier
b85b2103ad ges: Add a TimelineObject::track-object-removed signal
API: TimelineObject::track-object
2012-01-11 11:56:16 -03:00
Thibault Saunier
a9193def76 ges: Enhance some debug logging
Also make sure not to warn when it shouldn't
2012-01-11 11:56:16 -03:00
Thibault Saunier
82974d9a9d ges: Misc fixes in ges-timeline-layer
Put the comment where they are meant to be
Make static functions static
Use LAYER_HEIGHT where needed
2012-01-11 11:56:16 -03:00
Thibault Saunier
5021017904 ges: Auto transition cleanup 2012-01-11 11:56:15 -03:00
Thibault Saunier
0c872c4340 ges: Do not add any audio source when still image
We now have a backgroud so no problem with that.

Fix the testsuite accordingly

Fix #657514
2012-01-11 11:56:15 -03:00
Thibault Saunier
6ed88075d9 ges: Fix debugging symbol to avoid segfaults 2012-01-11 11:56:15 -03:00
Thibault Saunier
8addbcddd0 ges: Big PiTiVi formatter cleanup
Also set the version to 0.2
2012-01-11 11:56:15 -03:00
Stéphane Maniaci
876add1fe5 ges: Don't release unexisting sources when destroying the formatter
This happens in case of an empty project.
2012-01-11 11:56:15 -03:00
Thibault Saunier
14480b43f4 ges: Add a gnl background object to tracks
This is in order to support gaps in the timeline.
This is not the proper solution, we should make sure to fill gaps properly,
but for the time being, it makes the trick
2012-01-11 11:56:15 -03:00
Thibault Saunier
2fe6210383 ges: Make sure not to set transition start to negative
gnlobject.start is a guint64, we can not set it to a negative value
2012-01-11 11:56:15 -03:00
Mathieu Duponchelle
7212307db5 ges: makes "pass over" accurate and reset priority when transition is removed 2012-01-11 11:56:15 -03:00
Mathieu Duponchelle
31688a9354 ges: don't reset the supported formats in the timeline when they're already set
My mom never told me goto was evil
2012-01-11 11:56:15 -03:00
Mathieu Duponchelle
7bb8e6f951 ges: make the offset positive as it should have been
Took me two days to figure that out :/ I'm pretty sure it's the way things are supposed to be
2012-01-11 11:56:15 -03:00
Mathieu Duponchelle
e1d97cfee0 ges: modifies emission of the track/object-removed signal
Make it be emitted right before the track objects is removed so we don't end up
with a TrackObject that has already been freed
2012-01-11 11:56:15 -03:00
Mathieu Duponchelle
55fbba27c3 ges: adds a ges_timeline_object_split method
Slightly improves the copy function to do so.

API: ges_timeline_object_split
2012-01-11 11:56:15 -03:00
Thibault Saunier
5f30a86214 ges: add a timeline_object copy function 2012-01-11 11:56:15 -03:00
Mathieu Duponchelle
2c4d614cb1 ges: adds an enable_update function to the GESTimeline
Binds it in python

API: ges_timeline_enable_update
2012-01-11 11:56:15 -03:00
Mathieu Duponchelle
76f256f0bd ges : add a track-object(removed signal to the track
API: GESTrack::track-object-removed signal
2012-01-11 11:56:15 -03:00
Thibault Saunier
8f405d6a4d ges: Handle supported formats in TimelineStandardTransition 2012-01-11 11:56:15 -03:00
Mathieu Duponchelle
0e11ec4137 ges: add an auto-transition to the layer
API: GESTimelineLayer.auto_transition property
2012-01-11 11:56:15 -03:00
Mathieu Duponchelle
9413d9f9e9 ges: Keep the track object list sorted in track 2012-01-11 11:56:14 -03:00
Mathieu Duponchelle
32ce69684c ges: add track objects to the track before the track-object-added is emitted
NOTE: The caller of ges_timeline_object_create_track_object now needs to add it to
the timeline_object after calling the function.

Fix the testsuite to support that accordingly
2012-01-11 11:56:14 -03:00
Mathieu Duponchelle
c191715608 ges: Add API to get the TrackObject-s contained in a Track
Sort the track_objects list

API: ges_track_get_objects
2012-01-11 11:56:14 -03:00
Mathieu Duponchelle
c7a984824f ges: Implement a Pitivi Formatter
API: ges_pitivi_formatter_new
2012-01-11 11:56:14 -03:00
Mathieu Duponchelle
0c92ca9b57 ges: add a track-object-added signal to GESTrack
API: GESTrack::track-object-added signal
2012-01-11 11:56:14 -03:00
Mathieu Duponchelle
ad85383be1 ges: Add a track-object-added signal to GESTimelineObject
API: GESTimelineObject::track-object-added signal
2012-01-11 11:56:14 -03:00
Thibault Saunier
6386247cc4 ges: Move supported formats from filesource to timelineobject
This is usefull by any subclass of GESTimelineObject
 + Bind it in python
 + Fix the keyfile formatter tests

API: ges_timeline_object_set_supported_formats
API: ges_timeline_object_get_supported_formats
2012-01-11 11:56:14 -03:00
Thibault Saunier
8d15025aae ges: Add a ges_timeline_append_layer convenience method
API: ges_timeline_append_layer
2012-01-11 11:56:14 -03:00
Thibault Saunier
6e1a482a80 ges: add a function to move TimelineObject from a layer to another
API: ges_timeline_object_move_to_layer
API: ges_timeline_object_is_moving_from_layer
API: ges_timeline_object_set_moving_from_layer
2012-01-11 11:56:14 -03:00
Thibault Saunier
2bbcbab174 ges: Keep layers sorted by priorities in the timeline 2012-01-11 11:56:14 -03:00
Thibault Saunier
ee5c67de2f ges: Add some debugging symbols 2012-01-11 11:56:13 -03:00
Thibault Saunier
15c816569b ges: Handle TimelineLayer and its contained TimelineObject priorities properly
GESTimelineObject.priority is now actually relative to its containing layer
priority.

Test it in the layer test-suite.
2012-01-11 11:56:13 -03:00