Commit graph

940 commits

Author SHA1 Message Date
Thibault Saunier
878f015179 Rename GESTimelineSource to GESSourceClip
And GESCustomTimelineSource to GESCustomSourceClip
2013-02-15 14:42:03 -03:00
Thibault Saunier
d151f62aa9 Rename GESTimelineOperation to GESOperationClip 2013-02-15 14:42:03 -03:00
Thibault Saunier
dbc83d5d86 Rename GESTimelineParseLaunchEffect to GESStandardEffectClip 2013-02-15 14:42:03 -03:00
Thibault Saunier
d7693b4014 Rename GESTimelineStandardTransition to GESStandardTransitionClip 2013-02-15 14:42:03 -03:00
Thibault Saunier
b73cf7c3d7 Rename GESTimelineTransition to GESTransitionClip 2013-02-15 14:42:03 -03:00
Thibault Saunier
192d8a6f4d Rename GESTimelineEffect to GESEffectClip 2013-02-15 14:42:03 -03:00
Thibault Saunier
695c381bb1 Rename GESTimelineFileSource to GESUriClip
Conflicts:
	ges/ges-pitivi-formatter.c
	ges/ges-uri-clip.c
	tests/check/ges/project.c
	tests/check/ges/uriclip.c
2013-02-15 14:42:02 -03:00
Thibault Saunier
04a3c49ebd Rename GESTimelineObject to GESClip 2013-02-15 14:42:02 -03:00
Thibault Saunier
f0359481c0 Add a GESTimelineElement base class
+ Port GESTrackObject and GESTimelineObject to the new baseclass
2013-02-15 14:42:02 -03:00
Thibault Saunier
04b1ef6eb7 project: Update loading asset when a URI is missing 2013-01-30 20:14:59 -03:00
Tim-Philipp Müller
85663a840e Fix various printf format issues in debug messages 2013-01-22 19:51:57 +00:00
Thibault Saunier
7f81f16674 pitiviformatter: Handle project metadatas 2013-01-14 09:02:26 -03:00
Thibault Saunier
17b765bfb5 xmlformatter: Do no allow saving CONSTRUCTONLY properties 2013-01-14 09:02:26 -03:00
Thibault Saunier
350c5a07bf layer: State assets we create async as loading to the project 2013-01-14 09:02:26 -03:00
Thibault Saunier
e071e3ed37 project: Track Asset that were loaded with error 2013-01-14 09:02:26 -03:00
Thibault Saunier
1d397591af project: Handle assets that are being loaded
API:
    ges_project_get_loading_assets
2013-01-14 09:02:26 -03:00
Thibault Saunier
ae9b006d05 ges: Documentations fixes 2013-01-12 10:53:44 -03:00
Thibault Saunier
02652902f5 Reimplement the auto-transition feature
+ Actually implement unit tests
2013-01-10 18:53:15 -03:00
Thibault Saunier
5f69200a3a trackobject: Make the GESTrack (parent track) a GObject property 2013-01-10 18:09:23 -03:00
Thibault Saunier
9791fc541b timeline: Minor refactoring 2013-01-10 18:01:33 -03:00
Thibault Saunier
eeef1548b3 timeline: Avoid recreating the moving_tlobjs when unecessary 2013-01-10 13:32:15 -03:00
Thibault Saunier
8888a3a698 Misc debug message enhancements 2013-01-10 12:46:33 -03:00
Thibault Saunier
92a67092d5 timeline: Keep track of whether updates are enabled or not
Check if we want to track Track-s enable status and update our status according
to that
2013-01-10 12:46:33 -03:00
Thibault Saunier
2c37986493 layer: Properly emit the notify signal when auto_transition changes 2013-01-10 12:25:53 -03:00
Thibault Saunier
7f10881dd2 timeline: Track TrackObject-s by layer 2013-01-10 11:50:02 -03:00
Thibault Saunier
af326df8bd utilities: Make internal utilities instead of copy/pasting functions 2013-01-10 11:15:32 -03:00
Thibault Saunier
feb85a1456 Move LAYER_HEIGHT definition from -timeline-layer.c c to -internal.h 2013-01-10 11:11:31 -03:00
Thibault Saunier
6e33af939c asset-track-object: Minor doc fixing 2013-01-10 11:11:31 -03:00
Thibault Saunier
1b8126d349 timeline: Remove dead macros 2013-01-10 11:11:30 -03:00
Thibault Saunier
31e1ea3840 timeline: Use g_sequence_sort_changed when appropriate 2013-01-10 11:11:28 -03:00
Thibault Saunier
e54f1292b6 track: Keep in cache the GSequenceIter so we get a faster acces to them 2013-01-03 12:23:02 -03:00
Thibault Saunier
c9e970eb36 formatter: Plug some leaks 2013-01-03 09:44:35 -03:00
Thibault Saunier
0ec78ea70b xmlformatter: Plug various leaks 2013-01-03 09:44:35 -03:00
Thibault Saunier
cf93469fa5 Misc nitpick fixing 2012-12-30 23:12:28 -03:00
Thibault Saunier
854228c4ea project: Plug various leaks. 2012-12-30 23:12:28 -03:00
Thibault Saunier
ac7dd69a71 meta-container: Plug various leaks 2012-12-30 23:12:28 -03:00
Thibault Saunier
bf1e966d25 asset: Do not allow proxying over the same currently proxied asset 2012-12-30 23:12:27 -03:00
Thibault Saunier
38bc983502 asset: Fix some leaks 2012-12-30 23:12:27 -03:00
Thibault Saunier
96d3afce6e asset: Avoid leaking the GParameter array and content 2012-12-29 19:38:50 -03:00
Thibault Saunier
f722938ebf assetfilesource: Fix some leaks 2012-12-29 19:38:31 -03:00
Thibault Saunier
a962f07087 Refrase formatters descriptions 2012-12-29 19:38:13 -03:00
Thibault Saunier
b6b6063be3 formatter: First check the extension when checking if can load URI 2012-12-29 19:38:13 -03:00
Thibault Saunier
7fa9eee785 project: Run the vmethod in first stage for the "loaded" signal
This is most probably what sublcasses will need
2012-12-29 19:38:13 -03:00
Thibault Saunier
e796a2aab2 tests: Fix misc issues
Now GST_CAPS_ANY is a singleton, it is not returning a newly created caps
anymore
2012-12-29 19:38:12 -03:00
Thibault Saunier
9f63e6514a Allow checking code coverage 2012-12-29 19:38:12 -03:00
Thibault Saunier
67da662276 Misc documentation fixes
Using "#" a in short_description screws the display
2012-12-29 19:38:12 -03:00
Thibault Saunier
c5ad871d1c Implement a GESAssetTrackObject class
+ Addapt the rest of the code to make use of it
2012-12-29 19:38:12 -03:00
Thibault Saunier
27c36046fa Implement a GESAssetTimelineObject class
+ Make GESAssetFileSource a subclass of it
 + Remove ges_asset_filesource_get_supported_type as it is now in GESAssetTimelineObject
 + Remove the GES_META_TIMELINE_OBJECT_SUPPORTED_FORMATS as it is useless now
2012-12-29 19:36:53 -03:00
Thibault Saunier
6dfae640a2 Add a GESAssetTrackFileSource class and make use of it all around 2012-12-29 19:36:53 -03:00
Sebastian Dröge
bc0f335734 Allow applications to select to which track a track object should be added
Modifies some  API:
    ges_timeline_object_create_track_objects now take a GESTrackType instead of a
        GESTrack as second argument, and return a GList instead of a boolean
    ges_timeline_object_create_track_object now take a GESTrackType instead of a
        GESTrack as second argument
2012-12-29 19:36:52 -03:00
Thibault Saunier
313036aa15 Add a utility method to get the name of a GESTrackType
API:
    ges_track_type_name
2012-12-29 19:36:52 -03:00
Thibault Saunier
0f98adece8 timelinepipeline: Properly reset #GESTrack caps when switching back to playback 2012-12-29 19:36:52 -03:00
Thibault Saunier
2b4c4cfc0c timeline: Properly popullate the tracks field with GESTrack-s
+ add priv_tracks private field that contained TrackPrivate structures

We now have 2 list containing our tracks, one with TrackPrivate structures, and one the
GESTrack-s themselves.
2012-12-29 19:36:52 -03:00
Thibault Saunier
228c2fd569 Revert "Revert "ges: timeline-pipeline: Remove playsink send_event hack""
This reverts commit 094669391d.

Conflicts:
	ges/ges-timeline-pipeline.c
2012-12-29 19:36:52 -03:00
Thibault Saunier
5a56aef7c0 Misc documentation fixing 2012-12-29 19:36:52 -03:00
Thibault Saunier
4ab430877f formatter: Rework the _save_to_uri method to give more debug information 2012-12-29 19:36:51 -03:00
Thibault Saunier
f30e33d489 timeline-layer: Handle project when adding a GESTimelineObject directly 2012-12-29 19:36:51 -03:00
Thibault Saunier
063bc37a35 timeline-layer: Implement the Extractable type
We can imagine user implemts more Layer type, it could be usefull for formatters
to instanciate through a GESMaterial
2012-12-29 19:36:51 -03:00
Thibault Saunier
ad00c228c4 timeline-object: Reindent header file 2012-12-29 19:36:51 -03:00
Thibault Saunier
d32dc3fb20 docs: Minor documentation fixes 2012-12-29 19:36:51 -03:00
Thibault Saunier
1a06a2e63e internale: Add the G_GNUC_INTERNAL attribute to all internal methods 2012-12-29 19:36:51 -03:00
Thibault Saunier
07ceb2ca40 ges: Create assets for all GESTimelineStandardTransition on ges_init()
+ Add some testsuite
2012-12-29 19:36:50 -03:00
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