platform/upstream/gstreamer.git
15 years agogit-version.sh: make executable
Thomas Vander Stichele [Sat, 13 Jun 2009 12:55:43 +0000 (14:55 +0200)]
git-version.sh: make executable

15 years agoUpdate scripts/cvs-update.sh to git-update.sh; add git-version.sh
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

15 years agobytereader: add gst_byte_reader_masked_scan_uint32()
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()

15 years agoFix remaining --disable-gst-debug ABI breakage.
René Stadler [Fri, 17 Apr 2009 14:59:38 +0000 (17:59 +0300)]
Fix remaining --disable-gst-debug ABI breakage.

Fixes #579177.

15 years agofilesrc/sink: turn the bus messages into g_warning
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.

15 years agomessage: fix docs
Wim Taymans [Fri, 12 Jun 2009 13:48:35 +0000 (15:48 +0200)]
message: fix docs

15 years agostepping: more stepping improvements
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.

15 years agobasesink: post step-start
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.

15 years agomessage: add step-start message
Wim Taymans [Wed, 10 Jun 2009 13:48:35 +0000 (15:48 +0200)]
message: add step-start message

15 years agogstvalue: more efficient value table lookup for fundamental types
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.

15 years agogstvalue: don't put GTypes into int variables
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.

15 years agofilesrc/sink: improve warning message a bit (wrong state)
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.

15 years agoelementfactory: Fix a compiler warning
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.

15 years agodocs: Bump common, fix the upload logic inclusion
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.

15 years agomultiqueue: Use the slice allocator for MultiQueueItems
Jan Schmidt [Tue, 9 Jun 2009 10:13:04 +0000 (11:13 +0100)]
multiqueue: Use the slice allocator for MultiQueueItems

15 years agoMake sure config.h is only included once
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).

15 years agoplugin: add since: tags for the api docs.
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

15 years agoplugin: fix leaks introduced by fix for #584389
Stefan Kost [Wed, 10 Jun 2009 09:02:23 +0000 (12:02 +0300)]
plugin: fix leaks introduced by fix for #584389

15 years agostructure: add gst_structure_*_get*() vararg functions
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()

15 years agodocs: a few small API doc fixes and additions
Tim-Philipp Müller [Mon, 8 Jun 2009 23:16:05 +0000 (00:16 +0100)]
docs: a few small API doc fixes and additions

15 years agologging: when logging taglists, shorten long buffer dumps
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.

15 years agomultiqueue: check byte range even when we have timestamps
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.

15 years agobasesink: update segment start/stop for clipping
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.

15 years agobasesink: do proper clipping in stepping
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.

15 years agosegment: make conversion more precise
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.

15 years agoutils: gst_util_uint64_scale*() micro-optimisations
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().

15 years agoRemove double semicolons at end of line
Tim-Philipp Müller [Sun, 7 Jun 2009 21:49:01 +0000 (22:49 +0100)]
Remove double semicolons at end of line

15 years agostepping: do flushing steps correctly
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.

15 years agobasesink: Change awkward wording in a translateable message.
Jan Schmidt [Mon, 8 Jun 2009 15:16:27 +0000 (16:16 +0100)]
basesink: Change awkward wording in a translateable message.

15 years agobasesink: add non-flushing steps
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

15 years agoregistry: allow plugins to cache extra data in registry. Fixes #570233
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.

15 years agoregistry: don't recreate features on first use. Fixes #584389
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().

15 years agotests: conditionally compile the streams example
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

15 years agogstvalue: remove type checks and redundant code
Wim Taymans [Sun, 7 Jun 2009 15:32:35 +0000 (17:32 +0200)]
gstvalue: remove type checks and redundant code

15 years agovalue: fix fraction range lcopy function
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...

15 years agogstvalue: performance improvements
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

15 years agostructure: no need to clear on init
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.

15 years agogststructure: Fix some memory leaks. Sprinkle G_LIKELY/UNLIKELY
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.

15 years agobasesrc: reply to QUERY_SEEKING with original format. Fixes #584838.
Mark Nauwelaerts [Fri, 5 Jun 2009 09:37:24 +0000 (11:37 +0200)]
basesrc: reply to QUERY_SEEKING with original format.  Fixes #584838.

15 years agoconfigure: remove AC_C_INLINE and update win32 files to git
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).

15 years agoghostpad: avoid excessive notify for caps
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).

15 years agobasesink: fix clipped start/stop after step
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.

15 years agobasesink: use more correct segment methods
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.

15 years agosegment: add gst_segment_set_running_time
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()

15 years agopo: update .po files for string changes
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.

15 years agoerrors: reword state change failed error message and remove bugzilla link
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.

15 years agogst-launch: refer to element, pad, or object in some message strings
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.

15 years agoAPI: add GST_MESSAGE_SRC_NAME macro
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.

15 years agosegment: add method for converting to position
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()

15 years agobasesink; handle EOS correctly.
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.

15 years agoRevert "go back to allowing gettext 0.11.5, but don't mix with libtool 2.2"
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.

15 years agoRevert "only update submodule when it is not on a specific branch"
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.

15 years agodocs: fix up reference to gst-launch-0.8
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

15 years agobasesink: forget previous times when stepping
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.

15 years agogo back to allowing gettext 0.11.5, but don't mix with libtool 2.2
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

15 years agoonly update submodule when it is not on a specific branch
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

15 years agotools: Set pipeline to PAUSED before waiting for main loop idle
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.

15 years agostructure: fix serialisation of nested structures.
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.

15 years agobasesink: fix regression in unit tests
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.

15 years agoinfo: widen log level strings to take into account the new MEMDUMP
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

15 years agobasesink: post a warning on excessive framedrops
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.

15 years agobasesink: more stepping in reverse
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.

15 years agobasesink: use start_time as the step start
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.

15 years agobasesink: catch step cases in _wait_preroll()
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.

15 years agobasesink: more stepping in reverse fixes
Wim Taymans [Tue, 19 May 2009 08:50:57 +0000 (10:50 +0200)]
basesink: more stepping in reverse fixes

15 years agobasesink: small cleanups
Wim Taymans [Mon, 18 May 2009 16:41:45 +0000 (18:41 +0200)]
basesink: small cleanups

15 years agoframestep: implement backwards framestep
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.

15 years agobasesink: add framestepping in time
Wim Taymans [Fri, 15 May 2009 13:25:06 +0000 (15:25 +0200)]
basesink: add framestepping in time

15 years agoexamples: step in time as well
Wim Taymans [Fri, 15 May 2009 13:24:30 +0000 (15:24 +0200)]
examples: step in time as well

15 years agoexample: print step_done message and sync
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.

15 years agobasesink: keep track of stepped time
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.

15 years agobasesink: move stuff around, more stepping
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.

15 years agoAdd frame stepping in PAUSED example
Wim Taymans [Mon, 11 May 2009 16:56:03 +0000 (18:56 +0200)]
Add frame stepping in PAUSED example

15 years agobasesink: first stab at frame stepping in PAUSED
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.

15 years agoadd new API for framestepping
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()

15 years agostructures: don't leak invalid or empty strings when we warn
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.

15 years agocontroller: add test for cubic int. and too few control points
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.

15 years agofakesrc: add a FIXME comment for blocksize vs. size-max property issue
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

15 years agoidentity: hack around g_object_notify() bug by protecting it with a lock
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.

15 years agocontroller: use real world number in benchmark
Stefan Kost [Sun, 31 May 2009 19:37:59 +0000 (22:37 +0300)]
controller: use real world number in benchmark

15 years agoregistry: fix comment formatting
Stefan Kost [Sun, 31 May 2009 19:37:03 +0000 (22:37 +0300)]
registry: fix comment formatting

15 years agofakesink: hack around crasher bug in g_object_notify() for out-of-band events
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.

15 years agotaglists: make _get_{string|pointer} return FALSE for NULL values
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.

15 years agotaglists: warn if someone tries to add empty or NULL string tags to a taglist
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.

15 years agostructure: add gst_structure_id_new() convenience function
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()

15 years agomicro-optimisation: use GST_QUARK in more places
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.

15 years agoelement: reset start_time in lost state
Wim Taymans [Fri, 29 May 2009 14:04:28 +0000 (16:04 +0200)]
element: reset start_time in lost state

15 years agodocs: update element an pipeline docs
Wim Taymans [Fri, 29 May 2009 11:03:15 +0000 (13:03 +0200)]
docs: update element an pipeline docs

15 years agodocs: remove a TODO item that is fixed now
Wim Taymans [Fri, 29 May 2009 10:48:28 +0000 (12:48 +0200)]
docs: remove a TODO item that is fixed now

15 years agopipeline: deprecate old methods, fix test
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.

15 years agopipeline: use START_TIME to keep track of 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.

15 years agobin: set the base_time and start_time better
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.

15 years agobin: make the bin set the start_time on elements
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.

15 years agoelement: add start_time field an methods
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.

15 years agoadapter: fix _masked_scan_uint32() at boundaries
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

15 years agopad: add pad private structure
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.

15 years agoAdd missing symbol to the win32 exports
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.

15 years agobuffer: avoid memory leaks
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.

15 years agoAPI: Add gst_message_{new,parse}_tag_full() to get/set the source pad
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.

15 years agoRevert "element: Set the originating pad as message source in gst_element_found_tags_...
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.