Wim Taymans [Mon, 29 Jun 2009 09:56:10 +0000 (11:56 +0200)]
bufferlist: use faster gst_buffer_list_get()
Use the faster gst_buffer_list_get() to get the first buffer of a list.
Wim Taymans [Mon, 29 Jun 2009 09:55:14 +0000 (11:55 +0200)]
bufferlist: fix example
The _do function now takes user_data in all cases.
Ognyan Tonchev [Mon, 29 Jun 2009 09:46:00 +0000 (11:46 +0200)]
basesink: take timestamp later
Make sure we don't accidentally cast a bufferlist of a buffer and try to take
the timestamp of it.
Refixes #585960
Jonas Holmberg [Mon, 29 Jun 2009 09:07:00 +0000 (11:07 +0200)]
docs: fix some typos
Stefan Kost [Mon, 29 Jun 2009 08:24:04 +0000 (11:24 +0300)]
logging: add a performace log category
This category can be used to log slow code path and help auditing the
performance. Add FIXME-0.11 to some questionable categories.
Stefan Kost [Sat, 27 Jun 2009 13:34:36 +0000 (16:34 +0300)]
structure: fix int->gint to be in sync with the *.h and usage
Jan Schmidt [Fri, 26 Jun 2009 12:33:50 +0000 (13:33 +0100)]
autogen.sh: Use printf instead of 'echo -n'. Check for automake-1.1[01]
Check for more automake command variants. Use printf instead of 'echo -n'
for portability
Jan Schmidt [Fri, 26 Jun 2009 12:41:11 +0000 (13:41 +0100)]
Automatic update of common submodule
From f810030 to 5845b63
Stefan Kost [Fri, 26 Jun 2009 09:50:53 +0000 (12:50 +0300)]
request-pad: tell about ref counts in release_request_pad docs.
It is not too obvious that getting and releasing request pads is not entierly
symetrical regarding to the pad refcount. Add a note about that to the docs.
This might deserve a FIXME-0.11 too.
Tim-Philipp Müller [Thu, 25 Jun 2009 10:25:46 +0000 (11:25 +0100)]
basesink: don't do things with side effects within a g_assert()
Make the bufferlist stuff work properly when things are compiled
with -DG_DISABLE_ASSERT.
Wim Taymans [Wed, 24 Jun 2009 16:31:08 +0000 (18:31 +0200)]
caps: avoid doing logic in g_assert
Make sure we still do the right thing when glib is compiled without
assertions.
Jan Schmidt [Mon, 22 Jun 2009 04:00:54 +0000 (05:00 +0100)]
multiqueue: Fire the overrun signal on EOS
Fixes startup of some short MPEG files with decodebin2/playbin2
where all the data fits in the multiqueue and EOS arrives before
the group is exposed.
Jan Schmidt [Wed, 24 Jun 2009 14:13:37 +0000 (15:13 +0100)]
Automatic update of common submodule
From f3bb51b to f810030
Edward Hervey [Sat, 28 Mar 2009 12:59:08 +0000 (13:59 +0100)]
GstStructure: Use direct values for repetitive conditionals (for/while).
Edward Hervey [Wed, 24 Jun 2009 08:45:52 +0000 (10:45 +0200)]
miniobjects: Don't chain up to empty finalize method.
If ever we do anything in mini_object_finalize, we should make sure the 4
core miniobject finalize methods chain back up again.
Edward Hervey [Fri, 27 Mar 2009 19:17:15 +0000 (20:17 +0100)]
gstcaps: Use direct values for repetitive conditionals (for/while).
Tim-Philipp Müller [Wed, 24 Jun 2009 08:28:01 +0000 (09:28 +0100)]
make check: add check for enum type class unrefs in gst_deinit() too
Just because we can really.
Wim Taymans [Tue, 23 Jun 2009 11:44:50 +0000 (13:44 +0200)]
trace: use proper locking in GstTrace
Protect the allocated list of objects with a lock so that trace actually works
reliably.
Shortcut the alloc trace sooner when disabled.
Wim Taymans [Tue, 23 Jun 2009 11:34:35 +0000 (13:34 +0200)]
object: also add pointers to debug
Add the object pointers in the debug info for _replace.
Chad Hanna [Tue, 23 Jun 2009 10:56:59 +0000 (12:56 +0200)]
capsfilter: Add GAP flag support
capsfilter doesn't actually touch the data so we don't want the GAP flag to
be unset by basetransform.
Fixes bug #586566.
Wim Taymans [Tue, 23 Jun 2009 08:05:03 +0000 (10:05 +0200)]
defs: add new byte reader methods
Tim-Philipp Müller [Fri, 22 May 2009 13:47:33 +0000 (14:47 +0100)]
bytereader: add a bunch of utility functions for strings and a data dup function
API: gst_byte_reader_dup_data
API: gst_byte_reader_dup_string
API: gst_byte_reader_dup_string_utf8
API: gst_byte_reader_dup_string_utf16
API: gst_byte_reader_dup_string_utf32
API: gst_byte_reader_skip_string
API: gst_byte_reader_skip_string_utf8
API: gst_byte_reader_skip_string_utf16
API: gst_byte_reader_skip_string_utf32
API: gst_byte_reader_peek_string
API: gst_byte_reader_peek_string_utf8
API: gst_byte_reader_get_string
API: gst_byte_reader_get_string_utf8
And some basic unit tests. Fixes #586568.
Stefan Kost [Mon, 22 Jun 2009 15:17:28 +0000 (18:17 +0300)]
taglist: fix typo in tag description
Tim-Philipp Müller [Sat, 20 Jun 2009 23:26:33 +0000 (00:26 +0100)]
tests: fix crash and leak in bufferlists unit test
Don't access already-freed iterator, makes check-valgrind work and fixes
crash on PPC; unref buffer we're going to steal to make valgrind happy.
Jan Schmidt [Sat, 20 Jun 2009 23:09:53 +0000 (00:09 +0100)]
init: Fix indent, and ref the gst_buffer_list_item_get_type() class
Fix the check tests by reffing the GstBufferList class. Run gst-indent
to make git happy about some existing stuff
Tim-Philipp Müller [Fri, 19 Jun 2009 20:03:46 +0000 (21:03 +0100)]
gst-inspect: fix broken flags to flag string serialisation
e.g. cdparnoiasrc would show fragment|full for a flags value of 2.
Wim Taymans [Fri, 19 Jun 2009 17:35:04 +0000 (19:35 +0200)]
tee: add buffer-list support
Wim Taymans [Fri, 19 Jun 2009 17:24:56 +0000 (19:24 +0200)]
bufferlist: remove old enum from docs
Tim-Philipp Müller [Fri, 19 Jun 2009 13:45:42 +0000 (14:45 +0100)]
gstinfo: define __gst_debug_min to LOG_LEVEL_NONE if debugging is disabled
Just in case someone who clearly can't be deterred by any number of leading
underscores uses this very private but still somewhat documented symbol
directly in their code (*cough* qtdemux *cough*).
Wim Taymans [Fri, 19 Jun 2009 13:29:14 +0000 (15:29 +0200)]
bufferlist: Various cleanups
Add new method to iterate a bufferlist without having to allocate an iterator.
Add convenience method for getting an item from the list based on the group and
index.
Remove redundant _do_data callback and method.
Update unit-tests and add some more for the new methods.
Tim-Philipp Müller [Fri, 19 Jun 2009 13:10:30 +0000 (14:10 +0100)]
docs: make gtk-doc happy
Tim-Philipp Müller [Fri, 19 Jun 2009 12:51:59 +0000 (13:51 +0100)]
po: update .po files after string changes
Tim-Philipp Müller [Fri, 19 Jun 2009 12:48:48 +0000 (13:48 +0100)]
fdsink: clean up some more error and debug messages
Tim-Philipp Müller [Fri, 19 Jun 2009 12:42:45 +0000 (13:42 +0100)]
taskpool: fix unused variable warning in case debugging is disabled
Tim-Philipp Müller [Fri, 19 Jun 2009 12:40:13 +0000 (13:40 +0100)]
gstinfo: fix export of GST_CAT_BUFFER_LIST when --gst-disable-debug is used
Move all the categories to export to one single place, so we don't
accidentally update or add vars in one place but not the other.
Wim Taymans [Thu, 18 Jun 2009 14:50:42 +0000 (16:50 +0200)]
collectpads: use the right flushing flag.
We need to use the pad private flag because the other pad flag is protected with
the pad lock instead.
Edward Hervey [Thu, 18 Jun 2009 14:41:46 +0000 (16:41 +0200)]
collectpads: Properly handle flushing pads.
If a pad is flushing, it should not be considered as either eos or
containing data.
Tim-Philipp Müller [Thu, 18 Jun 2009 10:27:21 +0000 (11:27 +0100)]
fdsink: fix error message
Users should never see the term 'file descriptor', much less a file
descriptor number, in an error message. Put that into the debug
string instead and use the default error message.
Wim Taymans [Thu, 18 Jun 2009 09:49:33 +0000 (11:49 +0200)]
fdsink: add the new field in the header
Benjamin Gaignard [Thu, 18 Jun 2009 08:55:39 +0000 (10:55 +0200)]
fdsink: make fdsink seekable
Implement the same logic as filesink to implement seeking.
Fixes #578908
Josep Torra [Wed, 17 Jun 2009 14:45:17 +0000 (16:45 +0200)]
gstelement: moved the clock unref to the right place
Josep Torra [Wed, 17 Jun 2009 14:17:27 +0000 (16:17 +0200)]
gstelement: unref the clock when the element changes to null state
Руслан Ижбулатов [Tue, 16 Jun 2009 20:29:40 +0000 (00:29 +0400)]
Replaced deprecated win32-compatibility function with undeprecated one.
Fixes #560442.
Josep Torra [Tue, 16 Jun 2009 16:32:12 +0000 (18:32 +0200)]
gstbin: swap the lines of my previous commit
Fixes a bug introduced in my previous commit that released the
clock provider and after used it to create the clock lost message.
Josep Torra [Tue, 16 Jun 2009 15:51:12 +0000 (17:51 +0200)]
gstbin: remove clock references when clock lost happens
Remove reference to clock and clock provider stored in the bin
when the clockprovider element is removed from the bin.
Wim Taymans [Tue, 16 Jun 2009 11:34:38 +0000 (13:34 +0200)]
basesink: add Since tag for new method
Branko Subasic [Tue, 16 Jun 2009 11:32:37 +0000 (13:32 +0200)]
basesink: add support for buffer list
Fixes #585960
Branko Subasic [Tue, 16 Jun 2009 09:34:54 +0000 (11:34 +0200)]
ghostpad: Add support for GstBufferLists
Fixes #585834
Christopher Halse Rogers [Tue, 16 Jun 2009 09:21:42 +0000 (11:21 +0200)]
iterator: Explicitly mention refcounting in docs
Fixes #585938
Tim-Philipp Müller [Tue, 16 Jun 2009 07:43:53 +0000 (08:43 +0100)]
gstxml: fix (de)serialisation of properties of type GstStructure
souphttpsrc has a property of type GstStructure, which causes an
assertion when serialising it to xml. Fixes #585137.
Tim-Philipp Müller [Mon, 15 Jun 2009 19:11:05 +0000 (20:11 +0100)]
queue: fix compiler warning
The compiler suggests to add some () to indicate if the && or the || takes
priority, so reflow code a bit so we don't have to add yet another layer
of (). Hopefully this was the intended meaning of the code.
Arnout Vandecappelle [Thu, 11 Jun 2009 13:00:52 +0000 (15:00 +0200)]
don't lock when min-threshold and max-size conflict.
When min-threshold is set on a queue, it is possible that one of
the minima remains unsatisfied while one of the maxima is already
reached. Therefore, always consider the queue non-empty if it is full.
Fixes #585433.
Wim Taymans [Mon, 15 Jun 2009 16:44:45 +0000 (18:44 +0200)]
bin: make sure we set the next state correctly
When the continue function is scheduled, make sure we set the next state instead
of the pending state.
Add some more debug info.
fixes #585569
Wim Taymans [Mon, 15 Jun 2009 16:44:14 +0000 (18:44 +0200)]
collectpads: fix .h indentation
Wim Taymans [Mon, 15 Jun 2009 16:43:52 +0000 (18:43 +0200)]
basesrc: add some more debug
Wim Taymans [Mon, 15 Jun 2009 16:42:59 +0000 (18:42 +0200)]
debug: add some more debug to element and pads
Руслан Ижбулатов [Sun, 14 Jun 2009 12:56:32 +0000 (16:56 +0400)]
segment: fix include order to get config.h before _mingw.h
config.h must always be included before any other includes, either
directly or indirectly via gst_private.h. Fixes #585733.
Tim-Philipp Müller [Sun, 14 Jun 2009 15:17:50 +0000 (16:17 +0100)]
taglist: add functions to create a new taglist with tags in one go
Add functions to create a new tag list and set tags in one go, which
is nice for use in combination with functions that take ownership of
the taglist, such as gst_event_new_tag() or gst_element_found_tags().
API: add gst_tag_list_new_full()
API: add gst_tag_list_new_full_valist()
Thomas Vander Stichele [Sat, 13 Jun 2009 12:55:43 +0000 (14:55 +0200)]
git-version.sh: make executable
Thomas Vander Stichele [Sat, 13 Jun 2009 12:53:24 +0000 (14:53 +0200)]
Update scripts/cvs-update.sh to git-update.sh; add git-version.sh
add script to get git versions
first update all, then build
add gnonlin too
specify where to pull from
also update submodule
rename and change cvs-update script to git-update
Tim-Philipp Müller [Fri, 12 Jun 2009 17:36:15 +0000 (18:36 +0100)]
bytereader: add gst_byte_reader_masked_scan_uint32()
Add a pattern scan function similar to the one recently added to
GstAdapter, and a unit test (based on the adapter one).
Fixes #585592.
API: add gst_byte_reader_masked_scan_uint32()
René Stadler [Fri, 17 Apr 2009 14:59:38 +0000 (17:59 +0300)]
Fix remaining --disable-gst-debug ABI breakage.
Fixes #579177.
Stefan Kost [Fri, 12 Jun 2009 14:51:22 +0000 (17:51 +0300)]
filesrc/sink: turn the bus messages into g_warning
Its a programming error.
Wim Taymans [Fri, 12 Jun 2009 13:48:35 +0000 (15:48 +0200)]
message: fix docs
Wim Taymans [Fri, 12 Jun 2009 11:18:21 +0000 (13:18 +0200)]
stepping: more stepping improvements
Update design doc with step-start docs.
Add eos field to step done message
when stepping in reverse, update the segment time field.
Flush out the current step when we are flushing.
Wim Taymans [Wed, 10 Jun 2009 13:51:40 +0000 (15:51 +0200)]
basesink: post step-start
when we clip, also stop the stepping.
Don't do QoS when stepping
Post step-start when queueing and activating the step.
Wim Taymans [Wed, 10 Jun 2009 13:48:35 +0000 (15:48 +0200)]
message: add step-start message
Tim-Philipp Müller [Thu, 11 Jun 2009 13:18:03 +0000 (14:18 +0100)]
gstvalue: more efficient value table lookup for fundamental types
Small micro-optimisation: look up value table for fundamental types
via an array dedicated to fundamental types instead of going through
a hash table lookup. Since there can be only 255 fundamental types,
the table size/efficiency trade-off should be acceptable, esp. since
the most commonly-used types are all fundamental types. The size of
the table could probably be minimised further if needed by allocating
the table dynamically and only expanding it on demand.
Tim-Philipp Müller [Thu, 11 Jun 2009 12:16:15 +0000 (13:16 +0100)]
gstvalue: don't put GTypes into int variables
GTypes are not ints and as such are not guaranteed to fit into an int
(with the exception of fundamental types), so we really shouldn't put
them into int variables. Even if a rather unlikely obscure corner case,
this has actually been a problem at some point in the past, see commit
99f16655f4cfbc8e06b5972417ba11279083a64e.
Stefan Kost [Thu, 11 Jun 2009 14:03:04 +0000 (17:03 +0300)]
filesrc/sink: improve warning message a bit (wrong state)
Unify and turn those into element warnings.
Jan Schmidt [Thu, 11 Jun 2009 13:00:09 +0000 (14:00 +0100)]
elementfactory: Fix a compiler warning
Use (gpointer) instead of (gpointer *) to fix a strict-aliasing build warning.
Jan Schmidt [Thu, 11 Jun 2009 12:16:29 +0000 (13:16 +0100)]
docs: Bump common, fix the upload logic inclusion
Update the common submodule, and fix the docs upload rules to include
the right makefile snippet from common.
Jan Schmidt [Tue, 9 Jun 2009 10:13:04 +0000 (11:13 +0100)]
multiqueue: Use the slice allocator for MultiQueueItems
Tim-Philipp Müller [Wed, 10 Jun 2009 19:29:41 +0000 (20:29 +0100)]
Make sure config.h is only included once
Fixes build problem on win32 (#585075).
Stefan Kost [Wed, 10 Jun 2009 15:05:47 +0000 (18:05 +0300)]
plugin: add since: tags for the api docs.
The previous related commit added new API.
API: add gst_plugin_get_cache_data, gst_plugin_set_cache_data
Stefan Kost [Wed, 10 Jun 2009 09:02:23 +0000 (12:02 +0300)]
plugin: fix leaks introduced by fix for #584389
Tim-Philipp Müller [Mon, 8 Jun 2009 22:43:16 +0000 (23:43 +0100)]
structure: add gst_structure_*_get*() vararg functions
Add a bunch of vararg getter convenience functions to complement
the vararg setter functions, and a basic unit test. Fixes #534208.
API: gst_structure_get()
API: gst_structure_id_get()
API: gst_structure_get_valist()
API: gst_structure_id_get_valist()
Tim-Philipp Müller [Mon, 8 Jun 2009 23:16:05 +0000 (00:16 +0100)]
docs: a few small API doc fixes and additions
Tim-Philipp Müller [Mon, 8 Jun 2009 18:33:55 +0000 (19:33 +0100)]
logging: when logging taglists, shorten long buffer dumps
Don't dump hundreds of kB of hexdata into debug logs when converting
taglists containing huge images into a string. Instead, shorten the
buffer data so that the string is still readable and debug logs
stay managable. Can be turned off with GST_DEBUG_OPTIONS=full-tags.
See #584988.
Wim Taymans [Tue, 9 Jun 2009 11:07:34 +0000 (13:07 +0200)]
multiqueue: check byte range even when we have timestamps
As found by thaytan on IRC.
Also check the byte limit, even if we have timestamps because there might just
not be a time limit.
Wim Taymans [Tue, 9 Jun 2009 10:06:35 +0000 (12:06 +0200)]
basesink: update segment start/stop for clipping
When we start stepping, store the start/stop values of the segment before we
install new start/stop values for clipping in non-flushing steps.
for non-flushing steps, update the element start time. For flushing steps, it
does not change because running_time does not advance
Make sure we always perform the stop_stepping operations even when we drop
frames.
Wim Taymans [Tue, 9 Jun 2009 08:25:34 +0000 (10:25 +0200)]
basesink: do proper clipping in stepping
Update the stop position of the segment so that we clip correctly.
After clipping in non-flushing mode, rerender the remainder of the buffer.
Wim Taymans [Tue, 9 Jun 2009 08:23:23 +0000 (10:23 +0200)]
segment: make conversion more precise
Make sure the conversion from and the conversion to give the same results.
Tim-Philipp Müller [Mon, 8 Jun 2009 14:39:59 +0000 (15:39 +0100)]
utils: gst_util_uint64_scale*() micro-optimisations
Sprinkle G_LIKELY/G_UNLIKELY; add inlined _scale_int_unchecked()
so we don't do some checks twice when calling it from _scale().
Tim-Philipp Müller [Sun, 7 Jun 2009 21:49:01 +0000 (22:49 +0100)]
Remove double semicolons at end of line
Wim Taymans [Mon, 8 Jun 2009 15:39:47 +0000 (17:39 +0200)]
stepping: do flushing steps correctly
Note in the docs that a flushing step in PLAYING brings the pipeline to the lost
state and skips the data before prerolling again.
Implement the flushing step correctly by invalidating the current step
operation, which would activate the new step operation.
Jan Schmidt [Mon, 8 Jun 2009 15:16:27 +0000 (16:16 +0100)]
basesink: Change awkward wording in a translateable message.
Wim Taymans [Mon, 8 Jun 2009 14:27:36 +0000 (16:27 +0200)]
basesink: add non-flushing steps
Add support for non-flushing steps and with different rates.
Clear step info when flushing
Stefan Kost [Sun, 7 Jun 2009 20:46:54 +0000 (23:46 +0300)]
registry: allow plugins to cache extra data in registry. Fixes #570233
Add a GstStructure to GstPlugin. Plugins can retieve it in plugin_init and
access the cached info or build the cache and store it there.
Stefan Kost [Sun, 7 Jun 2009 19:09:14 +0000 (22:09 +0300)]
registry: don't recreate features on first use. Fixes #584389
The first time one calls gst_element_factory_make(), gst recreates the plugin
feature and the element factory. As a side effect we ref the class to fill
in detail we already have filled from the registry cache. This patch changes
the behaviour to just update the existing entries. The factory is now attached
to the type and set in gst_element_base_class_init().
Wim Taymans [Sun, 7 Jun 2009 20:20:54 +0000 (22:20 +0200)]
tests: conditionally compile the streams example
Detect pthreads.h in configure.ac
Only compile the streams example when pthreads.h is present.
Fixes #585039
Wim Taymans [Sun, 7 Jun 2009 15:32:35 +0000 (17:32 +0200)]
gstvalue: remove type checks and redundant code
Wim Taymans [Sun, 7 Jun 2009 13:43:57 +0000 (15:43 +0200)]
value: fix fraction range lcopy function
This function seems to be broken for 3.5 years. Luckily nobody ever tried to
make a fraction range object property...
Wim Taymans [Sun, 7 Jun 2009 13:35:12 +0000 (15:35 +0200)]
gstvalue: performance improvements
Add a GType->GstValueTable hashtable mapping.
Avoid _get_type() multiple times when we can.
Use GSlice for fraction range dynamic memory
Add G_LIKELY when we can
Improve lookup of the value table using the hashtable
Wim Taymans [Sun, 7 Jun 2009 12:30:28 +0000 (14:30 +0200)]
structure: no need to clear on init
We don't need to clear the field on init because we will do that again before we
are going to use the field later.
Jan Schmidt [Fri, 5 Jun 2009 19:57:05 +0000 (20:57 +0100)]
gststructure: Fix some memory leaks. Sprinkle G_LIKELY/UNLIKELY
Fix some memory leaks shown by the new serialisation/deserialisation unit
test. Split the gst_string_wrap function in gstvalue.c into components and
use them to make gst_string_take_and_wrap, which takes ownership of the
string, avoiding a strdup.
Add some G_LIKELY/UNLIKELY, and clean up some leaks in error paths.
Mark Nauwelaerts [Fri, 5 Jun 2009 09:37:24 +0000 (11:37 +0200)]
basesrc: reply to QUERY_SEEKING with original format. Fixes #584838.
Tim-Philipp Müller [Thu, 4 Jun 2009 18:44:38 +0000 (19:44 +0100)]
configure: remove AC_C_INLINE and update win32 files to git
Remove AC_C_INLINE check, so we don't end up with an #undef inline in
config.h, which causes problems with some versions of MSCV apparently.
GLib defines inline for us in a suitable way already anyway.
Fixes #584835.
While we're at it, also update the other win32 files to git (bump
version, add new defines and enums).
Wim Taymans [Thu, 4 Jun 2009 16:26:04 +0000 (18:26 +0200)]
ghostpad: avoid excessive notify for caps
Avoid an object property notify if the caps on the other pad were already
set (and thus notified).
Wim Taymans [Thu, 4 Jun 2009 15:27:03 +0000 (17:27 +0200)]
basesink: fix clipped start/stop after step
Use the segment helpers to get a more accurate clipped start/stop position after
a stepping operation ended.