platform/upstream/gstreamer.git
12 years agoatomicqueue: fix race
Wim Taymans [Fri, 24 Feb 2012 14:24:42 +0000 (15:24 +0100)]
atomicqueue: fix race

After a writer has written to its reserved write location, it can only make the
location available for reading if all of the writers with lower locations have
finished.

12 years agoatomicqueue: fix subtle race
Wim Taymans [Fri, 24 Feb 2012 11:51:24 +0000 (12:51 +0100)]
atomicqueue: fix subtle race

Fix a race where the reader would see the updated the tail pointer before the
write could write the data into the queue. Fix this by having a separate reader
tail pointer that is only incremented after the writer wrote the data.

12 years agobasetransform: fix reconfigure methods
Wim Taymans [Fri, 24 Feb 2012 10:00:21 +0000 (11:00 +0100)]
basetransform: fix reconfigure methods

Rename gst_base_transform_suggest to gst_base_transform_reconfigure_sink because
that is what it does. Also remove the caps and size because that is not needed.
Rename gst_base_transform_reconfigure to gst_base_transform_reconfigure_src.
Remove some old unused code in capsfilter.

12 years agometa: flesh out the metadata transform
Wim Taymans [Fri, 24 Feb 2012 09:23:27 +0000 (10:23 +0100)]
meta: flesh out the metadata transform

Flesh out the transform method. Add a type and extra info to the transform
function so that implementation can transform the metadata.
Remove the copy function and replace with the more generic transform.

12 years agodocs: update docs
Wim Taymans [Fri, 24 Feb 2012 09:23:17 +0000 (10:23 +0100)]
docs: update docs

12 years agoFix gap in Makefile
David Schleef [Thu, 23 Feb 2012 16:48:22 +0000 (08:48 -0800)]
Fix gap in Makefile

12 years agospelling fix
David Schleef [Thu, 23 Feb 2012 16:48:10 +0000 (08:48 -0800)]
spelling fix

12 years agopoll: fix spelling of writable
David Schleef [Tue, 27 Dec 2011 00:45:20 +0000 (16:45 -0800)]
poll: fix spelling of writable

12 years agomemory: add user_data to GstMapInfo
Wim Taymans [Thu, 23 Feb 2012 14:32:33 +0000 (15:32 +0100)]
memory: add user_data to GstMapInfo

Add extra pointers to GstMapInfo so that implementations can use these to store
extra info.

12 years agobufferpool: improve docs
Wim Taymans [Thu, 23 Feb 2012 14:32:19 +0000 (15:32 +0100)]
bufferpool: improve docs

12 years agodocs: remove transform lock
Wim Taymans [Thu, 23 Feb 2012 10:59:22 +0000 (11:59 +0100)]
docs: remove transform lock

12 years agobasetransform: remove transform lock
Wim Taymans [Thu, 23 Feb 2012 10:08:26 +0000 (11:08 +0100)]
basetransform: remove transform lock

This is not needed anymore by the baseclass. subclasses should do their own
locking when needed.

12 years agobasetrans: cleanups
Wim Taymans [Thu, 23 Feb 2012 09:12:44 +0000 (10:12 +0100)]
basetrans: cleanups

Clean up the setcaps function.
The passthrough variable is protected with the object lock.

12 years agobasetransform: improve propose_allocation
Wim Taymans [Wed, 22 Feb 2012 14:26:05 +0000 (15:26 +0100)]
basetransform: improve propose_allocation

Always call the propose_allocation method and provide a default implementation
that passes the query on in passthrough mode so that subclasses can also call
this. Also pass if the transform is in passthrough mode so that the
implementation can adjust its algorithm.

12 years agobasetrans: improve fixate_caps function
Wim Taymans [Wed, 22 Feb 2012 11:24:34 +0000 (12:24 +0100)]
basetrans: improve fixate_caps function

Make it possible to also implement non-inplace fixate functions. Let the fixate
function make the caps writable when needed because some fixate functions might
not need to modify the caps.

12 years agomemory: make _new_wrapped take user_data and notify
Wim Taymans [Wed, 22 Feb 2012 01:02:50 +0000 (02:02 +0100)]
memory: make _new_wrapped take user_data and notify

Make it possible to configure a GDestroyNotify and user_data for
gst_memory_new_wrapped() this allows for more flexible wrapping of foreign
memory blocks.

12 years agoinput-selector: default to sync-streams=true
Tim-Philipp Müller [Tue, 21 Feb 2012 21:06:17 +0000 (21:06 +0000)]
input-selector: default to sync-streams=true

I think this is the expected behaviour, and we couldn't do this
in 0.10 for backwards-compatibility reasons, so change it now.

12 years agotests: fix queue unit test after queue changes
Wim Taymans [Tue, 21 Feb 2012 15:39:05 +0000 (16:39 +0100)]
tests: fix queue unit test after queue changes

12 years agoqueue: remove some old code
Wim Taymans [Tue, 21 Feb 2012 15:38:37 +0000 (16:38 +0100)]
queue: remove some old code

12 years agopad: handle NULL callbacks
Wim Taymans [Tue, 21 Feb 2012 15:37:11 +0000 (16:37 +0100)]
pad: handle NULL callbacks

When we have a matching NULL callback, also consider the 'callback' marshalled,
this way blocking probes with a NULL callback actually work.

12 years agoqueue: remove weird link behaviour
Wim Taymans [Tue, 21 Feb 2012 11:52:44 +0000 (12:52 +0100)]
queue: remove weird link behaviour

Remove the link functions and always start the pad task on the srcpad. If
applications need to autoplug they can put a blocking probe on the srcpad like
they would with any other element.

12 years agofakesrc: handle pts/dts
Wim Taymans [Tue, 21 Feb 2012 11:52:18 +0000 (12:52 +0100)]
fakesrc: handle pts/dts

12 years agofakesink: remove custom marshaller
Wim Taymans [Tue, 21 Feb 2012 11:46:44 +0000 (12:46 +0100)]
fakesink: remove custom marshaller

12 years agoidentity: also debug dts/pts
Wim Taymans [Tue, 21 Feb 2012 11:43:18 +0000 (12:43 +0100)]
identity: also debug dts/pts

12 years agofakesink: debug pts and dts
Wim Taymans [Tue, 21 Feb 2012 11:13:28 +0000 (12:13 +0100)]
fakesink: debug pts and dts

12 years agoidentity: remove custom marshaller
Wim Taymans [Tue, 21 Feb 2012 11:12:21 +0000 (12:12 +0100)]
identity: remove custom marshaller

12 years agoUnit test for queue src caps notification
Matej Knopp [Thu, 24 Nov 2011 17:40:40 +0000 (18:40 +0100)]
Unit test for queue src caps notification

12 years agotests: fix useless segment test
Wim Taymans [Mon, 20 Feb 2012 13:37:11 +0000 (14:37 +0100)]
tests: fix useless segment test

12 years agosegment: don't use duration in clipping
Wim Taymans [Mon, 20 Feb 2012 13:29:30 +0000 (14:29 +0100)]
segment: don't use duration in clipping

Don't use the duration in the segment for calculating clipping values.
The duration is expressed in stream time and clipping is done on unrelated
timestamp values.
This used to be interesting for elements that used the segment structure to
implement seeking because then they would use stream-time for the segment
start/stop values and the duration could be used as a fallback when the stop
position was not set. Now that the complete segment event is passed between
elements we cannot do this anymore because some elements might store the
duration and start/stop values with different time bases in the segment.

12 years agoinfo: debug segment duration as well
Wim Taymans [Mon, 20 Feb 2012 13:22:00 +0000 (14:22 +0100)]
info: debug segment duration as well

12 years agobasetransform: copy metadata when using a pool
Wim Taymans [Mon, 20 Feb 2012 10:46:36 +0000 (11:46 +0100)]
basetransform: copy metadata when using a pool

also copy the metadata when we allocated a new buffer from a pool

12 years agonettimepacket: fix printf format warning in debug message
Matej Knopp [Thu, 26 Jan 2012 08:02:48 +0000 (03:02 -0500)]
nettimepacket: fix printf format warning in debug message

https://bugzilla.gnome.org/show_bug.cgi?id=664491

12 years agomemory: fix more docs
Wim Taymans [Sat, 18 Feb 2012 00:04:18 +0000 (01:04 +0100)]
memory: fix more docs

12 years agodoc fixups
Edward Hervey [Fri, 17 Feb 2012 23:53:58 +0000 (15:53 -0800)]
doc fixups

12 years agobasesrc: Move variable and assignment to where it's needed
Edward Hervey [Fri, 17 Feb 2012 23:09:56 +0000 (15:09 -0800)]
basesrc: Move variable and assignment to where it's needed

12 years agobasetransform: Handle return value of decide_allocation vmethod
Edward Hervey [Fri, 17 Feb 2012 23:09:06 +0000 (15:09 -0800)]
basetransform: Handle return value of decide_allocation vmethod

If it fails, properly propagate the error

12 years agogstvalue: Remove useless assignment
Edward Hervey [Fri, 17 Feb 2012 23:08:32 +0000 (15:08 -0800)]
gstvalue: Remove useless assignment

12 years agogstvalue: Gracefully handle NULL Gvalue
Edward Hervey [Fri, 17 Feb 2012 23:07:56 +0000 (15:07 -0800)]
gstvalue: Gracefully handle NULL Gvalue

Avoids unreferencing NULL pointer

12 years agopad: make some errors critical
Wim Taymans [Fri, 17 Feb 2012 23:03:41 +0000 (00:03 +0100)]
pad: make some errors critical

When we have no chain function or when we are operating the pad in the wrong
mode, emit a critical instead of posting an error message. This is certainly a
programming error and we cannot always post a message (like when the pad has no
parent)

12 years agoinfo: also debug position of segment
Wim Taymans [Fri, 17 Feb 2012 23:03:13 +0000 (00:03 +0100)]
info: also debug position of segment

12 years agowin32: back to development
Wim Taymans [Fri, 17 Feb 2012 22:59:28 +0000 (23:59 +0100)]
win32: back to development

12 years agoconfigure: back to development
Wim Taymans [Fri, 17 Feb 2012 10:02:40 +0000 (11:02 +0100)]
configure: back to development

12 years agoRELEASE 0.11.2 RELEASE-0.11.2
Wim Taymans [Fri, 17 Feb 2012 10:01:16 +0000 (11:01 +0100)]
RELEASE 0.11.2

12 years agobaseparse: tweak some documentation
Mark Nauwelaerts [Wed, 15 Feb 2012 16:12:09 +0000 (17:12 +0100)]
baseparse: tweak some documentation

12 years agobaseparse: simplify and improve frame state handling
Mark Nauwelaerts [Wed, 15 Feb 2012 16:11:54 +0000 (17:11 +0100)]
baseparse: simplify and improve frame state handling

Use a frame flag to signal to subclass it should reset any retained
state w.r.t. frame parsing since the frame being passed is 'new',
i.e. not related to previously passed and processed data.

12 years agobaseparse: don't leak event
Wim Taymans [Wed, 15 Feb 2012 12:15:55 +0000 (13:15 +0100)]
baseparse: don't leak event

In the unlikely case where the subclass set the event function to NULL, don't
leak the event.

12 years agobaseparse: make activation code more like other
Wim Taymans [Wed, 15 Feb 2012 11:19:13 +0000 (12:19 +0100)]
baseparse: make activation code more like other

Make the pad activation code look more like other activation code.
Only start the sinkpad task when we decide to activate in pull mode, when we
later add srcpad pullmode this will be needed.

12 years agotask: add more debug
Wim Taymans [Wed, 15 Feb 2012 11:18:38 +0000 (12:18 +0100)]
task: add more debug

12 years agobaseparse: add some more debug
Wim Taymans [Wed, 15 Feb 2012 10:11:11 +0000 (11:11 +0100)]
baseparse: add some more debug

12 years agobaseparse: track consumed input size
Mark Nauwelaerts [Wed, 15 Feb 2012 09:58:08 +0000 (10:58 +0100)]
baseparse: track consumed input size

... as used by subsequent input data rate estimation (and seeking).

12 years agobaseparse: chain up to parent for defaults
Wim Taymans [Wed, 15 Feb 2012 09:11:35 +0000 (10:11 +0100)]
baseparse: chain up to parent for defaults

Chain up to the parent instead of using the FALSE return value from the event
function (because it's otherwise impossible to return an error).

12 years agotypefind: don't ignore return value when starting a task
Wim Taymans [Wed, 15 Feb 2012 09:10:53 +0000 (10:10 +0100)]
typefind: don't ignore return value when starting a task

12 years agobaseparse: Revert "baseparse: really provide upstream ts to subclass"
Mark Nauwelaerts [Tue, 14 Feb 2012 19:17:37 +0000 (20:17 +0100)]
baseparse: Revert "baseparse: really provide upstream ts to subclass"

This reverts commit 2363490ef5a9fe8d414369d24fcaa65a9dfa83ac.

12 years agobaseparse: remove dead code and superfluous loop level
Mark Nauwelaerts [Tue, 14 Feb 2012 18:33:50 +0000 (19:33 +0100)]
baseparse: remove dead code and superfluous loop level

12 years agobaseparse: modify reverse playback handling
Mark Nauwelaerts [Tue, 14 Feb 2012 18:33:46 +0000 (19:33 +0100)]
baseparse: modify reverse playback handling

... so as to allow the push-mode case to provide data to subclass
on a buffer by buffer basis (as in regular forward case), rather
than all buffers of a fragment chucked together.

Also refactor buffer handling some more, and add some debug.

12 years agobaseparse: really provide upstream ts to subclass
Mark Nauwelaerts [Tue, 14 Feb 2012 18:33:33 +0000 (19:33 +0100)]
baseparse: really provide upstream ts to subclass

12 years agotypefind: clean up src query handler
Wim Taymans [Tue, 14 Feb 2012 12:24:49 +0000 (13:24 +0100)]
typefind: clean up src query handler

12 years agotypefind: pass results from activation
Wim Taymans [Tue, 14 Feb 2012 11:57:14 +0000 (12:57 +0100)]
typefind: pass results from activation

12 years agoMerge branch 'master' into 0.11
Wim Taymans [Tue, 14 Feb 2012 09:35:06 +0000 (10:35 +0100)]
Merge branch 'master' into 0.11

12 years agodefs: update
Wim Taymans [Tue, 14 Feb 2012 09:30:40 +0000 (10:30 +0100)]
defs: update

12 years agobaseparse: modify API to a _finish_frame based approach
Mark Nauwelaerts [Mon, 13 Feb 2012 17:22:37 +0000 (18:22 +0100)]
baseparse: modify API to a _finish_frame based approach

... which aligns it with other baseclass in the wild, and should give
converter parsers a bit cleaner freedom.

12 years agobaseparse: fix reverse playback
Mark Nauwelaerts [Mon, 13 Feb 2012 17:09:51 +0000 (18:09 +0100)]
baseparse: fix reverse playback

... especially for all-keyframe (audio) cases.

12 years agomemory: more work on refcount and writability
Wim Taymans [Mon, 13 Feb 2012 15:33:00 +0000 (16:33 +0100)]
memory: more work on refcount and writability

Rename _is_writable() with _is_exclusive because the writability does not depend
on the amount of references to the memory object anymore.
Add accessor macros for the memory flags.
Rename the GstBuffer _peek_memory() method to _get_memory() and return a
reference to the memory now that we can do this without affecting writability
of the memory object. Make it possible to also make this function merge the
buffer memory.
Add methods to replace memory in a buffer. Make some convience macros for the
buffer memory functions.
Fix unit tests.

12 years agodef: update
Wim Taymans [Mon, 13 Feb 2012 16:22:51 +0000 (17:22 +0100)]
def: update

12 years agometa: fix typos
Wim Taymans [Mon, 13 Feb 2012 14:18:28 +0000 (15:18 +0100)]
meta: fix typos

12 years agodocs: add a paragraph about the STREAM CONFIG event to the design docs
Tim-Philipp Müller [Sun, 12 Feb 2012 21:17:41 +0000 (21:17 +0000)]
docs: add a paragraph about the STREAM CONFIG event to the design docs

12 years agoevent: make _parse_nth_stream_config_header() and _parse_setup_data() return a boolean
Tim-Philipp Müller [Sun, 12 Feb 2012 21:04:18 +0000 (21:04 +0000)]
event: make _parse_nth_stream_config_header() and _parse_setup_data() return a boolean

As they can fail (only one of stream headers or setup data
is usually present).

12 years agoevent: rename gst_event_{set,parse}_stream_config_codec_data() to _setup_data()
Tim-Philipp Müller [Sun, 12 Feb 2012 20:51:39 +0000 (20:51 +0000)]
event: rename gst_event_{set,parse}_stream_config_codec_data() to _setup_data()

More generic.

12 years agoMerge branch 'master' into 0.11
Wim Taymans [Fri, 10 Feb 2012 14:03:03 +0000 (15:03 +0100)]
Merge branch 'master' into 0.11

12 years agoclean up object init
Wim Taymans [Fri, 10 Feb 2012 13:58:13 +0000 (14:58 +0100)]
clean up object init

Make an _init method where the parent mini-object and other fields are
initialized.
Check that the passed structure doesn't already have a parent.
Use the _new_custom () constructors

12 years agobaseparse: bitrate mechanics should not deal with duration update
Mark Nauwelaerts [Tue, 7 Feb 2012 10:28:41 +0000 (11:28 +0100)]
baseparse: bitrate mechanics should not deal with duration update

... since that is already handled by _update_duration, or should not be done
altogether if the duration is determined by non-estimated means.

Fixes #669502.

12 years agodocs: push_event doesn't return a flow value after all
Tim-Philipp Müller [Fri, 10 Feb 2012 12:45:50 +0000 (12:45 +0000)]
docs: push_event doesn't return a flow value after all

12 years agopad: silence probe debug a litte
Wim Taymans [Fri, 10 Feb 2012 11:05:18 +0000 (12:05 +0100)]
pad: silence probe debug a litte

12 years agobasesink: implement faster ACCEPT_CAPS query
Wim Taymans [Fri, 10 Feb 2012 10:24:28 +0000 (11:24 +0100)]
basesink: implement faster ACCEPT_CAPS query

12 years agogst: add some performance logging
Wim Taymans [Fri, 10 Feb 2012 10:09:01 +0000 (11:09 +0100)]
gst: add some performance logging

Add some performance logging for caps copy and the slow default acceptcaps
implementation

12 years agodocs: update and improve docs
Wim Taymans [Sat, 14 Jan 2012 18:16:01 +0000 (19:16 +0100)]
docs: update and improve docs

12 years agoutils: remove gst_element_class_install_std_props()
Tim-Philipp Müller [Thu, 9 Feb 2012 00:14:58 +0000 (00:14 +0000)]
utils: remove gst_element_class_install_std_props()

It's only used in one place (rtmp), and there not very well.

12 years agofakesrc, identity, fakesink: do not generate last-message updates by default
Tim-Philipp Müller [Wed, 8 Feb 2012 23:47:40 +0000 (23:47 +0000)]
fakesrc, identity, fakesink: do not generate last-message updates by default

Default to not creating lots of overhead by doing a couple of
g_strdup_printf()/g_free() per buffer or event just to generate
a last-message update that rarely anyone listens to. This means
that you need to enable silent=true explicitly in order to get
last-message dumps in gst-launch -v now. On the upside, people
won't inadvertently end up benchmarking g_strdup_printf()
performance instead of gstreamer data handling performance any
more.

Maybe the silent property should be renamed to enable-last-message
or something like that?

12 years agoGST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING
Wim Taymans [Wed, 8 Feb 2012 14:16:46 +0000 (15:16 +0100)]
GST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING

12 years agoqueue: use default query function to optionally forward query
Mark Nauwelaerts [Wed, 8 Feb 2012 14:34:28 +0000 (15:34 +0100)]
queue: use default query function to optionally forward query

... rather than querying peer unconditionally with possibly undesirable
outcome in case of e.g. SCHEDULING query.

12 years agobaseparse: clean up a few minor extraneous tokens
Mark Nauwelaerts [Wed, 8 Feb 2012 14:03:56 +0000 (15:03 +0100)]
baseparse: clean up a few minor extraneous tokens

12 years agobaseparse: remove closing segment handling
Mark Nauwelaerts [Tue, 7 Feb 2012 11:48:50 +0000 (12:48 +0100)]
baseparse: remove closing segment handling

12 years agoMerge branch 'master' into 0.11
Wim Taymans [Wed, 8 Feb 2012 13:45:25 +0000 (14:45 +0100)]
Merge branch 'master' into 0.11

12 years agotypefind: fix race in pad mode change
Wim Taymans [Wed, 8 Feb 2012 13:32:01 +0000 (14:32 +0100)]
typefind: fix race in pad mode change

Fixes #668909 and presumably also #669483

12 years agopad: error when activation mode is wrong
Wim Taymans [Wed, 8 Feb 2012 11:57:11 +0000 (12:57 +0100)]
pad: error when activation mode is wrong

Post an error when we try to push on a pad activated in pull mode and pull on a
pad in push mode.

12 years agoclock: remove method declaration too
Wim Taymans [Wed, 8 Feb 2012 08:30:02 +0000 (09:30 +0100)]
clock: remove method declaration too

12 years agoclock: remove unimplemented stats property while we can
Stefan Sauer [Tue, 7 Feb 2012 12:41:20 +0000 (13:41 +0100)]
clock: remove unimplemented stats property while we can

12 years agofakesrc: remove custom marshaller
Wim Taymans [Tue, 7 Feb 2012 09:44:07 +0000 (10:44 +0100)]
fakesrc: remove custom marshaller

Remove our custom marshaller.
Make the buffer in the handoff signal static_scope so that it is actually
writable.

12 years agogst: improve debugging
Wim Taymans [Mon, 6 Feb 2012 08:46:47 +0000 (09:46 +0100)]
gst: improve debugging

12 years agoregistry: fix compilation with --disable-registry
Havard Graff [Wed, 4 Jan 2012 16:10:15 +0000 (17:10 +0100)]
registry: fix compilation with --disable-registry

__registry_reuse_plugin_scanner is only defined when
GST_DISABLE_REGISTRY is not defined.

gstregistry.c: In function 'gst_registry_scan_plugin_file':
gstregistry.c:1131:8: error: '__registry_reuse_plugin_scanner' undeclared (first use in this function)

https://bugzilla.gnome.org/show_bug.cgi?id=667284

12 years agobin: reset the EOS detection machinery after sending an EOS message
Vincent Penquerc'h [Thu, 2 Feb 2012 17:18:22 +0000 (17:18 +0000)]
bin: reset the EOS detection machinery after sending an EOS message

This will allow detecting further EOS, for instance after looping
a stream without changing states.

https://bugzilla.gnome.org/show_bug.cgi?id=668289

12 years agoautogen.sh: allow calling from out-of-tree
Ryan Lortie [Sun, 8 Jan 2012 04:00:12 +0000 (23:00 -0500)]
autogen.sh: allow calling from out-of-tree

https://bugzilla.gnome.org/show_bug.cgi?id=667664

12 years agotrace: print caps in dump
Wim Taymans [Thu, 2 Feb 2012 15:59:12 +0000 (16:59 +0100)]
trace: print caps in dump

12 years agodefs: update
Wim Taymans [Thu, 2 Feb 2012 15:04:10 +0000 (16:04 +0100)]
defs: update

12 years agomemory: add debug and trace for GstMemory
Wim Taymans [Thu, 2 Feb 2012 14:57:48 +0000 (15:57 +0100)]
memory: add debug and trace for GstMemory

12 years agotrace: don't check random pointers for objects
Wim Taymans [Thu, 2 Feb 2012 14:55:44 +0000 (15:55 +0100)]
trace: don't check random pointers for objects

Only see if the traced pointer is a GObject when it was registered with the
special offset of -2.

12 years agoUpdate debug categories
Wim Taymans [Thu, 2 Feb 2012 14:54:28 +0000 (15:54 +0100)]
Update debug categories

Remove some categories marked for deletion.
Add a category for GstMemory.

12 years agoremove TRACE_NAME from headers
Wim Taymans [Thu, 2 Feb 2012 14:52:19 +0000 (15:52 +0100)]
remove TRACE_NAME from headers

12 years agobuffer: add new test
Wim Taymans [Thu, 2 Feb 2012 12:17:38 +0000 (13:17 +0100)]
buffer: add new test

12 years agodentity: remove prepare_output_buffer
Wim Taymans [Thu, 2 Feb 2012 12:15:24 +0000 (13:15 +0100)]
dentity: remove prepare_output_buffer

Correctly mark passthrough on the baseclass so that it can correctly do the
allocation of the output buffers.
Remove our custom prepare_output_buffer function now that the baseclass is
smarter.