Commit graph

2664 commits

Author SHA1 Message Date
Thibault Saunier
2aac7356c8 ges: Emit GESMetontainer::notify-meta even if value is unset 2016-05-31 09:30:40 -04:00
Thibault Saunier
9d65519411 ges: Allow passing NULL as a value to ges_meta_container_set_meta
Fixes T7430
2016-05-30 11:01:51 -04:00
Tim-Philipp Müller
1b44d177fb g-i: pass compiler env to g-ir-scanner
It's what introspection.mak does as well. Should
fix spurious build failures on gnome-continuous
(caused by g-ir-scanner getting compiler details
via python which is broken in some environments
so passing the compiler details bypasses that).
2016-05-25 10:32:46 +01:00
Aurélien Zanelli
dc16ee6c56 uri-clip: make uri parameter of ges_uri_clip_new () const
To avoid compiler warning when using const string to create a new
GESUriClip as string is not modified and only passed to functions which
take a const string.

https://bugzilla.gnome.org/show_bug.cgi?id=766523
2016-05-16 14:47:25 -04:00
Aurélien Zanelli
df9921f470 framepositionner: add a weak ref on track element to know when it is finalized
Otherwise if frame positionner is disposed after track element has been
finalized, it will raise a critical message because we will try to
disconnect a signal handler on a freed track element object.

https://bugzilla.gnome.org/show_bug.cgi?id=766525
2016-05-16 14:37:25 -04:00
Aurélien Zanelli
991870fa28 audio-source: unref private capsfilter reference on dispose
Otherwise a capsfilter reference will be leaked since it has been got
using gst_bin_get_by_name.

https://bugzilla.gnome.org/show_bug.cgi?id=766524
2016-05-16 13:21:12 -04:00
Aurélien Zanelli
4f8459b487 audio-source: fix indentation
https://bugzilla.gnome.org/show_bug.cgi?id=766524
2016-05-16 13:21:12 -04:00
Aurélien Zanelli
62456af2a2 nlecomposition: ensure elements pending to be added are not leaked
When nlecomposition is finalized with pending add action or io,
associated elements are not unreffed as they should since caller gives
us the reference when calling gst_bin_add causing them to be leaked.
So to make sure we don't leak a reference on element when adding one to
the bin, each stage (action and pending_io) hold a reference on element
and release it when stage is done.

https://bugzilla.gnome.org/show_bug.cgi?id=766455
2016-05-14 20:50:16 -03:00
Aurélien Zanelli
dd5bf558c2 nlecomposition: fix nle_composition_remove_object info message
We don't add internal bin, we remove it.

https://bugzilla.gnome.org/show_bug.cgi?id=766455
2016-05-14 20:47:16 -03:00
Aurélien Zanelli
813c4b4fb7 ges: add some g-i annotations according to documentation
Mainly (transfer xxx) and (nullable). Also fix some typo.

https://bugzilla.gnome.org/show_bug.cgi?id=766459
2016-05-14 20:36:07 -03:00
Aurélien Zanelli
dc95299080 asset: fix ges_asset_set_proxy() return value documentation
https://bugzilla.gnome.org/show_bug.cgi?id=766459
2016-05-14 20:36:07 -03:00
Thibault Saunier
79e2bbac5d element: Also accept GParamSpec.owner_type name as a child property prefix
Makes it simpler for python users to be able to retrieve children
properties iterating over them.
2016-05-06 22:30:23 -03:00
Thibault Saunier
66d65ed32f track-element: gi: skip now deprecated children property getter/setter
Those are implemented with the exact same API at the GESTimelineElement
level now, and user of those APIs with high level languages will get the
exact same API.
2016-05-06 18:28:01 -03:00
Thibault Saunier
219c8791e6 formatter: Prefix all children properties in the XML formatter
Otherwise it will fail on properties that are mandatorily prefixed
like the newly added deinterlacing properties
2016-05-06 18:28:01 -03:00
Thibault Saunier
8718b01595 ges: Remove timeline_emit_group_removed which slipped in the API by mistake
This is formally an API break but I am sure no one ever used that and
we should make sure the method is removed as soon as possible because
it has no reason to be exposed.
2016-05-06 18:27:56 -03:00
Thibault Saunier
f6b04061c8 container: Handle setting children properties that need prefixing 2016-05-03 08:31:44 -03:00
Thibault Saunier
57543cc894 video-source: Expose deinterlace-[fields, mode, tff] child properties
Letting some control over the deinterlacing to the users
2016-05-03 08:31:44 -03:00
Tim-Philipp Müller
e40c8fcb30 ges: fix misc g-i annotations 2016-04-30 18:38:33 +01:00
Aurélien Zanelli
4257605141 g-i: use only "ges/ges.h" as c-include for introspection
This is the only header which shall be included by user. Otherwise some
language using gir to generate binding, e.g Vala, will includes all
headers files in alphabetical order which causes compilation errors due
to incomplete type.

https://bugzilla.gnome.org/show_bug.cgi?id=765856
2016-04-30 18:24:24 +01:00
Aurélien Zanelli
a8636244b5 timeline: rename "track-element" to "track_element" in select-tracks-for-object documentation
because "track-element" is not a valid identifier for a parameter and
will cause generated binding using GIR to be invalid. For instance in
Vala.

https://bugzilla.gnome.org/show_bug.cgi?id=765853
2016-04-30 16:35:16 +01:00
Thibault Saunier
05f62cb84c video-source: Do not ever plugin avdeinterlace
It is not feature compatible with deinterlace and is not safe to use
2016-04-29 10:33:47 -03:00
Sebastian Dröge
59d7a06b52 ges: #include glib.h for G_BEGIN_DECLS 2016-04-28 13:39:41 +03:00
Sebastian Dröge
503ebdd1f1 ges-multi-file-source: Fix case of standard gobject macros 2016-04-28 13:39:27 +03:00
Sebastian Dröge
3bc388260e ges: Add some more functions to the docs and don't scan internal headers
Someone still should look through the unused.txt for more things to add or
hide.
2016-04-28 13:37:49 +03:00
Sebastian Dröge
d57f796a14 ges: Add G_BEGIN_DECLS around all relevant declarations in headers 2016-04-25 15:11:25 +03:00
Thibault Saunier
7d34e33ac4 title: Do not concider inpoints
It does not make sense for titles
Handle element with no inpoint handling in the timeline

Fixes https://phabricator.freedesktop.org/T7319
2016-04-22 16:15:33 -03:00
Julien Isorce
dff6df8d21 Automatic update of common submodule
From 6f2d209 to ac2f647
2016-04-14 10:05:16 +01:00
Sebastian Dröge
9557abaeda tests: Rename positionner to positioner in the tests too 2016-04-13 12:32:53 +03:00
Sebastian Dröge
abfe2c5949 ges: Fix typo by renaming positionner to positioner
It's fortunately private API
2016-04-13 12:31:05 +03:00
Sebastian Dröge
3741d5ce19 framepositionner: Initialize all fields of the meta during initialization
GstMetas are not allocated with all fields initialized to zeroes.
2016-04-13 12:26:13 +03:00
Thibault Saunier
9add236a0e ges: Do not try to set read only properties
When copying and splitting clips

Fixes T7375
2016-04-09 21:12:10 -03:00
Thibault Saunier
af27a11d65 transition: Lower done some debug loggin level 2016-04-09 18:14:00 -03:00
Thibault Saunier
53471db56e Minor fix 2016-04-09 18:14:00 -03:00
Thibault Saunier
7248077011 titlesource: Add support for absolute positionning 2016-04-05 11:29:50 +02:00
Sebastian Dröge
c222da6862 tests: Add some things to .gitignore 2016-04-04 10:53:13 +03:00
Aurélien Zanelli
46f51d3eb6 examples/gitignore: ignore assets and play_timeline_with_one_clip binaries
https://bugzilla.gnome.org/show_bug.cgi?id=764550
2016-04-04 10:51:49 +03:00
Edward Hervey
f51314085e GES: Properly split the GOptionGroup initialization
Debugging must be configuring first (before any parsing), and then
the types are initialized at the end.

Fixes issues with debugging categories not being available at the
start
2016-03-30 09:26:18 +02:00
Vineeth TM
e660f47a1d editing-services: use new gst_element_class_add_static_pad_template()
https://bugzilla.gnome.org/show_bug.cgi?id=763195
2016-03-24 14:52:58 +02:00
Sebastian Dröge
6a17fb2923 Back to development 2016-03-24 13:33:52 +02:00
Sebastian Dröge
e9a960b295 Release 1.8.0 2016-03-24 13:05:16 +02:00
Sebastian Dröge
a64565c016 Release 1.7.91 2016-03-15 12:33:13 +02:00
Thibault Saunier
024117642a Revert "titlesource: use x/yabsolute instead of x/ypos."
This reverts commit c4356db40c.

This commit was not ready and was not support to be pushed
2016-03-11 17:31:15 +01:00
Thibault Saunier
8ce2b97a93 ges: Don't emit timeline::group-removed when ungrouping outside a timeline 2016-03-11 17:29:08 +01:00
Lubosz Sarnecki
c4356db40c titlesource: use x/yabsolute instead of x/ypos. 2016-03-11 13:56:59 +01:00
Justin Kim
61c25a312f ges-launcher: don't leak sanitized_timeline string
Summary:
sanitized_timeline is created when parsing command line,
but it isn't free'd.

Reviewers: thiblahute

Differential Revision: https://phabricator.freedesktop.org/D382
2016-03-09 10:42:14 +01:00
Sebastian Dröge
1069cca0e0 Release 1.7.90 2016-03-01 19:09:52 +02:00
Sjors Gielen
c247c911a0 nle: Set the NleOperation flags to NLE_OBJECT_OPERATION
Reviewed By: thiblahute

Differential Revision: https://phabricator.freedesktop.org/D770
2016-02-26 21:13:56 +01:00
Thibault Saunier
189eb79b10 ges: Register scaletempo::rate as a rate changing property 2016-02-26 20:42:41 +01:00
Sjors Gielen
84f7f04a64 Handle changing playback rate
Before this patch, NLE and GES did not support NleOperations (respectively
GESEffects) that changed the speed/tempo/rate at which the source plays. For
example, the 'pitch' element can make audio play faster or slower. In GES 1.5.90
and before, an NleOperation containing the pitch element to change the rate (or
tempo) would cause a pipeline state change to PAUSED after that stack; that has
been fixed in 1.5.91 (see #755012 [0]). But even then, in 1.5.91 and later,
NleComposition would send segment events to its NleSources assuming that one
source second is equal to one pipeline second. The resulting early EOS event
(in the case of a source rate higher than 1.0) would cause it to switch stacks
too early, causing confusion in the timeline and spectacularly messed up
output.

This patch fixes that by searching for rate-changing elements in
GESTrackElements such as GESEffects. If such rate-changing elements are found,
their final effect on the playing rate is stored in the corresponding NleObject
as the 'media duration factor', named like this because the 'media duration',
or source duration, of an NleObject can be computed by multiplying the duration
with the media duration factor of that object and its parents (this is called
the 'recursive media duration factor'). For example, a 4-second NleSource with
an NleOperation with a media duration factor of 2.0 will have an 8-second media
duration, which means that for playing 4 seconds in the pipeline, the seek
event sent to it must span 8 seconds of media. (So, the 'duration' of an
NleObject or GES object always refers to its duration in the timeline, not the
media duration.)

To summarize:

* Rate-changing elements are registered in the GESEffectClass (pitch::tempo and
  pitch::rate are registered by default);
* GESTimelineElement is responsible for detecting rate-changing elements and
  computing the media_duration_factor;
* GESTrackElement is responsible for storing the media_duration_factor in
  NleObject;
* NleComposition is responsible for the recursive_media_duration_factor;
* The latter property finally fixes media time computations in NleObject.

NLE and GES tests are included.

[0] https://bugzilla.gnome.org/show_bug.cgi?id=755012

Differential Revision: https://phabricator.freedesktop.org/D276
2016-02-26 19:54:40 +01:00
Sebastian Dröge
25d2c7306f Automatic update of common submodule
From b64f03f to 6f2d209
2016-02-26 12:42:55 +02:00