Commit graph

9188 commits

Author SHA1 Message Date
Jonas Holmberg 27fb4ce76c bufferlist: add bufferlist code
Buffer lists are a means to manage disjoint buffers as one buffer. It's also
possible to put many of those buffers into a list.

The idea is that when support is added to various elements, we will be able to
more efficiently slice and dice buffers, reduce the amount of memcpy and also
reduce data passing overhead.

The implementation is kept simple on purpose, reusing all of the memory
management features we have for miniobjects and buffers.

Access to the bufferlist object is done with an iterator, which allows for
efficient iteration and modification of the list.

See #572285
2009-05-12 15:18:52 +02:00
Edward Hervey 6c1dce01d1 gstbuffer: copy new buffer flags when copying metadata. 2009-05-12 11:22:11 +02:00
Wim Taymans 605639a2bf adapter: optimize taking the headbuffer
When a are requested to take a buffer from the adapter that is exactly the
headbuffer, don't make a subbuffer of it but return that head buffer.

Add a unit-test for this new optimisation.
2009-05-12 10:25:40 +02:00
Arnout Vandecappelle ef9ad30fde typefind: don't leak the force-caps property
Fixes #581321
2009-05-12 10:21:26 +02:00
Wim Taymans 8c26c22f2c element: fix posting of async-start messages
When an element lost its state but was busy doing a state change, still post the
async-start message with the base_time reset flag or else we might end up with
an old base_time.

this can happen when a sink is goin async to paused and then a flushing seek is
performed. This would cause the base_time to remain unmodified because the
async-start message was not sent.
2009-05-12 10:20:53 +02:00
Sebastian Dröge 8e766e2d61 Add new functions to the win32 exports 2009-05-12 09:02:45 +02:00
Marc-Andre Lureau 4aa8888997 Run libtoolize before aclocal
This unbreaks the build in some cases. Fixes bug #582021
2009-05-12 09:02:45 +02:00
José Alburquerque 7ff2f9233f API: Add gst_plugin_register_static_full()
This is mainly useful for bindings that need to provide
some additional user data to the registration function.

Fixes bug #545787.
2009-05-12 09:02:45 +02:00
Sebastian Dröge d20e695a00 filesrc: Improve debugging a bit on invalid URIs 2009-05-12 09:02:45 +02:00
Sebastian Dröge 99341f710c docs: Add new functions to the docs 2009-05-12 09:02:44 +02:00
Sebastian Dröge ad8a35ff3e tags: API: Add functions to add single tags to GstTagList or GstTagSetter
The new functions are gst_tag_setter_add_tag_value()
and gst_tag_list_add_value()). This fixes bug #581198.
2009-05-12 09:02:44 +02:00
Sebastian Dröge c003165b76 GstURIHandler: Use get_type_full() vmethod if specified instead of get_type()
This fixes bug #581281 and makes it easier for bindings to
implement GstURIHandlers. get_protocols_full() was already used
like this.
2009-05-12 09:02:44 +02:00
Tim-Philipp Müller 45a515054c po: update .po files for new strings from container-format tag 2009-05-12 01:48:36 +01:00
Tim-Philipp Müller 222c560730 docs: small update to release docs 2009-05-12 01:30:13 +01:00
Tim-Philipp Müller dfca0a20b0 configure: rename CVS -> git in a couple of places 2009-05-12 01:13:02 +01:00
Tim-Philipp Müller 8f8384e719 configure: bump the GLib requirement to GLib >= 2.16
as per the New Regime (see wiki).
2009-05-12 00:47:46 +01:00
Tim-Philipp Müller 01b93c1ef2 xmlregistry: remove the old xml registry
No point in keeping it around really. Fixes #577926.
2009-05-12 00:09:58 +01:00
Tim-Philipp Müller 0b285bfa40 tags: add a tag for the container format
API: add GST_TAG_CONTAINER_FORMAT
2009-05-11 23:44:19 +01:00
Tim-Philipp Müller 06d79151c1 bin: fix debug message
Make the debug message show what's actually happening (the message
replaced here is not necessarily of the same type as the one that
replaces it).
2009-05-11 23:41:52 +01:00
Wim Taymans b962f41ca1 GstTask: fix compilation 2009-05-12 00:34:44 +02:00
Wim Taymans 2cd86a4956 tests: set the latency-time to something low 2009-05-12 00:27:46 +02:00
Wim Taymans e9bcae7377 tests: improve the example 2009-05-12 00:27:42 +02:00
Wim Taymans d2c5ea9a40 TaskPool: remove _set_func()
Remove the static function set on the TaskPool before _prepare() is called and
allow for assigning a function to a Task when we _push().
Update the examples
2009-05-12 00:27:38 +02:00
Wim Taymans 4cc2e05629 tests: add example of custom taskpools
Add an example to demonstrate the use of a custom taskpool and how to configure
it on the task. Currently the taskpool does not do much yet but it'll create
some custom threads later on.
2009-05-12 00:27:31 +02:00
Wim Taymans 09368ff155 taskpool: fix a comment 2009-05-12 00:27:22 +02:00
Wim Taymans 1cf54ede9d tests: cleanup some code 2009-05-12 00:27:17 +02:00
Wim Taymans 4b604f7da6 Pad: post STREAM_STATUS_TYPE_CREATE
Post a stream-status message indicating that a new task was created so that the
application has a chance to change the properties of the task.

Fix unit test to take into account the new ref of the message.
2009-05-12 00:27:10 +02:00
Wim Taymans 88d158f6f3 defs: add new task methods 2009-05-12 00:27:04 +02:00
Wim Taymans 02250179d9 GstTask: add methods for configuring the pool
Add getter and setter for configuring the GstTaskPool to use for a GstTask.
2009-05-12 00:26:58 +02:00
Wim Taymans a8d2516fa6 Task: remember pool
Remember the pool we currently have our task running so that we can use it to
join the task later on.
Fix a leak of the taskpool.
2009-05-12 00:26:48 +02:00
Wim Taymans 8ada09abac defs: update .defs file with taskpool methods 2009-05-12 00:26:40 +02:00
Wim Taymans 8e2bd06c31 task: fix deadlock due to typo 2009-05-12 00:25:41 +02:00
Wim Taymans 5fdd5e0a1e GstTask: use GstTaskPool for managing threads
Use the new GstTaskPool to handle streaming threads.
2009-05-12 00:25:11 +02:00
Wim Taymans 4d326be6cf taskpool: fix docs, make push/join generic
Fix some more docs.
Make _push() return a generic id (this can be something else than a GThread in
some cases) and make _join() use that generic id.
2009-05-12 00:22:25 +02:00
Wim Taymans aadac11ae3 taskpool: add new object to manage threads
Add a new object GstTaskPool to manage the streaming threads.
This will allow us to create and use custom configured threads.
2009-05-12 00:22:19 +02:00
Wim Taymans b6f55607d6 examples: set bus handler before state change
We need to set the bus handler before starting the pipeline or we might just
miss the message we are looking for.
2009-05-12 00:09:40 +02:00
Wim Taymans 5eccc07856 tests: add example app for stream-status
Add an example application that adjusts the thread priority of a task using the
stream-status messages.
2009-05-12 00:09:30 +02:00
Wim Taymans 2d8a22c1da Task: add method to set the priority
Add a method to configure a priority for the threads used by GstTask.
2009-05-12 00:08:35 +02:00
Wim Taymans 2aaf72d259 tests: add a unit-test for the stream-status
Add a unit test for the STREAM_STATUS messages.
2009-05-12 00:07:06 +02:00
Wim Taymans b59045aab9 GstTask: improve documentation
Improve the documentation for the callbacks.
2009-05-12 00:05:12 +02:00
Wim Taymans 2efaf65c4c tests: fix unit-tests for new stream-status
Fix the unit-tests so that they don't fail on the new stream-status messages
that are emited now.
2009-05-12 00:00:54 +02:00
Wim Taymans 540560a758 GstPad: install thread callbacks of the task
Install thread status callbacks on the task object of a pad and post
STREAM_STATUS messages.
2009-05-12 00:00:44 +02:00
Wim Taymans d4a9ece0b1 message: clarify some docs 2009-05-11 23:53:52 +02:00
Wim Taymans 35eeb4864c Task: call leave_thread before signaling
Call the leave_thread callback before we signal the thread performing the _join
so that we can be sure that the listener still has valid info in the callback.
2009-05-11 23:49:19 +02:00
Wim Taymans e72efeccd1 GstMessage: Add STREAM_STATUS message methods
Add methods to handle the stream_status message types.
2009-05-11 23:47:22 +02:00
Wim Taymans 81c0840ab0 quark: add "object" quark
Add the object quark that will be used for the STREAM_STATUS messages.
2009-05-11 23:47:06 +02:00
Wim Taymans d52114d449 Task: remove create/join methods
Prepare for using the GstTaskPool object. We don't need the create and join
callbacks anymore, they will be handled by the pool.
2009-05-11 23:44:42 +02:00
Wim Taymans a830dcd9c2 GstTask: add private data, fix parent_class
Use the parent class that the glib macro gave us
Actually add the private data to the task.
2009-05-11 23:30:02 +02:00
Wim Taymans d68a20906a GstTask: hook up enter/leave/notify callbacks
Hoop up the notify/enter/leave callbacks.
2009-05-11 23:24:32 +02:00
Wim Taymans 657c689b7f defs: add new symbol to defs file 2009-05-11 23:23:20 +02:00