Wim Taymans [Fri, 28 Aug 2009 10:43:43 +0000 (12:43 +0200)]
utils: optimize for x86_64 with some inline asm
64bit x86 has native 64x64->128 bit multiply that we can use with some inline
assembler to speed up large multiplications.
Use bsr to find the number of leading zeros more efficiently.
Wim Taymans [Fri, 28 Aug 2009 10:33:37 +0000 (12:33 +0200)]
utils: factor out the leading zero count code
Wim Taymans [Fri, 28 Aug 2009 10:30:41 +0000 (12:30 +0200)]
utils: pass correction factor around
Pass the correction factor around to get rid of the enum, some code
and some branches.
Wim Taymans [Fri, 28 Aug 2009 10:21:28 +0000 (12:21 +0200)]
utils: whitespace fixes
Wim Taymans [Fri, 28 Aug 2009 10:19:34 +0000 (12:19 +0200)]
utils: move common correction code in a macro
Wim Taymans [Mon, 24 Aug 2009 16:01:07 +0000 (18:01 +0200)]
basesink: whitespace fixes
Sebastian Dröge [Wed, 26 Aug 2009 14:51:32 +0000 (16:51 +0200)]
iterator: Allow to use NULL as object for the single iterator
Sebastian Dröge [Wed, 26 Aug 2009 14:39:19 +0000 (16:39 +0200)]
iterator: API: Add gst_iterator_new_single()
This allows "iteration" over a single object of some type,
which happens often for the GstPadIterIntLinksFunction for example.
Wim Taymans [Mon, 24 Aug 2009 15:57:16 +0000 (17:57 +0200)]
basesrc: return result of _set_caps()
Wim Taymans [Mon, 24 Aug 2009 15:56:32 +0000 (17:56 +0200)]
basesink: whitespace fixes
David Schleef [Sat, 22 Aug 2009 21:22:31 +0000 (14:22 -0700)]
It's __GNUC__, not _GNUC_
This appears to be an 8 year old bug.
Tim-Philipp Müller [Fri, 21 Aug 2009 08:59:58 +0000 (09:59 +0100)]
docs: add link to cgit tarball download of gst-template in PWG
So people who can't use git for some reason still can get hold
of the code. See #591069.
Tim-Philipp Müller [Thu, 20 Aug 2009 10:54:40 +0000 (11:54 +0100)]
pluginfeature: add guard to gst_plugin_feature_type_name_filter
So we don't just crash if there's a refcounting bug somewhere else.
Sebastian Dröge [Wed, 19 Aug 2009 14:24:39 +0000 (16:24 +0200)]
docs: Don't talk about the deprecated libgnome and GNOME-VFS
Instead talk about GIO and change the option parsing example to
not initialize libgnome but only GTK.
Fixes bug #592233.
Sebastian Dröge [Wed, 19 Aug 2009 13:25:41 +0000 (15:25 +0200)]
examples: Link rtpool-test to libpthread for using the POSIX threads
Also the other streams example can run without pthreads therefore
enable it even if pthreads are not available.
Fixes bug #592314.
Sebastian Dröge [Tue, 18 Aug 2009 12:45:23 +0000 (14:45 +0200)]
tools: Use iterate_internal_links instead of deprecated get_internal_links
Sebastian Dröge [Tue, 18 Aug 2009 12:45:02 +0000 (14:45 +0200)]
multiqueue: Use iterate_internal_links instead of deprecated get_internal_links
Sebastian Dröge [Tue, 18 Aug 2009 12:05:40 +0000 (14:05 +0200)]
gstpad: Add some DISABLE_DEPRECATED markers in the header too
The internal links function is deprecated since some time and
there already were GST_REMOVE_DEPRECATED markers in the source file,
now add them to the header too.
Fixes bug #592209.
Sebastian Dröge [Tue, 18 Aug 2009 09:38:38 +0000 (11:38 +0200)]
docs: Update the design docs for bin state changes according to last commit
Antoine Tremblay [Tue, 18 Aug 2009 09:36:36 +0000 (11:36 +0200)]
gstbin: Don't try to change children's state if they're already in the state we want
Fixes bug #368536.
Sebastian Dröge [Tue, 18 Aug 2009 09:33:17 +0000 (11:33 +0200)]
ghostpad: Always get the proxypad's ghostpad via the ghostpad in the src caps change notify handler
Before the signal handler would get the ghostpad passed as second
argument but it could've already been unreffed and destroyed.
This would then lead to crashes and all that.
Now we get the ghostpad from the proxy pad, which we get from the
target pad as it's peer.
Fixes bug #591318.
Laurent Glayal [Tue, 18 Aug 2009 06:45:08 +0000 (08:45 +0200)]
filesink: Add property to allow to append to an already existing file
Fixes bug #591441.
Sebastian Dröge [Fri, 14 Aug 2009 09:53:14 +0000 (11:53 +0200)]
configure: Remove duplicated check for clock_gettime
Sebastian Dröge [Fri, 14 Aug 2009 09:12:50 +0000 (11:12 +0200)]
gstutils: Add special random unit test for 64 scaling functions
This tests 100000 random multiplications/divisions of all scaling
function variants and compares the result with the result that is
generated by GMP on the same input.
For this check for GSL and GMP during configure but only use
it for this single unit test.
Testing functions were provided by Kipp Cannon <kcannon@ligo.caltech.edu>
Sebastian Dröge [Thu, 13 Aug 2009 14:31:01 +0000 (16:31 +0200)]
gstutils: Add new scaling functions to the docs
Sebastian Dröge [Thu, 13 Aug 2009 14:20:46 +0000 (16:20 +0200)]
gstutils: Add (very) minimal unit test for the new rounding scaling functions
Kipp Cannon [Thu, 13 Aug 2009 14:10:31 +0000 (16:10 +0200)]
gstutils: API: Add rounding to nearest and next integer versions of the 64 bit integer scaling functions
The new functions are
gst_util_uint64_scale_int_round()
gst_util_uint64_scale_int_ceil()
gst_util_uint64_scale_round()
gst_util_uint64_scale_ceil()
Fixes bug #590919.
Kipp Cannon [Wed, 12 Aug 2009 09:10:05 +0000 (11:10 +0200)]
gstutils: Revert parts of last change to optimize the scaling functions again
Partially fixes bug #590919.
Sebastian Dröge [Tue, 11 Aug 2009 07:16:38 +0000 (09:16 +0200)]
gstutils: Fix violations of strict-aliasing rules in gst_util_uint64_scale()
Kipp Cannon [Tue, 11 Aug 2009 07:10:47 +0000 (09:10 +0200)]
gstutils: Refactor gst_util_uint64_scale()
This will later make it possible to provide rounding versions
of it without much code duplication.
Partially fixes bug #590919.
Jonas Holmberg [Tue, 11 Aug 2009 13:20:18 +0000 (15:20 +0200)]
bufferlist: update doc string
Sebastian Dröge [Tue, 11 Aug 2009 11:21:35 +0000 (13:21 +0200)]
gstsegment: Actually start==stop==segment_start is inside the segment
Still the old code was wrong as it claimed that start==stop<segment_start
would be inside the segment and returned insane clipping differences.
Sebastian Dröge [Tue, 11 Aug 2009 11:03:03 +0000 (13:03 +0200)]
gstsegment: Fix unit test and add an additional test
The previous test assumed that start=stop=segment_start will
be inside the segment but this is wrong.
Sebastian Dröge [Tue, 11 Aug 2009 10:59:13 +0000 (12:59 +0200)]
gstsegment: Clipping should detect start=stop<segment_start as outside the segment
Before it returned that [start,stop] is inside the segment and that the
difference between segment_start and start needs to be clipped. If the
clipping is done on a buffer (like in baseaudiosink) this will result
in the data pointer being at a invalid memory position.
Fixes bug #589849.
Sebastian Dröge [Tue, 11 Aug 2009 03:47:21 +0000 (05:47 +0200)]
gstbus: Unref pipeline after usage in test_custom_main_context unit test
This makes the core unit tests valgrind clean again.
Edward Hervey [Tue, 11 Aug 2009 01:54:55 +0000 (02:54 +0100)]
docs: add Edward's git plugin moving howto to moving-plugins document
Tim-Philipp Müller [Mon, 10 Aug 2009 13:30:34 +0000 (14:30 +0100)]
checks: don't forget to include config.h in the GstObject unit test
Tim-Philipp Müller [Mon, 10 Aug 2009 12:05:57 +0000 (13:05 +0100)]
checks: try to fix GstObject unit test on OSX
Seems like we get SIGBUS instead of SIGSEGV here when GLib crashes
where it shouldn't crash (and we even have a unit test for that!).
Tim-Philipp Müller [Mon, 10 Aug 2009 11:01:48 +0000 (12:01 +0100)]
checks: set pipelines to NULL state in parse-launch unit test
Fixes timeouts in gst_task_cleanup_all().
Tim-Philipp Müller [Mon, 10 Aug 2009 10:42:25 +0000 (11:42 +0100)]
checks: set pipeline back to NULL state in GstBus unit test
Fixes timeout in gst_task_cleanup_all().
Tim-Philipp Müller [Mon, 10 Aug 2009 10:43:52 +0000 (11:43 +0100)]
check: add some logging before calling gst_task_cleanup_all()
Sebastian Dröge [Sat, 8 Aug 2009 20:27:06 +0000 (22:27 +0200)]
check: Call gst_task_cleanup_all() in GST_END_TEST
This fixes many unit tests under valgrind that shows
leaking GstTasks that are not really leaked but just
not unreffed by the task thread before the unit test
stopped.
Fixes bug #591045.
Edward Hervey [Sat, 8 Aug 2009 12:47:57 +0000 (14:47 +0200)]
basesink: Remove dead assignments
Edward Hervey [Sat, 8 Aug 2009 12:47:40 +0000 (14:47 +0200)]
gst: Remove dead assignments
Tim-Philipp Müller [Fri, 7 Aug 2009 01:36:29 +0000 (02:36 +0100)]
gitignore: ignore new queue-error test
Tim-Philipp Müller [Thu, 6 Aug 2009 19:40:07 +0000 (20:40 +0100)]
check: add internal-check.h to BUILT_SOURCES in attempt to fix the build
For some people the build of libgstcheck was broken because the make
target that creates the internal-check.h file wasn't executed for
some reason. This should hopefully fix this.
Tim-Philipp Müller [Thu, 6 Aug 2009 17:38:16 +0000 (18:38 +0100)]
autogen.sh: older aclocals don't like -I. so use -I . instead
Wim Taymans [Thu, 6 Aug 2009 16:47:32 +0000 (18:47 +0200)]
gstbuffer: add additional checking for writability
Check for metadata writability when setting caps on buffer or when copying
metadata flags. Only enable these extra assertions in git versions.
This should help us find bad elements.
Tim-Philipp Müller [Tue, 4 Aug 2009 09:22:25 +0000 (10:22 +0100)]
check: disable unit test support on win32 for now
Until we make the internal libcheck work on windows.
Tim-Philipp Müller [Sun, 19 Jul 2009 16:04:58 +0000 (17:04 +0100)]
check: fix symbol exporting
Tim-Philipp Müller [Thu, 16 Jul 2009 23:46:32 +0000 (00:46 +0100)]
check: fix issues with 'make distcheck'
Seems to work now, at least on *nix. One of the configure checks
caused these weird issues - but which one?
Tim-Philipp Müller [Thu, 6 Aug 2009 16:27:12 +0000 (17:27 +0100)]
check: use private copy of check for libgstcheck
See #577275. Seems to work fine, but doesn't distcheck yet.
Tim-Philipp Müller [Thu, 16 Jul 2009 17:39:16 +0000 (18:39 +0100)]
check: add internal copy of check-0.9.6
Not hooked up yet. See #577275.
Tim-Philipp Müller [Thu, 6 Aug 2009 13:11:46 +0000 (14:11 +0100)]
docs: fix Since: tag for new gst_caps_can_intersect() function
Stefan Kost [Wed, 22 Jul 2009 08:24:59 +0000 (11:24 +0300)]
utils: use new _caps_can_intersect()
Stefan Kost [Wed, 22 Jul 2009 08:24:08 +0000 (11:24 +0300)]
pad: use new _caps_can_intersect()
Stefan Kost [Wed, 22 Jul 2009 06:54:55 +0000 (09:54 +0300)]
basetransform: use new _caps_can_intersect()
Stefan Kost [Wed, 22 Jul 2009 06:38:10 +0000 (09:38 +0300)]
caps: add gst_caps_can_intersect()
Often we don't need the result of the intersection. Add a variant that only
tries to intersect. It can break out earlier and does less GValue copying.
API: gst_caps_can_intersect()
Stefan Kost [Wed, 22 Jul 2009 06:24:55 +0000 (09:24 +0300)]
basetransform: only check caps_is_fixed() if they changed
The previous code could call gst_caps_is_fixed() for the same caps many times.
Stefan Kost [Tue, 21 Jul 2009 10:31:13 +0000 (13:31 +0300)]
caps: split callback for structure intersect into two functions
We call this separately. there is no much benefit in reusing the callback.
Splitting is let us remove a branch also.
Stefan Kost [Tue, 21 Jul 2009 10:27:09 +0000 (13:27 +0300)]
logging: log if we copy caps to be able to track it
Stefan Kost [Tue, 21 Jul 2009 08:32:01 +0000 (11:32 +0300)]
caps: add comments about g_ptr_array size behaviour
Just explain the behaviour to avoid that someone else is wasting time trying to
improve this too.
Stefan Kost [Tue, 21 Jul 2009 08:14:20 +0000 (11:14 +0300)]
example: unref the clock id
Stefan Kost [Tue, 21 Jul 2009 07:56:53 +0000 (10:56 +0300)]
pad: use correct variable in test
Stefan Kost [Tue, 28 Jul 2009 13:13:37 +0000 (16:13 +0300)]
registry: add filename to debug message, like elsewhere
Stefan Kost [Tue, 21 Jul 2009 07:38:15 +0000 (10:38 +0300)]
bin: fix compiler warning about unused var when disabling debug logging
Mark Nauwelaerts [Thu, 6 Aug 2009 11:29:29 +0000 (13:29 +0200)]
queue: post error message when pausing task
If downstream returns error and upstream has already delivered
everything (including EOS) and will no longer be around to find
out that we paused (and why), post error message. Fixes #589991.
Mark Nauwelaerts [Tue, 28 Jul 2009 10:03:36 +0000 (12:03 +0200)]
queue: add unit test
Make a downstream element return an error after upstream has already
put all data into queue (including EOS). As such, upstream
will not be around to pick up the error, so it is up to queue to
act appropriately. See #589991.
Note there may be downstream fatal errors (e.g. negotiation) that do
not warrant an error message already having been posted.
Wim Taymans [Wed, 5 Aug 2009 16:02:31 +0000 (18:02 +0200)]
basetransform: clarify _caps_is_equal()
Wim Taymans [Wed, 5 Aug 2009 15:58:20 +0000 (17:58 +0200)]
basetransform: refactor metadata modifications
Check when we need to touch the metadata of the output buffer after selecting
the output buffer so that we have everything in one place.
Also take flags and timestamp modifications into account.
Wim Taymans [Wed, 5 Aug 2009 15:55:14 +0000 (17:55 +0200)]
capsfilter: only set caps when different
When we have an input buffer with caps and when those caps are different from
the caps we want, only then make a writable copy of the input buffer as the
output buffer and set the caps on that output buffer. This avoids some cases
where we took a subbuffer for setting caps that were the same.
Wim Taymans [Wed, 5 Aug 2009 13:28:59 +0000 (15:28 +0200)]
basetransform: enable optimisation
When we have the same input as output caps, reuse the input caps object. After
the caps refcounting has been sorted out now, we can finally enable this
optimisation.
Wim Taymans [Wed, 5 Aug 2009 11:48:40 +0000 (13:48 +0200)]
tests: don't set caps on unwritable buffers
Take the ref after setting the caps on a buffer because else the buffer is
techinically not writable.
Wim Taymans [Wed, 5 Aug 2009 11:47:33 +0000 (13:47 +0200)]
queue: get caps after making writable
Get the caps of the buffer after we made the buffer writable. This did not
cause any problems but it's nicer this way.
Wim Taymans [Wed, 5 Aug 2009 11:46:42 +0000 (13:46 +0200)]
capsfilter: fix refcounting problem
Make sure the metadata is writable before setting the caps on a buffer.
Wim Taymans [Wed, 5 Aug 2009 11:44:51 +0000 (13:44 +0200)]
basetransform: fix refcounting problem
Add some more debug info.
Make sure that the output buffer has writable metadata before we attempt to set
caps on it.
fixes #583999
Wim Taymans [Wed, 5 Aug 2009 11:44:13 +0000 (13:44 +0200)]
caps: add some more debugging in _replace
Wim Taymans [Wed, 5 Aug 2009 11:43:10 +0000 (13:43 +0200)]
pad: Add some more debugging
Wim Taymans [Wed, 5 Aug 2009 11:41:33 +0000 (13:41 +0200)]
ghostpad: small improvements
Unref the target pad after we used it for debugging.
Add some more debug.
Only replace caps when they changed.
Wim Taymans [Wed, 29 Jul 2009 11:46:35 +0000 (13:46 +0200)]
basesink: cleanups in position queries
Use existing boolean flag to pass position queries upstream. Also add upstream
queries for the last position queries.
Tim-Philipp Müller [Wed, 5 Aug 2009 12:25:33 +0000 (13:25 +0100)]
configure.ac: fix libxml2 check, which is only needed for xml load/save now
Since the registry doesn't use libxml2 any longer, it's no longer necessary
to disable both xml load/save *and* the registry to get rid of the libxml2
dependency, disabling just xml loading/saving is enough. Fixes #590841.
Tim-Philipp Müller [Sun, 2 Aug 2009 13:33:59 +0000 (14:33 +0100)]
gst-uninstalled: rename uninstalled registry file to registry.dat
We're not using the xml registry any longer after all.
Tim-Philipp Müller [Sun, 2 Aug 2009 13:28:38 +0000 (14:28 +0100)]
gst-uninstalled: refine search paths for uninstalled plugin modules
Use more refined search paths for our plugin modules. Not only does
this make things much faster in an uninstalled setup, it also makes
sure we're not accidentally using out-of-date plugins built ages
ago as part of a (failed) 'make distcheck' when we forget to clean
up the distcheck build directory.
Tim-Philipp Müller [Wed, 29 Jul 2009 22:42:39 +0000 (23:42 +0100)]
docs: dist GStreamer-1.0 buffer design draft
Sebastian Dröge [Thu, 6 Aug 2009 04:50:41 +0000 (06:50 +0200)]
taglist: Add new ALBUM_ARTIST tag to the docs
John Millikin [Tue, 4 Aug 2009 12:13:34 +0000 (14:13 +0200)]
taglist: Add support for ALBUM_ARTIST tag
The "album artist" tag is used when the artist of an entire
album differs from the artist of an individual track; for example,
when a "guest artist" appears on an album, or on compilations.
Fixes bug #590430.
Stian Selnes [Wed, 29 Jul 2009 11:33:11 +0000 (13:33 +0200)]
basesink: Query upstream for the position if conversion in PAUSED failed
Fixes bug #590045.
Kipp Cannon [Tue, 28 Jul 2009 18:42:20 +0000 (20:42 +0200)]
basetransform: Improve debug output in gst_base_transform_acceptcaps()
Fixes bug #589524.
Sebastian Dröge [Wed, 22 Jul 2009 07:01:56 +0000 (09:01 +0200)]
basetransform: Don't unset GAP flag if working in passthrough mode
Fixes bug #589314.
Jan Schmidt [Thu, 6 Aug 2009 00:43:57 +0000 (01:43 +0100)]
back to development -> 0.10.24.1
Jan Schmidt [Tue, 4 Aug 2009 23:51:16 +0000 (00:51 +0100)]
Release 0.10.24
Jan Schmidt [Tue, 4 Aug 2009 22:05:27 +0000 (23:05 +0100)]
Update .po files
Mark Nauwelaerts [Mon, 3 Aug 2009 13:31:22 +0000 (15:31 +0200)]
bytereader: avoid wrap-around in buffer size checks. Fixes #590622.
Jan Schmidt [Thu, 30 Jul 2009 13:41:30 +0000 (14:41 +0100)]
0.10.24.5 pre-release
Edward Hervey [Tue, 28 Jul 2009 19:15:52 +0000 (21:15 +0200)]
collectpads: Get the flushing state with the object lock taken.
Fixes #590056
Edward Hervey [Tue, 28 Jul 2009 19:14:11 +0000 (21:14 +0200)]
collectpads: Make sure the CollectData list is up-to-date when reading/setting it
Without this, we risked:
* Checking the flushing state on an unexisting list
* Not setting the flushing state on pads that had just been added
Partially fixes #590056
Edward Hervey [Tue, 28 Jul 2009 19:12:25 +0000 (21:12 +0200)]
collectpads: Split out _check_pads into a version without lock taking.
This is so we can use _check_pads in places where we've already taken
the lock in question.
Partially fixes #590056
Tim-Philipp Müller [Tue, 28 Jul 2009 14:23:15 +0000 (15:23 +0100)]
check: make new GstStreamConsistency structure private
There's no need to have GstStreamConsistency in a public header for
the time being, so make it private. While we're at it, add a gtk-doc
blurb for it though. Re-fixes #588744.
Jan Schmidt [Fri, 24 Jul 2009 12:50:19 +0000 (13:50 +0100)]
0.10.23.4 pre-release
Robin Stocker [Fri, 24 Jul 2009 08:50:19 +0000 (09:50 +0100)]
basesrc: don't handle SEEKING queries for formats that don't match the one the source operates in
Return FALSE in basesrc's default query handler when we get a SEEKING query for
a format that's not the one the source operates in. Previously (ie. before, in
the git version) we would return TRUE in that case and seekable=FALSE, which
is more correct, but causes backwards compatibility problems. (Before that
we would change the format of the query when answering, which was completely
broken since callers don't expect that or check for it). Since the SEEKING
query is a fairly recent addition, not all demuxers, parsers and decoders
implement it yet, in which case any SEEKING query by an application will
just be passed upstream where it will then be handled by basesrc. Now, if
e.g. totem does a SEEKING query for TIME format and we have a demuxer that
doesn't implement the query, basesrc would answer it with seekable=FALSE in
most cases, and totem can only take that as authoritative answer, not knowing
that the demuxer doesn't implement the SEEKING query. To avoid this, we make
basesrc return FALSE to SEEKING queries in unhandled formats. That way
applications like totem can fall back on assuming seekability depending on
whether a duration is available, or somesuch. Downstream elements doing
such queries are likely to equate an unhandled query with a non-seekable
response as well, so this should be an acceptable fix for the time being.
See #584838, #588944, #589423 and #589424.