Commit graph

12056 commits

Author SHA1 Message Date
Sebastian Dröge
dc63e38219 caps: Merge structures when intersecting instead of appending them
This prevents adding duplicates over and over again to the resulting
caps if they already describe the new intersection result.

While this changes intersection from O(n*m) to O(n^2*m), it results in
smaller caps, which in the end will decrease further processing times.

For example in an audioconvert ! audioconvert ! audioconvert pipeline,
when forwarding the downstream caps preference in basetransform
(see e26da72de25a91c3eaad9f7c8b2f53ba888a0394) this results in
16 instead of 191 caps structures.
2011-05-05 15:22:14 +02:00
Sebastian Dröge
aebe4a3c13 basetransform: In getcaps() prefer the caps order and caps of downstream if possible 2011-05-05 15:22:08 +02:00
Sebastian Dröge
a6c1cbe69a basetransform: Prefer caps order given by the subclass of the template caps order 2011-05-05 15:20:10 +02:00
Sebastian Dröge
07f59f5404 basesrc: Use the reconfigure flag on the pad instead of the event 2011-05-05 15:20:02 +02:00
Sebastian Dröge
1cc95da945 basetransform: Use new reconfigure flag on the pads instead of the reconfigure event 2011-05-05 15:19:56 +02:00
Sebastian Dröge
5a7ec99214 pad: Keep track of reconfigure events and the pad-needs-reconfiguring status 2011-05-05 15:11:51 +02:00
Sebastian Dröge
25916cff66 event: Rename renegotiate event to reconfigure
In 0.11 this event will also do reconfiguration of buffer pools
and similar things, not just renegotiation.
2011-05-05 15:06:00 +02:00
Olivier Crête
40cff0eb6d pad: Send renegotiate event on link 2011-05-05 15:04:33 +02:00
Olivier Crête
581533cd00 pad: Drop renegotiate event if there is no getcaps function on a sink pad
If there is no custom getcaps function on a sink pad, then changes in
downstream caps will never be propagated, so there is no point in trying to
renegotiate the capabilities.
2011-05-05 15:04:25 +02:00
Sebastian Dröge
0179530bf1 basesrc: Only renegotiate once after receiving a renegotiate event
Also make this threadsafe.
2011-05-05 15:04:16 +02:00
Thiago Santos
93904ef3ad basesrc: Handle the new renegotiate event
Makes basesrc handle the new renegotiate event by using a
renegotiate flag.
2011-05-05 15:03:54 +02:00
Sebastian Dröge
24cef7aa2f basetransform: Also call gst_base_transform_reconfigure() on renegotiate events 2011-05-05 15:02:56 +02:00
Thiago Santos
3baed25383 basetransform: Handle the new renegotiate event
Let basetransform push a renegotiate event upstream
when it gets a new suggestion
2011-05-05 15:02:46 +02:00
Thiago Santos
a3dd59e97a event: Adding new renegotiate event 2011-05-05 15:02:39 +02:00
Wim Taymans
77569e0a9a pad: pass the context around
Pass the context from srcpad to sinkpad before dataflow when something
changed.
2011-05-05 13:17:08 +02:00
Wim Taymans
f16180a761 pad: update the context lazyly 2011-05-05 13:17:08 +02:00
Wim Taymans
e72d062b33 gst: init the GType early 2011-05-05 13:17:08 +02:00
Wim Taymans
ebf615a9e9 defs: update defs 2011-05-05 13:17:08 +02:00
Wim Taymans
08dbe37f6f context: add foreach function
Add a function to iterate over all stored events.
2011-05-05 13:17:08 +02:00
Wim Taymans
c4751ec8c1 Revert "context: use context on buffers instead of caps"
This reverts commit 9ef1346b1f.

Way to much for one commit and I'm not sure we want to get rid of the pad caps
just like that. It's nice to have the buffer and its type in onw nice bundle
without having to drag the complete context with it.
2011-05-05 13:17:08 +02:00
Miguel Angel Cabrera Moya
419f48d0d1 parse: don't unescape inside quotes
Escaped characters inside quoted strings are supposed to be unescaped by
deserialization functions, not by parsing functions.

https://bugzilla.gnome.org/show_bug.cgi?id=648025
2011-05-05 12:30:05 +02:00
Sebastian Dröge
e22f5d8a68 bin: Only post EOS messages after reaching the PLAYING state
Fixes bug #647756.
2011-05-05 12:30:05 +02:00
Sebastian Dröge
c6e9ce64ae pad: Remove unnecessary FIXME
Resetting the result is not necessary when resyncing because
pads that previously got the event will be skipped and we
need to consider the results of the previous pushes.
2011-05-05 12:30:05 +02:00
Sebastian Dröge
5a6ef6408f element: If activating one pad failed error out early instead of trying to activate the next pads
If one pad fails to activate the complete activation process will fail
anyway and trying to activate the other pads only wastes time.
2011-05-05 12:30:05 +02:00
Sebastian Dröge
5c84883f2e bin: If activating one pad failed error out early instead of trying to activate the next pads
If one pad fails to activate the complete activation process will fail
anyway and trying to activate the other pads only wastes time.
2011-05-05 12:30:05 +02:00
Sebastian Dröge
de5ce36dd1 basetransform: Remove nowadays unused and uninitialized setcaps variable 2011-05-05 12:28:02 +02:00
Sebastian Dröge
65eafd9340 Merge branch 'master' into 0.11
Conflicts:
	docs/gst/gstreamer-sections.txt
	gst/gstelementfactory.c
	gst/gstminiobject.c
2011-05-05 12:27:51 +02:00
Wim Taymans
9ef1346b1f context: use context on buffers instead of caps
Put the srcpad context on buffers instead of caps. This allows us to associate
all the relevant info contained in events with a buffer.
2011-05-04 18:59:47 +02:00
Tim-Philipp Müller
d72f559d29 tests: fix compiler warning in new miniobject test
gst/gstminiobject.c: In function ‘test_dup_null_mini_object’:
gst/gstminiobject.c:459:7: warning: assignment from incompatible pointer type
2011-05-04 15:30:41 +01:00
Wim Taymans
9136abf623 pad: use the context to store sticky events
Store the sticky events in the context of a source pad.
2011-05-04 15:53:21 +02:00
Wim Taymans
0fee137dbc context: add helper object to manage events
Add a helper object to manage the events that define the context of a buffer and
a stream.
2011-05-04 15:20:10 +02:00
Wim Taymans
7d3fabc521 defs: update defs 2011-05-04 11:07:19 +02:00
Wim Taymans
6cfd9d57e2 event: add new CAPS event
Add a new CAPS event that will be used to negotiate downstream elements. It'll
also stick on pad so that we can remove the GstCaps field on pads and the
GstCaps field on buffers.
2011-05-04 11:03:05 +02:00
Wim Taymans
bc9cffda90 pad: more sticky events work
Copy the sticky events from the srcpad to the sinkpad when linking pads. Set the
STICKY_PENDING flag to make sure that the sticky events are dispatched before
pushing the next buffer to the element.
2011-05-03 18:58:18 +02:00
Wim Taymans
9c48af743c docs: improve porting doc 2011-05-03 16:12:01 +02:00
Wim Taymans
6388666174 porting: update porting document 2011-05-03 16:12:01 +02:00
Thiago Santos
a750aac2dd miniobject: Fix dup_mini_object function to handle NULL gvalues
g_value_dup_object handles gvalues that contain NULL pointers,
gst_value_dup_mini_object should do the same.

https://bugzilla.gnome.org/show_bug.cgi?id=649195
2011-05-03 08:15:51 -03:00
Stefan Kost
511f556915 docs: it its %TRUE (constant)
As spotted by Tim.
2011-05-03 14:01:57 +03:00
Stefan Kost
58fc672362 docs: fix copy'n'paste doc header mistake 2011-05-03 13:03:21 +03:00
Stefan Kost
c45ff2b12a docs: add two trivial doc blobs 2011-05-03 13:03:21 +03:00
Stefan Kost
217b209aba docs: add missing parameter docs 2011-05-03 13:03:21 +03:00
Stefan Kost
59670baf8e docs: add docs for GstDPPacketizer 2011-05-03 13:03:20 +03:00
Stefan Kost
319eef8aa9 docs: improve the syntax for the capsintersectmode docs 2011-05-03 13:03:20 +03:00
Stefan Kost
41754faaaf docs: fixup broken xref 2011-05-03 13:03:20 +03:00
Stefan Kost
eaebf37c00 docs: add new api to -section.txt 2011-05-03 13:03:20 +03:00
Stefan Kost
a482babf55 docs: fix gtk-doc syntax 2011-05-03 13:03:20 +03:00
Stefan Kost
801d89e26f docs: don't duplicate info that we take from element-details 2011-05-03 13:03:20 +03:00
Stefan Kost
4699cafe90 docs: remove non existing symbol 2011-05-03 13:03:20 +03:00
Stefan Kost
81c32bc56e docs: we don't need to document private members in opaque structs 2011-05-03 13:03:20 +03:00
Philippe Normand
4e36f93924 core: store presets, registry and plugins in XDG directories.
Presets and plugins moved to $XDG_DATA_HOME/gstreamer-0.11/
root directory. Registry moved to $XDG_CACHE_HOME/gstreamer-0.11/.

Fixes bug #518597.
2011-05-03 09:43:22 +02:00