Wim Taymans [Wed, 4 Jul 2012 14:38:15 +0000 (16:38 +0200)]
miniobject: add lock functionality to GstMiniObject
Move the locking methods from GstMemory to GstMiniObject.
Add a miniobject flag to enable LOCKABLE objects. LOCKABLE objects can
use the lock/unlock API to control the access to the object.
Add a minobject flag that allows you to lock an object in readonly mode.
Modify the _is_writable() method to check the shared counter for LOCKABLE
objects. This allows us to control writability separately from the refcount for
LOCKABLE objects.
Wim Taymans [Wed, 4 Jul 2012 14:04:28 +0000 (16:04 +0200)]
info: add new locking debug category
Wim Taymans [Wed, 4 Jul 2012 10:28:56 +0000 (12:28 +0200)]
memory: fix is_exclusive
Wim Taymans [Wed, 4 Jul 2012 10:03:32 +0000 (12:03 +0200)]
memory: add LOCK_FLAG_READWRITE define
Wim Taymans [Wed, 4 Jul 2012 09:48:37 +0000 (11:48 +0200)]
memory: update docs
Wim Taymans [Wed, 4 Jul 2012 08:12:43 +0000 (10:12 +0200)]
memory: small cleanup
Wim Taymans [Tue, 3 Jul 2012 11:50:06 +0000 (13:50 +0200)]
update for new symbols
Wim Taymans [Tue, 3 Jul 2012 11:47:49 +0000 (13:47 +0200)]
memory: Fix the NO_SHARE flag in the constructor
The NO_SHARE flag does not influence the exclusiveness of the buffer initially
but only if a _share operation can be done. Otherwise, we would not be able to
WRITE map a buffer memory because it would have a share count of at least 2.
Wim Taymans [Tue, 3 Jul 2012 11:47:30 +0000 (13:47 +0200)]
memory: only check the locking refcount
Wim Taymans [Tue, 3 Jul 2012 11:46:40 +0000 (13:46 +0200)]
buffer: fix resize
Correctly update the exclusive locks
Wim Taymans [Tue, 3 Jul 2012 11:45:03 +0000 (13:45 +0200)]
memory: Use lock flags for map flags
We implement the locking in gst_memory_map with the lock flags, make matching
flags the same number so that we can use the map flags directly as lock flags.
Wim Taymans [Tue, 3 Jul 2012 10:18:02 +0000 (12:18 +0200)]
buffer: lock memory EXCLUSIVE
lock the memory that the buffer references as EXCLUSIVE. This makes sure that
when we share the memory with other buffers that it becomes unwritable.
Wim Taymans [Tue, 3 Jul 2012 10:16:19 +0000 (12:16 +0200)]
memory: cleanup the locking code
cleanup and fix the locking code
Wim Taymans [Tue, 3 Jul 2012 07:48:32 +0000 (09:48 +0200)]
memory: expose the internal locking api
Expose the internally used methods for locking and unlocking the object. Pass
the access mode to the unlock function for extra checks and because we need it
for the EXCLUSIVE locks.
Make some new defines to specify the desired locking.
Add a new EXCLUSIVE lock mode which will increment the shared counter. Objects
with a shared counter > 1 will not be lockable in WRITE mode.
Mark Nauwelaerts [Fri, 29 Jun 2012 14:37:05 +0000 (16:37 +0200)]
tests: gstbuffer: extend buffer copy test
... to check for independence of copied buffer.
Tim-Philipp Müller [Wed, 4 Jul 2012 17:32:47 +0000 (18:32 +0100)]
registry: remove outdated bits of warning message
I think we can be reasonable sure people are using an up-to-date
gst-uninstalled script now.
Tim-Philipp Müller [Wed, 4 Jul 2012 17:16:23 +0000 (18:16 +0100)]
Add versioned variants of some environment variables
Improve parallel installability in setups like jhbuild by
providing versioned variants of some environment variables:
GST_REGISTRY_1_0
GST_PLUGIN_PATH_1_0
GST_PLUGIN_SYSTEM_PATH_1_0
GST_PLUGIN_SCANNER_1_0
will now be checked before checking the unversioned ones.
https://bugzilla.gnome.org/show_bug.cgi?id=679407
Tim-Philipp Müller [Wed, 4 Jul 2012 16:55:58 +0000 (17:55 +0100)]
docs: fix typo in GstSample docs
Tim-Philipp Müller [Wed, 4 Jul 2012 16:36:55 +0000 (17:36 +0100)]
uri: there are valid URI protocols with only two letters, like fd://
We added a minimum length of three letters originally so we would
fail to recognise DOS/Windows-style filenames as valid URIs (as we
should). Two should be just fine as well.
Edward Hervey [Wed, 13 Oct 2010 11:36:08 +0000 (13:36 +0200)]
win32: API additions
Edward Hervey [Tue, 29 Sep 2009 07:54:24 +0000 (09:54 +0200)]
dataqueue: Use GstQueueArray
Edward Hervey [Mon, 28 Sep 2009 15:31:49 +0000 (17:31 +0200)]
queue: Use new GstQueueArray for local storage.
Makes _chain() and _loop() 25% faster
Edward Hervey [Tue, 29 Sep 2009 07:06:13 +0000 (09:06 +0200)]
check: New unit test for GstQueueArray
Edward Hervey [Mon, 28 Sep 2009 15:30:04 +0000 (17:30 +0200)]
libs: New growing-only queue.
This is a queue which has the same API as GQueue, except that:
* It uses an array, instead of a doubled-linked-list
* The array can only grow.
This code is not-threadsafe. It is up to the owner to make sure the
proper locking is taken before calling this API.
Tim-Philipp Müller [Wed, 4 Jul 2012 15:16:04 +0000 (16:16 +0100)]
segment: make sure we don't have unmapped seek flags littering out segment flags
Make GstSeekFlag to GstSegmentFlag conversion explicit, and
set only those seek flags in the segment flags which are
mapped. This makes sure we don't have extraneous flags
littering our segment flag field, which also fixes the
debug printing/serialisation of segment events in the
debug log.
Tim-Philipp Müller [Wed, 4 Jul 2012 09:24:11 +0000 (10:24 +0100)]
docs: minor porting-to-0.11.txt update
Tim-Philipp Müller [Wed, 4 Jul 2012 09:23:06 +0000 (10:23 +0100)]
tests: make checks for from/to_g_date_time() actually work properly
Joshua M. Doe [Sat, 30 Jun 2012 01:52:47 +0000 (21:52 -0400)]
datetime: add conversion to/from GDateTime
Exposes existing constructor.
API: gst_date_time_to_g_date_time()
API: gst_date_time_new_from_g_date_time()
https://bugzilla.gnome.org/show_bug.cgi?id=679080
Tim-Philipp Müller [Wed, 4 Jul 2012 07:52:08 +0000 (08:52 +0100)]
utils: remove unused gst_print_* functions
Tim-Philipp Müller [Tue, 3 Jul 2012 21:24:22 +0000 (22:24 +0100)]
pads: no need to deactivate pads that are already in PAD_MODE_NONE
Tim-Philipp Müller [Tue, 3 Jul 2012 21:20:40 +0000 (22:20 +0100)]
pads: make pad activation debug logs a bit more readable
Tim-Philipp Müller [Tue, 3 Jul 2012 18:15:25 +0000 (19:15 +0100)]
tests: add unit test for element re-use using fakesrc
Tim-Philipp Müller [Tue, 3 Jul 2012 18:04:54 +0000 (19:04 +0100)]
pad: clear EOS flag when deactivating pads fixing element re-use
Sebastian Dröge [Tue, 3 Jul 2012 15:25:21 +0000 (17:25 +0200)]
basesink: Post TOC messages on the bus in the sinks, similar to tags
Wim Taymans [Tue, 3 Jul 2012 10:38:55 +0000 (12:38 +0200)]
buffer: fix the _get_mapped function
Fix the internal _get_mapped function. gst_memory_make_mapped() takes ownership
of the memory so we need to keep an additional ref until we are done.
Wim Taymans [Tue, 3 Jul 2012 10:23:36 +0000 (12:23 +0200)]
buffer: add more debug log
Sebastian Dröge [Tue, 3 Jul 2012 08:02:55 +0000 (10:02 +0200)]
event: The GAP event is (partially) implemented now, STREAM_CONFIG isn't
Chun-wei Fan [Thu, 28 Jun 2012 08:42:08 +0000 (16:42 +0800)]
controlbindings: include gst/math-compat.h for isnan()
Due to the usage of isnan(), where an implementation is added into
gst/math-compat.h. Fixes build on Visual C++.
https://bugzilla.gnome.org/show_bug.cgi?id=679112
Chun-wei Fan [Fri, 29 Jun 2012 08:52:31 +0000 (16:52 +0800)]
math-compat.h: add implementation for isnan() for Visual C++
Visual C++ does not have isnan(), so add fallback to
math-compat.h (could use _isnan() in this case, but
this makes it work for all cases where isnan is missing).
https://bugzilla.gnome.org/show_bug.cgi?id=679112
Chun-wei Fan [Fri, 29 Jun 2012 02:56:34 +0000 (10:56 +0800)]
fdsink.c: fix G_OS_WIN32 #ifdef
Postpone the #ifdef to a point after glib.h (via gstfdsink.h) is included
so that the needed defines and header includes can be done correctly,
especially on Visual C++ builds.
https://bugzilla.gnome.org/show_bug.cgi?id=679112
Raimo Järvi [Sun, 27 May 2012 20:09:43 +0000 (23:09 +0300)]
tests: fix build of datetime unit test in Windows
Also include config.h for all the #ifdef HAVE_XYZ.
https://bugzilla.gnome.org/show_bug.cgi?id=676935
Wim Taymans [Fri, 29 Jun 2012 09:19:07 +0000 (11:19 +0200)]
gstobject: don't use g_strdup_value_contents()
g_strdup_value_contents() does some extra escaping, preventing us from using the
output on the console to be used directly.
Tim-Philipp Müller [Thu, 28 Jun 2012 13:41:43 +0000 (14:41 +0100)]
docs: expand a bit more on GST_DEBUG docs
Wim Taymans [Thu, 28 Jun 2012 09:02:19 +0000 (11:02 +0200)]
buffer: add _append_region function
Make a gst_buffer_append_region() function that allows you to append a memory
region from one buffer to another. This is a more general version of
gst_buffer_append().
Wim Taymans [Thu, 28 Jun 2012 07:36:34 +0000 (09:36 +0200)]
basesrc: handle DTS and PTS
Use DTS and PTS of the subclass.
Calculate PTS from DTS on keyframes.
Tim-Philipp Müller [Wed, 27 Jun 2012 22:01:13 +0000 (23:01 +0100)]
tests: test datetime deserialisation a bit more
Tim-Philipp Müller [Wed, 27 Jun 2012 22:00:08 +0000 (23:00 +0100)]
datetime: ignore 0 days or months in dates
Handle 0 months or days correctly in date strings, so that
2012-06-00 is parsed the same as 2012-06, for example.
Idar Tollefsen [Sun, 1 Jan 2012 15:38:08 +0000 (16:38 +0100)]
build: Make sure AC_INCLUDES_DEFAULT is used
Without using AC_INCLUDES_DEFAULT explicitly,
certain platforms will complain that the header
was found, but not usable by the compiler.
This happens for instance on Solaris where certain
headers are needed to pull in proper defines.
Also upgrade to newer autoconf syntax and use proper quoting.
https://bugzilla.gnome.org/show_bug.cgi?id=667293
Tim-Philipp Müller [Wed, 27 Jun 2012 19:52:52 +0000 (20:52 +0100)]
tests: fix bus leak in GstBin test_state_change_skip test
Still not valgrind clean though.
Christophe Fergeau [Wed, 27 Jun 2012 18:59:29 +0000 (19:59 +0100)]
parse: escape \ with a \ as well, so that we don't lose the \ when unescaping
If we have a file called Foo\Bar.ogg, there is no way to pass
that filename properly to filesrc in gst_parse_launch(), since
gst_parse_unescape() will just unescape \x to x.
Not cherry-picking this into 0.10 since there are apparently
apps that work around this problem and which would break if
we fixed it there too.
https://bugzilla.gnome.org/show_bug.cgi?id=673319
Tim-Philipp Müller [Wed, 27 Jun 2012 15:37:54 +0000 (16:37 +0100)]
elementfactory: annotate some of the type defines for g-i
Type is not picked up yet though, and we still need
to annotate values for the 'simple' defines.
https://bugzilla.gnome.org/show_bug.cgi?id=677925
Tim-Philipp Müller [Wed, 27 Jun 2012 13:48:55 +0000 (14:48 +0100)]
clock: annotate GST_CLOCK_TIME_NONE with its value for g-i
The value now gets picked up, but it still thinks the type
is a 'gint'.
https://bugzilla.gnome.org/show_bug.cgi?id=678928
Tim-Philipp Müller [Wed, 27 Jun 2012 12:19:23 +0000 (13:19 +0100)]
tests: add some datetime serialisation/deserialisation tests
https://bugzilla.gnome.org/show_bug.cgi?id=678031
Tim-Philipp Müller [Wed, 27 Jun 2012 12:16:07 +0000 (13:16 +0100)]
datetime: fix compare function
Take into account that not all fields might be valid (though they
are valid in the GDateTime structure). But we should just return
unordered if the set fields don't match. Also, don't check
microseconds when comparing datetimes, since we don't serialise
those by default if they're available. This ensures date times are
still regarded as equal after serialising+deserialising.
Oleksij Rempel [Mon, 18 Jun 2012 06:06:49 +0000 (08:06 +0200)]
datetime: add serialisation to and deserialisation from ISO 8601 strings
Some tag parsers and writers use same datetime format based on ISO 8601.
We can reduce some code by creating some general functions for it.
API: gst_date_time_to_iso8601_string()
API: gst_date_time_new_from_iso8601_string()
https://bugzilla.gnome.org/show_bug.cgi?id=678031
Lionel Landwerlin [Thu, 7 Jun 2012 10:30:48 +0000 (11:30 +0100)]
configure: add --disable-tools and --disable-benchmarks options
Add option to avoid build binaries. When building for platforms like
android, you might want to not link any "final" binary, mostly because
it requires special link flags or other parts of code that aren't
in the C library.
https://bugzilla.gnome.org/show_bug.cgi?id=677621
Tim-Philipp Müller [Tue, 26 Jun 2012 19:41:18 +0000 (20:41 +0100)]
toc: put toc directly into event/message/query structure
Now that TOCs are refcounted and have a GType, we can just
stuff a ref of the TOC directly into the various toc
event/message/query structures and get rid of lots of
cracktastic GstStructure <-> GstToc serialisation and
deserialisation code. We lose some TOC sanity checking
in the process, but that should really be done when
it's being created anyway.
Tim-Philipp Müller [Tue, 26 Jun 2012 17:22:33 +0000 (18:22 +0100)]
Revert "bus: skip gst_bus_create_watch as GSource is not introspectable"
This reverts commit
930e36a89bc5c2a0f2e4ab7a73bfa630c1e0336a.
This shouldn't have been pushed, since GSource is now handled
(https://bugzilla.gnome.org/show_bug.cgi?id=657725)
Johan Dahlin [Mon, 29 Aug 2011 16:57:03 +0000 (13:57 -0300)]
bus: skip gst_bus_create_watch as GSource is not introspectable
https://bugzilla.gnome.org/show_bug.cgi?id=657640
Tim-Philipp Müller [Tue, 26 Jun 2012 16:35:22 +0000 (17:35 +0100)]
docs: some more additions to the porting-to-0.11 guide
Tim-Philipp Müller [Tue, 26 Jun 2012 16:27:31 +0000 (17:27 +0100)]
tools: minor clean-up
Get rid of superfluous argument.
Tim-Philipp Müller [Tue, 26 Jun 2012 16:04:01 +0000 (17:04 +0100)]
tools: remove useless g_set_prgname() wrapper
Tim-Philipp Müller [Tue, 26 Jun 2012 15:55:30 +0000 (16:55 +0100)]
tools: point people to right binary when a crash happens
"gst-launch" is the 0.10 wrapper script, using that with
gdb is not going to yield great results.
Tim-Philipp Müller [Tue, 26 Jun 2012 15:42:36 +0000 (16:42 +0100)]
configure: bump GLib requirement to now-released stable version
Tim-Philipp Müller [Tue, 26 Jun 2012 15:42:10 +0000 (16:42 +0100)]
inputselector: remove some dead code for old GLib versions
Tim-Philipp Müller [Mon, 25 Jun 2012 22:17:32 +0000 (23:17 +0100)]
toc: add more entry types
Make entry types less abstract.
https://bugzilla.gnome.org/show_bug.cgi?id=678742
Jan Schmidt [Sun, 17 Jun 2012 02:48:04 +0000 (12:48 +1000)]
a couple of notes for the 0.11 porting guide
Wim Taymans [Tue, 26 Jun 2012 07:51:10 +0000 (09:51 +0200)]
miniobject: add steal_qdata
Rework the qdata code a little
Tim-Philipp Müller [Mon, 25 Jun 2012 18:52:44 +0000 (19:52 +0100)]
tocsetter: clean up and update API for refcounted TOCs
Let's keep it simple for now:
gst_toc_setter_reset_toc() -> gst_toc_setter_reset()
gst_toc_setter_get_toc_copy() -> removed
gst_toc_setter_get_toc() -> returns a ref now
gst_toc_setter_get_toc_entry_copy() -> removed,
use TOC functions instead
gst_toc_setter_get_toc_entry() -> removed,
use TOC functions instead
gst_toc_setter_add_toc_entry() -> removed,
to avoid problems with (refcount-dependent)
writability of TOC; use TOC functions instead
Wim Taymans [Mon, 25 Jun 2012 07:32:41 +0000 (09:32 +0200)]
memory: improve docs
Mention that custom allocator functions can pass whatever they want to the
user_data.
Alexander Saprykin [Fri, 6 Apr 2012 14:00:33 +0000 (18:00 +0400)]
tagsetter: use G_DEFINE_INTERFACE_* macro
https://bugzilla.gnome.org/show_bug.cgi?id=673641
Alexander Saprykin [Fri, 6 Apr 2012 13:59:35 +0000 (17:59 +0400)]
tocsetter: use G_DEFINE_INTERFACE_* macro
https://bugzilla.gnome.org/show_bug.cgi?id=673641
Tim-Philipp Müller [Sun, 24 Jun 2012 23:10:53 +0000 (00:10 +0100)]
docs: update design docs for TOC API changes too
Tim-Philipp Müller [Sun, 24 Jun 2012 19:10:34 +0000 (20:10 +0100)]
tocsetter, gst-launch, tests: update for GstToc API changes
Tim-Philipp Müller [Sun, 24 Jun 2012 19:08:33 +0000 (20:08 +0100)]
toc: make GstToc and GstTocEntry mini objects
Because we can, and in order to make them refcounted.
Tim-Philipp Müller [Sat, 23 Jun 2012 20:42:58 +0000 (21:42 +0100)]
taglist: fix confusing log message
Tim-Philipp Müller [Sat, 23 Jun 2012 20:35:33 +0000 (21:35 +0100)]
value: fix int64 - int64 range intersection on big endian systems
Works better if we use the v_int64 field of the GValue instead of v_int.
Tim-Philipp Müller [Sat, 23 Jun 2012 18:56:12 +0000 (19:56 +0100)]
miniobjects: pass copy, dispose and free function to gst_mini_object_init()
So mini objects don't have to poke into the GstMiniObject part
of the structure. Saves lines of code, and seems slightly cleaner.
We don't have proper OO hierarchies or methods here after all.
Tim-Philipp Müller [Sat, 23 Jun 2012 16:05:05 +0000 (17:05 +0100)]
taglist: remove some outdated FIXMEs and comments
Tim-Philipp Müller [Sat, 23 Jun 2012 16:04:53 +0000 (17:04 +0100)]
sample: some more g-i annotations
Tim-Philipp Müller [Sat, 23 Jun 2012 15:59:10 +0000 (16:59 +0100)]
sample: add compare function for GstSample
Should make gst_tag_list_is_equal() work properly with image tags.
https://bugzilla.gnome.org/show_bug.cgi?id=672637
Tim-Philipp Müller [Sat, 23 Jun 2012 15:30:03 +0000 (16:30 +0100)]
value: fix buffer compare function
Tim-Philipp Müller [Sat, 23 Jun 2012 13:41:50 +0000 (14:41 +0100)]
tests: add unit test for gst_element_make_from_uri()
https://bugzilla.gnome.org/show_bug.cgi?id=645467
Tim-Philipp Müller [Sat, 23 Jun 2012 13:41:17 +0000 (14:41 +0100)]
parse: update for gst_element_make_from_uri() change
Tim-Philipp Müller [Sat, 23 Jun 2012 13:40:17 +0000 (14:40 +0100)]
uri: add error argument to gst_element_make_from_uri()
So callers can differentiate between there not being a
handler for the protocol, and them not accepting the URI
for some reason.
https://bugzilla.gnome.org/show_bug.cgi?id=645467
Tim-Philipp Müller [Sat, 23 Jun 2012 11:37:16 +0000 (12:37 +0100)]
memory: annotate GstMapInfo data as array for g-i
Tim-Philipp Müller [Wed, 20 Jun 2012 11:53:04 +0000 (12:53 +0100)]
tools: remove pointless get_state() in gst-launch
State changes to NULL state are always sync.
Thiago Santos [Thu, 21 Jun 2012 04:28:43 +0000 (01:28 -0300)]
inputselector: avoid notify-tags holding lock
unlock before issuing this notification to prevent
deadlocks when other elements reacts to new tags.
Fixes #678220
Thiago Santos [Mon, 18 Jun 2012 19:54:29 +0000 (16:54 -0300)]
gst-uninstalled: add gst-p-bad gst-libs to the path
Makes videoparsers and camerabins from bad usable from an uninstalled
environment at osx
Wim Taymans [Wed, 20 Jun 2012 11:28:08 +0000 (13:28 +0200)]
info: add destroy notify to gst_debug_add_log_function()
Wim Taymans [Wed, 20 Jun 2012 11:27:33 +0000 (13:27 +0200)]
pad: improve introspection annotation
Wim Taymans [Wed, 20 Jun 2012 10:29:35 +0000 (12:29 +0200)]
bus: add GDestroyNotify to set_sync_handler()
Wim Taymans [Wed, 20 Jun 2012 10:06:11 +0000 (12:06 +0200)]
defs: update
Wim Taymans [Wed, 20 Jun 2012 09:59:09 +0000 (11:59 +0200)]
task: add separate methods to add enter/leave callback
Remove the structure of callbacks and replace with separate methods to register
each callback. This is much more binding friendly.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=677898
Wim Taymans [Wed, 20 Jun 2012 08:31:49 +0000 (10:31 +0200)]
task: add GDestroyNotify to _new
Add a GDestroyNotify to the user_data we pass to gst_task_new()
Change gst_pad_start_task() to also take the notify
Wim Taymans [Wed, 20 Jun 2012 07:58:14 +0000 (09:58 +0200)]
clock: remove _full version
Rename gst_clock_id_wait_async_full() to gst_clock_id_wait_async()
and remove the old gst_clock_id_wait_async() version.
Wim Taymans [Wed, 20 Jun 2012 07:22:40 +0000 (09:22 +0200)]
nettimepacket: make boxed
Evan Nemerson [Wed, 20 Jun 2012 02:55:30 +0000 (19:55 -0700)]
net: fix some argument names in documentation
Evan Nemerson [Wed, 20 Jun 2012 02:55:02 +0000 (19:55 -0700)]
controller: assorted minor introspection fixes
Evan Nemerson [Wed, 20 Jun 2012 02:53:54 +0000 (19:53 -0700)]
check: add some missing documentation, including annotations