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.
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.
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.
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.
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
Tim-Philipp Müller [Tue, 7 Sep 2010 10:41:37 +0000 (11:41 +0100)]
Automatic update of common submodule
From c2e10bf to aa0d1d0
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
Tim-Philipp Müller [Mon, 6 Sep 2010 19:19:27 +0000 (20:19 +0100)]
po: update translations for new strings
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.
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).
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...
Stefan Kost [Mon, 6 Sep 2010 14:01:19 +0000 (17:01 +0300)]
docs: give a practical example for the gst_object_has_anchestor
Stefan Kost [Mon, 6 Sep 2010 11:33:44 +0000 (14:33 +0300)]
elementfactory: use the parent_class defined by G_DEFINE_TYPE
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.
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.
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()
David Schleef [Mon, 6 Sep 2010 01:57:56 +0000 (18:57 -0700)]
Automatic update of common submodule
From d3d9acf to c2e10bf
Sebastian Dröge [Sun, 5 Sep 2010 10:13:00 +0000 (12:13 +0200)]
Automatic update of common submodule
From ca1c867 to d3d9acf
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
Philippe Normand [Tue, 31 Aug 2010 09:37:42 +0000 (11:37 +0200)]
queue2: buffering_ranges query support
Fixes bug 623121
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
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