Wim Taymans [Thu, 25 Nov 2010 17:48:09 +0000 (18:48 +0100)]
basesink: rework position reporting code
Unify the different position reporting code paths to make it more
understandable.
Use start_time to get more accurate position reporting in paused.
Fix unit tests for more accurate reporting.
Wim Taymans [Thu, 25 Nov 2010 15:06:07 +0000 (16:06 +0100)]
basesink: perform wait_preroll in a while loop
We need to continue calling wait_preroll() as long as the need_preroll variable
is true.
Wim Taymans [Wed, 17 Nov 2010 15:46:30 +0000 (16:46 +0100)]
utils: return immediately for -1 conversion
When we are asked to convert -1, we can return immediately with a -1 return
value.
Wim Taymans [Wed, 17 Nov 2010 15:42:00 +0000 (16:42 +0100)]
utils: a convert query can have a -1 input value
It is allowed to pass -1 to the src_val for a convert.
Wim Taymans [Tue, 16 Nov 2010 11:20:37 +0000 (12:20 +0100)]
basesink: also preroll after a flush with async=false
Make sure to preroll after a flush even when we are async=false.
Add unit test.
Fixes #634965
Wim Taymans [Mon, 15 Nov 2010 17:20:27 +0000 (18:20 +0100)]
adapter: improve docs a little.
Wim Taymans [Mon, 15 Nov 2010 17:17:36 +0000 (18:17 +0100)]
check: lock src state to avoid error cases
Lock the state of the src element or else the pipeline might go into the error
state when we set it to PAUSED later.
Wim Taymans [Mon, 15 Nov 2010 11:49:05 +0000 (12:49 +0100)]
pipeline: avoid using invalid clock times
Be extra careful to not use invalid clock times but give a warning instead. This
should make things work better with faulty clock implementations.
Wim Taymans [Thu, 11 Nov 2010 09:41:18 +0000 (10:41 +0100)]
caps: improve some comments about the zigzag intersection
Edward Hervey [Thu, 2 Dec 2010 12:04:30 +0000 (13:04 +0100)]
docs: Add unused symbols to proper sections
Edward Hervey [Thu, 2 Dec 2010 12:03:57 +0000 (13:03 +0100)]
docs: Add GstDateTime section and update it for latest symbols
Edward Hervey [Tue, 19 Oct 2010 16:09:53 +0000 (18:09 +0200)]
queue2: Only call update_buffering if needed.
update_buffering is so big it will never be inlined (and shouldn't),
we therefore move the check outside of it.
Edward Hervey [Tue, 19 Oct 2010 15:45:16 +0000 (17:45 +0200)]
queue2: Avoid re-checking many times whether an item is a buffer
Avoids calling 6 times gst_buffer_get_type() for every item coming
through queue2
Edward Hervey [Tue, 19 Oct 2010 15:43:56 +0000 (17:43 +0200)]
queue2: Reduce amount of time locks are taken
Edward Hervey [Tue, 19 Oct 2010 15:42:39 +0000 (17:42 +0200)]
queue2: Fixup documentation of some properties
Edward Hervey [Tue, 19 Oct 2010 15:40:13 +0000 (17:40 +0200)]
queue2: Avoid useless segment_to_running_time() calculations.
* Cache src and sink time
* Use a boolean to known whether src/sink time needs to be recalculated
Avoids 50% of calls to gst_segment_to_running_time()
Edward Hervey [Wed, 20 Oct 2010 15:41:28 +0000 (17:41 +0200)]
basesink: Re-using GstClockID instead of constantly recreating one
Makes _sink_wait_clock at least 2 times faster.
https://bugzilla.gnome.org/show_bug.cgi?id=632778
Edward Hervey [Wed, 20 Oct 2010 15:40:43 +0000 (17:40 +0200)]
gstclock: New API to re-use a single shot GstClockID
API: gst_clock_single_shot_id_reinit
https://bugzilla.gnome.org/show_bug.cgi?id=632778
Edward Hervey [Wed, 20 Oct 2010 11:52:02 +0000 (13:52 +0200)]
basesink: Pass along miniobject type through various functions
Avoids doing useless GST_IS_*
https://bugzilla.gnome.org/show_bug.cgi?id=632778
Edward Hervey [Wed, 20 Oct 2010 11:08:08 +0000 (13:08 +0200)]
basesink: Switch enable_last_buffer to an atomic int
Avoids having to take a lock to read/write it.
https://bugzilla.gnome.org/show_bug.cgi?id=632778
Edward Hervey [Tue, 19 Oct 2010 13:53:26 +0000 (15:53 +0200)]
queue: Remove useless checks from e406f7
srcresult was being rechecked in places it couldn't have changed.
queue level was being rechecked in places it couldn't have changed.
https://bugzilla.gnome.org/show_bug.cgi?id=632780
Edward Hervey [Wed, 13 Oct 2010 11:50:22 +0000 (13:50 +0200)]
gstdataqueue: Only emit g_cond_signal when needed
Keep track of which cond we're waiting for and only emit when needed.
https://bugzilla.gnome.org/show_bug.cgi?id=632779
Wim Taymans [Wed, 20 Oct 2010 15:12:29 +0000 (17:12 +0200)]
segment: move g_return_if_fail to where it is needed
Sebastian Dröge [Wed, 3 Nov 2010 10:14:03 +0000 (11:14 +0100)]
version: Take nano version into account in GST_CHECK_VERSION()
If the nano is > 0 the current version should be handled the same as
micro + 1.
Sebastian Dröge [Mon, 1 Nov 2010 15:34:46 +0000 (16:34 +0100)]
pad: Set the event source object if none is set yet in gst_pad_push_event()
Otherwise the source will stay at NULL, the event is passed to the
peerpad via gst_pad_send_event() and then the peerpad is set as
source of the event instead of the originating pad.
Sebastian Dröge [Sun, 31 Oct 2010 17:48:19 +0000 (18:48 +0100)]
queue2: Remove dead assignment and unused variable
Sebastian Dröge [Sun, 31 Oct 2010 17:46:43 +0000 (18:46 +0100)]
queue2: Remove dead assignment and move variable declaration into inner block
Sebastian Dröge [Sun, 31 Oct 2010 17:23:00 +0000 (18:23 +0100)]
queue2: Remove redundant variable
Other than saving an immense amount of 4 bytes of memory this
prevents clang from complaining and keeps the ring buffer state
in a single variable instead of two.
David Hoyt [Wed, 20 Oct 2010 08:18:18 +0000 (10:18 +0200)]
gsttask: Set thread names on Windows with MSVC if a debugger is attached
Fixes bug #632168.
Sebastian Dröge [Tue, 19 Oct 2010 13:52:30 +0000 (15:52 +0200)]
macros: Define restrict keyword if not available
This change always defines the restrict keyword if a
non-C99 C compiler is used. In the case of GCC >= 4
it will be defined to __restrict__, in all other
cases to nothing. This allows to use the restrict
keyword unconditionally.
Tim-Philipp Müller [Wed, 1 Dec 2010 23:57:36 +0000 (23:57 +0000)]
Bump GLib requirement to >= 2.22
See http://gstreamer.freedesktop.org/wiki/ReleasePlanning/GLibRequirement
Tim-Philipp Müller [Wed, 1 Dec 2010 23:56:45 +0000 (23:56 +0000)]
Back to development
Tim-Philipp Müller [Tue, 30 Nov 2010 17:40:47 +0000 (17:40 +0000)]
Release 0.10.31
Tim-Philipp Müller [Sat, 27 Nov 2010 19:13:35 +0000 (19:13 +0000)]
utils: avoid 'unused argument' warnings caused by GST_BOILERPLATE_FULL
The unused data parameter in the class_init trampoline function
seems to cause warnings with some c++ compilers.
https://bugzilla.gnome.org/show_bug.cgi?id=635869
reynaldo [Wed, 10 Nov 2010 02:27:17 +0000 (23:27 -0300)]
docs: some small fixes to the plugin writer's guide
Fix wrongly placed example and weirdly phrased 'note' lacking proper
formatting. Fix missing hint for autogen.sh location and rephrase
'built and installed' sentence. Fix wrongly phrased and redundant
paragraph in PWG
https://bugzilla.gnome.org/show_bug.cgi?id=634921
Thiago Santos [Sat, 27 Nov 2010 14:02:48 +0000 (11:02 -0300)]
manual: Improve states documentation
Be more explicit about being on NULL before unrefs
Evan Nemerson [Sat, 20 Nov 2010 22:54:23 +0000 (14:54 -0800)]
introspection: Include exported packages information in GIRs
https://bugzilla.gnome.org/show_bug.cgi?id=635389
Tim-Philipp Müller [Thu, 18 Nov 2010 00:29:41 +0000 (00:29 +0000)]
0.10.30.5 pre-release
Tim-Philipp Müller [Thu, 18 Nov 2010 00:29:19 +0000 (00:29 +0000)]
elementfactory: fix caps leak in element factory list utility functions
Tim-Philipp Müller [Wed, 17 Nov 2010 23:55:45 +0000 (23:55 +0000)]
po: update translations
Thiago Santos [Wed, 17 Nov 2010 12:39:34 +0000 (09:39 -0300)]
datetime: Add _from_unix_epoch variants
Adds 2 variants for the gst_date_time_from_unix_epoch function,
one for UTC and another for local time.
API: gst_date_time_new_from_unix_epoch_utc
API: gst_date_time_new_from_unix_epoch_local_time
Fixes #653031
https://bugzilla.gnome.org/show_bug.cgi?id=635031
Vladimir Eremeev [Wed, 3 Nov 2010 14:21:02 +0000 (14:21 +0000)]
math-compat: don't re-define _USE_MATH_DEFINES if already defined
This avoids compiler warnings.
https://bugzilla.gnome.org/show_bug.cgi?id=633886
Tim-Philipp Müller [Mon, 1 Nov 2010 16:06:43 +0000 (16:06 +0000)]
0.10.30.4 pre-release
Tim-Philipp Müller [Mon, 1 Nov 2010 15:36:54 +0000 (15:36 +0000)]
po: update translations
Tim-Philipp Müller [Sun, 31 Oct 2010 20:17:05 +0000 (20:17 +0000)]
queue2: don't leak pad ref in pull mode when flushing
Fix pad leak when queue2 is flushing or being shut down.
Tim-Philipp Müller [Sun, 31 Oct 2010 19:47:25 +0000 (19:47 +0000)]
queue2: don't send seeks beyond the end of the file upstream in pull mode
If downstream is operating in pull mode, short-circuit any pulls beyond
the end of the file and return FLOW_UNEXPECTED immediately instead of
sending a seek beyond the end of the file upstream, since this might
confuse upstream elements (and/or http servers, for example). Fixes
playback of apple trailers in totem and youtube/html5 clips in
WebkitGTK+.
https://bugzilla.gnome.org/show_bug.cgi?id=632977
Jonathan Matthew [Thu, 28 Oct 2010 13:28:15 +0000 (23:28 +1000)]
basetransform: use input position for queries if we have no output position
Wim Taymans [Thu, 28 Oct 2010 12:29:31 +0000 (13:29 +0100)]
basetransform: fix reverse negotiation
When the downstream element suggests a new format, pass the suggestion
upstream if we can't convert to it.
Fixes #633147
Jan Schmidt [Wed, 27 Oct 2010 16:12:36 +0000 (18:12 +0200)]
multiqueue: Fix tracking of unlinked streams.
33082eb9e42c52e4df848195946f1b7bbce768c5 introduced a bug
preventing sparse unlinked streams from advancing properly,
leading to the queue blocking.
Fixes: #633176
Jan Schmidt [Wed, 27 Oct 2010 16:11:35 +0000 (18:11 +0200)]
tests: Add a multiqueue sparse streams test
Jan Schmidt [Wed, 27 Oct 2010 12:16:11 +0000 (13:16 +0100)]
Automatic update of common submodule
From 7bbd708 to 011bcc8
Tim-Philipp Müller [Fri, 22 Oct 2010 16:35:23 +0000 (17:35 +0100)]
0.10.30.3 pre-release
Tim-Philipp Müller [Mon, 18 Oct 2010 16:42:27 +0000 (17:42 +0100)]
bytereader: const-ify byte reader argument in peek/scan API
Because we can.
Edward Hervey [Fri, 22 Oct 2010 09:52:47 +0000 (11:52 +0200)]
elementfactory: Fix 64bit constant
Basically we're not meant to put anything more complex than simple numbers,
due to the definition of G_GUINT64_CONSTANT:
G_GUINT64_CONSTANT(val) (val##UL)
Which previously resulted in .... 1 << 49UL
Mark Nauwelaerts [Mon, 18 Oct 2010 08:46:59 +0000 (10:46 +0200)]
basesink: recompute correct running time for buffer ending flushing step
Prevents delaying/hanging when resuming PLAYING.
Fixes #632433.
Tim-Philipp Müller [Sat, 16 Oct 2010 18:19:47 +0000 (19:19 +0100)]
docs: fix misc. gtk-doc warnings in libs
(for gtk-doc 1.15)
Tim-Philipp Müller [Sat, 16 Oct 2010 17:26:20 +0000 (18:26 +0100)]
Revert "libs/gst/dataqueue: Document gst_data_queue_new_full"
This reverts commit
80727c117703507f790a86b0962ab3d915e5a491.
This doesn't make sense. gst_data_queue_new_full() is already
documented above. And we need the doc blurb for _new() here.
Tim-Philipp Müller [Sat, 16 Oct 2010 16:00:17 +0000 (17:00 +0100)]
docs: flesh out release instructions a bit more
Tim-Philipp Müller [Sat, 16 Oct 2010 15:53:49 +0000 (16:53 +0100)]
docs: add some gtk-doc Since: markers
Add some gtk-doc Since: markers, fix one Since: marker,
fix typo.
Tim-Philipp Müller [Fri, 15 Oct 2010 23:25:52 +0000 (00:25 +0100)]
0.10.30.2 pre-release
Tim-Philipp Müller [Fri, 15 Oct 2010 23:14:13 +0000 (00:14 +0100)]
po: update translations
Mark Nauwelaerts [Fri, 15 Oct 2010 17:45:14 +0000 (19:45 +0200)]
gst-inspect: useful factory names for uri-handlers output
Fixes #632236.
David Schleef [Thu, 14 Oct 2010 19:31:32 +0000 (12:31 -0700)]
Automatic update of common submodule
From 5a668bf to 7bbd708
Thiago Santos [Tue, 12 Oct 2010 18:13:48 +0000 (15:13 -0300)]
datetime: Use seconds as double
Use seconds as double to make API similar to glib's
gdatetime. Also move timezone parameter to the
first position, just like glib's.
https://bugzilla.gnome.org/show_bug.cgi?id=628408
Thiago Santos [Mon, 11 Oct 2010 19:15:29 +0000 (16:15 -0300)]
gstdatetime: Move doc outside the ifdefs
Move the datetime documentation of the functions outside the
ifdefs
https://bugzilla.gnome.org/show_bug.cgi?id=628408
Thiago Santos [Mon, 27 Sep 2010 22:35:08 +0000 (19:35 -0300)]
datetime: Use GDateTime if available
Use GDateTime internally on GstDateTime if glib already
provides it.
https://bugzilla.gnome.org/show_bug.cgi?id=628408
Thiago Santos [Tue, 28 Sep 2010 20:46:29 +0000 (17:46 -0300)]
glib-private: Add include protection macro
Tim-Philipp Müller [Wed, 13 Oct 2010 11:51:00 +0000 (12:51 +0100)]
buffer: add guard to buffer_set_caps() that checks if caps are simple
Stefan Kost [Wed, 13 Oct 2010 12:56:26 +0000 (15:56 +0300)]
systemclock: add a missing G_PARAM_STATIC_STRINGS
Edward Hervey [Thu, 1 Oct 2009 09:14:06 +0000 (11:14 +0200)]
libs/gst/dataqueue: Document gst_data_queue_new_full
Edward Hervey [Mon, 28 Sep 2009 11:35:35 +0000 (13:35 +0200)]
base/gstdataqueue: inline some functions, get levels with memcpy.
Edward Hervey [Wed, 13 Oct 2010 09:54:04 +0000 (11:54 +0200)]
queue2: Remove unused argument from find_range()
Edward Hervey [Wed, 13 Oct 2010 09:52:25 +0000 (11:52 +0200)]
fdsink: cleanup get_property/set_property
Wim Taymans [Tue, 12 Oct 2010 16:48:10 +0000 (18:48 +0200)]
queue: avoid g_cond_signal when we can
Keep track of what cond we are waiting on and only signal when some other thread
is waiting.
Tim-Philipp Müller [Mon, 11 Oct 2010 18:27:54 +0000 (19:27 +0100)]
miniobject: avoid duplicate type check when freeing miniobject
gst_mini_object_unref() has guards that check the type already, so
we don't really need to re-check it here again while getting the
class (there's not really much point to that anyway, since we don't
check the return value of the get_class, so we'd crash anyway if
we're not dealing with a mini object, the only question would
be if there'd be a warning before the crash or not).
Edward Hervey [Mon, 11 Oct 2010 16:55:14 +0000 (18:55 +0200)]
miniobject: Directly increate mini_object in mini_object_free()
Speeds up mini_object_unref by 25% by avoiding the typecheck which
is avoidable here since it is only called on existing miniobjects.
Edward Hervey [Mon, 11 Oct 2010 16:30:54 +0000 (18:30 +0200)]
miniobject: Remove confusing DEBUG_REFCOUNT define
the debugging statements will be silenced automatically if debugging
is disabled, and the type check is actually required.
Wim Taymans [Mon, 11 Oct 2010 16:10:07 +0000 (18:10 +0200)]
queue2: release queue2 lock before notify
Make sure that we don't hold the lock when we notify the temp-location
property,
Fixes #631853
Wim Taymans [Mon, 11 Oct 2010 14:45:16 +0000 (16:45 +0200)]
queue: add debug statement
Ognyan Tonchev [Mon, 11 Oct 2010 08:27:52 +0000 (10:27 +0200)]
queue: apply sink segment on the source if queue is empty
Apply the sink segment on the source immediatly when it is received
and there is nothing in the queue.
Solves #482147
Wim Taymans [Mon, 11 Oct 2010 13:51:21 +0000 (15:51 +0200)]
bin: fix documentation for iterate_sources
Stefan Kost [Mon, 11 Oct 2010 13:41:26 +0000 (16:41 +0300)]
docs: use the gtk-doc shortcuts to get coloured and xrefed example
Sebastian Dröge [Mon, 11 Oct 2010 12:20:15 +0000 (14:20 +0200)]
bin: Initialize variable
Wim Taymans [Mon, 11 Oct 2010 08:56:56 +0000 (10:56 +0200)]
bin: Improve tracking of source elements
Track elements tagged with the IS_SOURCE flag in a similar way we track the sink
elements. This allows us to efficiently dispatch downstream events to the right
elements.
Wim Taymans [Mon, 11 Oct 2010 08:55:04 +0000 (10:55 +0200)]
basesrc: tag as a SOURCE element
Tag all elements deriving from the basesrc with the IS_SOURCE flag.
Wim Taymans [Mon, 11 Oct 2010 08:53:41 +0000 (10:53 +0200)]
element: add IS_SOURCE flag
Add the GST_ELEMENT_IS_SOURCE flag so that we can tag source elements like we
can with sink elements.
Vincent Penquerc'h [Sat, 9 Oct 2010 13:18:44 +0000 (14:18 +0100)]
registry: g_mapped_file_unref exists already since GLib 2.21.3
Sebastian Dröge [Sun, 10 Oct 2010 16:14:40 +0000 (18:14 +0200)]
basetransform: Report the output position on POSITION queries on the srcpad
There can be a difference between input and output last_stop.
Fixes bug #629410.
David Schleef [Fri, 8 Oct 2010 19:43:20 +0000 (12:43 -0700)]
Automatic update of common submodule
From c4a8adc to 5a668bf
Edward Hervey [Fri, 8 Oct 2010 10:54:52 +0000 (12:54 +0200)]
multiqueue: Remove unused variable and simplify code
oldid was only used when we were doing multiple pops per loop.
Sebastian Dröge [Fri, 8 Oct 2010 10:50:10 +0000 (12:50 +0200)]
Automatic update of common submodule
From 5e3c9bf to c4a8adc
Sebastian Dröge [Fri, 8 Oct 2010 10:48:42 +0000 (12:48 +0200)]
bytewriter: Add missing file
Sebastian Dröge [Fri, 8 Oct 2010 10:18:23 +0000 (12:18 +0200)]
bytewriter: Add unchecked variants of the writing functions
These don't check if there's enough free space available and are
available as inline functions only.
API: gst_byte_writer_put_int8_unchecked
API: gst_byte_writer_put_int16_be_unchecked
API: gst_byte_writer_put_int16_le_unchecked
API: gst_byte_writer_put_int24_be_unchecked
API: gst_byte_writer_put_int24_le_unchecked
API: gst_byte_writer_put_int32_be_unchecked
API: gst_byte_writer_put_int32_le_unchecked
API: gst_byte_writer_put_int64_be_unchecked
API: gst_byte_writer_put_int64_le_unchecked
API: gst_byte_writer_put_uint8_unchecked
API: gst_byte_writer_put_uint16_be_unchecked
API: gst_byte_writer_put_uint16_le_unchecked
API: gst_byte_writer_put_uint24_be_unchecked
API: gst_byte_writer_put_uint24_le_unchecked
API: gst_byte_writer_put_uint32_be_unchecked
API: gst_byte_writer_put_uint32_le_unchecked
API: gst_byte_writer_put_uint64_be_unchecked
API: gst_byte_writer_put_uint64_le_unchecked
API: gst_byte_writer_put_float32_be_unchecked
API: gst_byte_writer_put_float32_le_unchecked
API: gst_byte_writer_put_float64_be_unchecked
API: gst_byte_writer_put_float64_le_unchecked
API: gst_byte_writer_put_data_unchecked
API: gst_byte_writer_fill_unchecked
Tim-Philipp Müller [Fri, 8 Oct 2010 08:34:47 +0000 (09:34 +0100)]
controller, dataprotocol: make public enum _get_type() functions thread-safe
Not that it is likely to matter in practice, but since these are public
API they should probably be thread-safe.
Tim-Philipp Müller [Thu, 7 Oct 2010 23:38:39 +0000 (00:38 +0100)]
dataprotocol, lfocontrolsource: fix enum value name in enums that are public API
So run-time bindings can introspect the names correctly (we abuse this
field as description field only in elements, not for public API
(where the description belongs into the gtk-doc chunk).
https://bugzilla.gnome.org/show_bug.cgi?id=629946
Sebastian Dröge [Fri, 8 Oct 2010 07:47:12 +0000 (09:47 +0200)]
bytewriter: Fix possible infinite loop caused by an overflow
Tim-Philipp Müller [Thu, 7 Oct 2010 17:46:26 +0000 (18:46 +0100)]
elements: minor performance improvement when doing g_object_notify() for the "last-message" property
Make sure property names passed to g_object_notify() are in the canonical form
(ie. "last-message" not "last_message"), so that g_param_spec_pool_lookup()
doesn't have to do strdup/canonicalize/free for every single notify call.
This only applies when building against older GLib versions (< 2.26).
Tim-Philipp Müller [Thu, 7 Oct 2010 17:27:06 +0000 (18:27 +0100)]
fakesink: use g_object_notify_by_pspec() and remove work-around for old GLib versions if possible
Use more efficient g_object_notify_by_pspec() if we're compiling against
GLib >= 2.26, and also remove work-around for g_object_notify() thread-
safety issues with older GLib versions if it's not needed any more.
Tim-Philipp Müller [Thu, 7 Oct 2010 17:21:13 +0000 (18:21 +0100)]
tee: use g_object_notify_by_pspec() if possible
Use more efficient g_object_notify_by_pspec() if we're compiling against
GLib >= 2.26.
Tim-Philipp Müller [Thu, 7 Oct 2010 17:19:31 +0000 (18:19 +0100)]
fakesrc: use g_object_notify_by_pspec() if possible
Use more efficient g_object_notify_by_pspec() if we're compiling against
GLib >= 2.26.