Commit graph

274 commits

Author SHA1 Message Date
Brandon Lewis 5e39898c1a add enum for video patterns 2010-07-09 13:21:07 +02:00
Brandon Lewis f371d2c83e implment GESTimelineBackground source create_track_object 2010-07-09 13:21:07 +02:00
Brandon Lewis 8a6bef074b add audio background source to build system 2010-07-09 13:21:07 +02:00
Brandon Lewis 88175b790a add audio background source to types.h 2010-07-09 13:21:07 +02:00
Brandon Lewis 3c47729062 check in audio background source 2010-07-09 13:21:07 +02:00
Brandon Lewis 8b10e0c065 add ges video-track background to build system 2010-07-09 13:21:07 +02:00
Brandon Lewis ae5d0de868 check in ges-track-video-background-source.{c,h} 2010-07-09 13:21:07 +02:00
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