Philippe Normand [Tue, 31 Aug 2010 09:35:12 +0000 (11:35 +0200)]
gstquery: new buffering_ranges API
Added a new query type to retrieve informations about the areas of the
media currently buffered. See bug 623121.
API: gst_query_add_buffering_range
API: gst_query_get_n_buffering_ranges
API: gst_query_parse_nth_buffering_range
Edward Hervey [Mon, 16 Aug 2010 17:01:15 +0000 (19:01 +0200)]
GstElementFactory: Add listing features
https://bugzilla.gnome.org/show_bug.cgi?id=626181
Tim-Philipp Müller [Thu, 2 Sep 2010 11:44:08 +0000 (12:44 +0100)]
docs: mention GST_DEBUG_OPTIONS, ORC_CODE, G_DEBUG and G_SLICE environment variables
Mention a few more useful environment variables in the 'Running GStreamer
applications' section of the API reference.
Stefan Kost [Thu, 2 Sep 2010 11:15:29 +0000 (14:15 +0300)]
fakesrc: fix use of empty subbuffers
Remove a short cut that was ignoring src->data allocation mode. All
the called code-path below handle size==0.
Jeffrey S. Smith [Wed, 1 Sep 2010 23:01:25 +0000 (00:01 +0100)]
Fix casts in a bunch of inline functions to maintain correct const-ness
Make code including GStreamer headers compile with -Wcast-qual by
maintaining const-ness when casting. Also fix function signature of
gst_byte_writer_set_pos(): the byte writer should not be marked as
const.
https://bugzilla.gnome.org/show_bug.cgi?id=627910
Tim-Philipp Müller [Tue, 31 Aug 2010 17:40:44 +0000 (18:40 +0100)]
build: use new AG_GST_PKG_CONFIG_PATH m4 macro from common
Sets up a GST_PKG_CONFIG_PATH variable for use in Makefile.am
(avoids trailing ':' in PKG_CONFIG_PATH used). A useful side
effect of this is also that the PKG_CONFIG_PATH environment
is now logged in the configure output.
Wim Taymans [Wed, 1 Sep 2010 09:34:01 +0000 (11:34 +0200)]
manual: improve clock docs a little
Sebastian Dröge [Wed, 1 Sep 2010 09:06:57 +0000 (11:06 +0200)]
gstvalue: Fix memory leaks in the int64range tests
Philippe Normand [Tue, 24 Aug 2010 10:27:30 +0000 (12:27 +0200)]
gstvalue: Add new GstInt64Range type
new GstInt64Range to store gint64 ranges.
API: GST_TYPE_INT64_RANGE
API: gst_value_set_int64_range
API: gst_value_get_int64_range_min
API: gst_value_get_int64_range_max
Fixes bug #627826.
Arun Raghavan [Tue, 31 Aug 2010 00:26:18 +0000 (21:26 -0300)]
docs: Trivial cleanup for GST_DEBUG_CATEGORY_GET
Edward Hervey [Mon, 30 Aug 2010 14:02:55 +0000 (16:02 +0200)]
info: Re-instate the default for color usage
This was accidently removed in
7a722091b6d1b5d7f9404fdef4c695a29a65a989
Edward Hervey [Mon, 30 Aug 2010 10:47:31 +0000 (12:47 +0200)]
check: Use g_strcmp0 instead of strcmp
Avoids segfaults when using NULL arguments.
Stefan Kost [Fri, 27 Aug 2010 12:35:49 +0000 (15:35 +0300)]
queue: add silent property to suppress signal emission
Allow to turn off signal emission and therefore extra locking if this is not needed.
Fixes #621299
Sebastian Dröge [Sat, 28 Aug 2010 08:16:05 +0000 (10:16 +0200)]
utils: Add gst_util_fraction_compare() to the docs and exported symbols
Jan Schmidt [Sat, 28 Aug 2010 07:51:14 +0000 (17:51 +1000)]
tests: Remove checks for deprecated flow check macros
GST_FLOW_IS_FATAL() and GST_FLOW_IS_SUCCESS() are deprecated,
so aren't available for the testsuite any more.
Sebastian Dröge [Sat, 28 Aug 2010 07:35:01 +0000 (09:35 +0200)]
utils: Fix inverted assertion logic in gst_util_fraction_compare()
Sebastian Dröge [Sat, 28 Aug 2010 07:30:18 +0000 (09:30 +0200)]
utils: Add gst_util_fraction_compare() to compare fractions
And use it for the fraction comparisons in gstvalue.c instead
of using comparisons by first converting the fractions to double.
Should fix bug #628174.
API: gst_util_fraction_compare()
Jan Schmidt [Sat, 28 Aug 2010 07:04:43 +0000 (17:04 +1000)]
tests: Add a couple of extra caps strings to test
Sebastian Dröge [Fri, 27 Aug 2010 14:52:12 +0000 (16:52 +0200)]
multiqueue: Don't do an infinite loop in the loop function
Instead return after every iteration, which makes sure that the
stream lock is released for a short time after every iteration,
task state changes are checked, etc and this allows the task
to be stopped properly.
Sebastian Dröge [Fri, 27 Aug 2010 14:49:14 +0000 (16:49 +0200)]
multiqueue: Flush the data queue if downstream return WRONG_STATE too
Sebastian Dröge [Thu, 26 Aug 2010 21:39:06 +0000 (23:39 +0200)]
elements: Stop using GST_FLOW_IS_FATAL()
Sebastian Dröge [Thu, 26 Aug 2010 21:37:07 +0000 (23:37 +0200)]
base: Stop using GST_FLOW_IS_FATAL()
And document the special handling of WRONG_STATE.
Sebastian Dröge [Thu, 26 Aug 2010 21:07:51 +0000 (23:07 +0200)]
pad: Deprecate GST_FLOW_IS_FATAL() and GST_FLOW_IS_SUCCESS()
The problem with both macros is, that they suggest something that isn't true.
If GST_FLOW_IS_FATAL is true, there could still be a problem for many elements
and they should stop what they're currently doing and return that value
upstream (e.g. not-linked in a parser). If GST_FLOW_IS_SUCCESS is false, it
could still be that this is "ok" for the element (e.g. not-linked for a demuxer
on a few of its pads but not all).
It's better to not have these "convenience" macros but instead let people
*think* about the handling of different flow returns, that makes sense for
their element. And we should document the expected handling of flow returns for
different classes of elements in the plugin writer's guide.
Fixes bug #628014.
Stefan Kost [Fri, 27 Aug 2010 08:11:00 +0000 (11:11 +0300)]
fakesink: keep properties in order
Stefan Kost [Fri, 27 Aug 2010 07:22:27 +0000 (10:22 +0300)]
queue: ARG_ -> PROP_ for property constants
Wim Taymans [Thu, 26 Aug 2010 15:04:20 +0000 (17:04 +0200)]
queue2: fix on-disk buffering again
Wim Taymans [Thu, 26 Aug 2010 13:12:49 +0000 (15:12 +0200)]
basetransform: recover from invalid downstream suggestions
When we are handling a buffer and need to allocate an output buffer, handle the
case when downstream suggests us a format that we can't convert the input buffer
to. In that case, check if there is another format available downstream instead
of failing.
Fixes #621332 and see also #614296
Alessandro Decina [Thu, 26 Aug 2010 11:46:34 +0000 (13:46 +0200)]
gstplugin: load the gst-python plugin loader with G_MODULE_BIND_LAZY.
Thiago Santos [Mon, 16 Aug 2010 17:12:35 +0000 (14:12 -0300)]
tag: Adds GST_TAG_APPLICATION_DATA
Adds GST_TAG_APPLICATION_DATA for representing arbitrary private
data that applications might want to store into tags. Exif/id3,
for example, have tags for this.
API: GST_TAG_APPLICATION_DATA
Fixes #626651
David Schleef [Tue, 24 Aug 2010 19:46:38 +0000 (12:46 -0700)]
gst-launch: Fix OIL_CPU_FLAGS docs for Orc
Stefan Kost [Tue, 24 Aug 2010 13:24:19 +0000 (16:24 +0300)]
man: remove OIL_CPU_FLAGS from man page
We're using ORC instead of libOil now.
David Schleef [Tue, 24 Aug 2010 01:20:23 +0000 (18:20 -0700)]
Valgrind define is HAVE_VALGRIND_VALGRIND_H
David Schleef [Wed, 28 Jul 2010 01:24:44 +0000 (18:24 -0700)]
Allow gst_debug_set_default_threshold() before gst_init()
Calling gst_debug_set_default_threshold() before initialization
seems like the "obvious" order.
Jonas Holmberg [Mon, 23 Aug 2010 11:06:19 +0000 (13:06 +0200)]
queue: fix segfault in test
Mark Nauwelaerts [Mon, 23 Aug 2010 08:58:16 +0000 (10:58 +0200)]
registrychunks: intern all GstPluginDesc members when unpacking
Mark Nauwelaerts [Mon, 23 Aug 2010 08:56:30 +0000 (10:56 +0200)]
gstobject: fix leak when naming parented object
Arun Raghavan [Thu, 19 Aug 2010 21:37:58 +0000 (03:07 +0530)]
gst: Add a gst_is_initialized() API
For one, this will allow libraries that expect applications to
initialize GStreamer before using their API to have a check for this
condition.
https://bugzilla.gnome.org/show_bug.cgi?id=627438
Wim Taymans [Fri, 20 Aug 2010 16:04:52 +0000 (18:04 +0200)]
bin: relax the source element check
When there is a sink inside a bin, the SINK flag is set on the bin. When we are
trying to iterate the source elements, also include the bins with the SINK flag
because they could also contain source elements, in which case they are also a
source.
This solves the case where sending an EOS to a pipeline didn't get dispatched to
all source elements.
See #625597
Jonas Holmberg [Thu, 19 Aug 2010 15:07:00 +0000 (17:07 +0200)]
queue: added unit test for newsegment events
Jonas Holmberg [Fri, 5 Mar 2010 16:18:23 +0000 (17:18 +0100)]
queue: Push newsegment when linking in PLAYING
Fixes #611918
Thiago Santos [Thu, 12 Aug 2010 23:23:45 +0000 (20:23 -0300)]
element: link_many should activate pads if needed
gst_element_link_many does some magic and creates ghostpads
if needed, but it didn't set the newly created ghostpad to
active if needed. This patch fixes it.
https://bugzilla.gnome.org/show_bug.cgi?id=626784
Sebastian Dröge [Thu, 19 Aug 2010 09:11:28 +0000 (11:11 +0200)]
datetime: Fix memory leak in the unit test by unreffing GstDateTime instance after usage
Wim Taymans [Thu, 19 Aug 2010 08:03:08 +0000 (10:03 +0200)]
tests: fix comments in test
Edward Hervey [Thu, 19 Aug 2010 07:58:55 +0000 (09:58 +0200)]
queue2: Use G_GUINT64_FORMAT where needed
Fixes build on macosx
Wim Taymans [Wed, 18 Aug 2010 13:31:09 +0000 (15:31 +0200)]
check: enable queue test again
Jonas Holmberg [Wed, 18 Aug 2010 13:12:45 +0000 (15:12 +0200)]
queue: fixed racy unit tests
Fixes #600004
Stefan Kost [Mon, 16 Aug 2010 15:01:27 +0000 (18:01 +0300)]
plugins: add example launch lines and more explanation to the docs.
The plugins where almost undocumented :/ ...
Wim Taymans [Fri, 13 Aug 2010 14:19:36 +0000 (16:19 +0200)]
queue2: fix compilation
Robert Swain [Wed, 7 Jul 2010 06:20:21 +0000 (08:20 +0200)]
queue2: Fix a special case during range management
When a range contained no data, if it was new or newly empty, it would
be mishandled if it were the current range.
Robert Swain [Mon, 5 Jul 2010 11:43:05 +0000 (13:43 +0200)]
queue2: fix locking around init_ranges
This fixes a segfault where the ready to paused state change causes
freeing and allocation of new ranges while another thread is trying to
use them.
Robert Swain [Fri, 2 Jul 2010 15:40:08 +0000 (17:40 +0200)]
queue2: More ring buffer fixes
- Set reading_pos correctly in _create_read ()
- Seek to data if it is further than QUEUE_MAX_BYTES (queue) -
cur_level.bytes away. This should avoid a situation where the ring
buffer is full but the data offset from which we shall read is not in
the ring buffer.
- Only update the max_reading_pos to a lower value to protect data when
necessary
- Always signal an ADD in _locked_enqueue () so that an EOS unlocks the
reader
- More useful debug output
Robert Swain [Mon, 28 Jun 2010 15:50:06 +0000 (17:50 +0200)]
queue2: ring buffer fixes
One must not affect the values of the current range based on a read
request before the correct range is activated.
Robert Swain [Fri, 25 Jun 2010 10:58:27 +0000 (12:58 +0200)]
queue2: Fix bugs
update_buffering () needs to be called every time we write to the ring
buffer so that applications don't get stuck waiting for a 100% buffered
message while queue2 is waiting for space
_create_write () must only be called for temp file/ring buffer cases
Robert Swain [Fri, 18 Jun 2010 15:43:40 +0000 (17:43 +0200)]
queue2: extend ring buffer to support ram mode
Robert Swain [Fri, 18 Jun 2010 12:36:33 +0000 (14:36 +0200)]
queue2: merge write buffer functions and fix bugs
Cached data could have been overwritten so it is now protected until
it is read. Similarly data was overread as _have_data () was always
looking for the originally requested data even if part of it had been
read already.
Wim Taymans [Thu, 17 Jun 2010 08:18:48 +0000 (10:18 +0200)]
queue2: small cleanup
Wim Taymans [Wed, 16 Jun 2010 16:25:35 +0000 (18:25 +0200)]
queue2: cleanup write_to_ring_buffer
Use cur_level.bytes to see how much space is free in the ringbuffer.
Simplyfy the write function, avoid taking subbuffers, move waiting for free
space in one spot, use simply counter to write data of a buffer.
Wim Taymans [Wed, 16 Jun 2010 15:03:49 +0000 (17:03 +0200)]
queue2: cleanups
Add a macro to get the max size of the queue in bytes, which depends on the
max_level.bytes and the ring_buffer_max_size.
Some cleanups.
Wim Taymans [Wed, 16 Jun 2010 14:23:02 +0000 (16:23 +0200)]
queue2: remove unused variable
Wim Taymans [Wed, 16 Jun 2010 14:13:28 +0000 (16:13 +0200)]
queue2: cleanups
Make sure the cur_level.bytes is updated after we change the writing_pos or the
max_reading_pos.
Refactor get_free_space()
Add some comments
Wim Taymans [Wed, 16 Jun 2010 10:00:45 +0000 (12:00 +0200)]
queue2: remove unneeded signal
Wim Taymans [Wed, 16 Jun 2010 10:00:30 +0000 (12:00 +0200)]
queue2: set buffering mode correctly
Wim Taymans [Wed, 16 Jun 2010 09:20:00 +0000 (11:20 +0200)]
queue2: fix calculation of available ringbuffer data
Wim Taymans [Wed, 16 Jun 2010 09:11:32 +0000 (11:11 +0200)]
queue2: reading_pos is updated in create_read only
Wim Taymans [Wed, 16 Jun 2010 09:11:11 +0000 (11:11 +0200)]
queue2: refactor and add debug
Wim Taymans [Wed, 16 Jun 2010 09:10:23 +0000 (11:10 +0200)]
queue2: fix flushing
Wim Taymans [Wed, 16 Jun 2010 09:09:25 +0000 (11:09 +0200)]
queue2: add debug
Wim Taymans [Tue, 15 Jun 2010 15:26:15 +0000 (17:26 +0200)]
queue2: don't try to write 0 bytes
Wim Taymans [Tue, 15 Jun 2010 14:12:02 +0000 (16:12 +0200)]
queue2; cleanups and fixes
Make a macro for some frequent checks
Emit the removed signal in all cases when we remove something
Wim Taymans [Tue, 15 Jun 2010 10:37:33 +0000 (12:37 +0200)]
queue2: refactorings
Check and handle seek errors
Refactor the wait_free_space function.
Robert Swain [Wed, 16 Jun 2010 10:24:25 +0000 (12:24 +0200)]
queue2: Use ring-buffer-max-size prop to control ring buffer
Robert Swain [Sun, 6 Jun 2010 07:30:48 +0000 (09:30 +0200)]
queue2: Clean up and improve code
Robert Swain [Wed, 26 May 2010 02:11:48 +0000 (04:11 +0200)]
queue2: Fix conditions where behaviour should differ between ring
buffer and temp file
Robert Swain [Wed, 19 May 2010 14:04:15 +0000 (16:04 +0200)]
queue2: add useful debug messages and fix an assumption in _have_data ()
Robert Swain [Tue, 18 May 2010 15:42:07 +0000 (17:42 +0200)]
queue2: fix buffering percentage in ring buffer mode
Robert Swain [Tue, 18 May 2010 15:21:40 +0000 (17:21 +0200)]
queue2: various ring buffer fixes
- make _get_range () emit the del signal once a buffer has been read
- use do {} while (); for wait code as queue is locked and no data could
have been read in the mean time so it makes no sense to check before
waiting
- make _is_filled () more robust
Robert Swain [Fri, 7 May 2010 07:30:44 +0000 (09:30 +0200)]
queue2: ring buffer work in progress
Robert Swain [Wed, 5 May 2010 08:21:55 +0000 (10:21 +0200)]
queue2: Add use-ring-buffer and ring-buffer-max-size properties
Robert Swain [Tue, 15 Jun 2010 06:59:11 +0000 (08:59 +0200)]
queue2: add ST-Ericsson copyright
Stefan Kost [Fri, 13 Aug 2010 14:23:31 +0000 (17:23 +0300)]
Automatic update of common submodule
From 3e8db1d to ec60217
Stefan Kost [Thu, 12 Aug 2010 19:08:44 +0000 (22:08 +0300)]
info: xrefs glib symbol in docs
Thiago Santos [Thu, 12 Aug 2010 19:05:35 +0000 (16:05 -0300)]
gstcollectpads: Fix docs about GstCollectData list
Add to the docs the fact that is only safe to iterate
GstCollectPad's data list inside the collected callback.
Fixes #610366
Tim-Philipp Müller [Tue, 10 Aug 2010 09:56:38 +0000 (10:56 +0100)]
Automatic update of common submodule
From bd2054b to 3e8db1d
Thiago Santos [Wed, 4 Aug 2010 14:24:12 +0000 (11:24 -0300)]
tag: Adds GST_TAG_APPLICATION_NAME tag
Adds a new tag for representing application used to create
a media
https://bugzilla.gnome.org/show_bug.cgi?id=626027
Sebastian Dröge [Sun, 8 Aug 2010 15:57:52 +0000 (17:57 +0200)]
bufferlist: Initialize the GType cache for the bufferlist again
This was accidentially removed with last commit.
Sebastian Dröge [Fri, 6 Aug 2010 17:38:22 +0000 (19:38 +0200)]
bufferlist: Don't chain up finalize to the parent class
GstMiniObject::finalize does nothing and this prevents a
runtime-type-check cast and function call per buffer list.
Shixin Zeng [Tue, 20 Jul 2010 14:23:11 +0000 (09:23 -0500)]
gst: make _get_type() in gst/* thread safe
This is not really necessary here because everything is
initialized from gst_init() already but using G_DEFINE_TYPE()
removes some copy&paste boilerplate code.
Sebastian Dröge [Fri, 6 Aug 2010 17:34:42 +0000 (19:34 +0200)]
plugins: Add declarations for _get_type() functions to fix compiler warnings
Shixin Zeng [Tue, 20 Jul 2010 14:23:54 +0000 (09:23 -0500)]
plugins: Make *_get_type() in plugins/* thread safe
It's not really needed here but using G_DEFINE_TYPE() reduces
some copy&paste boilerplate code.
Sebastian Dröge [Fri, 6 Aug 2010 16:43:56 +0000 (18:43 +0200)]
basesrc: Make sure the buffer metadata is writable before changing it
Stefan Kost [Thu, 5 Aug 2010 10:56:11 +0000 (13:56 +0300)]
Automatic update of common submodule
From 2004d03 to bd2054b
Tim-Philipp Müller [Thu, 5 Aug 2010 09:04:47 +0000 (10:04 +0100)]
utils: speed up pad linking utility functions by not trying pads that will never work
In gst_element_get_compatible_pad(), when trying to find a compatible pad on an
element for a given pad, there's no point in checking the element's sink pads
if the pad to link is a sink pad as well, or the element's source pads if the
given pad is a source pad already, since those would never be able to link
anyway. Should speed up linking using the convenience functions a little bit,
or at least reduce debug log output.
Stefan Kost [Thu, 5 Aug 2010 07:32:53 +0000 (10:32 +0300)]
info: take the timestamp a tick later
The logging is not an atomic operation and because of the multi-threading we end
up with out-of-order log lines. Tools that present the log-file should probably
resort the lines. This change just takes the timestamp a bit closer to the
actual logging.
Stefan Kost [Thu, 5 Aug 2010 06:36:16 +0000 (09:36 +0300)]
debug: logging improvements
Use the event serialisation. Log formats name instead of number.
Stefan Kost [Thu, 15 Jul 2010 12:46:24 +0000 (15:46 +0300)]
check: don't use c++ keywords as variable names
Stefan Kost [Thu, 15 Jul 2010 08:37:30 +0000 (11:37 +0300)]
basesrc: log seek event details
Stefan Kost [Mon, 12 Jul 2010 07:50:53 +0000 (10:50 +0300)]
manual: update gst-controller chapter
The docs were still describing deprecated api. Update it to tell about
control-cources.
Stefan Kost [Fri, 9 Jul 2010 12:58:50 +0000 (15:58 +0300)]
tests: clean up eventloop in examples
Don't leak the bus. Don't parse messages with the method for errors (triggers
gobject warning).
Stefan Kost [Thu, 8 Jul 2010 11:08:27 +0000 (14:08 +0300)]
benchmark: handle errors from the pipeline
Catch errors and warnings on the bus. This fixes hanging pipelines in the case
of bugs elsewhere. Also print state-change messages to give more detail on the progress.
Stefan Kost [Tue, 6 Jul 2010 15:20:40 +0000 (18:20 +0300)]
benchmark: cleanup last change in capsnego benchmark
A pad name is not a factory name.