Commit graph

867 commits

Author SHA1 Message Date
Brandon Lewis
bdee21579b add GESTrackBackgroundSource to build system 2010-07-09 13:21:07 +02:00
Brandon Lewis
77a16602c6 add track background source to header 2010-07-09 13:21:07 +02:00
Brandon Lewis
22707643b0 add track background source to ges-types.h 2010-07-09 13:21:06 +02:00
Brandon Lewis
73ca491f0e check in GESTrackBackgroundSource 2010-07-09 13:21:06 +02:00
Brandon Lewis
323cc10942 add GESTimelineBackgroundSource to build system 2010-07-09 13:21:06 +02:00
Brandon Lewis
4ab734edf0 add timeline background source to header 2010-07-09 13:21:06 +02:00
Brandon Lewis
33a9610cd0 check in ges-timeline-background-source.{c,h} 2010-07-09 13:21:06 +02:00
Edward Hervey
097647e97a GESTimelinePipeline: Fix leaked caps 2010-06-28 17:08:08 +02:00
Edward Hervey
be8cbdb4a1 GESTimelinePipeline: unref all pads 2010-06-21 11:54:01 +02:00
Edward Hervey
575c4865a0 GESTimelinePipeline: Make a copy of the provided GstEncodingProfile 2010-06-21 11:53:30 +02:00
Edward Hervey
6fe60cb694 GESTimelinePipeline: Properly release playsink and encodebin 2010-06-21 11:52:49 +02:00
Edward Hervey
87087b013a GESTimelinePipeline: finalize => dispose
We want to release our objects before the parent GstBin class does so.
2010-06-21 11:52:01 +02:00
Edward Hervey
45febdebe1 GESTrackTransition: Release all pads.
Whether calling get_request_pad or get_static_pad we always end up
with an extra reference.

Also keep a reference on videomixer so it doesn't go away before we
call _release_request_pad() on it with the proper pads to release.
2010-06-14 19:40:50 +02:00
Brandon Lewis
03b299ecdb release the request pads in dispose 2010-06-10 16:25:34 +02:00
Brandon Lewis
19c8bbfd3f don't keep an extra reference to vsmpte 2010-06-10 16:14:20 +02:00
Brandon Lewis
462cd2b41f gstl_recalculate() won't set priorities to -1 2010-06-09 18:56:55 +02:00
Brandon Lewis
73814e225d ges/ges-track-transition.h: add missing function prototype 2010-06-09 17:13:13 +02:00
Brandon Lewis
edecee8def ges/ges-utils.h: C90 fixes 2010-06-09 17:13:07 +02:00
Brandon Lewis
3e34e423a6 ges/ges-track.h: C90 fixes 2010-06-09 17:13:07 +02:00
Brandon Lewis
9b7c70c6c1 ges/ges-track.c: C90 fixes 2010-06-09 17:13:07 +02:00
Brandon Lewis
71df04a2f9 ges/ges-track-transition.c: C90 fixes 2010-06-09 16:34:14 +02:00
Brandon Lewis
8db7c7a48b ges/ges-track-object.c: C90 fixes 2010-06-09 16:31:11 +02:00
Brandon Lewis
7a64a8c690 ges/ges-timeline-transition.c: C90 fixes 2010-06-09 16:30:48 +02:00
Brandon Lewis
250d0be3c4 ges/ges-timeline-object.c: C90 fixes 2010-06-09 16:30:16 +02:00
Brandon Lewis
1ec9238358 ges/ges-timeline-layer.c: C90 fixes 2010-06-09 16:29:26 +02:00
Brandon Lewis
06a8cc32a0 ges/ges-simple-timeline-layer.c: C90 fixes 2010-06-09 16:27:43 +02:00
Edward Hervey
ea55ceb747 GESTrackTransition: Fix debug statement 2010-06-09 13:53:07 +02:00
Edward Hervey
9eedf06b7b GESTimeline: Remove all tracks/layers when being disposed 2010-06-09 13:52:35 +02:00
Edward Hervey
b6277bd8bb GESTimelineLayer: Release all layer/tracks when being disposed 2010-06-09 13:52:08 +02:00
Brandon Lewis
f0fc253aa8 ges/ges-track-transition.c: set referece to vsmpte to NULL after freeing 2010-06-09 11:28:46 +02:00
Brandon Lewis
c7273608c7 ges/ges-track-transition.c: was freeing same GstController twice in _dispose() 2010-06-09 11:28:46 +02:00
Edward Hervey
5e2660b2c2 GESTrackTransition: Unref the ControlSource in dispose 2010-06-09 11:28:46 +02:00
Edward Hervey
4188c6fa97 ges: Initialize GstController in ges_init 2010-06-09 11:28:46 +02:00
Brandon Lewis
9d8ce82b61 ges/ges-simple-timeline-layer.c: print a warning when transitions overlap 2010-06-09 11:28:46 +02:00
Brandon Lewis
0608930b19 ges/ges-timeline-transition.c: can't set enums by nick 2010-06-09 11:28:46 +02:00
Brandon Lewis
221df1b880 ges/ges-timeline-transition.c: initialize vtype enum type from static list of
GEnumValues
2010-06-09 11:28:46 +02:00
Brandon Lewis
67c33dc65b ges/ges-track-transition.c: adjust to the change in VTYPE_CROSSFADE 2010-06-09 11:28:10 +02:00
Brandon Lewis
adeef34c77 ges/ges-timeline-transition.{c,h}: value for VTYPE_CROSSFADE changed to 512
and exported in ges-timeline-transition.h
2010-06-09 11:28:10 +02:00
Brandon Lewis
2adbd8e36c ges/ges-timeline-transition.c: implement vtype gobject property on
GESTimelineTransitions
2010-06-09 11:28:10 +02:00
Brandon Lewis
2f18595e6e ges/ges-track-transition.{c,h}: add ability to change smptealpha type 2010-06-09 11:28:10 +02:00
Brandon Lewis
7beb6a5e5e ges/ges-timeline-transition.{c,h}: api change, pass gint instead of GEnumValue
to new()
2010-06-09 11:28:10 +02:00
Brandon Lewis
22534176d8 ges/ges-timeline-transition.{c,h},tests/.../transition.c: type change of vtype
to gint from GEnumValue
2010-06-09 11:28:10 +02:00
Brandon Lewis
e69dcea71a ges/ges-timeline-transition.c: sync with API change in previous commit 2010-06-09 11:28:10 +02:00
Brandon Lewis
3caed9bff4 ges/ges-track-transition.{c,h}: api change: pass gint instead of GEnumValue 2010-06-09 11:28:10 +02:00
Brandon Lewis
b3ec2bad19 ges/ges-track-transition.{c,h}, tests/check/ges/transition.c: change vtype
from GEnumValue to simple gint;
2010-06-09 11:28:10 +02:00
Brandon Lewis
d4c60b059d ges/ges-track-filesource.h: fix typo in documentation commments 2010-06-09 11:28:09 +02:00
Brandon Lewis
bc291a986d ges/ges-track-filesource.h: fix incorrect definition of GESTrackFileSource
structs.
2010-06-09 11:28:09 +02:00
Brandon Lewis
93534c0500 Add missing documentation 2010-06-09 11:28:09 +02:00
Brandon Lewis
812713cf2f ges/ges-track-transition.c: implement audio crossfades 2010-06-09 11:28:09 +02:00
Brandon Lewis
79ebc389e0 ges/ges-track-transition.{c,h}: add fields for audio interpolation to obj 2010-06-09 11:28:09 +02:00
Brandon Lewis
542e8afb75 fix bugs 2010-06-09 11:28:09 +02:00
Brandon Lewis
07693f56f8 ges/ges-track-transition.{c,h}: rename some members of ges-track-transition
struct to separate between audio and video objects.
2010-06-09 11:28:09 +02:00
Brandon Lewis
280aef4f6e ges/ges-track-transition.c: factor out code which produces video bin into a
seprate routine
2010-06-09 11:28:09 +02:00
Brandon Lewis
962a1d17d7 ges/ges-track-transition.c: give gnloperations a unique name 2010-06-09 11:28:09 +02:00
Brandon Lewis
899f4f35c5 ges/ges-simple-timeline-layer.c: also error when transition duration exceeds
that of its neighbors
2010-06-09 11:28:09 +02:00
Brandon Lewis
ae34d99867 ges/ges-simple-timeline-layer.c: don't allow user to create timelines with
adjacent transitions
2010-06-09 11:28:09 +02:00
Brandon Lewis
e5ae1405c8 ges/ges-simple-timeline-layer.c: implement simple stair-step like priority
management scheme.
2010-06-09 11:28:08 +02:00
Brandon Lewis
ff4443a9c6 ges/ges-timeline-transition.{c,h}: add convenience routine for creating
transitions
docs/libs/ges-sections.txt: add routine to documentation
2010-06-09 11:28:08 +02:00
Brandon Lewis
1d3d367e75 ges/ges-track-transition.{c,h}: add support for other wipes with smptealpha 2010-06-09 11:28:08 +02:00
Brandon Lewis
48eeb8d913 ges/ges-timeline-transition.{c,h}: add a type field 2010-06-09 11:28:08 +02:00
Brandon Lewis
998ae5af20 ges-track-transition.c: set interpolation control points properly from
gnlobject properties
2010-06-09 11:28:07 +02:00
Brandon Lewis
28f1acba81 ges-track-transition.c: GstControlSource -> GstInterpolationControlSource 2010-06-09 11:28:07 +02:00
Brandon Lewis
5afc67f3e5 ges-track-transition.c: create gst-controller for transition 2010-06-09 11:28:07 +02:00
Brandon Lewis
6728e4dd8d ges-track-transition.c: add controller and control-source members 2010-06-09 11:28:07 +02:00
Brandon Lewis
e3549deec2 depend on GST_CONTROLLER 2010-06-09 11:28:07 +02:00
Brandon Lewis
c9a2f73579 hacking 2010-06-09 11:28:07 +02:00
Brandon Lewis
3cc23d98ea ges/ges-types.h: add typedefs for GESTrackTransition[Class] structs 2010-06-09 11:28:07 +02:00
Brandon Lewis
eeae501a0a ges-track-transition.h: fix typo 2010-06-09 11:28:07 +02:00
Brandon Lewis
b557a5e3bd ges/Makefile.am: dist ges-track-transition.c,h 2010-06-09 11:28:07 +02:00
Brandon Lewis
7918bbec14 skeletal implementation of GESTrackTransition 2010-06-09 11:28:06 +02:00
Brandon Lewis
f42d7179d8 check-in ges-track-transition.h 2010-06-09 11:28:06 +02:00
Edward Hervey
8193fe5b4c GESTimeline: Freeze state of Tracks when doing an async state change 2010-05-25 16:36:57 +02:00
Edward Hervey
3b8ea491d7 GES: Add a new utility file
API : ges_timeline_new_audio_video()
2010-05-25 16:35:27 +02:00
Edward Hervey
a17900813a GESTimelinePipeline: Only remove the playsink if it was used 2010-05-20 12:29:30 +02:00
Edward Hervey
ed86ff2f51 GESTimeline: Remove unused variable 2010-05-19 15:50:41 +02:00
Edward Hervey
1bb45a61a6 GESTimeline: Use GstDiscoverer for incomplete filesources
If a GESTimelineFileSource is added to a layer and:
* It doesn't have specified supported formats
* OR it doesn't have a specified maximum duration
* OR it doesn't have a specifed duration

Then we asynchronously send it to the GstDiscoverer.

If this happens, the state change of the timeline from READY to
PAUSED will happen asynchronously and be completed when everything
has been properly discovered.

Part 2 of GstDiscoverer integration
2010-05-19 12:36:11 +02:00
Edward Hervey
eb4b02f3ed GESTimelineFileSource: Add 'max-duration' and 'supported-formats' properties
* max-duration is the total length of the File.
* supported-formats is the various track types this filesource can produce
  trackobjects for. This should maybe be moved to parent classes in the
  future

Step 1 of GstDiscoverer integration
2010-05-19 12:24:44 +02:00
Edward Hervey
133e8ec94a GESTimelineObject: Properly set default duration
Set it in the instance_init to GST_SECOND, But let the subclasses override
it.
This allows subclasses to set a different default duration
2010-05-19 12:19:37 +02:00
Edward Hervey
2df711cd60 GESSimpleTimelineLayer: Recalculate positions when object duration change
This ensures that if someone changes the duration, the clips still remain
contiguous and in the proper order.
2010-05-19 12:14:34 +02:00
Edward Hervey
6753d176d7 configure: Depend on gstreamer-discoverer 2010-05-18 19:07:27 +02:00
Edward Hervey
14a6a5f31d GESTrack: Make GESTrackType a flag, and add GES_TRACK_TYPE_UNKNOWN
Also add a bit more documentation about it.
2010-05-18 17:43:28 +02:00
Edward Hervey
505030b1a7 GESTimelineObject: Document CreateTrackObjectFunc vmethod 2010-05-18 12:56:24 +02:00
Edward Hervey
fbc80b1955 GESTimelinePipeline: Fix 32bit runtime issues 2010-05-10 12:44:56 +02:00
Edward Hervey
e747ad4867 GESTimelinePipeline: Limit encodebin buffering to 1 buffer
We don't need to queue more than that since we only need thread decoupling
and the various streams going into encodebin are guaranteed to come
from different streaming threads (since they're separate gnlcomposition).
2010-05-07 13:37:33 +02:00
Edward Hervey
2b589d4d29 GESTimelinePipeline: Remove unused variable/label. 2010-04-27 11:45:15 +02:00
Edward Hervey
7aedc2bcfb GESTimelinePipeline: Cleanup properly when pads are removed 2010-04-20 13:47:08 +02:00
Edward Hervey
d3c8b52c9c GESTimelinePipeline: Implement smart rendering 2010-04-20 13:47:08 +02:00
Edward Hervey
f909ff239f GESTimelinePipeline: Store encoding profile 2010-04-20 13:47:08 +02:00
Edward Hervey
adada51a2d GESTimelinePipeline: New Smart Render mode 2010-04-20 13:47:07 +02:00
Edward Hervey
75389d6493 GESTimelinePipeline: new functions to search/create OutputChain 2010-04-20 13:47:07 +02:00
Edward Hervey
2d7962bf93 GESTimelinePipeline: Remove unused code 2010-04-20 13:47:07 +02:00
Edward Hervey
e795bd056d GESTrack: set caps on the composition
This will allow them to be propagated to all objects contained within
2010-04-20 13:47:07 +02:00
Mark Nauwelaerts
10be8697df GESTimeLine(PipeLine): remove additional unref 2010-04-20 13:47:07 +02:00
Edward Hervey
7dc4844507 ges: Link gstprofile 2010-04-20 13:47:07 +02:00
Edward Hervey
c3741374da GESTimeline: New method ges_timeline_get_tracks 2010-04-20 13:47:03 +02:00
Edward Hervey
b78aa12aee GESTimelinePipeline: Fix minor bug in get_compatible_unlinked_pad
We weren't breaking and ended up doing a fallthrough to the loop
completion.
2010-03-13 16:05:37 +01:00
Edward Hervey
9d8ee15a20 GESTimelineObject: Fix doc of priority property 2010-03-13 15:56:57 +01:00
Edward Hervey
fd15030ff1 GESTrackFileSource: Don't forget to free the URI string 2010-03-13 15:56:57 +01:00
Edward Hervey
9b1a434e95 GESTimelineLayer: Add a 'priority' property 2010-03-13 15:56:57 +01:00
Edward Hervey
dafe3d2bb4 GESTimeline: Properly iterate TrackObject lists when removing them 2010-03-13 15:56:57 +01:00
Edward Hervey
83cc796cc9 GESTimelineObject: Don't leak a reference when creating TrackObject 2010-03-13 15:54:32 +01:00
Edward Hervey
62c24ee380 GESTimelineObject: new API : _find_track_object
This allows getting the TrackObject for a corresponding TimelineObject
and Track combination
2010-03-13 15:53:58 +01:00
Edward Hervey
51e59a6edc GESTimelinePipeline: Add comment for _set_render_settings 2010-01-08 18:21:08 +01:00
Edward Hervey
b4e36fe853 GESTimelinePipeline: Also get static pads for static pads from encodebin.
This is for the cases where the provided GstStreamEncodingProfile has
a non-zero presence.
2010-01-08 18:14:46 +01:00
Edward Hervey
15c0013732 ges: Small doc fixups 2009-12-11 15:24:56 +01:00
Edward Hervey
852eca115e GESTimelineObject: Move property setting to an earlier stage.
This ensures that any properties set on the TimelineObject will be
propagated to the created TrackObjects just after they're created
2009-12-11 15:20:35 +01:00
Edward Hervey
e0f61dcd80 GESTrackObject: Store pending values when GnlObject isn't created yet 2009-12-11 15:20:35 +01:00
Edward Hervey
82af34bb87 GESTimelinePipeline: Sync state of newly added element to container 2009-12-11 15:20:35 +01:00
Edward Hervey
5396476e7c GESTimelinePipeline: Don't forget to remember the mode 2009-12-11 15:20:13 +01:00
Edward Hervey
1d0f6faf94 GESTimelineFileSource: Properly handle mute
mute != active
2009-12-11 15:20:13 +01:00
Edward Hervey
aedf73803d GESTimelinePipeline: More render support 2009-12-11 15:20:13 +01:00
Edward Hervey
2d430098f8 GESTimelinePipeline: beginning of render support 2009-12-11 15:19:54 +01:00
Edward Hervey
dd9d3e420c ges/: Fix copyright in headers 2009-11-30 15:14:25 +01:00
Edward Hervey
a55e798fa2 timelinefilesource: Free URI when finalizing 2009-11-25 13:17:01 +01:00
Edward Hervey
22fb8c0eec trackobject: priority is a uint32 2009-11-25 13:17:01 +01:00
Edward Hervey
5ddf789cb4 TimelineObject: Add missing argument to printf statement 2009-11-25 13:17:01 +01:00
Edward Hervey
0493fbcc57 customtimelinesource: Fix indentation 2009-11-25 13:17:01 +01:00
Edward Hervey
5f187a5349 docs: Add overview and architecture document and cleanup docs more. 2009-11-12 20:11:28 +01:00
Edward Hervey
dcfe814e78 GESTimelineObject: First set the duration and priority before the inpoint. 2009-09-30 16:44:41 +02:00
Edward Hervey
3deb1fc885 GESTimelineFileSource: Add a 'mute' property.
This property deactivates the audio trackobjects if set to TRUE
2009-09-30 16:44:12 +02:00
Edward Hervey
1489c583af GESTrackObject: Listen to property change from gnlobject
TODO: add/emit the 'changed' signal
2009-09-30 16:43:12 +02:00
Edward Hervey
ab8ea4c6a5 GESTrackObject: Add convenience macros for accessing properties 2009-09-30 16:42:31 +02:00
Edward Hervey
09c08e320a GESTrackObject: Set sane default values 2009-09-30 16:42:08 +02:00
Edward Hervey
f18bb72d04 GESTrackObject: Add 'active' property.
This property allows (de)activating a track object
2009-09-30 16:41:47 +02:00
Edward Hervey
0deacd5a0c GESSimpleTimelineLayer: Implement add()/move() and parent class changes
If changes happen when accessing the GESTimelineLayer API, they will be taken
into account.
2009-09-29 15:27:55 +02:00
Edward Hervey
6765ee21ce ges-timeline-layer.h: Add comment 2009-09-29 15:27:17 +02:00
Edward Hervey
733aebfb1c ges-timeline-object: Add convenience macros 2009-09-29 15:25:54 +02:00
Edward Hervey
aedc431994 New GESTimelineFileSource and GESTrackFileSource classes 2009-09-21 18:07:44 +02:00
Edward Hervey
b54487fe11 Finish public API documentation 2009-09-16 12:37:45 +02:00
Edward Hervey
ecef062c8c GESTrack: The track steals the refcount to the caps. document that. 2009-09-14 19:48:16 +02:00
Edward Hervey
8c340412cd GESTimeline: Fix reference counting of tracks, add docs. 2009-09-14 19:48:05 +02:00
Edward Hervey
1dc12c9658 GESTimelineLayer: Fix reference handling of objects, add docs. 2009-09-14 19:48:02 +02:00
Edward Hervey
15aba65202 GESTimeline: start more documentation 2009-09-14 19:47:56 +02:00
Edward Hervey
89429a9225 GESTrackObject: Document some more 2009-09-14 19:47:53 +02:00
Edward Hervey
2a6f0c406c GESTrack: document more 2009-09-14 19:47:37 +02:00
Edward Hervey
dff4e20cb5 More documentation. Coverage now at 25% 2009-09-10 18:44:16 +02:00
Edward Hervey
29751a7d27 GESTimeline: Make sure added ghostpads are unique. 2009-09-09 15:51:52 +02:00
Edward Hervey
ea7831cac0 GESTimelinePipeline: Reconfigure playsink once we've added a pad. 2009-09-09 12:42:29 +02:00
Edward Hervey
de31b79ee4 GESTimelinePipeline: Use 'playsink', track added/removed pads.
Also add a method to set a GESTimeline on the pipeline.
2009-09-08 19:45:08 +02:00
Edward Hervey
416323c649 GESTimeline: Track internal pads and tracks in sync.
Add method to get the Track associated to a ghostpad.
2009-09-08 19:44:03 +02:00
Edward Hervey
ae6ac876b1 GESTrack: Add TrackType enum and constructor property.
This allows us to speed up detection of track content type.
2009-09-08 18:49:22 +02:00
Edward Hervey
d83dfd6402 CustomTimelineSource: Fix typo in debug statement 2009-09-08 18:47:46 +02:00
Edward Hervey
ba9e60ae1b GESTimelinePipeline: Fix typo 2009-09-07 15:46:44 +02:00
Edward Hervey
e60bbe1102 TrackObject: Add debugging and make default duration 1s 2009-08-07 20:36:51 +02:00
Edward Hervey
2e41cb04a3 TimelineObject: Add start/inpoint/duration/priority properties and propagate them 2009-08-07 20:36:51 +02:00
Edward Hervey
9fae1526bb Track: Handle pads 2009-08-07 20:36:46 +02:00
Edward Hervey
c06e2a9550 Track: Add convenience methods for creating a raw Audio or Video track. 2009-08-07 20:32:29 +02:00
Edward Hervey
83c3e87661 CustomTimelineSource: Allow giving user_data to the callback 2009-08-07 20:31:11 +02:00
Edward Hervey
d8444f3844 Add 'caps' property on Track 2009-08-07 18:18:42 +02:00
Edward Hervey
cafbc229e8 Fix build. Can now run make distcheck. 2009-08-07 17:11:33 +02:00
Edward Hervey
f94f53f87c Track: Add/Remove the GnlComposition from ourself. 2009-08-07 16:51:49 +02:00
Edward Hervey
3ce00c0308 TrackSource: Include TrackObject header file 2009-08-07 16:46:57 +02:00
Edward Hervey
fe8fbe88ea ges.c: Add debug line to inform of initialization 2009-08-07 16:46:35 +02:00
Edward Hervey
f7da500651 New CustomTimelineSource class. 2009-08-07 16:45:16 +02:00
Edward Hervey
b7b88e5826 Track: Implement remove_object() 2009-08-07 16:43:49 +02:00
Edward Hervey
dc16b626c8 TrackObject: Add 'valid' property, Make _set_track() return a bool 2009-08-07 16:43:01 +02:00
Edward Hervey
9f4f14722d Timeline: Implement remove_track, remove_layer, and _layer_object_removed_cb 2009-08-07 16:41:23 +02:00
Edward Hervey
02e1f3910d TimelineSource: Implenent _create_track_object() virtual-method 2009-08-07 16:40:51 +02:00
Edward Hervey
246599e2f6 TimelineObject: Implement _release_track_object() 2009-08-07 16:39:45 +02:00
Edward Hervey
b10743ef9a TimelineLayer: Implement _remove_object() 2009-08-07 16:39:09 +02:00
Edward Hervey
fa56e7f0cb ges: Remove unused private structures. We'll re-add on a per-case basis. 2009-08-06 19:59:25 +02:00
Edward Hervey
12777c8532 Add unit test system. Adjust GST_DEBUG usage. 2009-08-06 19:51:29 +02:00
Edward Hervey
7860b814d6 Add new GESTrackSource 2009-08-06 18:54:01 +02:00
Edward Hervey
c4649938fd intermediary commit. Still need to fill in more blanks :( 2009-08-06 17:38:43 +02:00
Edward Hervey
b6fccd5771 Add signal marshalling code 2009-08-06 12:47:38 +02:00
Edward Hervey
f3131a2f6a build fixed again. Moved type declarations in a standalone file. 2009-08-06 12:14:37 +02:00
Edward Hervey
081f4805ef src/ => ges/ 2009-08-06 11:24:04 +02:00