platform/upstream/gstreamer.git
13 years agochecks: and check the right env-var (fixup last commit)
Stefan Kost [Thu, 9 Sep 2010 18:59:29 +0000 (21:59 +0300)]
checks: and check the right env-var (fixup last commit)

13 years agotests: allow running state tests for all elements
Stefan Kost [Thu, 9 Sep 2010 18:56:28 +0000 (21:56 +0300)]
tests: allow running state tests for all elements

Now one can use GST_NO_STATE_IGNORE_ELEMENTS=1 make generic/states.check
to try elements that would normaly be skipped.

13 years agogstobject: avoid string creation when not needed
Edward Hervey [Mon, 6 Sep 2010 13:16:16 +0000 (15:16 +0200)]
gstobject: avoid string creation when not needed

13 years agoidentity: identity is GAP flag aware, no need to let it be unset by basetransform
Sebastian Dröge [Thu, 9 Sep 2010 14:11:41 +0000 (16:11 +0200)]
identity: identity is GAP flag aware, no need to let it be unset by basetransform

13 years agogst-launch: add a sync bus handler and move state-change logging there
Stefan Kost [Thu, 9 Sep 2010 12:57:15 +0000 (15:57 +0300)]
gst-launch: add a sync bus handler and move state-change logging there

The sync handler is called for all mesages, the event loop we previously used
was not. In the sync handler trigger pipeline dot dumps and call access for a
file in tmp-dir to add markers interceptable by strace and co.

13 years agocaps: simplify code a bit
Tim-Philipp Müller [Wed, 8 Sep 2010 17:41:18 +0000 (18:41 +0100)]
caps: simplify code a bit

No need to call g_slist_length() here.

13 years agopad: add a unchecked variant for pull
Stefan Kost [Wed, 8 Sep 2010 06:37:42 +0000 (09:37 +0300)]
pad: add a unchecked variant for pull

Add internal _get_range_unchecked thats is called from _get_range and
_pull_range.

13 years agogst-uninstalled: add ugly/bad/ffmpeg pkg-config dirs to PKG_CONFIG_PATH
Tim-Philipp Müller [Tue, 7 Sep 2010 22:48:56 +0000 (23:48 +0100)]
gst-uninstalled: add ugly/bad/ffmpeg pkg-config dirs to PKG_CONFIG_PATH

So we can figure out plugin directories of other modules properly in
the uninstalled setup case, for unit tests that need elements from
other modules.

13 years agodocs: update plugin docs for recent changes
Tim-Philipp Müller [Tue, 7 Sep 2010 11:01:18 +0000 (12:01 +0100)]
docs: update plugin docs for recent changes

And sorted hierarchy

13 years agoAutomatic update of common submodule
Tim-Philipp Müller [Tue, 7 Sep 2010 10:41:37 +0000 (11:41 +0100)]
Automatic update of common submodule

From c2e10bf to aa0d1d0

13 years agogst-inspect: don't use gst_structure_foreach() on NULL pointers
Tim-Philipp Müller [Tue, 7 Sep 2010 10:09:16 +0000 (11:09 +0100)]
gst-inspect: don't use gst_structure_foreach() on NULL pointers

13 years agopo: update translations for new strings
Tim-Philipp Müller [Mon, 6 Sep 2010 19:19:27 +0000 (20:19 +0100)]
po: update translations for new strings

13 years agogsterror: add default error message for GST_LIBRARY_ERROR_ENCODE
Tim-Philipp Müller [Mon, 6 Sep 2010 19:16:14 +0000 (20:16 +0100)]
gsterror: add default error message for GST_LIBRARY_ERROR_ENCODE

No idea though why we even have GST_LIBRARY_ERROR_ENCODE or when one
would want to use that instead of GST_STREAM_ERROR_ENCODE.

13 years agogsterror: avoid pointless string copying
Tim-Philipp Müller [Mon, 6 Sep 2010 19:06:56 +0000 (20:06 +0100)]
gsterror: avoid pointless string copying

There's no need to create these tables with duplicates of the
untranslated error message string constants, we can just use
old-fashioned switch/case and call gettext directly. This also
makes things slightly more thread safe and more robust to bad
input (invalid error codes).

13 years agocheck: Avoid error: array subscript is above array bounds
Edward Hervey [Mon, 6 Sep 2010 16:33:51 +0000 (18:33 +0200)]
check: Avoid error: array subscript is above array bounds

Could have come up with something better for my 2000th commit
to GStreamer...

13 years agodocs: give a practical example for the gst_object_has_anchestor
Stefan Kost [Mon, 6 Sep 2010 14:01:19 +0000 (17:01 +0300)]
docs: give a practical example for the gst_object_has_anchestor

13 years agoelementfactory: use the parent_class defined by G_DEFINE_TYPE
Stefan Kost [Mon, 6 Sep 2010 11:33:44 +0000 (14:33 +0300)]
elementfactory: use the parent_class defined by G_DEFINE_TYPE

13 years agotests: tune skipping checks if we have disabled subsystems
Stefan Kost [Mon, 6 Sep 2010 11:32:00 +0000 (14:32 +0300)]
tests: tune skipping checks if we have disabled subsystems

Skip ABI tests if some subsystems are off. Remove DISABLE_GST_DEBUG from
skipping export checks as this is safe now.

13 years agoregistrychunks: Use the correct variable for debug message
Olivier Crête [Mon, 6 Sep 2010 11:09:52 +0000 (14:09 +0300)]
registrychunks: Use the correct variable for debug message

Debug print was using a variable that was not initialized.

13 years agoelement-details: allow for arbitrary element details
Stefan Kost [Tue, 10 Aug 2010 11:05:22 +0000 (14:05 +0300)]
element-details: allow for arbitrary element details

Add a GstStructure to GstElementClass and GstElementFactory. Add setters/getter.
Handle it in the registry code. Print items in gst-inspect.
Fixes #396774.

API: gst_element_class_set_meta_data(), gst_element_factory_get_meta_data_detail()

13 years agoAutomatic update of common submodule
David Schleef [Mon, 6 Sep 2010 01:57:56 +0000 (18:57 -0700)]
Automatic update of common submodule

From d3d9acf to c2e10bf

13 years agoAutomatic update of common submodule
Sebastian Dröge [Sun, 5 Sep 2010 10:13:00 +0000 (12:13 +0200)]
Automatic update of common submodule

From ca1c867 to d3d9acf

13 years agowin32: Add new symbols from GstElementFactoryList
Edward Hervey [Sun, 5 Sep 2010 08:22:20 +0000 (10:22 +0200)]
win32: Add new symbols from GstElementFactoryList

And here's a reminder since I forgot to put them in my previous
commit.

API: gst_element_factory_list_filter
API: gst_element_factory_list_get_elements
API: gst_element_factory_list_is_type
API: gst_plugin_feature_list_debug
API: gst_plugin_feature_rank_compare_func
API: GstElementFactoryListType
API: GST_ELEMENT_FACTORY_TYPE_ANY
API: GST_ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS
API: GST_ELEMENT_FACTORY_TYPE_AUDIO_ENCODER
API: GST_ELEMENT_FACTORY_TYPE_DECODABLE
API: GST_ELEMENT_FACTORY_TYPE_DECODER
API: GST_ELEMENT_FACTORY_TYPE_DEMUXER
API: GST_ELEMENT_FACTORY_TYPE_DEPAYLOADER
API: GST_ELEMENT_FACTORY_TYPE_ENCODER
API: GST_ELEMENT_FACTORY_TYPE_FORMATTER
API: GST_ELEMENT_FACTORY_TYPE_MAX_ELEMENTS
API: GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO
API: GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE
API: GST_ELEMENT_FACTORY_TYPE_MEDIA_METADATA
API: GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE
API: GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO
API: GST_ELEMENT_FACTORY_TYPE_MEDIA_ANY
API: GST_ELEMENT_FACTORY_TYPE_MUXER
API: GST_ELEMENT_FACTORY_TYPE_PARSER
API: GST_ELEMENT_FACTORY_TYPE_PAYLOADER
API: GST_ELEMENT_FACTORY_TYPE_SINK
API: GST_ELEMENT_FACTORY_TYPE_SRC
API: GST_ELEMENT_FACTORY_TYPE_VIDEO_ENCODER

13 years agoqueue2: buffering_ranges query support
Philippe Normand [Tue, 31 Aug 2010 09:37:42 +0000 (11:37 +0200)]
queue2: buffering_ranges query support

Fixes bug 623121

13 years agogstquery: Only fill the start/stop values of the buffering ranges if a non-NULL point...
Sebastian Dröge [Fri, 3 Sep 2010 17:58:49 +0000 (19:58 +0200)]
gstquery: Only fill the start/stop values of the buffering ranges if a non-NULL pointer was provided

13 years agogstquery: new buffering_ranges API
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

13 years agoGstElementFactory: Add listing features
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

13 years agodocs: mention GST_DEBUG_OPTIONS, ORC_CODE, G_DEBUG and G_SLICE environment variables
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.

13 years agofakesrc: fix use of empty subbuffers
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.

13 years agoFix casts in a bunch of inline functions to maintain correct const-ness
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

13 years agobuild: use new AG_GST_PKG_CONFIG_PATH m4 macro from common
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.

13 years agomanual: improve clock docs a little
Wim Taymans [Wed, 1 Sep 2010 09:34:01 +0000 (11:34 +0200)]
manual: improve clock docs a little

13 years agogstvalue: Fix memory leaks in the int64range tests
Sebastian Dröge [Wed, 1 Sep 2010 09:06:57 +0000 (11:06 +0200)]
gstvalue: Fix memory leaks in the int64range tests

13 years agogstvalue: Add new GstInt64Range type
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.

13 years agodocs: Trivial cleanup for GST_DEBUG_CATEGORY_GET
Arun Raghavan [Tue, 31 Aug 2010 00:26:18 +0000 (21:26 -0300)]
docs: Trivial cleanup for GST_DEBUG_CATEGORY_GET

13 years agoinfo: Re-instate the default for color usage
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

13 years agocheck: Use g_strcmp0 instead of strcmp
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.

13 years agoqueue: add silent property to suppress signal emission
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

13 years agoutils: Add gst_util_fraction_compare() to the docs and exported symbols
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

13 years agotests: Remove checks for deprecated flow check macros
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.

13 years agoutils: Fix inverted assertion logic in gst_util_fraction_compare()
Sebastian Dröge [Sat, 28 Aug 2010 07:35:01 +0000 (09:35 +0200)]
utils: Fix inverted assertion logic in gst_util_fraction_compare()

13 years agoutils: Add gst_util_fraction_compare() to compare fractions
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()

13 years agotests: Add a couple of extra caps strings to test
Jan Schmidt [Sat, 28 Aug 2010 07:04:43 +0000 (17:04 +1000)]
tests: Add a couple of extra caps strings to test

13 years agomultiqueue: Don't do an infinite loop in the loop function
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.

13 years agomultiqueue: Flush the data queue if downstream return WRONG_STATE too
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

13 years agoelements: Stop using GST_FLOW_IS_FATAL()
Sebastian Dröge [Thu, 26 Aug 2010 21:39:06 +0000 (23:39 +0200)]
elements: Stop using GST_FLOW_IS_FATAL()

13 years agobase: 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.

13 years agopad: Deprecate GST_FLOW_IS_FATAL() and GST_FLOW_IS_SUCCESS()
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.

13 years agofakesink: keep properties in order
Stefan Kost [Fri, 27 Aug 2010 08:11:00 +0000 (11:11 +0300)]
fakesink: keep properties in order

13 years agoqueue: ARG_ -> PROP_ for property constants
Stefan Kost [Fri, 27 Aug 2010 07:22:27 +0000 (10:22 +0300)]
queue: ARG_ -> PROP_ for property constants

13 years agoqueue2: fix on-disk buffering again
Wim Taymans [Thu, 26 Aug 2010 15:04:20 +0000 (17:04 +0200)]
queue2: fix on-disk buffering again

13 years agobasetransform: recover from invalid downstream suggestions
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

13 years agogstplugin: load the gst-python plugin loader with G_MODULE_BIND_LAZY.
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.

13 years agotag: Adds GST_TAG_APPLICATION_DATA
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

13 years agogst-launch: Fix OIL_CPU_FLAGS docs for Orc
David Schleef [Tue, 24 Aug 2010 19:46:38 +0000 (12:46 -0700)]
gst-launch: Fix OIL_CPU_FLAGS docs for Orc

13 years agoman: remove OIL_CPU_FLAGS from man page
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.

13 years agoValgrind define is HAVE_VALGRIND_VALGRIND_H
David Schleef [Tue, 24 Aug 2010 01:20:23 +0000 (18:20 -0700)]
Valgrind define is HAVE_VALGRIND_VALGRIND_H

13 years agoAllow gst_debug_set_default_threshold() before gst_init()
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.

13 years agoqueue: fix segfault in test
Jonas Holmberg [Mon, 23 Aug 2010 11:06:19 +0000 (13:06 +0200)]
queue: fix segfault in test

13 years agoregistrychunks: intern all GstPluginDesc members when unpacking
Mark Nauwelaerts [Mon, 23 Aug 2010 08:58:16 +0000 (10:58 +0200)]
registrychunks: intern all GstPluginDesc members when unpacking

13 years agogstobject: fix leak when naming parented object
Mark Nauwelaerts [Mon, 23 Aug 2010 08:56:30 +0000 (10:56 +0200)]
gstobject: fix leak when naming parented object

13 years agogst: Add a gst_is_initialized() API
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

13 years agobin: relax the source element check
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

13 years agoqueue: added unit test for newsegment events
Jonas Holmberg [Thu, 19 Aug 2010 15:07:00 +0000 (17:07 +0200)]
queue: added unit test for newsegment events

13 years agoqueue: Push newsegment when linking in PLAYING
Jonas Holmberg [Fri, 5 Mar 2010 16:18:23 +0000 (17:18 +0100)]
queue: Push newsegment when linking in PLAYING

Fixes #611918

13 years agoelement: link_many should activate pads if needed
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

13 years agodatetime: Fix memory leak in the unit test by unreffing GstDateTime instance after...
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

13 years agotests: fix comments in test
Wim Taymans [Thu, 19 Aug 2010 08:03:08 +0000 (10:03 +0200)]
tests: fix comments in test

13 years agoqueue2: Use G_GUINT64_FORMAT where needed
Edward Hervey [Thu, 19 Aug 2010 07:58:55 +0000 (09:58 +0200)]
queue2: Use G_GUINT64_FORMAT where needed

Fixes build on macosx

13 years agocheck: enable queue test again
Wim Taymans [Wed, 18 Aug 2010 13:31:09 +0000 (15:31 +0200)]
check: enable queue test again

13 years agoqueue: fixed racy unit tests
Jonas Holmberg [Wed, 18 Aug 2010 13:12:45 +0000 (15:12 +0200)]
queue: fixed racy unit tests

Fixes #600004

13 years agoplugins: add example launch lines and more explanation to the docs.
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 :/ ...

13 years agoqueue2: fix compilation
Wim Taymans [Fri, 13 Aug 2010 14:19:36 +0000 (16:19 +0200)]
queue2: fix compilation

13 years agoqueue2: Fix a special case during range management
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.

13 years agoqueue2: fix locking around init_ranges
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.

13 years agoqueue2: More ring buffer fixes
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

13 years agoqueue2: ring buffer fixes
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.

13 years agoqueue2: Fix bugs
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

13 years agoqueue2: extend ring buffer to support ram mode
Robert Swain [Fri, 18 Jun 2010 15:43:40 +0000 (17:43 +0200)]
queue2: extend ring buffer to support ram mode

13 years agoqueue2: merge write buffer functions and fix bugs
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.

13 years agoqueue2: small cleanup
Wim Taymans [Thu, 17 Jun 2010 08:18:48 +0000 (10:18 +0200)]
queue2: small cleanup

13 years agoqueue2: cleanup write_to_ring_buffer
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.

13 years agoqueue2: cleanups
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.

13 years agoqueue2: remove unused variable
Wim Taymans [Wed, 16 Jun 2010 14:23:02 +0000 (16:23 +0200)]
queue2: remove unused variable

13 years agoqueue2: cleanups
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

13 years agoqueue2: remove unneeded signal
Wim Taymans [Wed, 16 Jun 2010 10:00:45 +0000 (12:00 +0200)]
queue2: remove unneeded signal

13 years agoqueue2: set buffering mode correctly
Wim Taymans [Wed, 16 Jun 2010 10:00:30 +0000 (12:00 +0200)]
queue2: set buffering mode correctly

13 years agoqueue2: fix calculation of available ringbuffer data
Wim Taymans [Wed, 16 Jun 2010 09:20:00 +0000 (11:20 +0200)]
queue2: fix calculation of available ringbuffer data

13 years agoqueue2: reading_pos is updated in create_read only
Wim Taymans [Wed, 16 Jun 2010 09:11:32 +0000 (11:11 +0200)]
queue2: reading_pos is updated in create_read only

13 years agoqueue2: refactor and add debug
Wim Taymans [Wed, 16 Jun 2010 09:11:11 +0000 (11:11 +0200)]
queue2: refactor and add debug

13 years agoqueue2: fix flushing
Wim Taymans [Wed, 16 Jun 2010 09:10:23 +0000 (11:10 +0200)]
queue2: fix flushing

13 years agoqueue2: add debug
Wim Taymans [Wed, 16 Jun 2010 09:09:25 +0000 (11:09 +0200)]
queue2: add debug

13 years agoqueue2: don't try to write 0 bytes
Wim Taymans [Tue, 15 Jun 2010 15:26:15 +0000 (17:26 +0200)]
queue2: don't try to write 0 bytes

13 years agoqueue2; cleanups and fixes
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

13 years agoqueue2: refactorings
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.

13 years agoqueue2: Use ring-buffer-max-size prop to control ring buffer
Robert Swain [Wed, 16 Jun 2010 10:24:25 +0000 (12:24 +0200)]
queue2: Use ring-buffer-max-size prop to control ring buffer

13 years agoqueue2: Clean up and improve code
Robert Swain [Sun, 6 Jun 2010 07:30:48 +0000 (09:30 +0200)]
queue2: Clean up and improve code

13 years agoqueue2: Fix conditions where behaviour should differ between ring
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

13 years agoqueue2: add useful debug messages and fix an assumption in _have_data ()
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 ()

13 years agoqueue2: fix buffering percentage in ring buffer mode
Robert Swain [Tue, 18 May 2010 15:42:07 +0000 (17:42 +0200)]
queue2: fix buffering percentage in ring buffer mode