Commit graph

1585 commits

Author SHA1 Message Date
Wim Taymans
0ba0f7cd5b Merge branch '0.10'
Conflicts:
	plugins/elements/gstqueue2.c
2012-04-05 10:36:08 +02:00
Wim Taymans
67ccad0621 queue2: stop waiting for more data after EOS
When we have EOS, read the remaining bytes in the buffer and make sure we don't
wait for more data. Also clip the output buffer to the amount of remaining
bytes.
2012-04-05 10:17:46 +02:00
Wim Taymans
9a1185673e queue2: check for filled buffer correctly
When using the ringbuffer mode, the buffer is filled when we reached the
max_level.bytes mark or the total size of the ringbuffer, whichever is smaller.
2012-04-05 10:16:52 +02:00
Wim Taymans
0bb0c68566 queue2: avoid waiting for a filled buffer
Use a threshold variable to hold the maximum distance from the current position
for with we will wait instead of doing a seek.
When using the ringbuffer and the requested offset is not available, avoid
waiting until the complete ringbuffer is filled but instead do a seek when the
requested data is further than the threshold.
Avoid doing the seek twice in the ringbuffer case.
Use the same threshold for ringbuffer and download buffering.
2012-04-05 10:16:46 +02:00
Sebastian Dröge
b0d89da6b6 gst: Change versioning
Remove GST_MAJORMINOR and replace it by GST_API_VERSION
Also set GST_VERSION_{MAJOR,MINOR,MICRO,NANO} explicitely
now.

All versions are at 1.0.0 now for the release soon but
API/ABI can still change until the 1.0.0 release.

Next release versions until 1.0.0 will be 0.10.9X and
these will be release candidates. GST_VERSION_* will
nonetheless stay at 1.0.0.0.
2012-04-04 14:28:55 +02:00
Руслан Ижбулатов
f140cb8dbd Timeout is not used on W32
Fixes #673267
2012-04-02 11:24:26 +02:00
Wim Taymans
38b96e6c8c buffer: improve the buffer memory methods
gst_buffer_take_memory -> gst_buffer_insert_memory because insert is what the
method does.
Make all methods deal with ranges so that we can replace, merge, remove and map
a certain subset of the memory in a buffer. With the new methods we can make
some code nicer and reuse more code. Being able to deal with a subset of the
buffer memory allows us to optimize more cases later (most notably RTP headers
and payload that could be in different memory objects).
Make some more convenient macros that call the more generic range methods.
2012-03-30 18:15:24 +02:00
Mark Nauwelaerts
bcb98f409b typefindelement: plug caps leaks 2012-03-30 16:53:09 +02:00
Edward Hervey
2bdd71a710 queue: Flush the internal queue when we see GST_FLOW_FLUSHING
Ensures that we don't end up with stale contents (like GstQuery) in
the internal GQueue after any blocking upstream thread returns.
2012-03-29 17:46:35 +02:00
Edward Hervey
c36748177f queue: Don't unref GstQuery travelling through the queue
Unlike events and buffers, the reference is not given to us
2012-03-29 17:46:35 +02:00
Sebastian Dröge
4b6c3c7fea Merge remote-tracking branch 'origin/0.10'
Conflicts:
	plugins/elements/gstmultiqueue.c
2012-03-29 14:54:53 +02:00
Sebastian Dröge
9441e711df multiqueue: Wake up all not-linked streams when a stream switches from linked to not-linked
We reset all the waiting streams, let them push another buffer to
see if they're now active again. This allows faster switching
between streams and prevents deadlocks if downstream does any
waiting too.

Also improve locking a bit, srcresult must be protected by the
multiqueue lock too because it's used/set from random threads.
2012-03-29 14:49:53 +02:00
Sebastian Dröge
17e691421f multiqueue: Recompute high-time too when flushing, not only high-id 2012-03-29 14:47:57 +02:00
Sebastian Dröge
d03e3d7772 inputselector: Only wait until the active pad's running time is reached if the active pad already saw data
Otherwise we might block forever because upstream (e.g. multiqueue) is waiting
for the previously active stream to return forever (which is waiting here
in inputselector) before pushing something on the newly selected stream.
2012-03-29 14:47:57 +02:00
Wim Taymans
f9c85a53dc pad: improve docs of get/pull_range
Improve the docs of the get/pull_range functions, define the lifetime of the
buffer in case of errors and short reads.
Make sure the code does what the docs say.
2012-03-20 13:14:55 +01:00
Wim Taymans
d540a5fc68 multiqueue: handle serialized queries 2012-03-19 11:45:27 +01:00
Wim Taymans
db1318ab4a pad: change the semantics of get/pull_range a little
Make it so that one can specify a buffer for get/pull_range where the downstream
element should write into. When passing NULL, upstream should allocate a buffer,
like in 0.10.
We also need to change the probes a little because before the pull probe, there
could already be a buffer passed. This then allows us to use the same PROBE
macro for before and after pulling.
While we're at the probes, make the query probe more powerful by handling the
GST_PAD_PROBE_DROP return value. Returning _DROP from a query probe will now
return TRUE upstream and will not forward the probe to the peer or handler.
Also handle _DROP for get/pull_range properly by not dispatching to the
peer/handler or by generating EOS when the probe returns DROP and no buffer.
Make filesrc handle the non-NULL buffer passed in the get_range function and
skip the allocation in that case, writing directly into the downstream provided
buffer.
Update tests because now we need to make sure to not pass a random value in the
buffer pointer to get/pull_range
2012-03-16 21:37:10 +01:00
Wim Taymans
b54b886fc5 typefind: proxy allocation query 2012-03-16 21:36:33 +01:00
Wim Taymans
85c9543841 memory: group allocation parameters in a struct
Group the extra allocation parameters in a GstAllocationParams structure to make
it easier to deal with them and so that we can extend them later if needed.
Make gst_buffer_new_allocate() take the GstAllocationParams for added
functionality.
Add boxed type for GstAllocationParams.
2012-03-15 13:42:17 +01:00
Wim Taymans
c93cde0a30 filesrc: only update buffer size on short read 2012-03-15 13:42:17 +01:00
Wim Taymans
0addca0810 queue: remove useless PROXY_ALLOCATION flag 2012-03-15 13:42:12 +01:00
Wim Taymans
9e2ef19dc2 queues: warn when receiving a serialized event
.. until we implement it.
2012-03-14 16:00:48 +01:00
Wim Taymans
2e864c4722 queue: add support for serialized queries 2012-03-14 15:42:33 +01:00
Wim Taymans
8a76c3269a caps: _do_simplify() -> _simplify()
Rename _do_simplify() to _simplify(). The name was introduced as a replacement
method for a deprecated method but we can now rename it again.
Fix some docs.
2012-03-12 11:38:37 +01:00
Wim Taymans
9cdbffea94 caps: improve _do_simplify
Make gst_caps_do_simplify() take ownership of the input caps and produce a
simplified output caps. This removes the requirement of having writable input
caps and the method can make the caps writable only when needed.
2012-03-12 10:42:23 +01:00
Wim Taymans
fe5fe438d3 typefind: remove const from refcounted GstCaps
Having const on refcounted objects require us to make copies instead of simply
taking a ref, don't do that.
2012-03-10 09:25:43 +01:00
Wim Taymans
cfa639c56c tee: fix refcount error 2012-03-08 10:47:39 +01:00
Sebastian Dröge
6b4091a30d Merge branch 'master' into 0.11
Conflicts:
	libs/gst/base/gstbaseparse.c
	libs/gst/base/gstbasetransform.c
	plugins/elements/gsttee.c
2012-03-08 10:19:52 +01:00
Sebastian Dröge
f000bbe924 tee: Fix 'use of logical '&&' with constant operand' compiler warning
This is actually a real bug.
2012-03-06 12:27:33 +01:00
Sebastian Dröge
cfe71423f0 gst: Remove gstmarshal.[ch] completely and use the generic marshaller
Fixes bug #671130.
2012-03-02 11:05:48 +01:00
Tim-Philipp Müller
f701237b77 fdsink: fix compilation after merge 2012-02-27 00:09:57 +00:00
Tim-Philipp Müller
1fbcc71dbd Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	NEWS
	RELEASE
	configure.ac
	docs/plugins/gstreamer-plugins.hierarchy
	docs/plugins/inspect/plugin-coreelements.xml
	libs/gst/base/gstcollectpads.c
	libs/gst/base/gstcollectpads2.c
	plugins/elements/gstfdsink.c
	win32/common/config.h
	win32/common/gstenumtypes.c
	win32/common/gstversion.h
2012-02-27 00:08:39 +00:00
Tim-Philipp Müller
4594e4311d fdsink: implement GstBaseSink::query instead of messing with the pad 2012-02-25 15:18:00 +00:00
Tim-Philipp Müller
965c610028 fdsink: implement SEEKING query
We may or may not support seeking. stdout to a
terminal doesn't support seeking, for example, but
... ! fdsink > file.foo just might.
2012-02-25 15:08:55 +00:00
Tim-Philipp Müller
82a9544385 filesink: implement SEEKING query
We may or may not do seeking, depends on the
output file/device really, it doesn't have to
be a file after all.
2012-02-25 15:07:43 +00:00
Tim-Philipp Müller
c5b335a0e2 fakesink: answer SEEKING query
We don't do seeking, in case anyone wants to know.
2012-02-25 15:07:05 +00:00
Wim Taymans
beea57dca7 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.
2012-02-24 11:00:21 +01:00
Wim Taymans
7b0e4f27fb 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.
2012-02-22 02:10:21 +01:00
Tim-Philipp Müller
654b074477 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.
2012-02-21 21:07:49 +00:00
Wim Taymans
9a074e0e11 queue: remove some old code 2012-02-21 16:38:37 +01:00
Wim Taymans
ef5292c2ab 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.
2012-02-21 12:52:44 +01:00
Wim Taymans
bd1566b9ae fakesrc: handle pts/dts 2012-02-21 12:52:18 +01:00
Wim Taymans
f7813b7ad9 fakesink: remove custom marshaller 2012-02-21 12:46:44 +01:00
Wim Taymans
812afd3a22 identity: also debug dts/pts 2012-02-21 12:43:18 +01:00
Wim Taymans
59893e38ca fakesink: debug pts and dts 2012-02-21 12:13:28 +01:00
Wim Taymans
8d5a11a0d8 identity: remove custom marshaller 2012-02-21 12:12:21 +01:00
Wim Taymans
58ecde9db9 typefind: don't ignore return value when starting a task 2012-02-15 10:13:37 +01:00
Wim Taymans
fed0284d3c typefind: clean up src query handler 2012-02-14 13:24:49 +01:00
Wim Taymans
374d5c36f9 typefind: pass results from activation 2012-02-14 12:57:14 +01:00
Tim-Philipp Müller
41841899c7 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?
2012-02-09 00:14:34 +00:00