Wim Taymans [Mon, 18 May 2009 16:41:45 +0000 (18:41 +0200)]
basesink: small cleanups
Wim Taymans [Mon, 18 May 2009 13:48:20 +0000 (15:48 +0200)]
framestep: implement backwards framestep
Update framestep document, we want to pass the flush flag in the step-done
message.
Add flush flag to the gstmessage.
Update examples to use the new step-done message api.
Implement framestep with playback rates < 0.0 too.
Wim Taymans [Fri, 15 May 2009 13:25:06 +0000 (15:25 +0200)]
basesink: add framestepping in time
Wim Taymans [Fri, 15 May 2009 13:24:30 +0000 (15:24 +0200)]
examples: step in time as well
Wim Taymans [Fri, 15 May 2009 10:02:02 +0000 (12:02 +0200)]
example: print step_done message and sync
Dump the step_done message contents.
Sync against the clock when going to PLAYING.
Wim Taymans [Fri, 15 May 2009 10:05:44 +0000 (12:05 +0200)]
basesink: keep track of stepped time
Pass running_time around so that the stepping code can calculate the elapsed
time correctly.
Wim Taymans [Thu, 14 May 2009 17:29:08 +0000 (19:29 +0200)]
basesink: move stuff around, more stepping
Make start and stop_stepping methods and move their invocation in the right
places.
Perform the atual stepping operation where we have full context about the
timestamps.
Wim Taymans [Mon, 11 May 2009 16:56:03 +0000 (18:56 +0200)]
Add frame stepping in PAUSED example
Wim Taymans [Mon, 11 May 2009 16:56:56 +0000 (18:56 +0200)]
basesink: first stab at frame stepping in PAUSED
Unlock the prerolled frame and recheck if we need to step.
Keep a simple counter for the frames we're about to skip while stepping and
preroll/post step_done when stepping finished.
Wim Taymans [Mon, 1 Jun 2009 10:19:52 +0000 (12:19 +0200)]
add new API for framestepping
Add new STEP event and methods for creating/parsing the event
Update design docs.
Add new STEP_DONE message and method to create/parse.
API: GstEvent::gst_event_new_step()
API: GstEvent::gst_event_parse_step()
API: GstMessage::gst_message_new_step_done()
API: GstMessage::gst_message_parse_step_done()
Tim-Philipp Müller [Mon, 1 Jun 2009 09:05:32 +0000 (10:05 +0100)]
structures: don't leak invalid or empty strings when we warn
Fixes minor memory leak in unit tests caused by the recent changes.
Since we're expected to take ownership of the GValue in the structure
field struct here, we need to unset it if we don't use it.
Stefan Kost [Mon, 1 Jun 2009 08:08:31 +0000 (11:08 +0300)]
controller: add test for cubic int. and too few control points
Added another tests to check some worries in Bug #582564.
Stefan Kost [Thu, 28 May 2009 09:31:08 +0000 (12:31 +0300)]
fakesrc: add a FIXME comment for blocksize vs. size-max property issue
Tim-Philipp Müller [Sun, 31 May 2009 20:27:40 +0000 (21:27 +0100)]
identity: hack around g_object_notify() bug by protecting it with a lock
Out-of-band events might lead to us calling g_object_notify() from a
non-streaming thread, which can cause crashes if g_object_notify() is
being called from the streaming thread at the same time. See #554460.
Stefan Kost [Sun, 31 May 2009 19:37:59 +0000 (22:37 +0300)]
controller: use real world number in benchmark
Stefan Kost [Sun, 31 May 2009 19:37:03 +0000 (22:37 +0300)]
registry: fix comment formatting
Tim-Philipp Müller [Sat, 30 May 2009 19:36:25 +0000 (20:36 +0100)]
fakesink: hack around crasher bug in g_object_notify() for out-of-band events
GObject may crash if two threads do concurrent g_object_notify() on the same
object. This may happen if fakesink receives an out-of-band event such as
FLUSH_START while processing a buffer or serialised event in the streaming
thread. Since this may happen with the default settings during a common
operation like a seek, and there seems to be little chance of a timely fix
in GObject (see #166020), we should hack around this issue by protecting all
of fakesink's direct g_object_notify() calls with a lock.
Also add unit test for the above.
Fixes #554460.
Tim-Philipp Müller [Sun, 31 May 2009 15:17:45 +0000 (16:17 +0100)]
taglists: make _get_{string|pointer} return FALSE for NULL values
Make gst_tag_list_get_string() return FALSE for NULL strings and
empty strings, and gst_tag_list_get_pointer() return FALSE for
NULL pointers, like we do with dates and buffers.
Fixes #560345.
Tim-Philipp Müller [Sat, 30 May 2009 19:50:40 +0000 (20:50 +0100)]
taglists: warn if someone tries to add empty or NULL string tags to a taglist
Also warn if an element or application tries to add a field with an
empty string to a structure (NULL strings are still needed and
allowed though) and do all those checks in the right function.
Fixes #559643.
Tim-Philipp Müller [Fri, 29 May 2009 17:22:42 +0000 (18:22 +0100)]
structure: add gst_structure_id_new() convenience function
Add convenience wrapper for gst_structure_id_empty_new() plus
gst_structure_id_set() and use it in a few places.
API: gst_structure_id_new()
Tim-Philipp Müller [Fri, 29 May 2009 17:00:06 +0000 (18:00 +0100)]
micro-optimisation: use GST_QUARK in more places
Use gst_structure_id_empty_new() in combination with GST_QUARK
rather than gst_structure_id_new() when creating message, event,
query and taglist structures. Mostly just because we can.
Wim Taymans [Fri, 29 May 2009 14:04:28 +0000 (16:04 +0200)]
element: reset start_time in lost state
Wim Taymans [Fri, 29 May 2009 11:03:15 +0000 (13:03 +0200)]
docs: update element an pipeline docs
Wim Taymans [Fri, 29 May 2009 10:48:28 +0000 (12:48 +0200)]
docs: remove a TODO item that is fixed now
Wim Taymans [Fri, 29 May 2009 10:21:36 +0000 (12:21 +0200)]
pipeline: deprecate old methods, fix test
Deprecate the old _set_stream_time and _get_last_stream_time methods because
they are now equivalent to the better named _set/_get_start_time.
Wim Taymans [Thu, 28 May 2009 14:30:52 +0000 (16:30 +0200)]
pipeline: use START_TIME to keep track of time
Use the element START_TIME to keep track of the running time when the pipeline
paused so that it can be used to restore the base_time.
Take the start_time before setting the children to PAUSED so that we can
distribute the start_time to the children.
Wim Taymans [Thu, 28 May 2009 13:40:01 +0000 (15:40 +0200)]
bin: set the base_time and start_time better
Simply set the start_time and base_time on the element instead of calling the
setters.
Wim Taymans [Wed, 27 May 2009 09:35:58 +0000 (11:35 +0200)]
bin: make the bin set the start_time on elements
Set the start_time of the bin on the elements when they are added to the
pipeline and when a state change happens.
Wim Taymans [Tue, 26 May 2009 09:53:05 +0000 (11:53 +0200)]
element: add start_time field an methods
Add a start_time field and some methods. The start_time will contain the
running_time of when the element last went to paused. This time can be user to
report the position in PAUSED but also to do more correct clipping and
stepping later.
Arnout Vandecappelle [Thu, 28 May 2009 20:02:21 +0000 (22:02 +0200)]
adapter: fix _masked_scan_uint32() at boundaries
gst_adapter_masked_scan_uint32 could return values smaller than offset
if the first byte(s) of the mask are 0 and the pattern matches the
beginning of the adapter.
Added examples to documentation of gst_adapter_masked_scan_uint32().
Also added some more masked boundary tests.
Fixes #584118
Wim Taymans [Thu, 28 May 2009 14:36:32 +0000 (16:36 +0200)]
pad: add pad private structure
Add pad private structure and move the new chainlistfunc into the private
struct. This avoids ABI breakage and allows us to expand in the future.
Sebastian Dröge [Wed, 27 May 2009 14:34:19 +0000 (16:34 +0200)]
Add missing symbol to the win32 exports
This was accidentially removed by my last commit.
Wim Taymans [Wed, 27 May 2009 14:17:31 +0000 (16:17 +0200)]
buffer: avoid memory leaks
Avoid leaking the caps of the dest buffer and avoid doing needless caps
refs.
When the source and target buffers are the same, return immediatly.
Sebastian Dröge [Wed, 27 May 2009 12:32:51 +0000 (14:32 +0200)]
API: Add gst_message_{new,parse}_tag_full() to get/set the source pad
Fixes bug #582588.
Sebastian Dröge [Wed, 27 May 2009 12:06:13 +0000 (14:06 +0200)]
Revert "element: Set the originating pad as message source in gst_element_found_tags_for_pad ()"
This reverts commit
bebfde75027e975b7e7c74c6358c5be83ea4ac9f.
This change shouldn't be done in a stable release series as
applications are actually expecting the sender to be an
GstElement. One example is totem.
Jan Schmidt [Tue, 26 May 2009 10:35:49 +0000 (11:35 +0100)]
Update common
Tim-Philipp Müller [Tue, 26 May 2009 09:41:28 +0000 (10:41 +0100)]
Fix 'make distcheck'
The check-enum-gettypes rule didn't work for 'make distcheck' since
it makes assumptions about the location of the source files from the
current working directory which isn't true during distchecking.
Tim-Philipp Müller [Tue, 26 May 2009 09:38:56 +0000 (10:38 +0100)]
manuals.mak: attempt to make 'make distcheck' work with -jN
Attempt to fix the 'cannot create regular file build/image.entitites:
file exists' error I got.
Tim-Philipp Müller [Mon, 25 May 2009 22:58:37 +0000 (23:58 +0100)]
docs: fix cdparanoia example pipeline in gst-launch man page
Wim Taymans [Mon, 25 May 2009 16:44:14 +0000 (18:44 +0200)]
element: fix typo in comments
Jan Schmidt [Mon, 25 May 2009 16:43:32 +0000 (17:43 +0100)]
dist: Fix the name of the header to dist: testrtpool.h, not rtpool-test.h
Jan Schmidt [Mon, 25 May 2009 16:03:05 +0000 (17:03 +0100)]
Update common
Wim Taymans [Mon, 25 May 2009 14:54:25 +0000 (16:54 +0200)]
clock: remove assertion
Remove an assertion, this is not really an error in all cases.
Fixes #582010
Wim Taymans [Mon, 25 May 2009 14:21:55 +0000 (16:21 +0200)]
clock: enable monotonic clock when we can
Enable the monotonic clock by default when we can.
Fixes #583554
Wim Taymans [Mon, 25 May 2009 12:52:13 +0000 (14:52 +0200)]
docs: add Image to draft klass documentation
Wim Taymans [Mon, 25 May 2009 11:03:42 +0000 (13:03 +0200)]
pad: keep task ref before releasing the lock
Keep a ref to the task on the pad so that a concurrent stop can stop and join
the task.
Wim Taymans [Mon, 25 May 2009 09:56:47 +0000 (11:56 +0200)]
gsttask: avoid join to return early
Unset the running flag after we released the lock for posting the stream-status
message. If we set the running flag to FALSE too early, the join method will
just continue without waiting for the message to be posted, leading to potential
crashes.
Stefan Kost [Sun, 24 May 2009 20:14:26 +0000 (23:14 +0300)]
preset: fix update rule
Only update the preset from system, if we had a preset before and system
version is newer.
Stefan Kost [Fri, 22 May 2009 20:47:30 +0000 (23:47 +0300)]
controller: add a benchmark to verify the switch to gsequence
Stefan Kost [Fri, 22 May 2009 20:50:58 +0000 (23:50 +0300)]
controller: add more error handling to example
Stefan Kost [Fri, 22 May 2009 20:14:41 +0000 (23:14 +0300)]
registry: don't free node-date and deref again. Fixes #580579
When writing a cache chunk fails, we were freeing the node and jump to a final
cleanup which dereferenced a null pointer. Leve freeing the node to the cleanup
code in fail_free_list. (sorry for committing wrong fix before).
Stefan Kost [Fri, 22 May 2009 20:10:00 +0000 (23:10 +0300)]
registry: don't free node-date and deref again. Fixes #580579
When writing a cache chunk fails, we were freeing the node and jump to a final
cleanup which dereferenced a null pointer. Leve freeing the node to the cleanup
code in fail_free_list.
Stefan Kost [Fri, 22 May 2009 11:17:56 +0000 (14:17 +0300)]
controller: add G_LIKELY and join two if for same condition
A G_LIKELY for the sequence!=NULL checks. Join two ifs to an if-else. Add
indent guides to keep indent form breaking the function declaration
Edward Hervey [Fri, 22 May 2009 10:57:10 +0000 (12:57 +0200)]
gsttypefindhelper: Fix indentation
Stefan Kost [Fri, 22 May 2009 09:24:22 +0000 (12:24 +0300)]
docs: fix gtk-doc warnings
Move MT safety to main description (it does not belong to Return: or Since:
statement). Add a few missing return docs. Downgrade a normal comment froma doc
comment. Fix a doc header to only contain symbol name.
Jan Schmidt [Fri, 22 May 2009 09:19:36 +0000 (10:19 +0100)]
Automatic update of common submodule
From d3a8fab to 888e0a2
Jan Schmidt [Fri, 22 May 2009 08:51:44 +0000 (09:51 +0100)]
dist: Add rtpool-test.h to the sources list so it gets disted.
Fixes the distcheck
Jan Schmidt [Fri, 22 May 2009 08:44:25 +0000 (09:44 +0100)]
gitignores: Ignore the clockstress benchmark binary
Jan Schmidt [Fri, 22 May 2009 08:41:36 +0000 (09:41 +0100)]
controller: Silence a warning from the GSequence being NULL.
Fix a warning that occurs when the self->priv->values is NULL and
the code tries to retrieve an iterator from it. The warning was showing
up in the checks for the volume element.
Jan Schmidt [Fri, 22 May 2009 08:33:02 +0000 (09:33 +0100)]
docs: Fix up some documentation warnings.
Since: tags should always be the last thing in a doc block, apparently.
Add some Returns: descriptions to some recent functions.
Wim Taymans [Thu, 21 May 2009 15:32:00 +0000 (17:32 +0200)]
docs: update docs for stream_time->running_time
Change some instances where we wrongly refer to stream time where it should have
been running time.
Tim-Philipp Müller [Thu, 21 May 2009 09:57:47 +0000 (10:57 +0100)]
gst-launch: don't use G_GUINT32_FORMAT in translatable string
xgettext doesn't handle this very well. Fixes #583419.
Tim-Philipp Müller [Wed, 20 May 2009 16:07:37 +0000 (17:07 +0100)]
autogen.sh: can remove the -Wno-portability from here now
since we added it to configure.ac.
Wim Taymans [Wed, 20 May 2009 20:18:16 +0000 (22:18 +0200)]
adapter: improve the flush function
Remove a compare and branch from flush.
Stefan Kost [Wed, 20 May 2009 14:24:19 +0000 (17:24 +0300)]
controller: fix assertion when freeing the control source
Wim Taymans [Wed, 20 May 2009 10:48:41 +0000 (12:48 +0200)]
adapter: potentially save a memcpy in _take
Directly use the assembled_data in _take() functions when we can instead of
copying it out.
Wim Taymans [Wed, 20 May 2009 09:36:11 +0000 (11:36 +0200)]
adapter: micro optimisations
Wim Taymans [Wed, 20 May 2009 09:12:43 +0000 (11:12 +0200)]
adapter: avoid comparisions in fast path
Small tweaks to reduce the number of useless compares in loops.
Wim Taymans [Wed, 20 May 2009 08:28:08 +0000 (10:28 +0200)]
tests: one more adapter test
Wim Taymans [Wed, 20 May 2009 08:27:43 +0000 (10:27 +0200)]
adapter: avoid branch in copy code
Hannes Bistry [Wed, 20 May 2009 07:56:11 +0000 (10:56 +0300)]
loadsave: fix requestpad handling and serialisation order.
Support request pads when loading. Reverse pad serialisation order to
preserve it when recreating the pipeline.
Wim Taymans [Tue, 19 May 2009 22:45:27 +0000 (00:45 +0200)]
defs: add new symbol
Wim Taymans [Tue, 19 May 2009 22:44:11 +0000 (00:44 +0200)]
docs: add new symbol to docs
Wim Taymans [Tue, 19 May 2009 22:37:53 +0000 (00:37 +0200)]
adapter: add _masked_scan_uint32
Add a reasonably optimized new gst_adapter_masked_scan_uint32() function
to scan the adapter for a pattern after applying a mask.
Add some unit tests.
API: GstAdapter::gst_adapter_masked_scan_uint32()
Fixes #583187
Wim Taymans [Tue, 19 May 2009 20:13:04 +0000 (22:13 +0200)]
adapter: more optimisations
Remove duplicate copy code (_peek_into and _copy) and make a unified
optimized copy function.
Tim-Philipp Müller [Tue, 19 May 2009 16:12:41 +0000 (17:12 +0100)]
configure: pass -Wno-portability to automake to suppress warnings
GNU make is required, no point pretending otherwise.
Tim-Philipp Müller [Mon, 18 May 2009 00:00:36 +0000 (01:00 +0100)]
docs: mention that GST_FORMAT_{PERCENT|BUFFERS} are not implemented
Sebastian Dröge [Sun, 17 May 2009 08:46:39 +0000 (10:46 +0200)]
gstclock: Fix ABI breakage on 32 bit architectures
The padding of GstClock is a GstClockTime and not a
gpointer, so adding a pointer requires the padding
size to be changed depending on the pointer size.
Use an union instead.
Fixes bug #582878.
Thiago Santos [Fri, 15 May 2009 18:24:40 +0000 (15:24 -0300)]
[gstvalue] adds safety parenthesis to macros missing them.
Thiago Santos [Fri, 15 May 2009 17:42:48 +0000 (14:42 -0300)]
[gstutils] Adds more safety to GST_WRITE_* and GST_READ_ macros.
Adds safety ( ) to parameters in _GST_PUT and _GST_GET macros.
Fixes #582708.
Wim Taymans [Thu, 19 Mar 2009 10:37:12 +0000 (11:37 +0100)]
clock: use seqlocks to parallellize readers
Wim Taymans [Thu, 16 Apr 2009 13:53:29 +0000 (15:53 +0200)]
stress: add a clock stresstest
Add a stresstest for gst_clock_get_time().
Edward Hervey [Fri, 15 May 2009 09:00:53 +0000 (11:00 +0200)]
Makefile.am: update for added/moved/removed files that weren't dist-ed.
Jan Schmidt [Tue, 12 May 2009 10:29:21 +0000 (11:29 +0100)]
docs: Release script modifications
Sebastian Dröge [Thu, 14 May 2009 20:11:57 +0000 (22:11 +0200)]
controller: Use ordered GSequence instead of GList
This makes lookups and insertions O(log n) instead of
always O(n) for insertions and O(n) in worst case for
lookups.
Fixes bug #582564.
Wim Taymans [Thu, 14 May 2009 10:30:23 +0000 (12:30 +0200)]
docs: rename and delete some design docs
Sebastian Dröge [Thu, 14 May 2009 10:30:04 +0000 (12:30 +0200)]
gst-launch: Print the path string for message sources
This reduces confusion if the message source is a pad
and only "src" is printed as source.
Sebastian Dröge [Thu, 14 May 2009 10:25:20 +0000 (12:25 +0200)]
element: Set the originating pad as message source in gst_element_found_tags_for_pad ()
Fixes bug #582588.
Wim Taymans [Thu, 14 May 2009 09:36:28 +0000 (11:36 +0200)]
element: add gst_element_lost_state_full()
Add a gst_element_lost_state_full() with an extra argument to control
distribution of a new base_time. We will need this for flushing step
operations.
API: GstElement::gst_element_lost_state_full()
Wim Taymans [Wed, 13 May 2009 21:52:02 +0000 (23:52 +0200)]
adapter: don't use realloc, it does a memcpy
Don't use realloc to grow the scratch area because we don't want the memcpy the
old useless data into the new area before we write our new stuff in it.
Wim Taymans [Wed, 13 May 2009 21:38:08 +0000 (23:38 +0200)]
docs: update trickmode document
Wim Taymans [Wed, 13 May 2009 20:51:18 +0000 (22:51 +0200)]
adapter: use g_realloc for resizing the buffer
Use g_realloc for resizing the internal buffer instead of a
less fancy _free/_malloc pair.
Wim Taymans [Wed, 13 May 2009 19:35:23 +0000 (21:35 +0200)]
adapter: move new member to private struct
Move the new members to a private struct because we don't have enough padding
anymore on 32-bits platforms.
Wim Taymans [Wed, 13 May 2009 16:50:23 +0000 (18:50 +0200)]
adapter: update some docs
Wim Taymans [Wed, 13 May 2009 15:09:32 +0000 (17:09 +0200)]
tests: add another test for adapter timestamps
Wim Taymans [Wed, 13 May 2009 14:48:38 +0000 (16:48 +0200)]
tests: add new timestamp unit test
Wim Taymans [Wed, 13 May 2009 14:26:00 +0000 (16:26 +0200)]
defs: add new symbol
Wim Taymans [Wed, 13 May 2009 14:09:20 +0000 (16:09 +0200)]
adapter: add method to keep track of timestamps
Keep track of the timestamp and offset associated with the current head of the
adapter.
API: GstAdapter::gst_adapter_prev_timestamp()
Wim Taymans [Wed, 13 May 2009 14:20:26 +0000 (16:20 +0200)]
adapter: small cleanups
Stefan Kost [Wed, 13 May 2009 08:03:27 +0000 (11:03 +0300)]
debugutils: show more pad-details
Show pad activation mode and pad-flags inside the pad. Write down some ideas
about how we could improve the caps layout.