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.
Wim Taymans [Thu, 4 Jun 2009 10:34:47 +0000 (12:34 +0200)]
basesink: use more correct segment methods
Use the more correct new segment methods for updating the segment before and
after a step.
Wim Taymans [Thu, 4 Jun 2009 10:48:51 +0000 (12:48 +0200)]
segment: add gst_segment_set_running_time
Added new method for closing the segment to a specific running time.
API: GstSegment::gst_segment_set_running_time()
Tim-Philipp Müller [Wed, 3 Jun 2009 23:37:28 +0000 (00:37 +0100)]
po: update .po files for string changes
This makes sure that people who get themselves a fresh checkout
don't immediately have changed *po files after running make, which
would cause a bit of hassle next time the files are updated. Better
to keep them up-to-date when strings change.
Tim-Philipp Müller [Wed, 3 Jun 2009 23:54:24 +0000 (00:54 +0100)]
errors: reword state change failed error message and remove bugzilla link
Reword this message a bit to make it clearer what it means, namely that
the state change may have failed for good reasons, but that the element
just failed to post a proper error on the bus. This is not an internal
GStreamer bug, and we really don't need people to flood bugzilla with
bug reports if one such plugin bug ever makes it into the wild.
Tim-Philipp Müller [Wed, 3 Jun 2009 23:29:31 +0000 (00:29 +0100)]
gst-launch: refer to element, pad, or object in some message strings
Revisit these strings now that the change regarding the message source
object in gst_element_found_tags_for_pad() got reverted. Try to refer
explicitly to what kind of element it is (element, pad, etc.) in some
cases, which is nicer than having to deduce this info (and we can
re-use the already existing translated strings for the most common
case). It also makes for better example code, since it's clear now
that the message source object doesn't have to be an element.
Tim-Philipp Müller [Wed, 3 Jun 2009 20:10:39 +0000 (21:10 +0100)]
API: add GST_MESSAGE_SRC_NAME macro
Add GST_MESSAGE_SRC_NAME macro that always returns a non-NULL string.
Useful for debugging and logging purposes.
Wim Taymans [Wed, 3 Jun 2009 17:06:30 +0000 (19:06 +0200)]
segment: add method for converting to position
Add gst_segment_to_position() that converts a running_time to a position in the
segment. A faulty variant of this function is currently used in inputselector
but we'll need it for frame stepping too.
API: GstSegment::gst_segment_to_position()
Wim Taymans [Wed, 3 Jun 2009 13:39:13 +0000 (15:39 +0200)]
basesink; handle EOS correctly.
Handle EOS and buffers without a timestamp gracefully.
Remove a warning that is not so much a warning now anymore.
Tim-Philipp Müller [Wed, 3 Jun 2009 08:45:25 +0000 (09:45 +0100)]
Revert "go back to allowing gettext 0.11.5, but don't mix with libtool 2.2"
This reverts commit
31c09d738ce7f47bff9d292996e9489c275e55a1.
Reverting this, since it breaks autogen.sh for me on debian sid.
Failure is: "libtool 2.2 requires autopoint 0.17 or higher" even though
0.17 was found.
Tim-Philipp Müller [Wed, 3 Jun 2009 08:41:21 +0000 (09:41 +0100)]
Revert "only update submodule when it is not on a specific branch"
This reverts commit
93b83333aad519c5555156576f0baa3be7b263f3.
Reverting since this fails on a fresh checkout. Also, we shouldn't
depend on possibly translated strings.
Tim-Philipp Müller [Wed, 3 Jun 2009 00:56:10 +0000 (01:56 +0100)]
docs: fix up reference to gst-launch-0.8
Also mention decodebin2, uridecodebin, and playbin2
Wim Taymans [Wed, 3 Jun 2009 08:39:53 +0000 (10:39 +0200)]
basesink: forget previous times when stepping
When we start a flushing step operation, forget about the previous stream time
so that the position reporting works correctly.
Thomas Vander Stichele [Tue, 2 Jun 2009 23:25:26 +0000 (01:25 +0200)]
go back to allowing gettext 0.11.5, but don't mix with libtool 2.2
Thomas Vander Stichele [Tue, 2 Jun 2009 23:01:57 +0000 (01:01 +0200)]
only update submodule when it is not on a specific branch
David Schleef [Tue, 2 Jun 2009 20:45:52 +0000 (13:45 -0700)]
tools: Set pipeline to PAUSED before waiting for main loop idle
When it is shutting down a pipeline after ctrl-c, set pipeline to
paused before waiting for the main loop to complete all pending
transactions. Fixes #584657.
If some part of the pipeline is generating signals or idle functions
at a fast rate, waiting for a main loop iteration may never return.
Stefan Kost [Tue, 2 Jun 2009 15:36:10 +0000 (18:36 +0300)]
structure: fix serialisation of nested structures.
Use string_warp/unwrap to escape delimiters, otherwise deserialisation fails.
Also move GST_ASCII_IS_STRING to private header to avoid keeping it in sync.
Also use '\0' when terminating a string for better readability.
Wim Taymans [Tue, 2 Jun 2009 13:37:22 +0000 (15:37 +0200)]
basesink: fix regression in unit tests
Store the timestamp of the buffer after prerolling. While we are prerolled we
want to report the position of the segment start value.
Tim-Philipp Müller [Mon, 1 Jun 2009 19:26:53 +0000 (20:26 +0100)]
info: widen log level strings to take into account the new MEMDUMP
Wim Taymans [Mon, 1 Jun 2009 17:37:14 +0000 (19:37 +0200)]
basesink: post a warning on excessive framedrops
When we go into emergency rendering, post a warning informing the user about
this fact.
Wim Taymans [Sun, 31 May 2009 17:10:02 +0000 (19:10 +0200)]
basesink: more stepping in reverse
Fix stepping and position reporting in reverse playback.
Wim Taymans [Fri, 29 May 2009 14:06:52 +0000 (16:06 +0200)]
basesink: use start_time as the step start
Use the start_time of the element as the point from where the step operation
starts. This fixes stepping in all paused states.
Wim Taymans [Tue, 19 May 2009 17:45:06 +0000 (19:45 +0200)]
basesink: catch step cases in _wait_preroll()
When a subclass is blocking in _wait_preroll() in the _render method, make sure
we can unlock the subclass and detect this return value from the render method.
Wim Taymans [Tue, 19 May 2009 08:50:57 +0000 (10:50 +0200)]
basesink: more stepping in reverse fixes
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