Commit graph

1874 commits

Author SHA1 Message Date
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
Stefan Sauer daa5cae78b collectpads2: rescue the annotation from collectpads 2012-02-26 23:11:23 +01:00
Stefan Sauer 6045e0f58f docs: fix a typo in comment 2012-02-26 23:10:58 +01:00
Stefan Sauer b9a6b3fc6e collectpads2: move "MT save" tags to doc body
It is not useful to have "MT safe" tags randomly in body, returns or since paragraphs.
2012-02-26 22:57:02 +01: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 6b22a63f1b 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.
2012-02-24 10:28:56 +01:00
Wim Taymans d052c778af basetransform: remove transform lock
This is not needed anymore by the baseclass. subclasses should do their own
locking when needed.
2012-02-23 11:08:26 +01:00
Wim Taymans c83e02d476 basetrans: cleanups
Clean up the setcaps function.
The passthrough variable is protected with the object lock.
2012-02-23 10:12:44 +01:00
Wim Taymans f3ca3f89f7 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.
2012-02-22 15:26:05 +01:00
Wim Taymans 90a82c7e81 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.
2012-02-22 12:24:34 +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
Wim Taymans 810e67900b basetransform: copy metadata when using a pool
also copy the metadata when we allocated a new buffer from a pool
2012-02-20 11:46:36 +01:00
Matej Knopp 7b16febb0d nettimepacket: fix printf format warning in debug message
https://bugzilla.gnome.org/show_bug.cgi?id=664491
2012-02-19 12:46:21 +00:00
Edward Hervey dc304041ed basesrc: Move variable and assignment to where it's needed 2012-02-17 15:11:38 -08:00
Edward Hervey 7f8be6935a basetransform: Handle return value of decide_allocation vmethod
If it fails, properly propagate the error
2012-02-17 15:11:38 -08:00
Mark Nauwelaerts d95d2cfa1b baseparse: tweak some documentation 2012-02-15 17:12:09 +01:00
Mark Nauwelaerts bfa4bb7150 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.
2012-02-15 17:11:54 +01:00
Wim Taymans 2609c7b452 baseparse: don't leak event
In the unlikely case where the subclass set the event function to NULL, don't
leak the event.
2012-02-15 13:15:55 +01:00
Wim Taymans b6b239ceaa 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.
2012-02-15 12:19:13 +01:00
Wim Taymans 49a7832499 baseparse: add some more debug 2012-02-15 11:11:11 +01:00
Mark Nauwelaerts d148569cd4 baseparse: track consumed input size
... as used by subsequent input data rate estimation (and seeking).
2012-02-15 11:00:36 +01:00
Wim Taymans 63ba55865c 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).
2012-02-15 10:13:37 +01:00
Mark Nauwelaerts 36cc9efa80 baseparse: Revert "baseparse: really provide upstream ts to subclass"
This reverts commit 2363490ef5.
2012-02-14 20:17:37 +01:00
Mark Nauwelaerts a40b993bc3 baseparse: remove dead code and superfluous loop level 2012-02-14 19:33:50 +01:00
Mark Nauwelaerts 193e1cf16e 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.
2012-02-14 19:33:46 +01:00
Mark Nauwelaerts 2363490ef5 baseparse: really provide upstream ts to subclass 2012-02-14 19:33:33 +01:00
Wim Taymans ebf502d1c6 Merge branch 'master' into 0.11 2012-02-14 10:35:06 +01:00
Mark Nauwelaerts b761f5479a 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.
2012-02-13 18:41:00 +01:00
Mark Nauwelaerts c8ea9994aa baseparse: fix reverse playback
... especially for all-keyframe (audio) cases.
2012-02-13 18:14:02 +01:00
Wim Taymans 5fbdd763bb Merge branch 'master' into 0.11 2012-02-10 15:03:03 +01:00
Mark Nauwelaerts 954dd59fdd 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.
2012-02-10 14:47:00 +01:00
Wim Taymans b30b397c46 basesink: implement faster ACCEPT_CAPS query 2012-02-10 11:24:28 +01:00
Wim Taymans 7ab1d62c24 GST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING 2012-02-08 16:18:04 +01:00
Mark Nauwelaerts a306518cee baseparse: clean up a few minor extraneous tokens 2012-02-08 15:38:28 +01:00
Mark Nauwelaerts 2aaa475a4f baseparse: remove closing segment handling 2012-02-08 15:38:07 +01:00
Wim Taymans d6dfb07692 basetransform: improve prepare_output_buffer
Clean up the prepare_output_buffer function.
Reuse the input buffer when it is writable and when doing an
in-place but non-passthrough transform.
Move the copy-metadata function call to the prepare_output_buffer default
function. If subclasses implement a custom prepare_output_buffer, they must also
copy the metadata themselves.
Remove a useless memory copy because prepare_output_buffer already did that.
2012-02-02 13:10:27 +01:00
Wim Taymans 3075b3c529 basetransform: simplify code
We already checked passthrough a few lines above.
2012-02-02 12:30:14 +01:00
Wim Taymans 18118218b1 basesrc: fix race in startup
Mark renegotiate before starting the pushing thread.
Do also check if we are starting in the get_range function.
2012-01-31 17:41:13 +01:00
Stefan Sauer 5e4c13fc97 controller: constructures for control sources return GstControlSource
Don't return the specific types. In most cases there is no specific api there
anyway.
2012-01-31 12:29:52 +01:00
Wim Taymans 39c5f0b28a don't do logic in g_assert... 2012-01-31 12:10:21 +01:00
Stefan Sauer 4deaf9b8be controller: rename control-bindings
gst_control_binding_xxx -> gst_xxx_control_binding for consistency.
2012-01-30 21:18:57 +01:00
Wim Taymans 0bd5a78701 query: pass allocator in query
Place the allocator object in the ALLOCATION query instead of the name. This
allows us to exchange allocators that are not in the global pool of allocators.
Update elements for the new api
2012-01-30 16:13:31 +01:00
Wim Taymans af2fc026fc memory: make the allocator refcounted
Add refcounting to the GstAllocator object.
Remove const from functions because the allocator is refcounted now.
Rename the vmethods for consistency
Expose the constructor for GstAllocator and add a destroy notify for the
user_data. This should make it possible to create allocators that are not
registered and shared globally along with the possibility to destroy them
properly.
Update defs with new symbols.
2012-01-30 13:20:36 +01:00
Olivier Crête e234a10c63 Use macros to register boxed types thread safely 2012-01-28 16:42:38 +00:00
Olivier Crête 8f8335a7f4 check: Update gst_check_element_push_buffer to 0.11 style caps
Pass the desired caps explicitely
2012-01-28 16:42:38 +00:00
Sebastian Dröge 753a1125dd Merge branch 'master' into 0.11
Conflicts:
	libs/gst/base/gstcollectpads2.c
	libs/gst/base/gstcollectpads2.h
2012-01-27 15:09:35 +01:00
Sebastian Dröge 9945b2cd88 collectpads2: Move private fields from the public structs to private structs
Fixes bug #668764.
2012-01-27 15:03:46 +01:00
Stefan Sauer 7e77b105e0 controller: no fancy utf8 chars in the gi annotations 2012-01-27 13:07:27 +01:00
Wim Taymans 21455d35b1 tests: fix some more leaks 2012-01-27 12:52:01 +01:00
Stefan Sauer fc886e03b6 controller: add gi annotations 2012-01-27 12:23:16 +01:00
Wim Taymans ae12e4f645 basetransform: avoid caps leak 2012-01-27 11:41:33 +01:00
Sebastian Dröge 34b01da26c collectpads2: Drop the stream-start and stream-config events by default 2012-01-27 10:46:02 +01:00
Sebastian Dröge 0d4081fbbb basesrc: Send the stream-start event as first event ever 2012-01-27 10:41:07 +01:00
Wim Taymans e122bae3ad basetransform: fix typo 2012-01-26 19:28:46 +01:00
Sebastian Dröge b6d11d844e collectpads: Remove old collectpads
Still have to rename collectpads2 to collectpads before the 1.0 release.
2012-01-26 10:48:56 +01:00
Sebastian Dröge de576f8163 collectpads2: Don't forward CAPS event automatically 2012-01-26 10:45:45 +01:00
Sebastian Dröge 6b9280b18c collectpads2: Fix handling of the event function and document it
The event function is supposed to forward/drop the event in any case
now and takes ownership of the event.
2012-01-26 10:45:45 +01:00
Wim Taymans a521252845 Add new GstMapInfo
Use a structure to hold info about the mapping. The application then keeps track
of this state and we can use it to unmap the memory again later.
2012-01-25 11:54:23 +01:00
Sebastian Dröge 35ea12eeea Merge branch 'master' into 0.11 2012-01-25 11:43:13 +01:00
Stefan Sauer 660d9c071a controller: cleanup the control-binding construction
This is now bindings firendly as _new is just a classic c convenience and all
the work is done in a constructor. As a side effect _new never fails.
Fix the tests.
2012-01-24 21:57:44 +01:00
Stefan Sauer b23977cb93 controller: allow different controlbindings
Make controlbinding an abstract baseclass. Move implementation to control-
binding-direct and add a control-binding-argb. Add an example.
2012-01-23 11:03:43 +01:00
Tim-Philipp Müller 13d91d1f6c Use recent GLib API unconditionally now that we depend on the latest GLib 2012-01-22 01:25:22 +00:00
Vincent Penquerc'h 28d5e81503 libcheck: make the definition of fail not fail with non GCC compilers 2012-01-20 18:06:04 +00:00
Wim Taymans c6ac51e729 basesrc: handle NULL from getcaps
If the getcaps functions returns NULL, return FALSE from the CAPS query.
2012-01-19 15:17:58 +01:00
Wim Taymans acf0d50bf1 basesink: handle lists correctly 2012-01-19 15:17:33 +01:00
Wim Taymans 252327f87a Update for new gthread API 2012-01-19 09:27:04 +01:00
Sebastian Dröge b56bef1418 basetransform: Always call ::propose_allocation vfunc
And only forward the allocation query if we're working in
passthrough mode if no ::propose_allocation is implemented.
In place buffer transformations will change the buffer
content and require explicit handling of all metas.
2012-01-18 12:07:46 +01:00
Tim-Philipp Müller f7f19d9589 configure: remove --disable-net option and always build libgstnet
It should work everywhere now, and -base and -good depend on
the GstNetMeta API.
2012-01-18 01:22:52 +00:00
Tim-Philipp Müller 4d27e79429 configure: remove some socket cruft 2012-01-18 01:22:52 +00:00
Tim-Philipp Müller 80f2eb6108 net: port to use gio's networking API
Some warts still, but it's a start.
2012-01-18 01:22:43 +00:00
Sebastian Dröge 318a3da008 net: Add GIO to the gi-scanner packages 2012-01-17 16:50:13 +01:00
Sebastian Dröge 0a4ec4c8a1 netaddressmeta: Use GSocketAddress instead of our own wrapper type 2012-01-17 15:02:01 +01:00
Mark Nauwelaerts ea2f87d34e adapter: ensure automagic _unmap in some more cases 2012-01-13 14:21:27 +01:00
Vincent Penquerc'h 12757e604a adapter: automatically unmap on clearing
When _clear gets called between _map and _unmap, buffers
will be unreffed. If the adapter was mapped, memory leaks
may occur.
While calling _clear between _map and _unmap does not seem
like such a great idea, this is possible in the audio
encoder base class, as _clear may be called in _finish_frame.
Since the audio encoder relies on flushing to keep track of
timestamps, delaying flushing till after handle_frame seems
dangerous.
So, we unmap on clear, as the next unmap will do nothing.
This makes _clear safe to call between _map and _unmap,
while avoiding leaking the mapped buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=664133
2012-01-13 14:21:27 +01:00
Mark Nauwelaerts 247842eaa9 basesrc: prevent unlikely caps leak 2012-01-13 14:21:27 +01:00
Tim-Philipp Müller 66d19b65fb Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	tools/gst-inspect.c
2012-01-13 00:22:03 +00:00
Antoine Tremblay df6de8fe0c baseparse: clear adapter in reset so baseparse is reusable
GstBaseParse was not clearing its adapter on reset causing
problems when a pipeline went for example from PLAYING to NULL
state and then back to PLAYING again. The data from the last
stream would be used in the parser.

https://bugzilla.gnome.org/show_bug.cgi?id=667444
2012-01-12 19:53:11 +00:00
Sebastian Dröge 148bf27ce3 Merge branch 'master' into 0.11 2012-01-10 13:00:07 +01:00
Matej Knopp 9092fb87f0 Fix printf format build warnings 2012-01-09 13:15:34 +00:00
Havard Graff bea0ed2fc1 basesink: don't compensate for render-delay twice
https://bugzilla.gnome.org/show_bug.cgi?id=667298
2012-01-05 18:04:22 +00:00
Wim Taymans ad659abe8e check: add macro to check for memory refcount 2012-01-05 13:09:29 +01:00
Wim Taymans bc1974e962 GST_FLOW_UNEXPECTED -> GST_FLOW_EOS 2012-01-03 15:25:31 +01:00
Wim Taymans 9540014d2e baseparse: turn assert into a real error
Post a real error instead of just asserting.
2012-01-02 15:42:46 +01:00
Wim Taymans 63d95063a7 basesrc: handle latency event 2012-01-02 15:42:46 +01:00
Tim-Philipp Müller ed80a5cd4b registry: rename gst_registry_get_default() to gst_registry_get()
It's not really a default if there is only one that can't be changed.

Should we return a ref like e.g. g_volume_monitor_get() does?
2012-01-02 02:22:51 +00:00
Stefan Sauer 3ebd639d34 interpolationcontrolsource: fix cubic interpolation for arrays 2012-01-01 18:54:23 +01:00
Stefan Sauer e87d563cac lfocontrolsource: cleanups and fix triangle calculations 2012-01-01 18:43:23 +01:00
Stefan Sauer 9a7e45596e lfocontrolsource: make chainable
Now the properties of this controlsource are in turn controlable. Add an example
to show the usage.
2012-01-01 16:08:01 +01:00
Stefan Sauer 757822a906 controller: add logging and fix array functions 2012-01-01 16:08:01 +01:00
Tim-Philipp Müller c61b2ade7b index: rename GstAssocFlags to GstIndexAssociationFlags
Just in case we resurrect this later.
2011-12-30 18:32:59 +00:00
Tim-Philipp Müller 3f11fc0514 base: disable unused index API and make functions static
It's simply private helper API for now, until someone
fixes up GstBaseParse not to need it any more.
2011-12-30 18:32:58 +00:00
Tim-Philipp Müller be04f3945c index: remove GstIndex and GstIndexFactory for now
There are many good use cases for GstIndex and we want
to add it back again in some form, but possibly not with
the current API, which is very powerful (maybe too powerful),
but also a bit confusing. At the very least we'd need to
make the API bindings-friendly.
2011-12-30 18:32:57 +00:00
Stefan Sauer eba636cc83 controller: use NAN instead of FP_NAN (which is the class)
Also add a fallback define to math-compat.h.
Fixes #666887
2011-12-30 13:33:48 +01:00
Stefan Sauer 855212cd2f triggercontrolsource: fix control reaches end of non-void function
Return NAN and check the value further up.
Fixes #666890
2011-12-27 13:48:36 +01:00
Tim-Philipp Müller 63caa628c4 controller: quick-fix compiler warning breaking the build
This is likely not the proper fix.

https://bugzilla.gnome.org/show_bug.cgi?id=666890
2011-12-27 11:40:40 +00:00
Tim-Philipp Müller e65ac5b419 controller: fix compiler warning in interpolation control source
gstinterpolationcontrolsource.c:54: warning: type qualifiers ignored
on function return type

https://bugzilla.gnome.org/show_bug.cgi?id=666890
2011-12-27 11:24:48 +00:00
Tim-Philipp Müller 9a3e4ce5cb libs: remove gdp dataprotocol library
Made private and moved to gdp plugin in -base for
the time being, until we figure out what we do with
gdp and 0.11.
2011-12-25 23:41:50 +00:00
Stefan Sauer 39d6b7462f controller: move GValue handling from control-sources to -binding
ControlSources are now gdouble based. A control source is mapped to a
particullar GObject property using a ControlBinding.
2011-12-25 20:48:14 +01:00
Stefan Sauer a80401b22c controller: move GstControlledProperty into a separate class
Add a GstControlBinding class. This is a preparation for making the
controlsources generate double valued control curves and do the gparamspec
mapping in the control binding. Now the API in GstObject is again mostly
for convenience.
2011-12-25 18:50:45 +01:00
Tim-Philipp Müller b193d03c8a collectpads2: fix up compilation after merge 2011-12-25 12:13:57 +00:00