Those two lines will never be called, because caps2 will always be NULL
if we go to error (either we haven't used it yet (first goto and in this
case it's NULL), or.. it's NULL (second goto)).
This means that we take a completely new caps for the sole usage of
gst-python. The GstCaps return by gst_static_pad_template_get_caps() are
(surprise) static and therefore will always exist... as long as the
GstStaticPadTemplate (and the factory providing it) still exist.
This solves the case of getting the caps of a static pad template *before*
any element was created using the GstElementFactory. When the factory is
used to create an element, a new factory is created, replacing the old one,
and plainly discarding any static values (including those caps).
This behaviour is symmetrical to what we do at the very beginning (incrementing
the Python refcount of the wrapper object and decrementing the C refcount of the
actual object).
Original commit message from CVS:
* gst/pygstiterator.c: (pygst_iterator_new):
* testsuite/test_iterator.py:
Raise an Exception when wrapping a NULL GstIterator.
Fixes#566903
Original commit message from CVS:
patch by: Vincent GENIEUX <mutex at runbox dot com>
* gst/gststructure.override:
Don't leak key names in _wrap_gst_structure_keys.
Original commit message from CVS:
Patch by : Vincent Genieux <mutex at runbox dot com>
* gst/arg-types.py:
Fix memory leak for GstMiniObjects used as parameters in class method
overrides.
Fixes#543961
Original commit message from CVS:
* gst/gstpad.override:
Fix memory leak for functions that return a newly created buffer as
a function argument.
Fixes#554545
Original commit message from CVS:
* codegen/argtypes.py:
Add handling of 'keep-refcount' for GBoxed arguments.
* gst/gst.defs:
Mark the appropriate 'gst_message_new_*' arguments when the method
takes the ownership of the passed gst.Structure/gst.TagList
* testsuite/test_message.py:
Test for creating messages that take a gst.Structure/gst.TagList as
argument and make sure they're properly created.
Fixes#556054
Original commit message from CVS:
reviewed by: Edward Hervey <edward.hervey@collabora.co.uk>
* gst/__init__.py:
Fix on systems that don't have dlopen or don't support RTLD_GLOBAL and
RTLD_LAZY.
Original commit message from CVS:
Patch by: Thiemo Seufer <ths at networkno dot de>
* gst/__init__.py:
Use correct values for RTLD_GLOBAL and RTLD_LAZY on Linux/MIPS
as the values are different there from all other Linux platforms.
Fixes bug #553134.
Original commit message from CVS:
Patch by: Alexander Wirt <formorer at debian dot org>
* gst/__init__.py:
Import modules in the correct order, i.e. libxml2 before
GStreamer stuff, to prevent unresolved symbols. Fixes bug #553131.
Original commit message from CVS:
* gst/gstcaps.override:
Override gst_caps_append_structure() and make a copy of the structure
given as argument.
Fixes#549450
Original commit message from CVS:
* gst/gst-0.10.15.ignore:
* gst/gst-types.defs:
* gst/gst.defs:
Add gstdebugutils.[ch] methods that weren't wrapped previously.
We can now dump pipeline graphviz files from python ! :)
Original commit message from CVS:
* gst/gstbuffer.override:
the GstBuffer overrides seem to be confused about whether they're
mini-objects or a GBoxed, and it makes copy_on_write no actually
return a usable gst.Buffer. Fix up places where GstBuffers are
treated as GBoxed to use pygstminiobject functions.
Makes gst.Buffer('blah').copy_on_write() work.
* testsuite/test_buffer.py:
Add test for copy-on-write writability
* examples/buffer-draw.py:
Add an example of drawing on a GStreamer buffer with cairo
* gst/gstpad.override:
Make function static
Original commit message from CVS:
* gst/gstevent.override:
gst_event_new_tag takes ownership of the GstTagList given
as argument, therefore make a copy before calling the
C function.
Fixes#534888
Original commit message from CVS:
Patch by: Jan Schmidt <thaytan at mad dot scientist dot com>
* gst/__init__.py:
Make gst.Fraction simplify like the C counterpart
Fixes#532809
Original commit message from CVS:
Patch by: Johan Dahlin <johan at gnome dot org>
* gst/__init__.py:
* gst/gstelement.override:
* testsuite/test_element.py:
New 'fancy' constructor for gst.Element, allows creating elements in a
more pythonic way (i.e. myelement = gst.Element("oggmux")).
Fixes#530417
Original commit message from CVS:
Patch by: Alessandro Decina <alessandro at nnva dot org>
* gst/gstelementfactory.override:
Release GIL in gst_element_factory_overrides.
Fixes#529731
Original commit message from CVS:
* gst/gst.override:
(_wrap_GstURIHandler__proxy_do_get_protocols_full):
Don't crash by unreffing NULL when calling the
do_get_protocols_full method raises an exception.
Original commit message from CVS:
reviewed by: Edward Hervey <edward.hervey@collabora.co.uk>
* gst/gstpad.override:
* testsuite/test_pad.py:
Fix memleak in gst.Pad.set_blocked_async()
Fixes#514717
Original commit message from CVS:
* gst/gstmodule.c: (init_gst):
Remove do_pending_calls timeout which has been handled more gracefully
in pygobject MainLoop for the past 3 years.
Fixes#512916
Original commit message from CVS:
* configure.ac:
* gst/Makefile.am:
* gst/base.defs:
* gst/gst-0.10.15.ignore:
* gst/gst-0.10.16.ignore:
* gst/gst-pb-0.10.15.ignore:
* gst/gst-pb-0.10.16.ignore:
* gst/gst.defs:
* gst/gstversion.override.in:
* gst/pbutils.override:
* testsuite/test_pbutils.py:
Series of update for new API added to 0.10.16.
Remove wrong ignore file for 0.10.15 -base.
Original commit message from CVS:
reviewed by: Edward Hervey <edward.hervey@collabora.co.uk>
* gst/gstpad.override:
* testsuite/test_pad.py:
Re-implement wrapping of gst_pad_add_*probe in order to avoid leaks of
user-data associated with the probes.
Fixes#504786
Original commit message from CVS:
* gst/Makefile.am:
gst.pbutils also needs to handle miniobjects
* gst/pbutils.defs:
Add new InstallPluginsContext boxed definition.
All the *_new() functions should be accessible (and not act as
constructors).
* gst/pbutils.override:
Add override for install_plugins_sync().
* gst/pbutilsmodule.c:
Add pygst_debug debug category in this module too.
* testsuite/test_pbutils.py:
Test existence of new API. Needs more tests.
Original commit message from CVS:
* gst/Makefile.am:
* gst/common.h:
* gst/pbutils.defs:
* gst/pbutils.override:
* gst/pbutilsmodule.c: (initpbutils):
new gst.pbutils module that wraps the gst-plugins-base pbutils
helper library.
* testsuite/Makefile.am:
* testsuite/common.py:
* testsuite/test_pbutils.py:
Test case for gst.pbutils
Fixes#472822
Original commit message from CVS:
2007-11-01 Johan Dahlin <johan@gnome.org>
* gst/gst.override:
* gst/gst-0.10.15.ignore:
Make sure it still builds with GStreamer 0.10.14.
Original commit message from CVS:
* gst/gst.defs:
* gst/gst.override:
Patch from Alessandro Decina adding get_type_full and
get_protocols_full private vfuncs to the URIHandler interface
to allow bindings to support creating URI handlers.
Partially fixes: #339279
Original commit message from CVS:
* gst/gst.defs:
* gst/gst.override:
Thanks to Sebastien Merle for resurrecting a patch I'd forgotten about
that adds a constructor method for gst.GError, so you can create
error gst.Message.
Added a few GIL releases for overrides.
Original commit message from CVS:
* gst/gstobject.override:
Release the GIL when calling gst_object_get_path_string() since it can
cause deadlocks with new pygobject behaviour.
Original commit message from CVS:
* gst/base.defs:
* gst/libs.defs:
* gst/gst.defs:
* gst/gst.override:
Update API definitions for GStreamer core and gst-plugins-base.
* configure.ac:
* gst/Makefile.am:
* gst/gst-0.10.15.ignore:
* gst/gst-pb-0.10.15.ignore:
* gst/gstversion.override.in:
New .ignore for 0.10.14.* API
Original commit message from CVS:
* gst/pygstminiobject.c: (pygstminiobject_dealloc):
Move up variable declaration to the top of the function.
* win32/vs6/gst_python.dsw:
* win32/vs6/libgstpython.dsp:
* win32/vs6/pygenfiles.dsp:
* win32/MANIFEST
Add new project files to build with VS6.
Original commit message from CVS:
2007-09-11 Andy Wingo <wingo@pobox.com>
* gst/gstmodule.c (DL_EXPORT): Remove the atexit(gst_deinit).
Atexit handlers are run after python has finalized (see Py_Exit in
pythonrun.c), but gst_deinit can potentially call back into python
e.g. for python-defined plugins. Not sure how other people are
avoiding this segfault, but I see it all the time on Gusty x86-64
with Flumotion.
Original commit message from CVS:
* gst/gst-0.10.11.ignore:
GstDataQueue was added in gstreamer-0.10.11
* gst/gst-0.10.14.ignore:
some GstDataQueue methods were added in 0.10.14
Original commit message from CVS:
* configure.ac:
* gst/Makefile.am:
* gst/gst-0.10.14.ignore:
* gst/gst-pb-0.10.14.ignore:
* gst/gstversion.override.in:
Adding version overrides for new core/base releases.
Original commit message from CVS:
reviewed by: Edward Hervey <bilboed@bilboed.com>
* gst/gst.defs:
Make .get_uri_type() methods return a GstURIType enum instead of an
integer.
Fixes#436620
Original commit message from CVS:
reviewed by: Edward Hervey <bilboed@bilboed.com>
* gst/extend/discoverer.py:
New parameter to the discoverer to change the default maximum frame
interleave.
Fixes#418222
Original commit message from CVS:
* gst/gstelement.override:
Override the proxy method for GstElement::request_new_pad virtual
methods since it can be called with NULL as the name.
Fixes#454259
Original commit message from CVS:
Patch by: Zaheer Abbas Merali <zaheermerali@gmail.com>
* gst/gstevent.override:
Copy the GstStructure given as argument to gst_event_new_custom
and gst_event_new_navigation, else it would be freed when the python
object wrapping that structure goes out of scope.
Fixes#450117
Original commit message from CVS:
* gst/extend/jukebox.py:
* gst/extend/sources.py:
Fixes for thread-safety, changes in behaviour with gst.Pad and
cleanup. Still has some issues.
Original commit message from CVS:
Patch by : Michael Smith <msmith@fluendo.com>
* gst/extend/discoverer.py:
Better support for demuxers that don't create all pads at startup.
Fixes#380966
Original commit message from CVS:
* gst/gst-0.10.12.ignore:
Add more API additions that weren't explicit in the release notes.
* gst/gst-0.10.13.ignore:
Personal note : remember to save file before commiting it.
Original commit message from CVS:
* configure.ac:
* gst/Makefile.am:
* gst/gst-0.10.12.ignore:
* gst/gst-0.10.13.ignore:
* gst/gstversion.override.in:
Updating ignores for API additions
* gst/base.defs:
* gst/gst-types.defs:
* gst/gst.defs:
* gst/interfaces.defs:
* gst/libs.defs:
Massive wrapping of new API additions
* gst/gstbase.override:
* gst/gstevent.override:
* gst/gstmessage.override:
* gst/gstquery.override:
Overrides for methods with return values as arguments.
* gst/xwindowlistener.defs:
What the $#@# is this file still doing here ?? Removing it.
Original commit message from CVS:
* configure.ac:
* gst/Makefile.am:
* gst/gst-disable-loadsave.ignore:
* gst/gstversion.override.in:
Example of how to properly ignore methods that aren't available if
some feature is disabled in GStreamer core.
Original commit message from CVS:
* gst/gstelement.override:
Release the python lock when performing GStreamer calls that might
result in callbacks into python.
Original commit message from CVS:
* examples/pyidentity.py:
* gst/common.h:
* gst/gstpad.override:
Implement pad query proxying so that python elements can
answer pad queries. Fixes: #428299
Original commit message from CVS:
* codegen/codegen.py:
Also ignore pointers and boxed if they're in ignore-type.
* gst/gst-0.10.7.ignore:
Add gst_type_find_factory_call_function to functions ignored before
0.10.7 since it requires GstTypeFind arguments.