summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-08-15gnlcomposition: Drop any buffer flowing from a source when updating pipelineHEADmasterThibault Saunier1-3/+8
There is a race where we can have an EOS from the element which srcpad is our ghost pad but other elements upstream are still outputing data and we flush the element so its pads have no segment info anymore, and we end up having warning about flow before segement event. The solution here is that we do not let any data flowing when we are updating the pipeline.
2013-08-02build: add subdir-objects to AM_INIT_AUTOMAKELubosz Sarnecki1-1/+1
Fixes warnings with automake 1.14 https://bugzilla.gnome.org/show_bug.cgi?id=705350
2013-07-23gnloperation: check for request pads on the element class not the factoryTim-Philipp Müller1-17/+5
When checking for request pads as fallback, just look at the element's class, not the factory, since there might not be a factory (in case of python elements) or the factory might be the wrong one (in case of a GstBin sub-class) and doesn't have complete information. https://bugzilla.gnome.org/show_bug.cgi?id=582244
2013-07-23gnlcomposition: grammar (childs -> children)Mathieu Duponchelle1-36/+36
https://bugzilla.gnome.org/show_bug.cgi?id=701647
2013-07-09composition: Check if we have an entry before trying to get its probeidMathieu Duponchelle1-1/+1
The object can be removed at the time the pad is removed, avoid segfaulting when that happens.
2013-06-26composition: Add entry to the the hashtable before connecting to pad-addedThibault Saunier1-3/+3
Avoiding races where the pad would be added right between the connection and inserting to the hashtable
2013-06-23gnlcomposition: Remove support for gapsThibault Saunier2-53/+40
The way we were handling gap was weird and not natural at all for users, remove it for now. In the long term, we should have a proper way of filling gaps in the API and for now only emit an STREAM_ERROR message on the bus when a gap is detected. The user is now responsible for filling gaps in the composition https://bugzilla.gnome.org/show_bug.cgi?id=701287
2013-06-23gnlcomposition: Remove uneeded indentsThibault Saunier1-137/+135
Going from if (something) { do_something(); } else { } to if (!something) return; do_something ();
2013-06-23gnlcomposition: Make the pipeline update protected from any child changesThibault Saunier1-19/+17
When calling the gnl_object_commit method, we need to make sure that no object can be changed and, it should be true until the pipeline has fully been udpated. We now need the update_pipeline function to be called with the COMP_OBJECTS_LOCK taken, and we do not unlock that lock during the whole pipeline updating process. https://bugzilla.gnome.org/show_bug.cgi?id=701287
2013-06-23gnl: Setting priority == MAXUINT32 does not mean "default object"Thibault Saunier2-16/+5
This was how expandables worked prior to the expandable property. Using MAXUINT32 has some limitation and which are fully covered by the expandable property. Drop this support, as we will plan on implementing an automatic way of filling gaps. https://bugzilla.gnome.org/show_bug.cgi?id=701287
2013-06-23gnl: First implementation of the commit based APIThibault Saunier10-389/+458
Currently, the only safe way to modify a composition, or an object, is to pause the pipeline first. We think that this limitation eliminates many use cases for GNonLin. Few video editors let you create a draft of your video by applying multi-cam technic. Also people could want to eventually consider doing live video production, which obviously require being able to change the composition in playing state (and increase compositon duration as we go). This commit is a first step making GNL fully commit base. Objects, Operations and Compositon keep a copy of modified values, and only apply those changes when a commit is executed. This potentially allows making the changes (or group of changes) fully 'atomic' without having to pause the pipeline. Added API: ---------- GnlObject::commit action signal Removed API: ------------ GnlComposition:update property + Fix the tests https://bugzilla.gnome.org/show_bug.cgi?id=701287
2013-06-18gnl: Remove trailling whitespaces and tabs in .c filesThibault Saunier2-54/+54
2013-06-18gnl: Remove the notion of media-durationThibault Saunier9-192/+37
Rational described at https://bugzilla.gnome.org/show_bug.cgi?id=701287
2013-06-18gnl: Rename media-start as inpointThibault Saunier8-52/+49
Rational described at https://bugzilla.gnome.org/show_bug.cgi?id=701287
2013-06-11composition: update operations base time even when we don't update the pipeline.Mathieu Duponchelle1-0/+27
2013-06-11gnlcomposition: forward non time-resetting flush stops outside the composition,Mathieu Duponchelle1-1/+18
except those consecutive to a seek event. The 'reset-time' parameter has been added in 1.0, and we need it to be FALSE outside the composition. Related to https://bugzilla.gnome.org/show_bug.cgi?id=701146
2013-06-11gnlcomposition: Don't flush_start / flush_stop according to user's flags.Mathieu Duponchelle1-30/+1
We do it ourselves when needed, doing so led the pipeline to lose state, which was updating the base time. fixes https://bugzilla.gnome.org/show_bug.cgi?id=701146
2013-06-11gnl: Properly set operations basetimeThibault Saunier4-2/+36
For operations (especially mixers) to be able to do proper synchronization they need the segment from different sources to be in the same running time context. This commit makes sure that the basetime of the incoming segments of operations will be the same, and equal to the duration of the already "played" time of the operation at the position at which the new portion of the composition starts.
2013-06-05Automatic update of common submoduleSebastian Dröge1-0/+0
From 098c0d7 to 01a7a46
2013-05-28tests: sanitization.Mathieu Duponchelle9-372/+392
+ Create a no_install libtestutils. + Remove code from common.h to put it in common.c + Abstract away bus polling from test_simplest # TODO use it as much as possible. + Fix various little errors spotted thanks to new flags.
2013-05-28gnlcomposition: When removing a ghostpad, remove the probe_handlers ↵Mathieu Duponchelle1-1/+9
associated to its target.
2013-05-28gnlcomposition: replace eos_main_thread with update_pipeline_func.Mathieu Duponchelle2-75/+102
+ This function is called in a thread of its own.
2013-05-28gnlcomposition: Forward EOS from the streaming thread when appropriate.Mathieu Duponchelle1-7/+33
2013-05-25Cleanup and fix gitignoreNicolas Dufresne1-35/+38
2013-05-25ghostpad: Remove unsued parameter flush_hackNicolas Dufresne4-20/+6
As a result, remove unused gnl_object_ghost_pad_full.
2013-05-25ghostpad: Remove uneeded set_caps()Nicolas Dufresne1-11/+0
Linking the element should automatically resend all sticky events.
2013-05-25ghostpad: Correctly handle pad creation failureNicolas Dufresne1-1/+6
We where trying to activate the pad even if creating the ghostpad failed. Instead, warn if that fails, and return NULL as expected.
2013-05-25source: Split change_state into prepare/cleanupNicolas Dufresne1-98/+72
2013-05-25object: Fix function declaration coding styleNicolas Dufresne1-7/+5
2013-05-25doc: Add missing descriptionNicolas Dufresne1-1/+1
2013-05-25doc: Remove duplicate short descriptionNicolas Dufresne4-4/+0
nowadays the plugin description is used.
2013-05-25Drop remaining references to GnlFileSourceNicolas Dufresne5-21/+1
2013-05-23Revert "composition: Foward eos from the streaming thread when appropriate"Thibault Saunier1-21/+6
This reverts commit 9db8b0211bf64137ff3215b78172fe76de1994a1. This should be implemented properly using our knowledge of the composition's content
2013-05-23composition: Foward eos from the streaming thread when appropriateThibault Saunier1-6/+21
2013-05-19tests: Use spaces instead of tabsThibault Saunier1-77/+77
2013-05-16gnlcomposition: Only send stream-start once and for each source startThibault Saunier1-1/+12
We concider the output of a gnlcomposition as 1 coherente stream.
2013-05-16Remove useless GLib version checksThibault Saunier2-40/+0
2013-05-16tests: Add a simple test with adderThibault Saunier1-0/+129
2013-05-15Automatic update of common submoduleSebastian Dröge1-0/+0
From 5edcd85 to 098c0d7
2013-04-22Automatic update of common submoduleTim-Philipp Müller1-0/+0
From 3cb3d3c to 5edcd85
2013-04-15gst: Add better support for static pluginsSebastian Dröge2-2/+24
2013-04-14Automatic update of common submoduleTim-Philipp Müller1-0/+0
From aed87ae to 3cb3d3c
2013-04-09Automatic update of common submoduleStefan Sauer1-0/+0
From 04c7a1e to aed87ae
2013-03-28composition: Ensure segment base time is correctEdward Hervey6-11/+63
We update it based on accumulated segment time. Tests are also updated to check for valid base/time/duration
2013-03-28gnlcomposion: When seeking flush downstream before unlinkingNicolas Dufresne1-1/+1
The 'update' parameter in seek_handling is used to know if flush most be performed before unlinking or linking new objects. It accidently set to TRUE d196cd3cdc850f2355bb16518e22ccfda1170078.
2013-03-28gnlcomposion: objects lock must be taken to call _set_target()Nicolas Dufresne1-1/+5
gnl_composition_ghost_pad_set_target() require the objects_lock to be taken. Aslo improve protection around user_seek_flush.
2013-03-07Automatic update of common submoduleTim-Philipp Müller1-0/+0
From 2de221c to 04c7a1e
2013-01-30configure: update to 1.0 dependencyLuis de Bethencourt1-4/+4
2013-01-28Automatic update of common submoduleStefan Sauer1-0/+0
From a942293 to 2de221c
2013-01-16tests, docs: use GST_*_1_0 environment variables everywhereTim-Philipp Müller2-4/+4
The _1_0 suffixed environment variables override the non-suffixed ones, so if we're in an environment that sets the _1_0 suffixed ones, such as jhbuild, we need to set those to make sure ours actually always get used.