Commit graph

5397 commits

Author SHA1 Message Date
Sebastian Dröge 48438b6cc7 gstvalue: Add some assertion guards against invalid parameters to public API 2010-06-13 18:00:22 +02:00
Sebastian Dröge e6e29192bc Remove some dead assignments 2010-06-13 17:08:48 +02:00
Sebastian Dröge 6ff314c75a pad: Fix iterator aggregation of all pads in the internal links fallback
g_list_prepend() returns the new head of the list and not
using this will create a memory leak and a single-element list.
2010-06-13 16:27:39 +02:00
Sebastian Dröge 18f23bc0b0 iterator: Add new FIXME for 0.11 and update gst_iterator_find_custom docs
The compare function should only unref the element if it's
not the matching element.

Also the FIXME in _fold() is not relevant because the ref/unref
happens in the fold function.
2010-06-13 15:25:24 +02:00
Sebastian Dröge c4ccbe093e iterator: If the iterator resync in find_custom() just retry 2010-06-13 11:25:53 +02:00
Martin Bisson ab0763f0e8 value: Fixed serialization for short fourccs.
"Y16 " and "Y8  " were not displayed properly because the space
character is not alnum.  A unit test is also included.

Fixes bug #621282.
2010-06-12 08:07:34 +02:00
Stefan Kost ccc5e23a39 debugutils: fix comment typo even more 2010-06-09 12:17:03 +03:00
Stefan Kost fdbf9239b3 docs: update docs (format and search path).
Remove obsolete xml registry cache extension. Tell that content and location is
internal detail. Docuemnt the plugin search order.
2010-06-09 12:15:52 +03:00
Stefan Kost 012cf2862f comments: add a few comments to the sparsely documented plugin loader 2010-06-09 12:15:52 +03:00
Zaheer Abbas Merali 8f1cd236ec debugutils: fix comment typo 2010-06-08 11:41:11 +02:00
Stefan Kost 2d2ec4e3d5 caps: use gst_caps_append_structure_unchecked() macro once more 2010-06-08 12:19:49 +03:00
Stefan Kost c5f85a1cda caps: use a safer name for temporary var. to not shadow one from outer scope 2010-06-08 12:19:22 +03:00
Stefan Kost ad619a4e84 value: use glib types in more places
Do a bunch of char -> gchar, int -> gint, double -> gdouble changes.
2010-06-07 12:22:44 +03:00
Stefan Kost c95a85f6cf value: just compute strlen() once 2010-06-07 12:22:44 +03:00
Martin Bisson 28fdbee35a value: Add support for parsing short fourccs from strings
For example "Y16 " and "Y8  ".
2010-06-07 08:21:00 +02:00
Tim-Philipp Müller 66fc4c8ba2 info: add new TRACE log level and move refcounting there from LOG level
This makes it possible to easily get a *:5 debug log without all
the refcounting noise, and drastically reduces the number of lines
output for a normal log (46m to 28m for a 20min video). The full log
including refcounting information can still be gotten using *:7.

Fixes #620460.
2010-06-05 12:53:15 +01:00
Sebastian Dröge 2d5b1bbc1d utils: Use G_PARAM_STATIC_STRINGS for standard properties 2010-06-04 17:10:05 +02:00
Stefan Kost 21b4ef4d0f pads: Improve readability for gst_pad_fixate_caps()
Just truncate and then fixate. We check for empty caps in the begin and a
fixate-func that empties a caps would be broken. It also helps lazy caps impl.
in bug 618853 by avoiding the gst_caps_get_size().
2010-06-01 22:30:37 +03:00
Wim Taymans 88c6896fb9 gstbin: unlock _get_state() on error
When an error message is received on the bus, mark the bin as being in the error
state and unlock all current _get_state() calls with an error.

Fixes #505770
2010-05-25 19:17:44 +02:00
Tim-Philipp Müller 3ea8b47445 tagsetter: make sure only one thread creates the TagData 2010-05-24 19:08:29 +01:00
Tim-Philipp Müller 99eb992bc0 tagsetter: protect tagsetter operations with a lock
So we don't crash when a muxer tries to add tags from two
threads at the same time, eg. because it received tag events
on two input pads simultaneously.

See #619533.
2010-05-24 18:16:19 +01:00
Stefan Kost ccaadae492 caps: use our macros more often in the code 2010-05-22 23:26:16 +03:00
Stefan Kost bd7a34bfa1 caps: add append_structure_unchecked
This is useful when we know that caps is !NULL, writable and structure is
!NULL too.
2010-05-22 23:14:48 +03:00
Stefan Kost edfbd90b29 docs: xref function name 2010-05-22 22:45:33 +03:00
Stefan Kost 999a6235c0 caps: use our macos more 2010-05-22 22:44:02 +03:00
Sebastian Dröge e35fe4ef9c structure: API: Add gst_structure_fixate_field_string() 2010-05-22 10:01:44 +02:00
Stefan Kost 3e78a5dd19 docs: add links for GSource priorities
Now it is xreffed with the glib docs, where the priority scale is explained.
2010-05-19 16:24:54 +03:00
Wim Taymans e1294397d7 miniobject: cleanup type registration a little
We can make some structs const static with little effort.
2010-05-18 18:37:25 +02:00
Tim-Philipp Müller 4793930efb pad: don't print WARNING debug statements for normal things like EOS, part II 2010-05-17 13:09:15 +01:00
Stefan Kost e8c2c40b21 caps: comment and whitespace cleanup
Make comment more specific, reposition it and add more of the kind.
Move one ifdef'ed function around.
2010-05-14 11:54:56 +03:00
Sebastian Dröge beb24d05af utils: Simplify fractions before doing calculations that could cause overflows
... to prevent some unnecessary overflows from happenening.
2010-05-13 08:21:37 +02:00
Sebastian Dröge ee21479eab utils: GCD is 0 if both parameters are 0, don't divide by zero
And turn overflow checks from assertions into simple checks to
return FALSE.
2010-05-13 08:01:14 +02:00
Sebastian Dröge 2c5d3d1761 utils: Simplify result of gst_fraction_multiply() 2010-05-13 08:01:14 +02:00
Wim Taymans 60499306a6 Revert "pad: don't check twice for changed caps per push"
We need to check the pad caps on the srcpad as well as on the sinkpad. Revert
this commit as it removes the check on the srcpad and can leave the srcpad
unnegotiated (or negotiated with wrong caps)

This reverts commit 07dc1e5b49.
2010-05-06 16:41:09 +02:00
Stefan Kost 07dc1e5b49 pad: don't check twice for changed caps per push
gst_pad_chain_data_unchecked() does the same check already.
2010-05-06 17:04:53 +03:00
Wim Taymans 6e4fde7195 docs: clarify the pull_range functions
Clarify the gst_pad_pull_range(), GstBaseSrc::create(), gst_pad_get_range()
and GstPadGetRange functions a little.

Fixes #617733
2010-05-05 12:01:50 +02:00
Wim Taymans 72c512a87d utils: use reffed _get_caps() version
We don't need to have a writable copy so we can use the _reffed
version instead.
2010-05-04 11:44:27 +02:00
Thiago Santos d020295ae0 tags: Adds geo location direction tags
Adds 3 new geo location tags involving direction and
movement of capture. Those are:

API: GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION
API: GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION
API: GST_TAG_GEO_LOCATION_MOVEMENT_SPEED

Fixes #617223
2010-05-03 09:50:09 -03:00
Thiago Santos 2cc0bcb798 tags: Adds GST_TAG_DEVICE_MANUFACTURER and GST_TAG_DEVICE_MODEL
Adds those new tags to describe the device manufacturer and
model used to create medias.

API: GST_TAG_DEVICE_MANUFACTURER
API: GST_TAG_DEVICE_MODEL

Fixes #615941
2010-05-03 09:05:45 -03:00
Tim-Philipp Müller 3d6d9ca4e1 Bump GLib requirement to 2.20
See http://gstreamer.freedesktop.org/wiki/ReleasePlanning/GLibRequirement
2010-04-30 13:10:16 +01:00
Tim-Philipp Müller 8e932639ba buffer: only warn if metadata is not writable when it should be, don't return as well
Make sure we execute the same code path in git versions and in releases,
so just warn when metadata isn't writable when we want it to be instead
of bailing out.
2010-04-30 13:09:34 +01:00
Tim-Philipp Müller ae56d71363 element: make 'adding flushing pad' warning more useful
This is a pretty common issue with ghost pads, let's make
the warning more helpful and tell people what they need
to do to fix it.
2010-04-30 13:09:34 +01:00
Benjamin Otte b878069ef7 caps: Do not allow fixating empty caps
Passing empty caps to gst_pad_fixate_caps() is invalid, as empty caps
cannot be fixated.
2010-04-29 22:41:36 +02:00
Benjamin Otte 31832d3c21 caps: Use G_GNUC_WARN_UNUSED_RESULT for make_writable()
People often call
  gst_caps_make_writable (caps);
instead of
  caps = gst_caps_make_writable (caps);
and cause a bug. Warning about an unused return value helps here.

See https://bugzilla.gnome.org/show_bug.cgi?id=616541#c2 for an example.
2010-04-29 22:41:36 +02:00
Sebastian Dröge b748da35d6 gst: Use GError boxed type from GObject 2.25.2 instead of our own if possible 2010-04-29 18:18:37 +02:00
Wim Taymans c13e225a17 docs: add some more docs for the events 2010-04-29 10:26:14 +02:00
Tim-Philipp Müller 126d9cfce8 pad: add enums for custom flow return success and error codes
This way people can just #define their own custom flow returns to
one of these without having the compiler (esp. gcc-4.5) complain
about comparing integers to an enum or the enum not being listed

Fixes #615880.

API: GST_FLOW_CUSTOM_SUCCESS_1
API: GST_FLOW_CUSTOM_SUCCESS_2
API: GST_FLOW_CUSTOM_ERROR_1
API: GST_FLOW_CUSTOM_ERROR_2
2010-04-16 14:52:32 +01:00
Thiago Santos e7a568a346 tags: doc fixes
Adds missing ':' to tags docs
2010-04-15 11:20:39 -03:00
Tim-Philipp Müller c008823e6e bin: fix bogus variable type
The result of gst_iterator_find_custom() is not a GstIterator *.
2010-04-15 11:40:05 +01:00
Tim-Philipp Müller 24ce15bca7 structure: log what structure string we failed to parse 2010-04-14 23:53:26 +01:00
Wim Taymans 67ab660b19 bin: fix refcount when removing elements during state change
When an element is removed from a bin because it caused a state change error,
don't unref the child twice.
Add some more debug info.
Add a unit test for this error.

Fixes #615756
2010-04-14 18:32:26 +02:00
Tim-Philipp Müller e3e58e03b3 build: $(LIBM) belongs into LIBADD not LDFLAGS 2010-04-14 11:40:21 +01:00
Sebastian Dröge b5e875d201 registrychunks: Initialize typefind/element factory registry chunks with zeroes
This makes valgrind stop complaining about reading unitializated memory,
which is not initialized because it's just compiler-added struct padding...
2010-04-09 13:08:13 +02:00
Stefan Kost 46899ff8ba docs: use informalfigure tag to not syntax highlight the content 2010-04-08 10:47:03 +03:00
Tim-Philipp Müller 461d0e214a docs: add a few code snippets that show how to use gst_message_parse_*(). 2010-04-07 19:30:49 +01:00
Tim-Philipp Müller 189facea50 parse: fix more compiler warnings
Fix 'grammar.tab.c:815:6: warning: "YYENABLE_NLS" is not defined'
compiler warning and the same for YYLTYPE_IS_TRIVIAL. The two
translated strings aren't particularly helpful, so just define
YYENABLE_NLS to 0.
2010-04-07 19:09:24 +01:00
Tim-Philipp Müller a26879b7a0 parse: fix compiler warning
Fix 'grammar.y:668: passing argument 1 of ‘g_free’ discards qualifiers
from pointer target type' compiler warning.
2010-04-07 19:09:23 +01:00
Wim Taymans 05d663a702 message: add Since: markers 2010-04-07 16:06:22 +02:00
Wim Taymans 08b7865f24 docs: fix some typos 2010-04-06 17:46:36 +02:00
Stefan Kost d29c31f9cd docs: improve event docs
Rephrase first paragraph of section docs. Add detail to eos event docs.
2010-04-04 15:21:16 +03:00
Tim-Philipp Müller c4a4f2dad2 libs: point gobject-introspection scanner to .la files
Point g-ir-scanner to the .la file of our library, which hopefully
makes it find the right dependencies in all cases (ie. our locally
built libgstreamer and not the system-installed one). This is also
how it's done in Gtk+ and how it's documented in the wiki, see
http://live.gnome.org/GObjectIntrospection/AutotoolsIntegration

Based on patches by Vincent Untz and Alan Knowles.

Fixes #603710.
2010-04-03 13:41:52 +01:00
Philip Withnall 6ca0b51e4e utils: Use G_GNUC_CONST instead of G_GNUC_PURE for conversion functions
Fixes bug #614629.
2010-04-02 18:43:37 +02:00
Sebastian Dröge 133792e5cd event: Use correct type for the message parameter in gst_event_{new,parse}_sink_message
The struct workaround was only necessary in gstevent.h, gstutils.h knows about GstMessage
2010-03-31 10:25:30 +02:00
Stefan Kost 477a5d0939 gstinfo: add a comment explaining the reason for using fucntion protos here. 2010-03-29 16:38:05 +03:00
Stefan Kost e55d18baa2 gstinfo: always define dummy debug category as a function prototype
It does not seem to make sense to define this as a function only if we have
varargs macros.
2010-03-29 16:38:05 +03:00
Stefan Kost b40c2f8114 build: fix redeclaration erors when building with --gst-disable-gst-debug
Give dummy symbols a uniqe name.
2010-03-29 16:38:04 +03:00
Stefan Kost f89ccf7d3d build: move some prototypes out of #ifndef GST_DISABLE_GST_DEBUG
Move the prototypes up together. We only define the macros differently.
Fixes bug #614167 mostly.
2010-03-29 16:37:48 +03:00
Stefan Kost 04bf54c58f info: readd the use of GstDebugFuncPtr typedef and tell why
This reverts the related changes from 3f4954e42d
and ffb0a4e190.
2010-03-29 16:36:15 +03:00
Sebastian Dröge ffb0a4e190 info: Fix build at least until the correct fix is found
See bug #614167.
2010-03-28 21:02:41 +02:00
Sebastian Dröge e305e49ef4 structure: Make structure abbreviations array one-time initialization threadsafe 2010-03-28 19:49:00 +02:00
Sebastian Dröge ad230b07f6 iterator: Add FIXME 0.11 for using GSlice for allocation 2010-03-28 19:48:54 +02:00
Sebastian Dröge fd68dbc08f gst: Use GSlice instead of normal g_malloc in more places 2010-03-28 19:48:45 +02:00
Stefan Kost 3f4954e42d build: more some prototypes out if #ifndef GST_DISABLE_GST_DEBUG
The build was failing becasue of a new warning. There are still failures
(tracked via bug #614167).
2010-03-28 13:14:06 +03:00
Sebastian Dröge d3f1d2aeb5 elementfactory: Add FIXME 0.11 to remove GstElementDetails from the public API
It's not necessary anymore to expose this as public API and this allows
easier extension of the element details by new fields.
2010-03-25 18:57:40 +01:00
Wim Taymans 5fdee7e064 bin: improve docs a little
Mention that a DURATION message does not mean that one can safely query the
duration on a bin, that only works when the bin is prerolled.
2010-03-25 18:12:06 +01:00
Thiago Santos e875577b0f tags: Add new _USER_RATING tag
Adds a new tag for user favorite media rating.
User rating informs how much (from 0 to 100) a user
'likes' a media.
Having an percent uint range for this is easy to map into other scales,
like some players that allow users to attribute 'stars' to its
media.

API: GST_TAG_USER_RATING

Fixes #520697
2010-03-24 15:18:53 -03:00
Tim-Philipp Müller 3d5843e1f4 build: fix make distcheck
The change from GST_ALL_CFLAGS to GST_OPTION_CFLAGS dropped the includes,
putting them back fixes make distcheck.
2010-03-24 15:47:22 +00:00
Benjamin Otte 3b4aa3f76a Deprecated gst_element_class_set_details()
Use gst_element_class_set_details_simple() instead. If you want to
convert automatically, here's a script:

for file in `git grep -l GstElementDetails`; do
  sed -i -n -r '
    1h
    1!H
    $ {
      g
      s/((\/\*[^\n]*\*\/)?\n)*[^\n]*GstElementDetails .* =\s*GST_ELEMENT_DETAILS\s*\((\"[^\"]*\",\s*\"[^\"]*\",\s*\"[^\"]*\",\s*(\"[^\"]*\"\s*)*)\);\n*(.*)gst_element_class_set_details \(([^,]*),\s*[^)]*\)/\n\n\5gst_element_class_set_details_simple (\6, \3)/
      s/((\/\*[^\n]*\*\/)?\n)*[^\n]*GstElementDetails .* =\s*\{\s*(\"[^\"]*\",\s*\"[^\"]*\",\s*\"[^\"]*\",\s*(\"[^\"]*\"\s*)*)\};\n*(.*)gst_element_class_set_details \(([^,]*),\s*[^)]*\)/\n\n\5gst_element_class_set_details_simple (\6, \3)/
      p
    }' $file
  ~/gst/gstreamer/tools/gst-indent $file
done
2010-03-24 12:20:05 +01:00
Tim-Philipp Müller 0aa584917a structure: add mapping for (uint) to allow deserialisation of unsigned integers
Unsigned ints are used in taglists, would be nice to be able to
deserialise them, esp. in connection with the taginject API.
2010-03-23 19:23:22 +00:00
Stefan Kost e3efae65bc gettext: build fixes: #if -> #ifdef 2010-03-22 17:10:06 +02:00
Stefan Kost da287f556d parse-launch: make delayed set recursive
Right now deleyed set would only try for first set of children. We need to keep
trying to support arbitrary deep hierarchies (like in playbin2 with auto*sinks).
Also GstBin would need to actualy emit the child-added/removed signal as it
implements the iface. Fixes #613215.
2010-03-22 10:01:38 +02:00
Wim Taymans d67f8733ac message: improve docs a little 2010-03-17 19:26:30 +01:00
Robert Swain 1a3257132d message: add QoS message to inform apps of lost data
This has been implemented as per part-qos.txt and partially addresses
bug #322947
2010-03-17 19:16:42 +01:00
Mart Raudsepp 719a9217fb docs: fix typo 2010-03-17 11:03:15 +00:00
Mart Raudsepp db949f66e0 docs: fix since tag for gst_structure_id_has_field_typed()
gst_structure_id_has_field_typed was added in 0.10.26, not 0.10.16.
Apparent typo in commit f9e3b72f when the API was added.
2010-03-17 11:03:15 +00:00
Tim-Philipp Müller 235910e227 gst: use #if GLIB_CHECK_VERSION instead of #ifndef GLIBMACRO
for better greppability at the time we bump GLib version requirements.
2010-03-17 11:03:15 +00:00
Stefan Kost 5ff43184cf task: snprintf needs to include "stdio.h" 2010-03-16 09:56:41 +02:00
Wim Taymans c78c637a77 task: use bionic/libc friendly arguments to prctl
prctl is supposed to take 5 arguments. It used to work with 2 arguments on some
versions of libc because it is defined as a varags function there.

See #611911
2010-03-15 17:07:59 +01:00
Wim Taymans fb9243178a task: update docs. 2010-03-15 15:12:01 +01:00
Sebastian Dröge f9f0346f3f taglist: Work around gtk-doc problem 2010-03-15 14:52:41 +01:00
Sebastian Dröge fbbb671e54 utils: Handle iterator resyncs in gst_pad_proxy_setcaps()
Fixes bug #612881.
2010-03-15 14:52:40 +01:00
Wim Taymans f9c74afe62 task: configure the object name as thread name
When we have prctl available, use it to set the configured object name as the
thread name for better debugging.

Based on patch by Robert Swain.
2010-03-15 14:48:19 +01:00
Wim Taymans f089c3cceb pad: set a good name on the task of the pad
Use the element:pad names to configure a good name for the pad task.
2010-03-15 13:48:30 +01:00
Wim Taymans f4b43b6c12 task: retab 2010-03-15 12:13:55 +01:00
Stefan Kost 575e7eb5f7 logging: remove extra newline 2010-03-15 11:17:22 +02:00
Stefan Kost ba53eee64b bus: turn g_return_if_fail into g_assert.
This either must never happen (which makes sense in this case) and thus should
use assert() or we should use a traditional if (poll_data->message) return;
to avoid differnet behaviour of intenal api when compiling with
G_DISABLE_CHECKS.
2010-03-15 11:17:22 +02:00
Stefan Kost 1ca450ba5c caps: move the check to the public api.
This avoids creating empty caps and destroying them in the case of an error. We
also avoid double checking in other code path where we call the internal api.
2010-03-15 11:17:22 +02:00
Stefan Kost 43a4763491 caps: this is internal API where we need to ensure !NULL higher up 2010-03-15 11:17:22 +02:00
Stefan Kost 646d436799 gst: this is an internal function where we already ensure !NULL when calling 2010-03-15 11:17:21 +02:00
Stefan Kost b9cb52a2c2 debugutils: fix case of pad flag
Due to a typo the code was always showing the flag as 's' (lower case).
Fixes #611075
2010-03-15 11:16:44 +02:00
Stefan Kost 0765d4b812 debug: add pretty printer for events
Adder is using GST_PTR_FORMAT for events already, so we might actualy
implement this and print out some useful info.
2010-03-15 09:10:05 +02:00
Benjamin Otte 7c1d33a8a3 Add some 0.11 FIXMEs for GstPluginInitFunc
See 8fe63000de for why having a TRUE/FALSE
return value is a bad idea.
I've scanned a few plugins and they generally get it wrong and aren't
unloadable when they return FALSE.
2010-03-13 11:05:33 +01:00
Leo Singer 3f86f8cee1 gstinfo: fix compilation error if HAVE_REGISTER_PRINTF_SPECIFIER is undefined
Use #if HAVE_FOO instead of #ifdef HAVE_FOO.

Fixes #612733.
2010-03-12 19:05:16 +00:00
Benjamin Otte 8fe63000de plugins: Do not ever unload a plugin after calling into it
This is what can happen in a plugin_init function:
- An element based on GstBaseSink is registered
- Other elements fail to register
- The plugin_init function returns FALSE

Now if this the plugin is the first plugin to link against
libgstbase.so, it will have caused libgstbase.so to be loaded and static
strings from that library will have been added to gobject while
registering GstBaseSink.

So unloading the plugin will cause those strings to go stale and the
next plugin using GstBaseSink will crash. So we must not unload modules
after calling into them ever.

https://bugzilla.redhat.com/show_bug.cgi?id=572800
2010-03-12 16:56:56 +01:00
Edward Hervey bbe26d36ba gst: Use G_VALUE_COLLECT_INIT if available
This brings total call speedups between 5% and 25%.
gst_caps_set_simple_valist: +5%
gst_structure_set_valist: + 10%
gst_structure_id_set_valist: +25%
gst_tag_list_add_valist: +5%

Measured using valgrind when run over the discovery of 200 media files.

Fixes #610256
2010-03-12 10:01:47 +01:00
Thiago Santos f563ac57f8 tags: Adds new geo location tags
Adds new tags GST_TAG_GEO_LOCATION_COUNTRY,
GST_TAG_GEO_LOCATION_CITY and GST_TAG_GEO_LOCATION_SUBLOCATION.

API: GST_TAG_GEO_LOCATION_COUNTRY
API: GST_TAG_GEO_LOCATION_CITY
API: GST_TAG_GEO_LOCATION_SUBLOCATION

Fixes #612410
2010-03-11 15:31:06 -03:00
Benjamin Otte 8fa19a360c win32: Add prototype for DllMain() 2010-03-11 18:37:24 +01:00
Edward Hervey d60a3b8a59 gstreamer: remove unneeded casts
G_PARAM_SPEC_VALUE_TYPE does an expensive type check, whereas the
value_type field is a public field, so we can just use it directly.
2010-03-11 11:46:28 +01:00
Benjamin Otte 7e7f51f617 Fixes for -Wmissing-declarations -Wmissing-prototypes
Also adds those flags to the configure warning flags

https://bugzilla.gnome.org/show_bug.cgi?id=611692
2010-03-11 10:59:57 +01:00
Tim-Philipp Müller 8a4aed855a buffer: fix printf format
Use %u to print unsigned integers.
2010-03-11 09:39:23 +00:00
Stefan Kost 4ba031a7e2 i18n: define dummy ngettext if i18n is disabled.
We cannot blindly use gettext function and not define them when not using gettext.
2010-03-11 10:14:05 +02:00
Stefan Kost 59bf16352b i18n: fix the build with i18n disabled.
Don't include gettext.h if !ENABLE_NLS.
2010-03-11 10:04:27 +02:00
Stefan Kost a184419ec5 buffer: allow configurable memory alignment. Fixes #596832
The alignment guaranteed by malloc is not always sufficient. E.g. vector
instructions or hardware subsystems want specifically aligned buffers. The
attached patch will use posix_memalign if available to allocate buffers.
The desired alignment can be set when running configure using the new
--with-buffer-alignment option.
2010-03-11 10:00:28 +02:00
Benjamin Otte a9d1a493a7 Fixes for -Wwrite-strings
This changes some APIs in compatible ways:
- Some functions now take "const char *" arguments, not "char *"
- Some structs now have "conts char *" members, not "char *"
The changes may cause warnings when compiling with the right warning
flags. You've been warned.

Also adds -Wwrite-strings as a warning flag in configure.ac.

https://bugzilla.gnome.org/show_bug.cgi?id=611692
2010-03-10 20:50:10 +01:00
Benjamin Otte 22f87a529f Fixes -Wundef warnings
... and adds that flag to configure.ac

https://bugzilla.gnome.org/show_bug.cgi?id=611692
2010-03-10 20:46:09 +01:00
Benjamin Otte 3234c0128b Fixes for -Wold-style-definition
https://bugzilla.gnome.org/show_bug.cgi?id=611692
2010-03-10 20:45:35 +01:00
Benjamin Otte e8f65e8bff Make code safe for -Wredundant-decls
Adds that warning to configure.ac

Includes a tiny change of the GST_BOILERPLATE_FULL() macro:
The get_type() function is no longer declared before being defined.

https://bugzilla.gnome.org/show_bug.cgi?id=611692
2010-03-10 20:45:33 +01:00
Benjamin Otte f067d38d1d Make sure generated code doesn't run with -Werror
https://bugzilla.gnome.org/show_bug.cgi?id=611692
2010-03-10 19:27:09 +01:00
Benjamin Otte 0d4d5a57da Revert "registry: remove unused function"
Turns out  the function is not unused, but was in an #ifdef WIN32
section.
Whoops.

This reverts commit 57d5db424c.
2010-03-10 19:17:42 +01:00
Benjamin Otte 57d5db424c registry: remove unused function
Actually, there was two functions with the same name, but only one was
used.

https://bugzilla.gnome.org/show_bug.cgi?id=611692
2010-03-10 15:24:11 +01:00
Benjamin Otte 5c01dcb1f7 remove unused gst_element_default_error()
https://bugzilla.gnome.org/show_bug.cgi?id=611692
2010-03-10 15:24:11 +01:00
Jeremy Huddleston fa0d218e4c utils: Use mulq instead of mul as some assemblers can't guess the size of the operands
Fixes bug #612370.
2010-03-10 07:17:07 +00:00
Sebastian Dröge ce74a1ae19 build: Make some more rules silent if requested 2010-03-09 20:57:17 +00:00
Benjamin Otte 5c4044d5f9 Fix typos in documentation 2010-03-09 19:18:21 +01:00
Benjamin Otte ec10b764b9 caps: Fail when fractions are followed by random text
Previous code treated "1/1yourmom" the same as "1/1" and "1wimsmom" the
same as "1". Now the code is stricter and will fail to convert a
fraction when followed by garbage text.
2010-03-09 19:18:21 +01:00
Benjamin Otte 4743e62be8 caps: Allow 1/max as the minimal fraction value > 0
This is useful for formats that require a valid framerate (like
theoraenc).
2010-03-08 22:26:34 +01:00
Wim Taymans 14113e8661 element: fix typo in comments 2010-03-08 17:36:02 +01:00
Tim-Philipp Müller 4cbf794b0e gstpoll: don't pass non-objects as first argument to GST_DEBUG_OBJECT()
This may cause crashes when logging is enabled, especially on windows.
It's not safe to pass random pointers to g_type_check_instance_is_a().

Fixes #611719.
2010-03-04 18:40:50 +00:00
Tim-Philipp Müller 0b954928c8 tags: try to make comment for translators more helpful 2010-03-01 12:02:44 +00:00
Johan Bilien 1d7afbd0f2 introspection: add annotation for gst_element_get_state
state and pending are "out" arguments.

Fixes #605189.
2010-02-18 01:28:57 +00:00
Stefan Kost b45abd2710 taglist: remove blank lines in variable declarations 2010-02-17 09:50:35 +02:00
Tim-Philipp Müller b6e061b4ea build: make sure gst-plugin-scanner gets installed where we expect it
Add check to make sure gst-plugin-scanner really gets installed where
we will look for it later, ie. paths and prefixes are set at configure
time and not specified via make.

Fixes #609941.
2010-02-16 11:33:19 +00:00
Tim-Philipp Müller d82700f0c9 tags: wrap long string constants
And fix indenting issue
2010-02-15 00:29:37 +00:00
Tim-Philipp Müller 88f80996b8 tags: add some comments for translators so tag mnemonics get translated correctly
We want 'preview image' translated as a noun, not as 'preview [the] image'.
2010-02-15 00:21:43 +00:00
Tim-Philipp Müller c802301b69 pad: don't print WARN debug statements for normal things like EOS 2010-02-15 00:08:16 +00:00
Tim-Philipp Müller 092cde0ff3 gst_private: MSVC doesn't seem to like #warning
Visual Studio complains about "invalid preprocessor command 'warning'"
even if the ifdef doesn't trigger, so just remove this again.
2010-02-10 14:28:05 +00:00
Tim-Philipp Müller 05e9dd968c Revert "docs: fix ASCII art so that iterators are aligned property to the diagram"
This reverts commit ae60d06e9e (fixes: #609166)
2010-02-07 10:04:09 +01:00
Tim-Philipp Müller ae60d06e9e docs: fix ASCII art so that iterators are aligned property to the diagram 2010-02-01 23:47:18 +00:00
Tim-Philipp Müller 4878e95ff4 docs: add some more Since: markers to buffer list docs 2010-01-31 17:30:54 +00:00
Tim-Philipp Müller 6c6f20e0b6 init: don't spew warning about late g_thread_init()s if GLib >= 2.23.2
Late g_thread_init() is fine with newer GLib versions and done automatically
from g_type_init() there, so don't warn if the application hasn't called
g_thread_init() yet when gst_init() is called with new GLib versions.

Fixes #608398.
2010-01-30 13:45:58 +00:00
Wim Taymans 69c531784e pipeline: Take start_time after chaining up too
Refactor the code to take the current start_time when going to PAUSED.
Make sure we also call the start_time update code after we chained up to the
parent bin.

Fixes #607842
2010-01-28 15:55:27 +01:00
Stefan Kost bd182e3ea0 bin: make a interface vmethod implementation static
This should not cause any troubles - the methods wasn't in any header.
2010-01-24 23:04:27 +02:00
Stefan Kost 9f26847fb1 childproxy: remove ; after } 2010-01-24 22:23:05 +02:00
Wim Taymans f10c36de20 gstindex: retab .h file 2010-01-21 16:19:44 +01:00
Tim-Philipp Müller f3d579362c pluginloader: fix compiler warning on win32
Move variable that's only used on unix into the unix block so that
the compiler doesn't complain about the unused variable on win32
(see #597662).
2010-01-20 10:58:29 +00:00
Tim-Philipp Müller 8967604053 pluginloader: try scanner set via env var before using the installed one
If the GST_PLUGIN_SCANNER environment variable is set, we should try
the scanner specified there first, to make sure the right scanner binary
is used for uninstalled setups and builds from source when there's
already an installed version.
2010-01-20 09:48:27 +00:00
Sebastian Dröge f137d188cb build: Define G_THREADS_MANDATORY everywhere
We require threads to be supported in any case and defining this
will simplify the mutex, condition variable, etc. macros from gthread
to not always check if threads are really supported.

Fixes bug #607481.
2010-01-20 09:51:16 +01:00
Andoni Morales Alastruey 9909d3312f pluginloader: disable external plugin loader on Windows until it is ported properly
See #597662.
2010-01-20 01:48:56 +00:00
Tim-Philipp Müller 087aa6ced4 gst_private.h: make sure gst_private.h is included before glib.h
For the reason outlined at the beginning of gst_private.h (inline
functions in glib may need the g_log_domain variable). Also include
gst_private.h before using any G_OS_* defines, esp. in plugin loader.
2010-01-20 01:48:56 +00:00
Thijs Vermeir 053ada3308 gstpad: directly set the caps when pushing buffer with different caps.
This check is not necesarry as we are not negotiating anymore. And it can
be wrong if upstream can't produce this caps anymore, but downstream can
process them fine.
2010-01-19 14:13:25 +01:00
Sebastian Dröge ed1247b561 miniobject: The GValue collection function can not assume that the destination is initialized
...and it will usually be either filled by zeroes or random values.

Fixes bug #607283.
2010-01-18 13:57:29 +01:00
Tim-Philipp Müller 51a462853a structure: remove superfluous guard against NULL
All callers of this static function already check for NULL-ness
themselves, so no need to do it again (and if we do it, we should
probably do so before dereferencing the pointer for the first time).
2010-01-16 19:44:35 +00:00
Tim-Philipp Müller 4cdf375b1a structure: micro-optimise some getters
Avoid checking the GType of the value twice (once on our side and
once in g_value_get_*()) by by-passing g_value_get() and accessing
the GValue structure directly.
2010-01-16 19:37:46 +00:00
Wim Taymans 17c98e3510 message: update docs a little 2010-01-15 18:36:43 +01:00
Sebastian Dröge b3d30dd459 docs: Move field specific Since markers at the same line
Fixes gobject-introspection warnings about Since being defined multiple times.
2010-01-14 10:44:16 +01:00
Tim-Philipp Müller 4da2c6b380 registry: avoid some more unnecessary malloc/frees 2010-01-12 21:35:18 +00:00
Tim-Philipp Müller 5e47d24e1b registry: avoid some unnecessary strdup/free when reading the binary registry
Strings in the binary registry are NUL-terminated, so we can just use them
directly if we only need them temporarily, and avoid unnecessary mallocs
and frees.
2010-01-12 21:35:17 +00:00
Wim Taymans 2da06fb8d3 bus: whitespace fixes 2010-01-11 11:55:51 +01:00
Stefan Kost 3c09381cef utils: defer getting the classes until we actualy need them
This function has a lot of early returns. Give them soem more benefit.
2010-01-10 21:49:25 +02:00
Stefan Kost 5fa9d942e3 utils: avoid extra hop in gst_element_link
No need to call gst_element_link_pads_filtered with filter=NULL, which would
call gst_element_link_pads() in that way. Call it directly to save a call and
expensive gobject type checks.
2010-01-10 21:44:34 +02:00
Tim-Philipp Müller 1474e7a9fa docs: minor documentation fixes for recently-added tags
Mention the type of the tag in the gtk-doc blurb, so people know
which accessor API to use, and fix up the doc blurbs to match the
actual tag define.
2010-01-06 20:06:47 +00:00
Tim-Philipp Müller 27fd0b8d9c tags: fix up translated strings for some new tags
Fix up translated strings for some recently-added tags to match the
existing strings: we want short mnemonic-like strings here that start
with a lower case letter.
2010-01-06 20:04:15 +00:00
Tim-Philipp Müller c6554049de registry: deprecate useless gst_registry_xml_{read|write}_cache()
The only reason these two functions are still around is that at some
point in the past they were in a public header, so we can't really
remove them now even though they should have been private all along
(and aren't really particularly useful). Since these are just empty
stubs now that do nothing but return FALSE and will be removed in
0.11 anyway, we may just as well deprecate them formally.
2010-01-06 19:19:40 +00:00
Tim-Philipp Müller 57abeb56a8 docs: add Since markers to task pool docs and document task function 2010-01-06 19:18:53 +00:00
Stefan Kost 1526e34687 docs: add missing returns: tag 2010-01-05 00:09:10 +02:00
Wim Taymans 1c5a6768cc buffer: remove unneeded casts 2009-12-27 19:33:25 +01:00
Wim Taymans 67bd9529d0 buffer: remove subbuffer subclass
Move the parent buffer pointer into the GstBuffer struct so that we can
remove the subbuffer class and type. This is interesting because it allows us to
more naturally implement methods to get the real type and parent
of a subbuffer (See #545501).
It should also be slightly faster because there is no extra object hierarchy to
initialize and free.
2009-12-26 00:02:17 +01:00
Wim Taymans bb780fdf73 miniobject: avoid unneeded casts 2009-12-24 17:22:46 +01:00
Wim Taymans fc7dd46b20 avoid some more type checks 2009-12-24 14:40:54 +01:00
Wim Taymans c059cb43de pipeline: avoid some type checks
Avoid type checks when we can
Don't need to peek the parent_class, the boilerplate does that for us.
2009-12-24 14:22:52 +01:00
Wim Taymans 7522e2ccf8 trace: include type name in leaked objects
When we are dealing with a GObject, print the type name along with
the pointer for easier debugging.
2009-12-23 21:37:51 +01:00
Wim Taymans 381d35fd1e pad: Fix problem with destroy callback not being called
When we unblock a pad with the same user_data, the destroy callback is not
called. This leads to refcounting leaks that cannot be avoided. Instead always
call the destroy notify whenever we install a new pad block.
In particular, this fixes a nasty pad leak in decodebin2.

Also update the unit test to have more accurate comments and test the required
behaviour.
2009-12-23 21:20:14 +01:00
Thiago Santos a3078cf0cd gsttaglist: Adds new tags
Adds the following new tags:
GST_TAG_SHOW_NAME
GST_TAG_SHOW_SORTNAME
GST_TAG_SHOW_EPISODE_NUMBER
GST_TAG_SHOW_SEASON_NUMBER
GST_TAG_LYRICS
GST_TAG_COMPOSER_SORTNAME
GST_TAG_GROUPING

Fixes #599759
2009-12-21 11:58:12 -03:00
Stefan Kost 0b7f75c205 docs: link bus and tasks
Add a link from bus section docs to the task docs. Add a paragraph to task docs
to tell about messages and the bus.
2009-12-14 16:22:16 +02:00
Stefan Kost 790e5d10c8 docs: add more docs around GstState and GstStateChange
Take reviewed docs from docs/design/part-state to have that more prominent
inside the api docs. Add a few sentences to link things better together.
2009-12-14 15:11:42 +02:00
Stefan Kost e243a41165 gstelementfactory: set object name earlier if applicable
Setting an object name is nice for proper debug logging. Ideally this would
still happens earlier (.e.g when pads are added to an element, its not yet set).
2009-12-14 11:08:48 +02:00
Stefan Kost 076aeeb74b gstobject: add fixme-0.11 comment 2009-12-14 11:08:48 +02:00
Stefan Kost cb294cb5ea comment: small comment correction 2009-12-14 11:08:47 +02:00
Wim Taymans f44d8c31de bin: never skip a state change to PLAYING
Never skip the state change to playing, even if the element is already in the
right state. We need this because we also distribute the base_time while doing
the state change and skipping this step would leave some elements without a new
base_time.

Fixes #600313
2009-12-11 16:26:00 +01:00
Wim Taymans 8bc67e5434 element: use NULL instead of 0 for pointers 2009-12-09 13:27:22 +01:00
Sebastian Dröge 1c66f306d6 utils: Fix proxy_setcaps to only iterate pads of other direction 2009-12-08 16:40:57 +01:00
Wim Taymans c6f2a94777 utils: fix proxy_getcaps
Make it return the padtemplate caps on errors and no parent.
Only intersect pads of the oposite direction of the source pad.
2009-12-08 16:30:51 +01:00
Sebastian Dröge 6bff920ba0 utils: Rename proxy iterator fold functions to have a more meaningful name 2009-12-08 16:24:20 +01:00
Sebastian Dröge d6492c2958 utils: If one intersection gave empty caps don't continue iterating over the other pads 2009-12-08 16:09:02 +01:00
Wim Taymans c2b0e9de25 Use plain casting instead of typechecking 2009-12-07 20:52:22 +01:00
Edward Hervey a5626f239a gstvalue: Use fast gst_value_list_{size|get_value} macro accessors
gst_value_list_size and gst_value_list_get_value will do a series of
extra checks due to being public methods.
When we use them from within gstvalue.c we can directly use them without
the extra checks.
2009-12-07 09:51:04 +01:00
Edward Hervey 1d91fd9fb9 gsturi: Don't use g_signal_emit_by_name, use the signal ID directly 2009-12-07 09:51:03 +01:00
Edward Hervey 4140350594 gstobject: Avoid double strdup when setting NULL names.
Instead of chaining up to gst_object_set_name (which does typechecking
and strdup's the name again), just use the already allocated new
name.
2009-12-07 09:49:06 +01:00
Sebastian Dröge df741e7e2f bin: Ignore state change failures from children that were removed from the bin already
Fixes bug #584441.
2009-12-04 16:28:27 +01:00
Sebastian Dröge 08ae8a1afb registry: Use GMappedFile for reading the registry
Fixes bug #603787.
2009-12-04 15:19:11 +01:00
Javier Jardón ca974b1a8f registry: Substitute deprecated GLib symbol: g_mapped_file_free
Use g_mapped_file_unref if Glib >= 2.22 is available

Fixes bug #560442.
2009-12-04 14:50:46 +01:00
Wim Taymans d5e42a92c8 event: fix docs for _copy() 2009-12-02 13:29:28 +01:00
David Schleef b0889cf2a1 Make gcc inline assembly conditional on gcc 2009-12-01 18:09:35 -08:00
Edward Hervey 24b357a444 gstghostpad: Register debug funcptr only once.
This makes ghostpad/proxypad creation 5 times faster and avoids contention
over the global funcptr lock.

I also moved the two class init down in the code to avoid having to forward
declare all the various functions.
2009-12-01 17:56:19 +01:00
Edward Hervey 4da0da822a gstpad: Only register debug funcptr once.
This makes pad initialization 2 times faster and without any contention
over the debug funcptr global lock.
2009-12-01 17:56:19 +01:00
Edward Hervey 8f40effea6 gstinfo: API: Add GST_DEBUG_REGISTER_FUNCPTR method.
This is a variant of GST_DEBUG_FUNCPTR which does not return anything.
2009-12-01 17:56:19 +01:00
Thiago Santos 0491df555d gstevent: fix docs
Fix flush stops docs, those are serialized, not out of bounds.
Probably a copy and paste mistake.
2009-11-27 13:44:11 -03:00
Stefan Kost 8d63e8e0c3 docs: make links work (needs recent gtk-doc) 2009-11-27 14:18:39 +02:00
Stefan Kost 85d85f9d36 docs: add missing parameter docs 2009-11-27 14:18:39 +02:00
Stefan Kost 309187c2ce docs: enable docs for GstObjectClass to fix links 2009-11-27 14:18:38 +02:00
Stefan Kost f1d39627f6 gstobject: add FIXME-0.11 comments 2009-11-27 14:18:38 +02:00
Stefan Kost 9d640c7c61 docs: better way to link class methods 2009-11-27 14:18:38 +02:00
Stefan Kost 868878db87 docs: use '*' instead of xxx to avoid creating a broekn xref 2009-11-27 14:18:38 +02:00
Stefan Kost f43f2bf960 docs: fix more bogus xrefs 2009-11-27 14:18:38 +02:00
Stefan Kost 1b5391fb47 docs: add docs for GstPluginFlags
This also makes links to them work.
2009-11-27 14:18:38 +02:00
Stefan Kost 23da3639f0 docs: fix xrefs in docs
Fix typos in xrefs, links to non existing functions and rework plural forms.
2009-11-25 16:59:50 +02:00
Stefan Kost c95b233ce5 docs: remove gtkdoc header as these things don't come up on our docs even 2009-11-25 14:41:26 +02:00
Stefan Kost f4f4906cc5 docs: add missing parameter doc string 2009-11-25 14:23:53 +02:00
Stefan Kost 22abe6fbcf docs: document new event in enum 2009-11-25 14:21:50 +02:00
Stefan Kost 7ff832d36e docs: fix gtk-doc syntax for doc-blob start 2009-11-25 14:18:14 +02:00
Wim Taymans 0b5e8f0e57 query: whitespace fixes 2009-11-23 11:34:07 +01:00
David Schleef 7537505ed0 gstplugin: Add C++ escape for gst_plugin_desc define
In order to properly export the gst_plugin_desc symbol
from DLLs in MSVC, it needs to be extern "C".
2009-11-19 18:04:56 +01:00
Tim-Philipp Müller c8c893c30e parse/grammar.y: remove unused ERROR define 2009-11-19 13:05:13 +00:00
Sebastian Dröge fee1ad3a0a event: API: Add sink-message event
gst_event_new_sink_message()
gst_event_parse_sink_message()

This event is used for sending a GstMessage downstream and synchronized
with the stream, to be posted by the sink once it reaches the sink.

Fixes bug #602275.
2009-11-18 13:12:27 +01:00
Tim-Philipp Müller 3c7c9692ac plugin-scanner: rename plugin-scanner helper binary to gst-plugin-scanner
and install into a different directory $(libexecdir/gstreamer-0.10) so that
everything is versioned properly.

NOTE: run 'make clean' after updating; if you are running an uninstalled setup,
you will need to update your gst-uninstalled script (unless it's symlinked
to gstreamer core master) and exit/enter your uninstalled environment to get
the updated environment. If you are running an installed setup, you should
run 'make uninstall' before merging this change or remove the old
plugin-scanner binary manually.

Fixes #601698.
2009-11-18 09:28:08 +00:00
Tim-Philipp Müller ab5f2f4f5d Revert "structure: don't check type twice"
This reverts commit f864187bf5.

Reverting this as it changes behaviour and the documentation is
ambiguous about whether the caller must check the type first or
not (call must check type vs. returns NULL if not a string). If
GLib has been compiled with G_DISABLE_CHECKS then g_value_get_string()
may return complete garbage even if the value does not contain
a string. Better play it safe, esp. since the extra check is just
an integer comparison. For fundamental types we could return values
from the GValue structure directly if we really wanted to bypass
the extra check.
2009-11-18 09:22:57 +00:00
Stefan Kost f864187bf5 structure: don't check type twice 2009-11-18 10:12:13 +02:00
Sebastian Dröge 8d5c77535e event: Add step event quark 2009-11-18 08:00:45 +01:00
Stefan Kost da9b082808 structure: remove some blank lines (previous gst-indent failure) 2009-11-17 09:40:12 +02:00
Stefan Kost 94f6eced23 structure: use local variable earlier 2009-11-17 09:40:12 +02:00
Stefan Kost 7bd9299f3e structure: don't check enum types twice.
G_VALUE_HOLDS_ENUM(value) is defined as G_TYPE_CHECK_VALUE_TYPE (value,
 G_TYPE_ENUM). Just check for the right enum-type right away.
2009-11-17 09:40:12 +02:00
Sebastian Dröge 0ed24bc50e utils: API: Add multiplication and addition functions for fractions
gst_util_fraction_add()
gst_util_fraction_multiply()

These work on plain integers instead of GValues to
keep the overhead as low as possible.
2009-11-16 09:56:32 +01:00
Sebastian Dröge e4257e8d5f gstutils: API: Add fraction helper functions
gst_util_greatest_common_divisor()
gst_util_double_to_fraction()
gst_util_fraction_to_double()

Using these instead of going over GValue has much lower overhead.

Also add float<->fraction transform functions for GValue.
2009-11-16 09:56:32 +01:00
Stefan Kost c84d17bcaf debug: add more debug logging to help tracking parsing errors 2009-11-13 15:46:40 +02:00
Ole André Vadla Ravnås 73f2d464b7 miniobject: avoid race when recycling buffers
Avoid a race where a miniobject is recycled and quickly freed, which causes the
g_type_free_instance() to be called on the same object twice.

Ref the object before calling the finalize method and check if we still need to
free it afterward.

Also add a unit test for this case.

Fixes #601587
2009-11-13 11:45:48 +01:00
Stefan Kost 4d17d331bf whitespace: remove blanks in doc-comment 2009-11-12 17:02:40 +02:00
Руслан Ижбулатов b1d57a8b05 registry: Import _priv_gst_dll_handle into gstregistry.c
Fixes bug #601668.
2009-11-12 13:00:07 +01:00
Sebastian Dröge 039ef83523 registry: API: Add gst_{default,}_registry_get_feature_list_cookie()
This returns the internal feature list cookie, which changes every
time a feature is added or removed. This can be used by elements
to check if they should update their cached feature lists.
2009-11-10 18:17:26 +01:00
Tim-Philipp Müller dfc792c904 registrychunks: fix compilation with debugging disabled
Add ugly ifdef to fix unused variable warning when compiling with
debug logging disabled.
2009-11-10 00:58:37 +00:00
Tim-Philipp Müller 8abd61339d gstconfig.h: add define to force printf format checking for debug messages
Force printf format checking for debug messages if GST_DISABLE_PRINTF_EXTENSION
is defined. This is useful to quickly check code for printf format mismatches
in debugging messages that would usually not be caught (with glibc+gcc and
printf extensions being used).

To use: make clean; make CFLAGS='-g -O2 -DGST_DISABLE_PRINTF_EXTENSION'
2009-11-05 21:23:22 +00:00
Tim-Philipp Müller 2d177f9ee7 docs: fix typo 2009-11-05 18:39:15 +00:00
Tim-Philipp Müller 6afa355856 taglist: avoid looking up GstTagInfo twice in a row
Pass the info structure to our internal function if already available.
Also clean up warnings for unknown tags.
2009-11-05 18:39:15 +00:00
Edward Hervey 6f7519704d gstregistrychunks: We're certain plugin_name is an intern string.
The only place this method is called from creates the plugin_name argument
with g_intern_string().
Shaves off 1% from registry loading.
2009-11-05 18:55:30 +01:00
Wim Taymans 7da9eb0f74 query: whitespace fixes 2009-11-05 15:14:13 +01:00
Wim Taymans 473594b3a4 ghostpad: fix locking 2009-11-05 14:02:28 +01:00
Stefan Kost 0467799f22 ghostpad: don't release mutex twice 2009-11-05 14:30:48 +02:00
Stefan Kost df2341684f ghostpad: skip type check in internal api 2009-11-05 14:30:48 +02:00
Wim Taymans 64a4037f63 pad: indentation fix 2009-11-05 12:36:10 +01:00
Stefan Kost f63ecd04a8 pad: rename new api from _refed to _reffed.
Due to popular demand rename the new api as we still can.
API: gst_pad_get_caps_reffed(), gst_pad_peer_get_caps_reffed()
2009-11-05 12:54:32 +02:00
Stefan Kost 211b2e4338 element: access padtemplate list directly to avoid call and type check. 2009-11-04 22:42:52 +02:00
Sebastian Dröge 82f66b4036 event: Add a FIXME 0.11 for having flush events that don't reset running time 2009-11-04 18:59:23 +01:00
Jan Schmidt 94bb0ee718 registrychunks: Fix a printf compile warning on 64-bit platforms 2009-11-04 17:52:21 +00:00
Sebastian Dröge 6042793c26 ghostpad: Make sure that nobody sets the proxypad or ghostpad itself as target
Doing this will lead to very interesting crashes, like stack overflows.
2009-11-04 17:17:17 +01:00
Jan Schmidt f425b2711f plugin loader: Don't fail after a short read/write
The logic to handle short reads/writes was incorrect, causing the
packet handler to attempt to handle incomplete packets.

Grow the packet transmit buffer in proportion to observed usage,
causing fewer reallocs.

Add some more debug in the registry chunks code.
2009-11-04 11:36:20 +00:00
Jan Schmidt cebbcb1cdf plugin loader: Don't crash on bogus plugin details
When invalid registry chunks are received from the child, and parsing
fails, don't access an invalid plugin pointer. Instead attempt to
figure out which plugin caused the problem and blacklist it.
2009-11-04 11:36:20 +00:00
Tim-Philipp Müller 5790c33fe4 gsttypefind: avoid one more run-time type check 2009-11-02 08:50:04 +00:00
Sebastian Dröge f9e3b72ff6 structure: API: Add gst_structure_id_has_field{,_typed} 2009-11-02 09:24:10 +01:00
Edward Hervey 0aff2c55b7 gsttypefind: Use _CAST variants when the type has alredy been checked.
This avoids checking the type n_typefinders * 4 times when loading the
registry.
2009-11-02 08:30:24 +01:00
Sebastian Dröge 15229ab669 ghostpad: Implement iterate internal links
The internally linked pad of the ghost pad is its
proxy pad, which is the pad that is linked to the ghost
pads target.
2009-11-01 11:24:40 +01:00
Sebastian Dröge 28493b04ec parser: Make sure that signal user data is freed by setting a GClosureNotify
...instead of using a second mechanism and storing the user data
inside the GObjects qdata.
2009-10-31 16:56:17 +01:00
Sebastian Dröge 02d044e291 parser: Use GSlice for allocating the structs 2009-10-31 16:49:03 +01:00
Sebastian Dröge 5b5718cd20 parser: Always get DelayedLink information from the objects qdata
This makes sure that it is always valid.
2009-10-31 16:43:26 +01:00
Sebastian Dröge 9236921a34 queue2: Move queue2 to gstreamer coreplugins
Fixes bug #599996.
2009-10-29 11:18:20 +01:00
Tim-Philipp Müller d98dc4788c Remove GST_DEBUG_FUNCPTR where they're pointless
There's not much point in using GST_DEBUG_FUNCPTR with GObject
virtual functions such as get_property, set_propery, finalize and
dispose, since they'll never be used by anyone anyway. Saves a
few bytes and possibly a sixteenth of a polar bear.
2009-10-29 11:17:18 +01:00
Wim Taymans 141e06b547 queue2: add custom acceptcaps function 2009-10-29 11:17:17 +01:00
Mark Nauwelaerts f766708c17 queue2: post error message when pausing task if so appropriate
If a downstream element returns an error while upstream has already
put all data into queue2 (including EOS), upstream will no longer
chain into queue2, so it is up to queue2 to perform some
EOS handling / message posting in such cases.  See #589991.
2009-10-29 11:17:17 +01:00
Wim Taymans ec81bbf713 queue2: fix leak and improve buffering
Keep track of the max requested position and compare this to the write position
in the temp file to get the current amount of buffered data.
Fix memleak of all incomming buffers.

Fixes #588551
2009-10-29 11:17:17 +01:00
Wim Taymans 49c01cce93 queue2: flush differently, avoiding deadlocks
Don't flush the file by closing and opening it but instead use g_freopen. This
avoids a deadlock in shutdown because we emit the temp-location property change
with the wrong lock held.
2009-10-29 11:17:17 +01:00
Wim Taymans affe0aef6f queue2: add temp-template property
Add a new temp-template property so that queue2 can securely allocate a
temporary filename. Deprecate the temp-location property for setting the
location but still use it to notify the allocated temp file.
2009-10-29 11:17:17 +01:00
LRN 4843c0947b win32: fix seeking in large files
Fix Seeking in large files by using the 64-bit seek functions.
Fixes #576019
2009-10-29 11:17:17 +01:00
Frederic Crozat 4ec6f02e8a Make sure gettext returns translations in UTF-8 encoding rather than in the current locale encoding (#546822).
Original commit message from CVS:
Patch by: Frederic Crozat <fcrozat@mandriva.org>
* ext/alsa/gstalsaplugin.c: (plugin_init):
* ext/cdparanoia/gstcdparanoiasrc.c: (plugin_init):
* ext/gnomevfs/gstgnomevfs.c: (plugin_init):
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_plugin_init):
* gst-libs/gst/audio/gstbaseaudiosrc.c: (_do_init):
* gst-libs/gst/pbutils/pbutils.c: (gst_pb_utils_init):
* gst-libs/gst/tag/tags.c: (gst_tag_register_tags_internal):
* gst/playback/gstdecodebin.c: (plugin_init):
* gst/playback/gstdecodebin2.c: (gst_decode_bin_plugin_init):
* gst/playback/gstplayback.c: (plugin_init):
* gst/playback/gstqueue2.c: (plugin_init):
* gst/playback/gsturidecodebin.c: (gst_uri_decode_bin_plugin_init):
* sys/v4l/gstv4l.c: (plugin_init):
Make sure gettext returns translations in UTF-8 encoding rather
than in the current locale encoding (#546822).
2009-10-29 11:17:16 +01:00
Stefan Kost f9fdf30406 Cleanup Plugin docs. Link to signals and properties. Fix sub-section titles. Drop mentining that all our example pipe...
Original commit message from CVS:
* docs/plugins/gst-plugins-base-plugins-docs.sgml:
* docs/plugins/gst-plugins-base-plugins-overrides.txt:
* docs/plugins/gst-plugins-base-plugins-sections.txt:
* docs/plugins/gst-plugins-base-plugins.args:
* docs/plugins/gst-plugins-base-plugins.hierarchy:
* docs/plugins/gst-plugins-base-plugins.interfaces:
* docs/plugins/gst-plugins-base-plugins.prerequisites:
* docs/plugins/gst-plugins-base-plugins.signals:
* docs/plugins/inspect/plugin-adder.xml:
* docs/plugins/inspect/plugin-alsa.xml:
* docs/plugins/inspect/plugin-audioconvert.xml:
* docs/plugins/inspect/plugin-audiorate.xml:
* docs/plugins/inspect/plugin-audioresample.xml:
* docs/plugins/inspect/plugin-audiotestsrc.xml:
* docs/plugins/inspect/plugin-cdparanoia.xml:
* docs/plugins/inspect/plugin-decodebin.xml:
* docs/plugins/inspect/plugin-ffmpegcolorspace.xml:
* docs/plugins/inspect/plugin-gdp.xml:
* docs/plugins/inspect/plugin-gnomevfs.xml:
* docs/plugins/inspect/plugin-libvisual.xml:
* docs/plugins/inspect/plugin-ogg.xml:
* docs/plugins/inspect/plugin-pango.xml:
* docs/plugins/inspect/plugin-playback.xml:
* docs/plugins/inspect/plugin-queue2.xml:
* docs/plugins/inspect/plugin-subparse.xml:
* docs/plugins/inspect/plugin-tcp.xml:
* docs/plugins/inspect/plugin-theora.xml:
* docs/plugins/inspect/plugin-typefindfunctions.xml:
* docs/plugins/inspect/plugin-uridecodebin.xml:
* docs/plugins/inspect/plugin-video4linux.xml:
* docs/plugins/inspect/plugin-videorate.xml:
* docs/plugins/inspect/plugin-videoscale.xml:
* docs/plugins/inspect/plugin-videotestsrc.xml:
* docs/plugins/inspect/plugin-volume.xml:
* docs/plugins/inspect/plugin-vorbis.xml:
* docs/plugins/inspect/plugin-ximagesink.xml:
* docs/plugins/inspect/plugin-xvimagesink.xml:
* ext/alsa/gstalsamixer.c:
* ext/alsa/gstalsasink.c:
* ext/alsa/gstalsasrc.c:
* ext/gio/gstgiosink.c:
* ext/gio/gstgiosrc.c:
* ext/gio/gstgiostreamsink.c:
* ext/gio/gstgiostreamsrc.c:
* ext/gnomevfs/gstgnomevfssink.c:
* ext/gnomevfs/gstgnomevfssrc.c:
* ext/ogg/gstoggdemux.c:
* ext/ogg/gstoggmux.c:
* ext/pango/gstclockoverlay.c:
* ext/pango/gsttextoverlay.c:
* ext/pango/gsttextrender.c:
* ext/pango/gsttimeoverlay.c:
* ext/theora/theoradec.c:
* ext/theora/theoraenc.c:
* ext/theora/theoraparse.c:
* ext/vorbis/vorbisdec.c:
* ext/vorbis/vorbisenc.c:
* ext/vorbis/vorbisparse.c:
* ext/vorbis/vorbistag.c:
* gst/adder/gstadder.c:
* gst/audioconvert/gstaudioconvert.c:
* gst/audioresample/gstaudioresample.c:
* gst/audiotestsrc/gstaudiotestsrc.c:
* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
* gst/gdp/gstgdpdepay.c:
* gst/gdp/gstgdppay.c:
* gst/playback/gstdecodebin2.c:
* gst/playback/gstplaybin.c:
* gst/playback/gstplaybin2.c:
* gst/playback/gstqueue2.c:
* gst/playback/gsturidecodebin.c:
* gst/tcp/gstmultifdsink.c:
* gst/tcp/gsttcpserversink.c:
* gst/videorate/gstvideorate.c:
* gst/videoscale/gstvideoscale.c:
* gst/videotestsrc/gstvideotestsrc.c:
* gst/volume/gstvolume.c:
* sys/ximage/ximagesink.c:
* sys/xvimage/xvimagesink.c:
Cleanup Plugin docs. Link to signals and properties. Fix sub-section
titles. Drop mentining that all our example pipelines are "simple"
pipelines.
2009-10-29 11:17:16 +01:00
Stefan Kost 917d1c4be0 gst/playback/gstqueue2.c: Do not double notify. Remove the unsued return value.
Original commit message from CVS:
* gst/playback/gstqueue2.c:
Do not double notify. Remove the unsued return value.
2009-10-29 11:17:16 +01:00
Wim Taymans ca7828940d docs/design/draft-keyframe-force.txt: Fix typo.
Original commit message from CVS:
* docs/design/draft-keyframe-force.txt:
Fix typo.
* gst/playback/gstqueue2.c: (update_buffering),
(gst_queue_handle_src_query):
Set buffering mode in the messages.
Set buffering percent in the query.
* tests/examples/seek/seek.c: (update_fill), (msg_state_changed),
(do_stream_buffering), (do_download_buffering), (msg_buffering):
Do some more fancy things based on the buffering method in use.
2009-10-29 11:17:16 +01:00
Wim Taymans e9d3f79139 gst/playback/gstqueue2.c: Include extra buffering stats in the buffering message.
Original commit message from CVS:
* gst/playback/gstqueue2.c: (update_buffering),
(gst_queue_close_temp_location_file), (gst_queue_handle_src_query),
(gst_queue_src_checkgetrange_function):
Include extra buffering stats in the buffering message.
Implement BUFFERING query.
* gst/playback/gsturidecodebin.c: (do_async_start),
(do_async_done), (type_found), (setup_streaming), (setup_source),
(gst_uri_decode_bin_change_state):
Only add decodebin2 when the type is found in streaming mode.
Make uridecodebin async to PAUSED even when we don't have decodebin2
added yet.
2009-10-29 11:17:16 +01:00
Wim Taymans fc13a73038 gst/playback/gstqueue2.c: Update the estimated input data when we push out a buffer.
Original commit message from CVS:
* gst/playback/gstqueue2.c: (update_out_rates),
(gst_queue_open_temp_location_file),
(gst_queue_close_temp_location_file), (gst_queue_handle_src_event),
(gst_queue_handle_src_query), (gst_queue_set_property):
Update the estimated input data when we push out a buffer.
Add some debug info about the temp file.
Only forward src events when we are not using a temp file.
Don't block the duration query, we need to find something better.
Don't leak the temp filename.
2009-10-29 11:17:16 +01:00
Wim Taymans 0e7fb0ffa5 gst/playback/gstqueue2.c: The queue is never filled when there are no buffers in the queue at all.
Original commit message from CVS:
* gst/playback/gstqueue2.c: (gst_queue_is_filled):
The queue is never filled when there are no buffers in the queue at all.
Fixes #523993.
2009-10-29 11:17:15 +01:00
Sebastian Dröge 301b7ba7b9 Use G_PARAM_STATIC_STRINGS everywhere for GParamSpecs that use static strings (i.e. all). This gives us less memory u...
Original commit message from CVS:
* configure.ac:
* ext/alsa/gstalsamixerelement.c:
(gst_alsa_mixer_element_class_init):
* ext/alsa/gstalsasink.c: (gst_alsasink_class_init):
* ext/alsa/gstalsasrc.c: (gst_alsasrc_class_init):
* ext/cdparanoia/gstcdparanoiasrc.c:
(gst_cd_paranoia_src_class_init):
* ext/gio/gstgiosink.c: (gst_gio_sink_class_init):
* ext/gio/gstgiosrc.c: (gst_gio_src_class_init):
* ext/gio/gstgiostreamsink.c: (gst_gio_stream_sink_class_init):
* ext/gio/gstgiostreamsrc.c: (gst_gio_stream_src_class_init):
* ext/gnomevfs/gstgnomevfssink.c: (gst_gnome_vfs_sink_class_init):
* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_class_init):
* ext/ogg/gstoggmux.c: (gst_ogg_mux_class_init):
* ext/pango/gsttextoverlay.c: (gst_text_overlay_class_init):
* ext/pango/gsttextrender.c: (gst_text_render_class_init):
* ext/theora/theoradec.c: (gst_theora_dec_class_init):
* ext/theora/theoraenc.c: (gst_theora_enc_class_init):
* ext/theora/theoraparse.c: (gst_theora_parse_class_init):
* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_class_init):
* gst-libs/gst/audio/gstaudiofiltertemplate.c:
(gst_audio_filter_template_class_init):
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_class_init):
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_class_init):
* gst-libs/gst/cdda/gstcddabasesrc.c:
(gst_cdda_base_src_class_init):
* gst-libs/gst/interfaces/mixertrack.c:
(gst_mixer_track_class_init):
* gst-libs/gst/rtp/gstbasertpdepayload.c:
(gst_base_rtp_depayload_class_init):
* gst-libs/gst/rtp/gstbasertppayload.c:
(gst_basertppayload_class_init):
* gst/audioconvert/gstaudioconvert.c:
(gst_audio_convert_class_init):
* gst/audiorate/gstaudiorate.c: (gst_audio_rate_class_init):
* gst/audioresample/gstaudioresample.c:
(gst_audioresample_class_init):
* gst/audiotestsrc/gstaudiotestsrc.c:
(gst_audio_test_src_class_init):
* gst/gdp/gstgdppay.c: (gst_gdp_pay_class_init):
* gst/playback/gstdecodebin2.c: (gst_decode_bin_class_init):
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
(preroll_unlinked):
* gst/playback/gstplaybin.c: (gst_play_bin_class_init):
* gst/playback/gstplaybin2.c: (gst_play_bin_class_init):
* gst/playback/gstplaysink.c: (gst_play_sink_class_init):
* gst/playback/gstqueue2.c: (gst_queue_class_init):
* gst/playback/gststreaminfo.c: (gst_stream_info_class_init):
* gst/playback/gststreamselector.c: (gst_selector_pad_class_init),
(gst_stream_selector_class_init):
* gst/playback/gsturidecodebin.c: (gst_uri_decode_bin_class_init):
* gst/subparse/gstsubparse.c: (gst_sub_parse_class_init):
* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_class_init):
* gst/tcp/gsttcpclientsink.c: (gst_tcp_client_sink_class_init):
* gst/tcp/gsttcpclientsrc.c: (gst_tcp_client_src_class_init):
* gst/tcp/gsttcpserversink.c: (gst_tcp_server_sink_class_init):
* gst/tcp/gsttcpserversrc.c: (gst_tcp_server_src_class_init):
* gst/videorate/gstvideorate.c: (gst_video_rate_class_init):
* gst/videoscale/gstvideoscale.c: (gst_video_scale_class_init):
* gst/videotestsrc/gstvideotestsrc.c:
(gst_video_test_src_class_init):
* gst/volume/gstvolume.c: (gst_volume_class_init):
* sys/v4l/gstv4lelement.c: (gst_v4lelement_class_init):
* sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_class_init):
* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_class_init):
* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_class_init):
* sys/ximage/ximagesink.c: (gst_ximagesink_class_init):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_class_init):
Use G_PARAM_STATIC_STRINGS everywhere for GParamSpecs that use
static strings (i.e. all). This gives us less memory usage,
fewer allocations and thus less memory defragmentation. Depend
on core CVS for this. Fixes bug #523806.
2009-10-29 11:17:15 +01:00
Wim Taymans 4de6a788b8 gst/playback/gstqueue2.c: Use separate timers for input and output rates.
Original commit message from CVS:
* gst/playback/gstqueue2.c: (gst_queue_init), (gst_queue_finalize),
(reset_rate_timer), (update_in_rates), (update_out_rates),
(gst_queue_locked_enqueue), (gst_queue_locked_dequeue),
(gst_queue_chain), (gst_queue_loop):
Use separate timers for input and output rates.
Pause measuring the output rate when we block for more data.
See #503262.
2009-10-29 11:17:15 +01:00
Wim Taymans 3fb28dfc90 gst/playback/gstqueue2.c: Pause the timer to measure the input rate when we block because the queue is filled. See #5...
Original commit message from CVS:
* gst/playback/gstqueue2.c: (gst_queue_chain):
Pause the timer to measure the input rate when we block because the
queue is filled. See #503262.
2009-10-29 11:17:15 +01:00
Wim Taymans 2b5653dd82 gst/playback/: Refactor some common code to filter factories and check caps compat.
Original commit message from CVS:
* gst/playback/Makefile.am:
* gst/playback/gstfactorylists.c: (compare_ranks), (print_feature),
(get_feature_array), (decoders_filter), (sinks_filter),
(gst_factory_list_get_decoders), (gst_factory_list_get_sinks),
(gst_factory_list_filter):
* gst/playback/gstfactorylists.h:
Refactor some common code to filter factories and check caps compat.
* gst/playback/gstdecodebin.c:
* gst/playback/gstdecodebin2.c: (gst_decode_bin_class_init),
(gst_decode_bin_init), (gst_decode_bin_dispose),
(gst_decode_bin_autoplug_continue),
(gst_decode_bin_autoplug_factories),
(gst_decode_bin_autoplug_select), (analyze_new_pad),
(find_compatibles):
* gst/playback/gstplaybin.c:
* gst/playback/gstplaybin2.c: (gst_play_bin_class_init),
(gst_play_bin_init), (gst_play_bin_finalize),
(autoplug_factories_cb), (activate_group):
* gst/playback/gstqueue2.c:
* gst/playback/gsturidecodebin.c: (proxy_unknown_type_signal),
(proxy_autoplug_continue_signal),
(proxy_autoplug_factories_signal), (proxy_autoplug_select_signal),
(proxy_drained_signal):
Add some more debug info and use factor filtering code.
2009-10-29 11:17:15 +01:00
Wim Taymans ca779938d1 gst/playback/: Add playbin2.
Original commit message from CVS:
* gst/playback/Makefile.am:
* gst/playback/gstplayback.c: (plugin_init):
* gst/playback/test7.c: (update_scale), (warning_cb), (error_cb),
(eos_cb), (about_to_finish_cb), (main):
Add playbin2.
Added gapless playback example.
* gst/playback/gstplaybasebin.c:
* gst/playback/gstplaybasebin.h:
* gst/playback/gstplaybin.c: (gst_play_bin_plugin_init):
* gst/playback/gstqueue2.c:
* gst/playback/test.c:
* gst/playback/gsturidecodebin.c: (gst_uri_decode_bin_class_init),
(pad_removed_cb):
* gst/playback/gststreaminfo.h:
Change email.
* gst/playback/gstplaybin2.c: (gst_play_bin_get_type),
(gst_play_bin_class_init), (init_group), (gst_play_bin_init),
(gst_play_bin_dispose), (gst_play_bin_set_uri),
(gst_play_bin_set_suburi), (gst_play_bin_set_property),
(gst_play_bin_get_property), (gst_play_bin_handle_message),
(pad_added_cb), (pad_removed_cb), (no_more_pads_cb), (perform_eos),
(drained_cb), (unlink_group), (activate_group),
(setup_next_source), (gst_play_bin_change_state),
(gst_play_bin2_plugin_init):
Added raw first version of playbin2. Does chained oggs and gapless
playback fine. No support for raw sinks yet. No visualisations or
subtitles yet.
* gst/playback/gstplaysink.c: (gst_play_sink_get_type),
(gst_play_sink_class_init), (gst_play_sink_init),
(gst_play_sink_dispose), (gst_play_sink_vis_unblocked),
(gst_play_sink_vis_blocked), (gst_play_sink_set_video_sink),
(gst_play_sink_set_audio_sink), (gst_play_sink_set_vis_plugin),
(gst_play_sink_set_property), (gst_play_sink_get_property),
(post_missing_element_message), (free_chain), (add_chain),
(activate_chain), (gen_video_chain), (gen_text_element),
(gen_audio_chain), (gen_vis_element), (gst_play_sink_get_mode),
(gst_play_sink_set_mode), (gst_play_sink_request_pad),
(gst_play_sink_release_pad), (gst_play_sink_send_event_to_sink),
(gst_play_sink_send_event), (gst_play_sink_change_state):
* gst/playback/gstplaysink.h:
Added Element that abstracts the sinks and their pipelines for playbin2.
2009-10-29 11:17:15 +01:00
Wim Taymans 7d6d46fea6 gst/playback/gstqueue2.c: Fix queue negotiation. See #486758.
Original commit message from CVS:
* gst/playback/gstqueue2.c: (gst_queue_init), (gst_queue_push_one):
Fix queue negotiation. See #486758.
2009-10-29 11:17:14 +01:00
Wim Taymans 73be0c35c0 gst/playback/gstqueue2.c: Fix compilation wrt printf arguments.
Original commit message from CVS:
* gst/playback/gstqueue2.c: (gst_queue_push_one):
Fix compilation wrt printf arguments.
2009-10-29 11:17:14 +01:00
Jan Schmidt a4614d8c8c Fix a bunch of compile warnings shown with Forte.
Original commit message from CVS:
* ext/pango/gsttextoverlay.c: (gst_text_overlay_init),
(gst_text_overlay_set_property):
* ext/vorbis/vorbisdec.c: (vorbis_handle_data_packet):
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_render):
* gst-libs/gst/rtp/gstrtcpbuffer.c: (gst_rtcp_ntp_to_unix),
(gst_rtcp_unix_to_ntp):
* gst-libs/gst/rtsp/gstrtspmessage.c: (gst_rtsp_message_get_type):
* gst/playback/gstqueue2.c:
* tests/examples/seek/seek.c: (set_scale):
Fix a bunch of compile warnings shown with Forte.
* gst/audiorate/gstaudiorate.c:
Always pull in config.h before including any system headers.
2009-10-29 11:17:14 +01:00
Wim Taymans ff4e3e7b94 gst/playback/gstqueue2.c: Also fix #476514 for queue2.
Original commit message from CVS:
* gst/playback/gstqueue2.c: (update_buffering),
(gst_queue_locked_flush), (gst_queue_locked_enqueue),
(gst_queue_handle_sink_event), (gst_queue_chain),
(gst_queue_push_one), (gst_queue_sink_activate_push),
(gst_queue_src_activate_push), (gst_queue_src_activate_pull):
Also fix #476514 for queue2.
2009-10-29 11:17:14 +01:00
Tim-Philipp Müller 48d4fd8f8d gst/: Printf format fixes (#465028).
Original commit message from CVS:
* gst/playback/gstqueue2.c:
* gst/videorate/gstvideorate.c:
Printf format fixes (#465028).
2009-10-29 11:17:14 +01:00
Wim Taymans da7a699c5f gst/playback/gstqueue2.c: Use other metrics as well when estimating the buffer level.
Original commit message from CVS:
* gst/playback/gstqueue2.c: (apply_segment), (update_buffering):
Use other metrics as well when estimating the buffer level.
2009-10-29 11:17:14 +01:00
Wim Taymans ee4e5d2be0 gst/playback/gstplaybasebin.c: Small debug improvement.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (make_decoder), (setup_source):
Small debug improvement.
* gst/playback/gstqueue2.c: (apply_segment), (update_buffering),
(plugin_init):
Tweak the rate estimation period.
When calculating the buffer filledness in rate estimation mode, don't
mix it with other metrics.
2009-10-29 11:17:14 +01:00
David Schleef 0b6ee4f4b6 gst/playback/gstqueue2.c: Fix compile error from ignored return value.
Original commit message from CVS:
* gst/playback/gstqueue2.c:
Fix compile error from ignored return value.
2009-10-29 11:17:13 +01:00
Edward Hervey 8fe34426cb gst/playback/gstqueue2.c: Fix build on MacOSX.
Original commit message from CVS:
* gst/playback/gstqueue2.c: (gst_queue_create_read):
Fix build on MacOSX.
2009-10-29 11:17:13 +01:00
Wim Taymans c26bff1afc gst/playback/gstqueue2.c: Fix a division by zero when the max percent is <= 0. Fixes #446572. also update the bufferi...
Original commit message from CVS:
Patches by: Thiago Sousa Santos <thiagossantos at gmail dot com>
* gst/playback/gstqueue2.c: (update_buffering),
(gst_queue_locked_enqueue):
Fix a division by zero when the max percent is <= 0. Fixes #446572.
also update the buffering status when receiving events. Fixes #446551.
2009-10-29 11:17:13 +01:00
Thiago Sousa Santos 27d8c58438 gst/playback/gstqueue2.c: Wait for preroll before attempting to forward a duration query upstream.
Original commit message from CVS:
Based on patch by: Thiago Sousa Santos <thiagossantos at gmail dot com>
* gst/playback/gstqueue2.c: (gst_queue_peer_query),
(gst_queue_handle_src_query):
Wait for preroll before attempting to forward a duration query upstream.
Fixes #445505.
2009-10-29 11:17:13 +01:00
Wim Taymans ee3f9d84ec gst/playback/gstqueue2.c: Fix compilation.
Original commit message from CVS:
* gst/playback/gstqueue2.c: (gst_queue_get_range):
Fix compilation.
2009-10-29 11:17:13 +01:00
Thiago Sousa Santos 2d77f57853 gst/playback/gstqueue2.c: Add pull based scheduling and fix some deadlocks. Fixes #444523.
Original commit message from CVS:
Patch by: Thiago Sousa Santos <thiagossantos at gmail dot com>
* gst/playback/gstqueue2.c: (gst_queue_init),
(gst_queue_handle_sink_event), (gst_queue_chain),
(gst_queue_get_range), (gst_queue_src_checkgetrange_function),
(gst_queue_sink_activate_push), (gst_queue_src_activate_push),
(gst_queue_src_activate_pull):
Add pull based scheduling and fix some deadlocks. Fixes #444523.
Does not yet completely work because duration queries upstream won't
block yet.
2009-10-29 11:17:12 +01:00
Wim Taymans 28dca2d062 Some more fseeko checks.
Original commit message from CVS:
* configure.ac:
* gst/playback/gstqueue2.c: (gst_queue_create_read):
Some more fseeko checks.
2009-10-29 11:17:12 +01:00
Wim Taymans e00ffac3ac gst/playback/gstqueue2.c: Include stdio to define fseeko.
Original commit message from CVS:
* gst/playback/gstqueue2.c: (gst_queue_have_data),
(gst_queue_create_read), (gst_queue_read_item_from_file),
(gst_queue_open_temp_location_file), (gst_queue_locked_enqueue):
Include stdio to define fseeko.
2009-10-29 11:17:12 +01:00
Thiago Sousa Santos 14d39928f5 gst/playback/gstqueue2.c: Add support for filebased buffering. Fixes #441264.
Original commit message from CVS:
Based on patch by: Thiago Sousa Santos <thiagossantos at gmail dot com>
* gst/playback/gstqueue2.c: (gst_queue_class_init),
(gst_queue_init), (gst_queue_finalize),
(gst_queue_write_buffer_to_file), (gst_queue_have_data),
(gst_queue_create_read), (gst_queue_read_item_from_file),
(gst_queue_open_temp_location_file),
(gst_queue_close_temp_location_file), (gst_queue_locked_flush),
(gst_queue_locked_enqueue), (gst_queue_locked_dequeue),
(gst_queue_is_empty), (gst_queue_is_filled),
(gst_queue_change_state), (gst_queue_set_temp_location),
(gst_queue_set_property):
Add support for filebased buffering. Fixes #441264.
2009-10-29 11:17:12 +01:00
Wim Taymans b2486d65c6 gst/playback/gstqueue2.c: Tweak the buffering thresholds a little.
Original commit message from CVS:
* gst/playback/gstqueue2.c: (update_rates):
Tweak the buffering thresholds a little.
Update the buffer size with the previously calculate rate instead of
only when we calculate a new rate so that we get smoother buffering
updates.
* gst/playback/Makefile.am:
* gst/playback/gsturidecodebin.c: (gst_uri_decode_bin_base_init),
(gst_uri_decode_bin_class_init), (gst_uri_decode_bin_init),
(gst_uri_decode_bin_finalize), (gst_uri_decode_bin_set_property),
(gst_uri_decode_bin_get_property), (unknown_type),
(add_element_stream), (no_more_pads_full), (no_more_pads),
(source_no_more_pads), (new_decoded_pad), (array_has_value),
(gen_source_element), (has_all_raw_caps), (analyse_source),
(remove_decoders), (make_decoder), (remove_source),
(source_new_pad), (setup_source), (decoder_query_init),
(decoder_query_duration_fold), (decoder_query_duration_done),
(decoder_query_position_fold), (decoder_query_position_done),
(decoder_query_latency_fold), (decoder_query_latency_done),
(decoder_query_seeking_fold), (decoder_query_seeking_done),
(decoder_query_generic_fold), (gst_uri_decode_bin_query),
(gst_uri_decode_bin_change_state), (plugin_init):
New element that intergrates a source, optional buffering element and
decodebin.
2009-10-29 11:17:12 +01:00
Wim Taymans aa02328e2b gst/playback/gstqueue2.c: fix build.
Original commit message from CVS:
* gst/playback/gstqueue2.c: (gst_queue_get_type),
(gst_queue_class_init), (gst_queue_finalize), (update_time_level),
(apply_segment), (apply_buffer), (update_buffering),
(reset_rate_timer), (update_rates), (gst_queue_locked_flush),
(gst_queue_locked_enqueue), (gst_queue_locked_dequeue),
(gst_queue_handle_sink_event), (gst_queue_is_filled),
(gst_queue_chain), (gst_queue_push_one), (gst_queue_loop),
(plugin_init):
fix build.
2009-10-29 11:17:11 +01:00
Wim Taymans fa611dcc9d gst/playback/: On our way to playbin2 this is the new network queue that does buffering all by itself using high and ...
Original commit message from CVS:
* gst/playback/Makefile.am:
* gst/playback/gstqueue2.c: (gst_queue_get_type),
(gst_queue_class_init), (gst_queue_init), (gst_queue_finalize),
(gst_queue_getcaps), (gst_queue_bufferalloc),
(gst_queue_acceptcaps), (update_time_level), (apply_segment),
(apply_buffer), (update_buffering), (reset_rate_timer),
(update_rates), (gst_queue_locked_flush),
(gst_queue_locked_enqueue), (gst_queue_locked_dequeue),
(gst_queue_handle_sink_event), (gst_queue_is_empty),
(gst_queue_is_filled), (gst_queue_chain), (gst_queue_push_one),
(gst_queue_loop), (gst_queue_handle_src_event),
(gst_queue_handle_src_query), (gst_queue_sink_activate_push),
(gst_queue_src_activate_push), (gst_queue_change_state),
(gst_queue_set_property), (gst_queue_get_property), (plugin_init):
On our way to playbin2 this is the new network queue that does buffering
all by itself using high and low watermarks. It can also measure up and
downstream bandwidth to optimally size the queue.
2009-10-29 11:17:11 +01:00
David Schleef 62e236394a parse: Fix memleak of unused delayed links
Attach the DelayedLink structure to the element, so that when
the element is disposed, the DelayedLink is freed.
2009-10-28 22:05:06 -07:00
Rob Clark 746284f807 pad: make _fixate_caps() also truncate when needed
The default gst_pad_fixate_caps() previously would only fixate each individual
struct. In case there are multiple structs, the resulting caps would still not
be fixed. In the spirit of how individual structs are fixated, this patch
changes gst_pad_fixate_caps() to remove all but the first struct.

Fixes #595886
2009-10-28 16:36:13 +01:00
Wim Taymans f5df3dea7d info: fix docs 2009-10-28 16:36:13 +01:00
Edward Hervey 27284628e4 optimisation : Use g_object_newv where possible.
This avoids:
* triple-checking for the GType when type-checking is enabled (see #597260)
* Avoids going through an expensive no-argument checking which landed in
  glib-2.22
* Avoids going through 2 extrac functions (g_object_new -> g_object_new_valist)
2009-10-28 09:31:17 +01:00
Stefan Kost cfebdcd452 annotations: add annotations to gst_init_check too 2009-10-28 10:14:36 +02:00
Stefan Kost b66a4dbd42 docs: tell more about what happens in gst_init.
Add links to gst_update_registry and the env-vars.
2009-10-28 09:58:52 +02:00
Stefan Kost 369a63b11c docs: remove reference to OGI and rephrase sections docs
The OGI links are dead, so remove them. Also remove the paragraph that pointed
to OGI and DS. Only mentioning DS there made it a but pointless. Add a generic
paragraph instead that tells a bit about the usecases gstreamer covers.
2009-10-28 09:38:45 +02:00
Tim-Philipp Müller daecaf0e8a Remove GST_DEBUG_FUNCPTR where they're pointless
There's not much point in using GST_DEBUG_FUNCPTR with GObject
virtual functions such as get_property, set_propery, finalize and
dispose, since they'll never be used by anyone anyway. Saves a
few bytes and possibly a tenth of a polar bear.
2009-10-28 00:44:24 +00:00
Stefan Kost b83fb45fac debugutils: allow to hide/show pad status with graphdetails flag 2009-10-27 12:06:35 +02:00
Sebastian Dröge b04f7489bf registry: private is a C++ keyword, don't use it
...otherwise C++ compilers will complain when including gstregistry.h
2009-10-24 11:58:25 +02:00
Tim-Philipp Müller 4a9e983f4a docs: add Since tag to docs for new API
And tell gtk-doc that GstRegistryPrivate is private.
2009-10-24 10:31:08 +01:00
Edward Hervey 5067664c09 typefind: Keep typefind factories sorted in the registry. Fixes #599147
This avoids having to do the sorting everytime we use typefind

The behaviour of gst_type_find_factory_get_list has subtlely changed
in the sense that the order was previously undefined, whereas now
it returns them sorted by rank and then by name.
2009-10-24 10:44:09 +02:00
Edward Hervey c79ed99bab registry: Cache element and typefind factories. Fixes 598896
This avoids unneeded list/filtering if the registry hasn't changed
2009-10-24 10:44:04 +02:00
Edward Hervey ebee258806 gstpluginfeature: API : new gst_plugin_feature_list_copy() method
This allows copying AND incrementing the refcount at the same time,
avoiding a double iteratio of the GList
2009-10-24 10:39:30 +02:00
Edward Hervey 9e792ee5b8 gstregistry: Add a cookie for detecting feature list changes
We also create a private structure, since we will need to add more
data there in following patches.
2009-10-24 10:39:13 +02:00
Wim Taymans db79dd88c3 message: don't use typechecking cast macros
Simply use casting macros for accessing the message fields like we do for
buffers and events. Avoids some costly typechecking that does not really buy us
much.
2009-10-23 13:40:32 -04:00
Wim Taymans c9a7e2d188 Revert "gstmessage: Avoid expensive src/type/timestamp fetch."
This reverts commit 61cf93a334.
2009-10-23 13:13:52 -04:00
Edward Hervey 61cf93a334 gstmessage: Avoid expensive src/type/timestamp fetch.
If we've already checked that we have a valid message, use the entries
directly.
2009-10-23 18:21:47 +02:00
Edward Hervey e5a13bd3fc gstcaps: Use inlined version of _is_any()/_is_empty()
CAPS_IS_ANY and CAPS_IS_EMPTY are the equivalent of their gst_caps_*
counterpart except that they avoid the typechecking and are inlined.

CAPS_IS_EMPTY_SIMPLE only checks for empty caps (without checking if
the caps is ANY).
2009-10-23 17:47:43 +02:00
Jan Schmidt dc2c4de73a gstpipeline: Simplify base time checking slightly
Simplify checking and distribution of the base time - don't re-check
the value of a local variable that was set 3 lines earlier.
2009-10-22 12:54:17 +01:00
Edward Hervey 517ab2860e gsturi: Optimisation: Avoid type-checking in sorting method.
We already know the list only contains plugin features
2009-10-22 13:16:07 +02:00
Edward Hervey a9ed7c0ec4 gsturi: Optimisation : Cast when we're sure of the type.
Also directly access GstElementFactory->uri_type instead of going
through a function that will (once again) check whether it's a
GstElementFactory
2009-10-22 13:13:56 +02:00
Edward Hervey 4b13520b61 gstregistry: Use hash table when finding a feature. Fixes #598895 2009-10-22 11:13:47 +02:00
Wim Taymans 368b7899c0 registry: hash the plugin basename
Maintain a hashtable of the plugin basename. We can then use this
hashtable to speedup the search for an existing plugin and avoid
a whole lot of strcmp calls.
2009-10-20 23:28:54 -04:00
Wim Taymans 5de94ede2f registry: speed up _strlen
Make the _strlen function a little tighter
2009-10-20 23:27:41 -04:00
Wim Taymans 50b9a3ecc3 registry: name is never NULL
When looking up a feature by name, we never call this internal
function with NULL so we don't have to check for it.
2009-10-20 21:43:58 -04:00
Wim Taymans d722d16155 registry: refactor plugin lookup
We keep lookup plugins by their basename. Avoid creating a basename
from a filename if we can.
2009-10-20 21:39:11 -04:00
Wim Taymans 1be3d5cd83 registry: do quick check for . files
Do a quick check for . files before calling the strcmp functions
2009-10-20 21:15:56 -04:00
Benjamin Otte 868711fc70 docs: Fix docs for gst_caps_set_simple() 2009-10-20 10:51:25 +01:00
Jan Schmidt 08c56edb84 docs: Modify docs string slightly.
Apparently starting the last line of a docs string with 'returns' both
confuses and enrages gtk-doc. Use a slightly different wording instead.
2009-10-19 13:02:30 +01:00
Jan Schmidt de199b4d8d pluginloader: When a plugin is blacklisted, output a GST_ERROR line. 2009-10-19 12:30:07 +01:00
Peter Kjellerstedt 485ae69c9e trace: Do not poison gst_trace_add_entry()
Since gst_trace_add_entry() is a macro, gcc will barf when it is
defined in case it has been poisoned due to trace support being
disabled.
2009-10-19 10:53:00 +02:00
Wim Taymans 7d86ad93a2 caps: fix typo in docs 2009-10-16 12:39:54 +02:00
Benjamin Otte 0ff4086507 Improve caps setters API
This patch adds gst_caps_set_value() and allows gst_caps_set_simple() to
work on non-simple caps. See the API documentation for the functions
about what they do.

The intention of these changes is to ease working with caps in caps
transform functions. An example for this would be ffmpegcolorspace,
where the caps transform function could be changed to look roughly like
this (pseudocode ahead):
  result = gst_caps_copy (template_caps);
  value = gst_structure_get_value (gst_caps_get_structure (caps, 0),
    "widh");
  gst_caps_set_value (result, value);
  /* same for height, framerate and par */
  return caps;
which is much cleaner and easier to understand than the current code.

https://bugzilla.gnome.org/show_bug.cgi?id=597690
2009-10-15 19:10:50 +02:00
Stefan Kost bad284be7a docs: clarify preset api docs 2009-10-15 12:16:05 +03:00
Peter Kjellerstedt 1314aa75d5 iterator: Fix a documentation typo 2009-10-14 10:16:31 +02:00
Sebastian Dröge b8454d623d gstobject: Replace recursive gst_object_has_ancestor() with an iterative version
This is slightly more efficient because the compiler can't do tail
recursion here and has to keep all stack frames.

Not that efficiency is that important here but I already had
the iterative version somewhere else and both are easy to read.
2009-10-14 08:34:03 +02:00
Jan Schmidt 36ccb66fb5 debug: Mark the GST_POLL symbol as extern to avoid multiply-defined error 2009-10-12 14:57:35 +01:00
Jan Schmidt 2ddf028503 gstpoll: Make the new GST_POLL debug completely private
Make the GST_POLL debug category symbol private to libgstreamer, as
there should be no external users of it.
2009-10-12 14:24:53 +01:00
Edward Hervey 7f68d7a6f8 gstpluginloader: Don't wait forever on gst_poll_wait.
This allows the macosx versions to properly error out when fds are closed.

This is only a temporary fix until the pluginloader is switched to not
use GstPoll but GIOChannels.
2009-10-12 12:21:49 +02:00
Edward Hervey edce400c79 gstpoll: Only take into account active fds
This is needed so that select properly errors out on macosx (sigh)
2009-10-12 12:01:59 +02:00
Edward Hervey dc3fb58a90 gstpoll: Add some debugging statements 2009-10-12 10:07:03 +02:00
Edward Hervey 3254f19c6f gstpoll: Use the error fdset when using select/pselect.
This is needed to properly detect fds that are closed or that got
an error
2009-10-12 10:01:01 +02:00
Edward Hervey 95413683fa gstpoll: Don't use poll on systems with broken poll 2009-10-12 09:53:58 +02:00
Edward Hervey 0fc16a8e74 gst: Add debugging category GST_POLL for gstpoll 2009-10-12 09:50:00 +02:00
Jan Schmidt e3ce7d3e35 pluginloader: Fix valgrind warnings by zeroing padding bytes. 2009-10-08 23:10:40 +01:00
Jan Schmidt 09ae85670c registrychunks: Fix a debug format string harder to satisfy OS/X's gcc. 2009-10-08 16:21:45 +01:00
Jan Schmidt a58702de89 registrychunks: Fix format string for debug error message. 2009-10-08 16:05:08 +01:00
Jan Schmidt 63934021ab pluginloader: Move stdin and stdout out of harm's way
In the plugin loader subprocess, move stdin and stdout to new fd's
so that plugins printing things during plugin init or (*gasp*)
possibly reading from stdin don't interfere with the data sent to
and from the parent.
2009-10-08 15:21:48 +01:00
Jan Schmidt f514ef0efc registry: Fix error handling in the registry loader
When the plugin-scanner load fails (because the helper can't be
spawned), make sure to load the plugin that failed in-process, so
that all plugins do get loaded.
2009-10-08 10:36:56 +01:00
Tim-Philipp Müller 8b8d8bb112 gstinfo: add back fix that shouldn't have been reverted 2009-10-08 09:36:38 +01:00
Edward Hervey 015c5dda8f gstobject: Remove dead assignment.
object is no longer used after that line
2009-10-08 08:53:26 +02:00
Edward Hervey 219c3c5236 gstindex: Make sure writer is non-NULL.
Fixes the NULL dereference a few lines lower (where it gets the object type).
2009-10-08 08:52:18 +02:00
Jan Schmidt 69bce376b0 plugin: Ignore an empty dependency list.
If a plugin registers an empty dependency set, just ignore it rather
than serialising and checking an empty set.
2009-10-08 02:06:34 +01:00
Jan Schmidt 83252f42c9 registrychunks: Fix off-by-one error. Improve debug.
Fix an off-by-one error in the size guard for unpack_element, and
improve various debug statements in the failure paths.

Also, swap some g_new0 to g_malloc0 for the fun of it.
2009-10-08 02:06:33 +01:00
Tim-Philipp Müller 07d953b791 docs: fix Since: tags in docs for newly-added API 2009-10-07 23:34:44 +01:00
Stefan Kost cb7a8e8b61 info: revert two of the changes
It only needed for the non constant string.
2009-10-08 00:08:47 +03:00
Stefan Kost 084bbe3921 info: use a "%s" format string when printing the memory dump line
We know that the content is save, but the compiler does not.
2009-10-07 23:36:45 +03:00
Rob Clark e025e328fd parse: don't format the string twice
We were formatting the string once and then passing the string as a format
string to the log functions.
2009-10-07 23:23:08 +03:00