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
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
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
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.
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
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.
Jonas Holmberg [Thu, 15 Aug 2013 13:35:08 +0000 (15:35 +0200)]
Free thread pools in gst_deinit()
Jonas Holmberg [Fri, 16 Aug 2013 09:03:30 +0000 (11:03 +0200)]
check: Call gst_deinit() at exit of all processes
Tim-Philipp Müller [Wed, 14 Aug 2013 20:41:23 +0000 (21:41 +0100)]
clock: simplify internal gst_clock_return_get_name() helper
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.
Wim Taymans [Wed, 14 Aug 2013 15:14:15 +0000 (17:14 +0200)]
basesrc: stop flushing in flush-stop
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.
Edward Hervey [Wed, 14 Aug 2013 13:46:57 +0000 (15:46 +0200)]
.gitignore: ignore .dirstamp
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
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
Edward Hervey [Tue, 13 Aug 2013 15:14:53 +0000 (17:14 +0200)]
.gitignore: Ignore files from automake test-driver
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
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
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
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
Andoni Morales Alastruey [Tue, 23 Jul 2013 14:25:27 +0000 (16:25 +0200)]
query: fix annotation for gst_query_parse_uri
Andoni Morales Alastruey [Fri, 19 Apr 2013 10:14:54 +0000 (12:14 +0200)]
query: add new redirection uri the URI query
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.
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
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
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
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
Wim Taymans [Fri, 2 Aug 2013 14:21:45 +0000 (16:21 +0200)]
design: fix typo
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.
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
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
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.
Tim-Philipp Müller [Mon, 29 Jul 2013 18:38:51 +0000 (19:38 +0100)]
po: update translations
Tim-Philipp Müller [Mon, 29 Jul 2013 18:13:03 +0000 (19:13 +0100)]
common: revert accidental re-winding of common submodule
Sjoerd Simons [Fri, 26 Jul 2013 14:15:24 +0000 (16:15 +0200)]
query: Clarify the estimated-total documentation
Tweak the documentation slightly to clarify that the estimated-total in
a a Buffering query the total remaining time of a download, not the
total time for the complete download. Also indicate the unit used.
https://bugzilla.gnome.org/show_bug.cgi?id=704934
Sjoerd Simons [Fri, 26 Jul 2013 13:08:13 +0000 (15:08 +0200)]
queue2: Forward the schedule query upstream
When asked about the scheduling flags first check with upstream and
simply add the _SEEKABLE flag when using a temporary file as storage.
This enables the forwarding of _SEQUENTIAL and _BANDWIDTH_LIMITED from
sources if needed.
https://bugzilla.gnome.org/show_bug.cgi?id=704927
Sebastian Dröge [Mon, 29 Jul 2013 12:47:15 +0000 (14:47 +0200)]
Back to development
Sebastian Dröge [Mon, 29 Jul 2013 11:34:53 +0000 (13:34 +0200)]
Release 1.1.3
Sebastian Dröge [Mon, 29 Jul 2013 11:30:25 +0000 (13:30 +0200)]
Update .po files
Sebastian Dröge [Mon, 29 Jul 2013 10:10:45 +0000 (12:10 +0200)]
base: Fix handling of SEGMENT query
The values should be in stream-time, and start/stop should not
be swapped for negative rates.
Sebastian Dröge [Mon, 29 Jul 2013 09:05:09 +0000 (11:05 +0200)]
typefind: Only advance offset by the number of bytes we actually read
There might be a short read at EOS.
Sebastian Dröge [Mon, 29 Jul 2013 08:48:30 +0000 (10:48 +0200)]
baseparse: Implement SEGMENT query
Tim-Philipp Müller [Fri, 26 Jul 2013 17:36:04 +0000 (18:36 +0100)]
buffer: fix Since: marker for new gst_buffer_extract_dup()
Wim Taymans [Fri, 26 Jul 2013 10:19:32 +0000 (12:19 +0200)]
clock: debug the clock return values
Thiago Santos [Thu, 25 Jul 2013 15:20:14 +0000 (12:20 -0300)]
baseparse: fix seqnum handling for seeks
Use the same seqnum as the seek for flushes/segments that are
caused by the seek. Also do the same for segment events
Fixes #676242
David Schleef [Wed, 24 Jul 2013 17:29:30 +0000 (10:29 -0700)]
info: parse debug levels > 9
Sebastian Dröge [Wed, 24 Jul 2013 14:57:46 +0000 (16:57 +0200)]
value: Fix copy&paste mistakes in the bitmask function docs
Sebastian Dröge [Wed, 24 Jul 2013 09:21:27 +0000 (11:21 +0200)]
basesink: Don't shadow variables that are set inside our scope and then used outside our scope
Fixes uninitialized use of these variables.
Sebastian Dröge [Wed, 24 Jul 2013 08:30:25 +0000 (10:30 +0200)]
tests: Remove other interface structs from the ABI tests too
Thiago Santos [Fri, 15 Oct 2010 16:16:59 +0000 (13:16 -0300)]
tests: Remove GstTagSetter from ABI checks
Interfaces can have new members added without breaking ABI, so
remove it from the check.
https://bugzilla.gnome.org/show_bug.cgi?id=623799
Thibault Saunier [Tue, 23 Jul 2013 19:39:53 +0000 (15:39 -0400)]
libcheck: Escape strings in the generated xml files
This is copy pasted from upstream libcheck
Sebastian Dröge [Tue, 23 Jul 2013 16:53:44 +0000 (18:53 +0200)]
basesink: Print some debug output if a stream-start event without group-id arrives
Ideally all elements would implement handling of that to get proper
stream-start message handling and other things.
Arnaud Vrac [Mon, 22 Jul 2013 16:03:01 +0000 (18:03 +0200)]
input-selector: Fix missing pad activation notification
A new active pad might not be notified in some cases, which results
in the current track number not being set in playbin.
The active-pad notification is only sent in the chain and sink_event
functions, and only when the buffer or event that triggered the active
pad selection is from the newly activated pad. So in the other case
the notification will never be sent.
https://bugzilla.gnome.org/show_bug.cgi?id=704691
Tim-Philipp Müller [Mon, 22 Jul 2013 16:25:47 +0000 (17:25 +0100)]
value: handle deserialisation of nonexistant enum value more gracefully
Sebastian Dröge [Mon, 22 Jul 2013 12:12:18 +0000 (14:12 +0200)]
inputselector: Don't push new stream-start events on stream change unless they all have group ids
https://bugzilla.gnome.org/show_bug.cgi?id=704408
Sebastian Dröge [Mon, 22 Jul 2013 10:06:29 +0000 (12:06 +0200)]
typefind: Use new group-id in stream-start event
Sebastian Dröge [Mon, 22 Jul 2013 10:06:08 +0000 (12:06 +0200)]
base: Use new group-id field in stream-start event and message
Sebastian Dröge [Mon, 22 Jul 2013 09:42:18 +0000 (11:42 +0200)]
bin: Use the new group-id field of the stream-start message for stream-start message aggregation
If all stream-start messages had a group id (for backwards compatibility),
we only consider a stream started if all had the same group id.
In 2.0 we should make the group id mandatory.
Sebastian Dröge [Mon, 22 Jul 2013 09:41:35 +0000 (11:41 +0200)]
gst: Add new group-id field to the stream-start event
All streams that have the same group id are supposed to be played
together, i.e. all streams inside a container file should have the
same group id but different stream ids. The group id should change
each time the stream is started, resulting in different group ids
each time a file is played for example.
Tim-Philipp Müller [Thu, 18 Jul 2013 22:29:49 +0000 (23:29 +0100)]
common: revert accidental change of common submodule
Sebastian Dröge [Thu, 18 Jul 2013 12:39:42 +0000 (14:39 +0200)]
gst: Add some more Since: 1.2
Sebastian Dröge [Thu, 18 Jul 2013 12:34:31 +0000 (14:34 +0200)]
info: Add some Since: 1.2
Руслан Ижбулатов [Thu, 18 Jul 2013 11:10:10 +0000 (15:10 +0400)]
info: Add debug color mode option
This allows to explicitely set the debug output color
mode to UNIX on every platform, enable it (use platform
default color mode) or enable it.
https://bugzilla.gnome.org/show_bug.cgi?id=674320
Руслан Ижбулатов [Wed, 18 Apr 2012 10:35:32 +0000 (14:35 +0400)]
info: Fix black and underline coloring on W32
Fixes #674320
Руслан Ижбулатов [Wed, 18 Apr 2012 10:12:16 +0000 (14:12 +0400)]
info: Cut down src file names for MinGW too
Fixes #674320
Nicola Murino [Tue, 16 Jul 2013 15:47:45 +0000 (17:47 +0200)]
gst-uninstalled: Fix gst-plugins-gl in uninstalled setup
https://bugzilla.gnome.org/show_bug.cgi?id=703499
Olivier Crête [Tue, 16 Jul 2013 19:35:08 +0000 (15:35 -0400)]
adapter: Take account of the skip in gst_adapter_take_buffer_fast()
Include regression test
Olivier Crête [Mon, 15 Jul 2013 19:41:44 +0000 (15:41 -0400)]
adapter: Add function to return buffer composed of multiple memories
API: gst_adapter_take_fast()
Sebastian Dröge [Tue, 16 Jul 2013 14:24:38 +0000 (16:24 +0200)]
query: Don't assert if no context is set in the query
Tim-Philipp Müller [Tue, 16 Jul 2013 13:47:05 +0000 (14:47 +0100)]
benchmarks: ignore new benchmark binary
Tim-Philipp Müller [Tue, 16 Jul 2013 13:46:15 +0000 (14:46 +0100)]
query: sprinkle some Since 1.2 markers in docs
Tim-Philipp Müller [Tue, 16 Jul 2013 13:44:03 +0000 (14:44 +0100)]
timeprovider: g-i: allow None as address for gst_net_time_provider_new()
Sebastian Dröge [Tue, 16 Jul 2013 13:34:57 +0000 (15:34 +0200)]
element: Return an empty GstContext if none was set yet
Sebastian Dröge [Tue, 16 Jul 2013 13:16:16 +0000 (15:16 +0200)]
query: Add gst_query_has_context_type()
Sebastian Dröge [Tue, 16 Jul 2013 09:36:50 +0000 (11:36 +0200)]
multiqueue: only block serialized query when it's safe
We must be certain that we don't cause a deadlock when blocking the serialized
queries. One such deadlock can happen when we are buffering and downstream is
blocked in preroll and a serialized query arrives. Downstream will not unblock
(and allow our query to execute) until we complete buffering and buffering will
not complete until we can answer the query..
https://bugzilla.gnome.org/show_bug.cgi?id=702840
Sebastian Dröge [Mon, 15 Jul 2013 09:36:18 +0000 (11:36 +0200)]
pad: A newly activated pad should be marked as needing reconfiguration
Sebastian Dröge [Mon, 15 Jul 2013 09:32:54 +0000 (11:32 +0200)]
Revert "pad: Don't consider flushing pads as needing reconfiguration"
This reverts commit
948a9d2f2b728f5fb60be45d47a818cebeb60c7d.
This is racy and trying to reconfigure and fail is still better
than not trying to reconfigure at all.
https://bugzilla.gnome.org/show_bug.cgi?id=704100
Sebastian Dröge [Mon, 15 Jul 2013 09:32:10 +0000 (11:32 +0200)]
basesrc: Leave the loop function faster if we're flushing
Especially don't even try to send stream-start event or try
to negotiate.
https://bugzilla.gnome.org/show_bug.cgi?id=704100
Sebastian Dröge [Fri, 12 Jul 2013 08:08:26 +0000 (10:08 +0200)]
inputselector: Deactivate and remove pad without the inputselector lock
Otherwise we might get deadlocks caused by lock order inversion:
During the chain function the stream lock is first locked and then the
inputselector lock. During pad release we first locked the inputselector
lock and then deactivating the pad would lock the stream lock.
There's no reason why the inputselector lock should be required while
deactivating and removing the pad, it's only needed before.
https://bugzilla.gnome.org/show_bug.cgi?id=704002
Sebastian Dröge [Thu, 11 Jul 2013 14:57:06 +0000 (16:57 +0200)]
Back to development
Sebastian Dröge [Thu, 11 Jul 2013 13:12:39 +0000 (15:12 +0200)]
Release 1.1.2
Sebastian Dröge [Thu, 11 Jul 2013 13:11:27 +0000 (15:11 +0200)]
Update .po files
Sebastian Dröge [Wed, 10 Jul 2013 13:52:10 +0000 (15:52 +0200)]
bin: Always forward clock-lost message if we're not a top-level bin
This makes sure that no bin misses the clock-lost messages, independent
of the state, and could return an old, non-working clock from
gst_bin_provide_clock_func().
https://bugzilla.gnome.org/show_bug.cgi?id=701997
Sebastian Dröge [Wed, 10 Jul 2013 12:30:31 +0000 (14:30 +0200)]
inputselector: Keep previous active sinkpad around until we're done with it
Otherwise we'll send a new segment event downstream for each buffer.
Tim-Philipp Müller [Mon, 8 Jul 2013 14:26:38 +0000 (15:26 +0100)]
allocator: fix type of gst_memory_alignment to match declaration
Fixes compiler warnings such as
gstallocator.c:61:8: error: conflicting types for 'gst_memory_alignment'
../gst/gstallocator.h:52:18: note: previous declaration of 'gst_memory_alignment' was here
Piotr Drąg [Fri, 5 Jul 2013 19:36:27 +0000 (21:36 +0200)]
po: update POTFILES.in
https://bugzilla.gnome.org/show_bug.cgi?id=703682
Thibault Saunier [Fri, 5 Jul 2013 00:39:26 +0000 (20:39 -0400)]
basesrc: Do not lock a mutex that does not exist
The GST_LIVE_LOCK is on GstBaseSrc, not on its source pad.
Wim Taymans [Wed, 3 Jul 2013 19:23:44 +0000 (21:23 +0200)]
baseparse: reset PTS after seek
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702778
Nicolas Dufresne [Wed, 3 Jul 2013 17:03:49 +0000 (13:03 -0400)]
Add few missing allow-none annotation
Tim-Philipp Müller [Wed, 3 Jul 2013 08:27:13 +0000 (09:27 +0100)]
gst-uninstalled: add new -bad mpegts lib
And remove signalprocessor/video libs from -bad which have gone
away or were merged into -base.
Olivier Crête [Tue, 2 Jul 2013 00:35:21 +0000 (20:35 -0400)]
funnel: Re-push all sticky events when buffers come from a different pad
Don't special case segment/caps, just push all sticky events when they are
received on the currently active pad or when the active pad changes.
Olivier Crête [Tue, 2 Jul 2013 00:21:10 +0000 (20:21 -0400)]
funnel: Use default pad function for upstream event/queries
The default functions in 1.x already do the right thing
Olivier Crête [Tue, 2 Jul 2013 00:18:58 +0000 (20:18 -0400)]
tests: Remove funnel pad_alloc test
Olivier Crête [Tue, 2 Jul 2013 00:07:03 +0000 (20:07 -0400)]
check: Change stream_id parameter name to match GtkDoc
Jonas Holmberg [Mon, 1 Jul 2013 09:10:00 +0000 (11:10 +0200)]
check: Added gst_check_setup_events_with_stream_id()
Added a new function gst_check_setup_events_with_stream_id(), since
gst_check_setup_events() does not work with multiple pads.
https://bugzilla.gnome.org/show_bug.cgi?id=703377
Sebastian Dröge [Sun, 30 Jun 2013 16:39:03 +0000 (18:39 +0200)]
pad: Don't consider flushing pads as needing reconfiguration
Renegotiation and reconfiguration will fail because all queries
and events won't be accepted by the pad if it's flushing. In the
best case this just causes unneeded work and spurious warnings in
the debug logs, in the worst case it causes elements to fail completely.
Wim Taymans [Mon, 24 Jun 2013 21:25:51 +0000 (23:25 +0200)]
queue2: only block serialized query when it's safe
We must be certain that we don't cause a deadlock when blocking the serialized
queries. One such deadlock can happen when we are buffering and downstream is
blocked in preroll and a serialized query arrives. Downstream will not unblock
(and allow our query to execute) until we complete buffering and buffering will
not complete until we can answer the query..
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702840
Sjoerd Simons [Wed, 19 Jun 2013 10:30:47 +0000 (12:30 +0200)]
pad: Add a filter to the caps_query done by acceptcaps
Use the caps that the pad is asked to accept as filter for the query
https://bugzilla.gnome.org/show_bug.cgi?id=702632
Sjoerd Simons [Wed, 19 Jun 2013 10:19:02 +0000 (12:19 +0200)]
basetransform: optimize default acceptcaps implementation
Pass the fixed caps we're asked to accept as a filter for the caps
query, so we don't get a fully-expanded set of caps back (which we don't
need and can take a lot of time for intersection).
This reduces the time for camerabin to produce a second frame on a
logitech C910 camera from around 52 seconds to a bit less then 16
seconds on my system.
https://bugzilla.gnome.org/show_bug.cgi?id=702632
Edward Hervey [Wed, 19 Jun 2013 07:19:53 +0000 (09:19 +0200)]
taglist: Avoid combinatorial explosion when merging tags
When appending/prepending tags, avoid re-creating (and copying) lists if we already
have one and instead just append/prepend the GValue to the list.
https://bugzilla.gnome.org/show_bug.cgi?id=702545