platform/upstream/gstreamer.git
11 years agocollectpads: Make sure that the object lock is always taken when accessing the privat...
Sebastian Dröge [Tue, 24 Sep 2013 08:42:06 +0000 (10:42 +0200)]
collectpads: Make sure that the object lock is always taken when accessing the private pad list

https://bugzilla.gnome.org/show_bug.cgi?id=708636

11 years agocollectpads: Use private pad list in set_flushing_unlocked
Mathieu Duponchelle [Tue, 17 Sep 2013 21:23:34 +0000 (23:23 +0200)]
collectpads: Use private pad list in set_flushing_unlocked

pads->data is the public list. It is dynamically rebuilt at each call to
check_collected, in check_pads to be specific. When you add a pad and
collectpads have been started, it is not added to the public list.

Thus there exists a possible race where :

1) You would add a pad to collectpads while running.
2) You set collectpads to flushing before check_collected has been called again
-> the pad is not set to flushing
3) the pad starts pushing data as downstream might not be prepared, in the case
of adder it then returns FLOW_FLUSHING.
4) elements like demuxers, when they get a FLOW_FLUSHING, stop their tasks,
never to be seen again.

https://bugzilla.gnome.org/show_bug.cgi?id=708636

11 years agotests: handle unscheduled entries correctly
Wim Taymans [Mon, 23 Sep 2013 09:47:14 +0000 (11:47 +0200)]
tests: handle unscheduled entries correctly

Make the testclock return GST_CLOCK_UNSCHEDULED when an unscheduled entry is
used for gst_clock_wait() or gst_clock_wait_async().

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=708605

11 years agogst-uninstalled: Allow specifying the checkout directory by env variable
Edward Hervey [Sun, 22 Sep 2013 09:09:36 +0000 (11:09 +0200)]
gst-uninstalled: Allow specifying the checkout directory by env variable

For some rare cases, one might not be able to use the hardcoded $HOME/gst
location yet would still want to use the gst-uninstalled script as-is (which
has the benefit of being constantly updated).

For these cases, the checkout directory can be specified with the
GST_UNINSTALLED_ROOT environment variable.

Ex:
export GST_UNINSTALLED_ROOT=$HOME/somewhere/with/checkouts

And then just call gst-uninstalled directly:
$GST_UNINSTALLED_ROOT/gstreamer/gst-uninstalled

11 years agoAutomatic update of common submodule
Edward Hervey [Fri, 20 Sep 2013 14:16:26 +0000 (16:16 +0200)]
Automatic update of common submodule

From b613661 to 6b03ba7

11 years agoAutomatic update of common submodule
Tim-Philipp Müller [Thu, 19 Sep 2013 17:42:31 +0000 (18:42 +0100)]
Automatic update of common submodule

From 74a6857 to b613661

11 years agoAutomatic update of common submodule
Tim-Philipp Müller [Thu, 19 Sep 2013 16:34:27 +0000 (17:34 +0100)]
Automatic update of common submodule

From 12af105 to 74a6857

11 years agocheck: testclock: fix function guards
Tim-Philipp Müller [Thu, 19 Sep 2013 16:12:14 +0000 (17:12 +0100)]
check: testclock: fix function guards

Should be g_return_*() not g_assert(), even if it's for tests only.

11 years agocheck: testclock: don't put code with side-effects in g_assert()
Tim-Philipp Müller [Thu, 19 Sep 2013 15:43:18 +0000 (16:43 +0100)]
check: testclock: don't put code with side-effects in g_assert()

Fixes unit test failures when -DG_DISABLE_ASSERT is used.

https://bugzilla.gnome.org/show_bug.cgi?id=706551

11 years agogstcontext: Fix return values some more
Edward Hervey [Thu, 19 Sep 2013 10:07:56 +0000 (12:07 +0200)]
gstcontext: Fix return values some more

Return value is a boolean not a pointer

11 years agocontext: Fix return values for gst_context_has_context_type() in assertions
Sebastian Dröge [Thu, 19 Sep 2013 09:49:26 +0000 (11:49 +0200)]
context: Fix return values for gst_context_has_context_type() in assertions

11 years agoBack to development
Sebastian Dröge [Thu, 19 Sep 2013 09:34:51 +0000 (11:34 +0200)]
Back to development

11 years agoRelease 1.1.90 1.1.90
Sebastian Dröge [Thu, 19 Sep 2013 08:48:24 +0000 (10:48 +0200)]
Release 1.1.90

11 years agoUpdate .po files
Sebastian Dröge [Thu, 19 Sep 2013 08:05:51 +0000 (10:05 +0200)]
Update .po files

11 years agocontext: Add convenience function gst_context_has_context_type()
Sebastian Dröge [Thu, 19 Sep 2013 07:49:40 +0000 (09:49 +0200)]
context: Add convenience function gst_context_has_context_type()

11 years agopo: Update translations
Sebastian Dröge [Thu, 19 Sep 2013 07:42:15 +0000 (09:42 +0200)]
po: Update translations

11 years agomessage: Implement getting the name of the context message types
Sebastian Dröge [Wed, 18 Sep 2013 21:07:31 +0000 (23:07 +0200)]
message: Implement getting the name of the context message types

11 years agocontext: Fix unit test for GstContext changes
Sebastian Dröge [Tue, 17 Sep 2013 19:36:22 +0000 (21:36 +0200)]
context: Fix unit test for GstContext changes

11 years agogst-launch: Update for GstContext changes
Sebastian Dröge [Tue, 17 Sep 2013 12:34:47 +0000 (14:34 +0200)]
gst-launch: Update for GstContext changes

11 years agocontext: Update docs
Sebastian Dröge [Tue, 17 Sep 2013 12:29:06 +0000 (14:29 +0200)]
context: Update docs

11 years agobin: Implement context caching and propagation again
Sebastian Dröge [Tue, 17 Sep 2013 12:25:10 +0000 (14:25 +0200)]
bin: Implement context caching and propagation again

11 years agomessage/query: Simplify CONTEXT messages/queries to only contain a single type
Sebastian Dröge [Tue, 17 Sep 2013 11:50:08 +0000 (13:50 +0200)]
message/query: Simplify CONTEXT messages/queries to only contain a single type

11 years agocontext: Update documentation
Sebastian Dröge [Tue, 17 Sep 2013 11:33:33 +0000 (13:33 +0200)]
context: Update documentation

11 years agocontext: Change GstContext to contain only a single context
Sebastian Dröge [Tue, 17 Sep 2013 11:28:42 +0000 (13:28 +0200)]
context: Change GstContext to contain only a single context

It was unintuitive that GstContext was actually a list of different
contexts. GstContext now is only a type string and a structure to
contain the actual context.

11 years agoelement: Remove GstContext caching
Sebastian Dröge [Tue, 17 Sep 2013 11:12:28 +0000 (13:12 +0200)]
element: Remove GstContext caching

11 years agocontext: Add persistent qualifier for a context
Sebastian Dröge [Tue, 17 Sep 2013 11:10:53 +0000 (13:10 +0200)]
context: Add persistent qualifier for a context

Non-persistent contexts are removed when elements go back
to NULL state, persistent contexts are not. Applications
most likely want to set persistent contexts.

11 years agoquery: Make CONTEXT query upstream and downstream
Sebastian Dröge [Tue, 17 Sep 2013 11:10:16 +0000 (13:10 +0200)]
query: Make CONTEXT query upstream and downstream

11 years agoevent: Remove CONTEXT downstream event
Sebastian Dröge [Tue, 17 Sep 2013 11:09:34 +0000 (13:09 +0200)]
event: Remove CONTEXT downstream event

This is going to be implemented with an upstream query instead
for consistency and simplicity.

11 years agogst: Stop all unused threads in GThreadPool in gst_deinit()
Jonas Holmberg [Fri, 13 Sep 2013 12:41:45 +0000 (14:41 +0200)]
gst: Stop all unused threads in GThreadPool in gst_deinit()

Since the default number of max unused threads in GThreadPool has been
changed from 0 to 2 it needs to be set to 0 to stop all threads or
valgrind will report them as memory leaks.

11 years agocontrolbindings: fix pspec relaxation for control source properties
Rico Tzschichholz [Tue, 10 Sep 2013 15:39:30 +0000 (16:39 +0100)]
controlbindings: fix pspec relaxation for control source properties

The change should have been from PARAM_CONSTRUCT_ONLY to
PARAM_CONSTRUCT, otherwise bindings are affected, since
they look for the CONSTRUCT flag.

See ec55363d

11 years agoqueue2: Only update current level if we already downloaded a range
Sebastian Dröge [Tue, 10 Sep 2013 08:15:03 +0000 (10:15 +0200)]
queue2: Only update current level if we already downloaded a range

Otherwise queue->level is NULL and dereferencing that is not a good
idea in general.

https://bugzilla.gnome.org/show_bug.cgi?id=707648

11 years agometa: Deprecate GST_META_TAG_MEMORY
Sebastian Dröge [Mon, 9 Sep 2013 13:40:25 +0000 (15:40 +0200)]
meta: Deprecate GST_META_TAG_MEMORY

The GQuarks are not exported by any public API

11 years agometa: Add a #define for memory metadata
Mathieu Duponchelle [Wed, 21 Aug 2013 22:02:28 +0000 (00:02 +0200)]
meta: Add a #define for memory metadata

11 years agobasetransform: implement a default transform_meta.
Mathieu Duponchelle [Wed, 21 Aug 2013 22:01:44 +0000 (00:01 +0200)]
basetransform: implement a default transform_meta.
If a metadata has no dependency as shown by the tags, copy it.

11 years agometa: API: Add gst_meta_api_type_get_tags() to get all meta tags.
Mathieu Duponchelle [Thu, 22 Aug 2013 19:32:36 +0000 (21:32 +0200)]
meta: API: Add gst_meta_api_type_get_tags() to get all meta tags.

11 years agotests/capsfilter: Fix memory leak and compare caps directly instead of strcmp()
Sebastian Dröge [Mon, 9 Sep 2013 12:21:56 +0000 (14:21 +0200)]
tests/capsfilter: Fix memory leak and compare caps directly instead of strcmp()

11 years agotests/capsfilter: Test caps-related queries and property
Sebastian Rasmussen [Fri, 6 Sep 2013 21:03:54 +0000 (23:03 +0200)]
tests/capsfilter: Test caps-related queries and property

11 years agoUpdate the buffering state before stalling for more data
Gustavo Noronha Silva [Fri, 6 Sep 2013 18:09:46 +0000 (15:09 -0300)]
Update the buffering state before stalling for more data

In some cases the wait for more data was happening without updating
the buffering state, meaning the API user would not be able to notice
it should pause the pipeline and update UI to indicate that is the
case, the video would likely stutter instead.

https://bugzilla.gnome.org/show_bug.cgi?id=707648

11 years agobasesrc: preserve seqnum on segments after seeks
Thiago Santos [Wed, 4 Sep 2013 18:28:10 +0000 (15:28 -0300)]
basesrc: preserve seqnum on segments after seeks

The seqnum of the segment after a seek should be the same of
the seek event. Downstream elements might rely on seqnums to
identify events related to a seek.

This is particularly important when a demuxer maps a TIME seek
into a BYTES seek for upstream and it needs to identify the
corresponding segment event and map it back into TIME to push
downstream, possibly using the values from the original seek
event.

https://bugzilla.gnome.org/show_bug.cgi?id=707530

11 years agocollectpads: Don't unref NULL GstCollectData
Zaheer Abbas Merali [Thu, 5 Sep 2013 12:14:42 +0000 (14:14 +0200)]
collectpads: Don't unref NULL GstCollectData

If a pad is removed while a collectpads element (say adder) is in a chain
function waiting to be collected, there is a possibility that an unref happens
on a NULL pointer.

https://bugzilla.gnome.org/show_bug.cgi?id=707536

11 years agoRemove PyXML from spec file, it is not longer needed
Christian Fredrik Kalager Schaller [Wed, 4 Sep 2013 15:11:20 +0000 (17:11 +0200)]
Remove PyXML from spec file, it is not longer needed

11 years agotypefind: Add missing break after handling the GAP event
Sebastian Dröge [Wed, 4 Sep 2013 12:40:57 +0000 (14:40 +0200)]
typefind: Add missing break after handling the GAP event

Thanks to Edward Hervey for noticing.

11 years agotools: move gst-plot-timeline.py into scripts directory
Tim-Philipp Müller [Wed, 4 Sep 2013 08:18:55 +0000 (09:18 +0100)]
tools: move gst-plot-timeline.py into scripts directory

So it's not in PATH in an uninstalled setup (thwarting
gst-play autocompletion).

11 years agomultiqueue: Don't reduce single queue visible size below its current level
Matej Knopp [Tue, 3 Sep 2013 21:59:05 +0000 (23:59 +0200)]
multiqueue: Don't reduce single queue visible size below its current level

If the multiqueue has automatically grown chances are good that
we will cause the pipeline to starve if the maximum level is reduced
below that automatically grown size.

https://bugzilla.gnome.org/show_bug.cgi?id=707156

11 years agooutputselector: Don't adjust segment->start to the current time when switching pads
Sebastian Dröge [Mon, 2 Sep 2013 11:53:51 +0000 (13:53 +0200)]
outputselector: Don't adjust segment->start to the current time when switching pads

This does not make any sense at all and breaks timestamp->running_time
calculations in unpredictable ways.

https://bugzilla.gnome.org/show_bug.cgi?id=707130

11 years agocapsfilter: Delete link directly in pending_events.
Mathieu Duponchelle [Thu, 29 Aug 2013 21:18:31 +0000 (23:18 +0200)]
capsfilter: Delete link directly in pending_events.

When removing a segment event.

https://bugzilla.gnome.org/show_bug.cgi?id=707088

11 years agobasesink: demote log message, don't spam INFO level when handling buffer lists
Tim-Philipp Müller [Thu, 29 Aug 2013 10:07:38 +0000 (11:07 +0100)]
basesink: demote log message, don't spam INFO level when handling buffer lists

11 years agoBack to development
Sebastian Dröge [Wed, 28 Aug 2013 11:26:28 +0000 (13:26 +0200)]
Back to development

11 years agoRelease 1.1.4 1.1.4
Sebastian Dröge [Wed, 28 Aug 2013 10:36:16 +0000 (12:36 +0200)]
Release 1.1.4

11 years agoUpdate .po files
Sebastian Dröge [Wed, 28 Aug 2013 10:36:01 +0000 (12:36 +0200)]
Update .po files

11 years agopo: update translations
Sebastian Dröge [Wed, 28 Aug 2013 10:30:00 +0000 (12:30 +0200)]
po: update translations

11 years agofilesink: please gcc (avoid a warn_unused_result warning)
Alessandro Decina [Tue, 27 Aug 2013 07:31:22 +0000 (09:31 +0200)]
filesink: please gcc (avoid a warn_unused_result warning)

11 years agofilesink: flush (discard data) on FLUSH_STOP
Alessandro Decina [Tue, 27 Aug 2013 05:51:35 +0000 (07:51 +0200)]
filesink: flush (discard data) on FLUSH_STOP

Reset the write position to 0 and truncate the file on FLUSH_STOP.

11 years agotests: filesink: small refactoring
Alessandro Decina [Tue, 27 Aug 2013 05:05:11 +0000 (07:05 +0200)]
tests: filesink: small refactoring

11 years agotools: gst-launch: don't print properties being reset when shutting down
Tim-Philipp Müller [Mon, 26 Aug 2013 12:19:10 +0000 (13:19 +0100)]
tools: gst-launch: don't print properties being reset when shutting down

It's just noise.

11 years agobasetransform: Don't push out identical caps
Edward Hervey [Thu, 22 Aug 2013 17:01:32 +0000 (19:01 +0200)]
basetransform: Don't push out identical caps

This avoids triggering plenty of extra code/methods/overhead downstream when
we can just quickly check whenever we want to set caps whether they are
identical or not

https://bugzilla.gnome.org/show_bug.cgi?id=706600

11 years agodocs: flesh out gst_sample_get_buffer() a little
Tim-Philipp Müller [Wed, 21 Aug 2013 11:21:43 +0000 (12:21 +0100)]
docs: flesh out gst_sample_get_buffer() a little

https://bugzilla.gnome.org/show_bug.cgi?id=706478

11 years agoparse: make grammar.y work with Bison 3
Kerrick Staley [Wed, 21 Aug 2013 06:59:29 +0000 (23:59 -0700)]
parse: make grammar.y work with Bison 3

YYLEX_PARAM is no longer supported in Bison 3.

https://bugzilla.gnome.org/show_bug.cgi?id=706462

11 years agosample: Add gst_sample_copy()
Wonchul Lee [Tue, 20 Aug 2013 08:15:41 +0000 (17:15 +0900)]
sample: Add gst_sample_copy()

https://bugzilla.gnome.org/show_bug.cgi?id=706454

11 years agobuffer: Fix gst_buffer_memcmp() where the buffer is smaller than size
Olivier Crête [Mon, 19 Aug 2013 18:55:22 +0000 (14:55 -0400)]
buffer: Fix gst_buffer_memcmp() where the buffer is smaller than size

Also add unit tests for gst_buffer_memcmp

https://bugzilla.gnome.org/show_bug.cgi?id=706162

11 years agodocs: flesh out gst_element_query_{duration,position} docs a bit
Tim-Philipp Müller [Tue, 20 Aug 2013 16:06:49 +0000 (17:06 +0100)]
docs: flesh out gst_element_query_{duration,position} docs a bit

11 years agotaglist: handle publisher and interpreted-by tags
Matthieu Bouron [Wed, 14 Aug 2013 15:18:59 +0000 (16:18 +0100)]
taglist: handle publisher and interpreted-by tags

https://bugzilla.gnome.org/show_bug.cgi?id=705999

11 years agopluginloader: Don't call memcpy() with NULL src and 0 length
Sebastian Dröge [Tue, 20 Aug 2013 11:58:24 +0000 (13:58 +0200)]
pluginloader: Don't call memcpy() with NULL src and 0 length

11 years agoqueue: Properly unlock the sinkpad streaming thread when deactivating the pad
Sebastian Dröge [Tue, 20 Aug 2013 08:16:41 +0000 (10:16 +0200)]
queue: Properly unlock the sinkpad streaming thread when deactivating the pad

https://bugzilla.gnome.org/show_bug.cgi?id=705835

11 years agoqueue2: Properly unlock the sinkpad streaming thread when deactivating the pad
Sebastian Dröge [Tue, 20 Aug 2013 08:16:05 +0000 (10:16 +0200)]
queue2: Properly unlock the sinkpad streaming thread when deactivating the pad

https://bugzilla.gnome.org/show_bug.cgi?id=706360

11 years agomultiqueue: Clean up after the streaming thread has stopped
Sebastian Dröge [Mon, 19 Aug 2013 14:38:50 +0000 (16:38 +0200)]
multiqueue: Clean up after the streaming thread has stopped

https://bugzilla.gnome.org/show_bug.cgi?id=705835

11 years agoqueue2: Clean up after the streaming thread has stopped
Sebastian Dröge [Mon, 19 Aug 2013 14:38:40 +0000 (16:38 +0200)]
queue2: Clean up after the streaming thread has stopped

https://bugzilla.gnome.org/show_bug.cgi?id=705835

11 years agoqueue: Clean up after the streaming thread has stopped
Sebastian Dröge [Mon, 19 Aug 2013 14:38:16 +0000 (16:38 +0200)]
queue: Clean up after the streaming thread has stopped

https://bugzilla.gnome.org/show_bug.cgi?id=705835

11 years agoparse: Add GST_FLAG_NO_SINGLE_ELEMENT_BINS
Brendan Long [Mon, 1 Jul 2013 20:04:46 +0000 (14:04 -0600)]
parse: Add GST_FLAG_NO_SINGLE_ELEMENT_BINS

This makes gst_parse_bin_from_description() return an element instead of
a bin if there's only one element. Also changed gstparse.c to use this,
so gst-launch won't create superfluous bins.

https://bugzilla.gnome.org/show_bug.cgi?id=703405

11 years agoquery: return NULL when parsing uri redirection that was not set
Arnaud Vrac [Fri, 16 Aug 2013 18:36:53 +0000 (20:36 +0200)]
query: return NULL when parsing uri redirection that was not set

https://bugzilla.gnome.org/show_bug.cgi?id=706160

11 years agobuffer: Update since marker for gst_buffer_extract_dup() to 1.0.10
Sebastian Dröge [Sun, 18 Aug 2013 09:48:40 +0000 (11:48 +0200)]
buffer: Update since marker for gst_buffer_extract_dup() to 1.0.10

11 years agoqueue2: don't crash on EOS if queue is empty
Tim-Philipp Müller [Fri, 16 Aug 2013 15:45:41 +0000 (16:45 +0100)]
queue2: don't crash on EOS if queue is empty

Fixes spurious crash in test_simple_shutdown_while_running
unit test.

11 years agoqueue2: don't change global buffering state from within query handler
Tim-Philipp Müller [Fri, 16 Aug 2013 15:28:12 +0000 (16:28 +0100)]
queue2: don't change global buffering state from within query handler

When a buffering query is handled it uses the get_buffering_percent()
function to get some statitics. Unfortunately this function also
calculates whether the queue should be buffering and adapts the
global queue2 state in case of state transitions from/to buffering
(including whether a buffering message was posted on the bus!).

This means that there is a race which can cause buffering messages
to never posted if the global state changes happen as a result of aa
query instead of resulting from bytes flowing in/out.

Spotted by Sjoerd Simons.

Change to only query state in get_buffering_percent() and update
state only in update_buffering().

https://bugzilla.gnome.org/show_bug.cgi?id=705332

11 years agoqueue2: update buffering when changing capacity
Wim Taymans [Fri, 16 Aug 2013 10:54:38 +0000 (12:54 +0200)]
queue2: update buffering when changing capacity

When the capacity of the queue changes, make sure we post an updated buffering
message because we might suddenly have completed the buffering stage.

11 years agoFree thread pools in gst_deinit()
Jonas Holmberg [Thu, 15 Aug 2013 13:35:08 +0000 (15:35 +0200)]
Free thread pools in gst_deinit()

11 years agocheck: Call gst_deinit() at exit of all processes
Jonas Holmberg [Fri, 16 Aug 2013 09:03:30 +0000 (11:03 +0200)]
check: Call gst_deinit() at exit of all processes

11 years agoclock: simplify internal gst_clock_return_get_name() helper
Tim-Philipp Müller [Wed, 14 Aug 2013 20:41:23 +0000 (21:41 +0100)]
clock: simplify internal gst_clock_return_get_name() helper

11 years agobasesrc: improve flush-start handling
Wim Taymans [Wed, 14 Aug 2013 15:44:48 +0000 (17:44 +0200)]
basesrc: improve flush-start handling

Use custom code to implement flush-stop, we can't reuse the set_flushing code
because we can't touch the live_playing flag and we need to signal the
streaming thread.

11 years agobasesrc: stop flushing in flush-stop
Wim Taymans [Wed, 14 Aug 2013 15:14:15 +0000 (17:14 +0200)]
basesrc: stop flushing in flush-stop

11 years agobasesrc: handle flush better
Wim Taymans [Wed, 14 Aug 2013 14:58:41 +0000 (16:58 +0200)]
basesrc: handle flush better

Unlock the streaming thread when flushing so that we can
insert the flush-stop correctly.

11 years ago.gitignore: ignore .dirstamp
Edward Hervey [Wed, 14 Aug 2013 13:46:57 +0000 (15:46 +0200)]
.gitignore: ignore .dirstamp

11 years agocheck: Don't use nodist headers on gir scanner
Edward Hervey [Wed, 14 Aug 2013 05:21:06 +0000 (07:21 +0200)]
check: Don't use nodist headers on gir scanner

Just creates noise and bogus symbols

11 years agogst: minor docstring fixups to make g-i happy
Edward Hervey [Wed, 7 Aug 2013 16:20:03 +0000 (18:20 +0200)]
gst: minor docstring fixups to make g-i happy

note: the #ifndef move is actually a move of the "SECTION" docstring

11 years ago.gitignore: Ignore files from automake test-driver
Edward Hervey [Tue, 13 Aug 2013 15:14:53 +0000 (17:14 +0200)]
.gitignore: Ignore files from automake test-driver

11 years agobaseparse: Add a property to disable passthrough
Edward Hervey [Wed, 7 Aug 2013 16:24:40 +0000 (18:24 +0200)]
baseparse: Add a property to disable passthrough

In some specific cases (like transmuxing) we want to force the element
to actually parse all incoming data even if the element deems it is not
necessary.

This property simply ignores requests from the element to enable passthrough
mode which results in processing always being enabled.

https://bugzilla.gnome.org/show_bug.cgi?id=705621

11 years agodataqueue: add gst_data_queue_push_force
Thiago Santos [Thu, 8 Aug 2013 00:26:01 +0000 (21:26 -0300)]
dataqueue: add gst_data_queue_push_force

Adds a variant of the _push function that doesn't check the queue limits
before adding the new item. It is useful when pushing an element to the
queue shouldn't lock the thread.

One particular scenario is when the queue is used to serialize buffers
and events that are going to be pushed from another thread. The
dataqueue should have a limit on the amount of buffers to be stored to
avoid large memory consumption, but events can be considered to have
negligible impact on memory compared to buffers. So it is useful to be
used to push items into the queue that contain events, even though the
queue is already full, it shouldn't matter inserting an item that has
no significative size.

This scenario happens on adaptive elements (dashdemux / mssdemux) as
there is a single download thread fetching buffers and putting into the
dataqueues for the streams. This same download thread can als generate
events in some situations as caps changes, eos or a internal control
events. There can be a deadlock at preroll if the first buffer fetched
is large enough to fill the dataqueue and the download thread and the
next iteration of the download thread decides to push an event to this
same dataqueue before fetching buffers to other streams, if this push
locks, the pipeline will be stuck in preroll as no more buffers will be
downloaded.
There is a somewhat common practice in dash streams to have a single
very large buffer for audio and one for video, so this will always
happen as the download thread will have to push an EOS right after
fetching the first buffer for any stream.

API: gst_data_queue_push_force

https://bugzilla.gnome.org/show_bug.cgi?id=705694

11 years agosysmem: Only copy the requested part of memory instead of the complete source memory
Sebastian Dröge [Tue, 13 Aug 2013 11:06:50 +0000 (13:06 +0200)]
sysmem: Only copy the requested part of memory instead of the complete source memory

https://bugzilla.gnome.org/show_bug.cgi?id=705678

11 years agoquery: add Since markers for new API and add to exports file
Tim-Philipp Müller [Tue, 13 Aug 2013 11:11:19 +0000 (12:11 +0100)]
query: add Since markers for new API and add to exports file

11 years agoquery: fix annotation for gst_query_parse_uri
Andoni Morales Alastruey [Tue, 23 Jul 2013 14:25:27 +0000 (16:25 +0200)]
query: fix annotation for gst_query_parse_uri

11 years agoquery: add new redirection uri the URI query
Andoni Morales Alastruey [Fri, 19 Apr 2013 10:14:54 +0000 (12:14 +0200)]
query: add new redirection uri the URI query

11 years agoquery: add some missing 'transfer none' gi annotations
Thiago Santos [Mon, 12 Aug 2013 12:25:34 +0000 (09:25 -0300)]
query: add some missing 'transfer none' gi annotations

The current documentation is controverse, while it states that the
returned value is valid only while the query is is valid, which presumes
a 'transfer none' policy. But the tooltip for the 'out' annotation
states the default is 'transfer-full'.

Add the missing 'transfer none' annotations to fix this.

11 years agobytereader: Accelerate MPEG/H264 start code scanning
Nicolas Dufresne [Thu, 8 Aug 2013 10:08:31 +0000 (12:08 +0200)]
bytereader: Accelerate MPEG/H264 start code scanning

Accelerate MPEG/H264 start code scanning using Boyer-Moor bad character
heuristic.

https://bugzilla.gnome.org/show_bug.cgi?id=702357

11 years agopipeline: g-i: allow clock to be NULL in gst_pipeline_use_clock()
Tim-Philipp Müller [Sat, 10 Aug 2013 10:31:23 +0000 (11:31 +0100)]
pipeline: g-i: allow clock to be NULL in gst_pipeline_use_clock()

https://bugzilla.gnome.org/show_bug.cgi?id=705751

11 years agocontroller: fixes int overflow with properties that span +-INT_MAX
Adrian Pardini [Wed, 7 Aug 2013 17:17:28 +0000 (14:17 -0300)]
controller: fixes int overflow with properties that span +-INT_MAX

When the range for a property is defined as -INT_MAX-1 .. INT_MAX, like
the xpos in a videomixer the following expression in the macro
definitions of convert_g_value_to_##type (and the equivalent in
convert_value_to_##type)

v = pspec->minimum + (g##type) ROUNDING_OP ((pspec->maximum - pspec->minimum) * s);

are converted to:

v = -2147483648 + (g##type) ROUNDING_OP ((2147483647 - -2147483648) * s);

(2147483647 - -2147483648) overflows to -1 and the net result is:

v = -2147483648 + (g##type) ROUNDING_OP (-1 * s);

so v only takes the values -2147483648 for s == 0 and 2147483647
for s == 1.

Rewriting the expression as minimum*(1-s) + maximum*s gives the correct
result in this case.

https://bugzilla.gnome.org//show_bug.cgi?id=705630

11 years agobuild: add subdir-objects to AM_INIT_AUTOMAKE
Lubosz Sarnecki [Fri, 2 Aug 2013 11:31:59 +0000 (13:31 +0200)]
build: add subdir-objects to AM_INIT_AUTOMAKE

Fixes warnings with automake 1.14

https://bugzilla.gnome.org/show_bug.cgi?id=705350

11 years agodesign: fix typo
Wim Taymans [Fri, 2 Aug 2013 14:21:45 +0000 (16:21 +0200)]
design: fix typo

11 years agoqueue2: Fix backwards seeks into undowloaded ranges
Sjoerd Simons [Mon, 29 Jul 2013 13:48:32 +0000 (15:48 +0200)]
queue2: Fix backwards seeks into undowloaded ranges

When in download buffering mode queue2 didn't check if a range offset is
in a undownloaded range before the currently in-progress range. Causing
seeks to an earlier offset to, well, take a while.

11 years agodocs: some small gtk-doc markup fixes
Kjartan Maraas [Tue, 30 Jul 2013 17:27:23 +0000 (19:27 +0200)]
docs: some small gtk-doc markup fixes

https://bugzilla.gnome.org/show_bug.cgi?id=705156

11 years agogst: register new color mode enum, fixing 'make check'
Kjartan Maraas [Tue, 30 Jul 2013 17:27:23 +0000 (19:27 +0200)]
gst: register new color mode enum, fixing 'make check'

https://bugzilla.gnome.org/show_bug.cgi?id=705156

11 years agotypefindhelper: Avoid using buffer_get_size in tight loops
Edward Hervey [Tue, 16 Apr 2013 17:04:48 +0000 (19:04 +0200)]
typefindhelper: Avoid using buffer_get_size in tight loops

Calling gst_buffer_get_size represented 2/3 of the cost of helper_find_peek
which was called whenever a typefindfunction wanted to peek at data.

We already know the size (from the GstMapInfo), so just use that.