This makes sure that if X is an ignored type, then functions that return
an object of type X (or a pointer type based on X) are also ignored.
Fixes#639293
This ensures that if type X is ignored, then pointers to X (and pointers
to pointers to X, etc.) are also ignored.
Caveat: this also means that ignore-type should only be used with base
types and not pointer types.
Fixes#639293
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:
* 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.
Original commit message from CVS:
* codegen/codegen.py:
Don't register interface if it is ignored
* configure.ac:
GST_PB_MINOR_VERSION doesn't appear by magic, you actually have to
parse it from pkg-config !
* gst/gst-pb-0.10.11.ignore:
Ignore GstVideoOrientation type altogether.
* gst/interfaces.override:
Include gstversion.override so that non-existent API is properly ignored.
Should fix#401051 once and for good now.
Original commit message from CVS:
* codegen/codegen.py:
When chaining up to the parent class methods from python to C, we need
to allow threads (i.e. release the GIL).
* gst/gstbase.override:
* gst/gstbin.override:
Modify __do_*() overrides in the same way as above.
Original commit message from CVS:
* codegen/argtypes.py:
* gst/arg-types.py:
Move GstIterator ArgType definition and usage for the codegenerator
to gst/arg-types.py. It has nothing to do in the codegenerator code.
Original commit message from CVS:
* codegen/override.py:
Fix the lookup of override files in the specified search directories.
* gst/Makefile.am:
Don't distribute gstversion.override
Fixup .defs => .c make instructions
All the above fixes the cases where you're building in a directory
different from the source directory.
Original commit message from CVS:
* codegen/argtypes.py:
Revert the UInt64Arg modifications from upstream. It forces us to give
a PyLong, whereas we can directly use the 'K' argument parsing for that.
Original commit message from CVS:
* codegen/codegen.py:
newer pygobject's pyg_constant_strip_prefix() now return a const gchar *
whereas PyModule_AddIntConstant() takes a normal gchar*.
Closes#349623
Original commit message from CVS:
* codegen/codegen.py:
* codegen/override.py:
Added code to ignore type and the function/methods/classes that use
them.
* gst/gst.override:
ignore methods/classes/types depending on how GStreamer core was built:
_ GST_DISABLE_GST_DEBUG
_ GST_DISABLE_LOADSAVE
_ GST_DISABLE_PARSE
Original commit message from CVS:
* codegen/argtypes.py:
Update from upstream codegen for UInt argtype.
* gst/gst-types.defs:
Added GstIndexEntry boxed type.
* gst/gstbase.override:
Wrapped gst.BaseSrc::get_times() and gst.PushSrc::create() virtual
methods.
gst.BaseSrc and gst.PushSrc virtual methods are now completely wrapped.
Original commit message from CVS:
* codegen/codegen.py:
* codegen/override.py:
New --extendpath option for codegenerator so we can add
extra path to search for included override files.
Original commit message from CVS:
2006-02-06 Andy Wingo <wingo@pobox.com>
* codegen/argtypes.py (UInt64Arg.write_param): Parse long
arguments using ParseTuple and friends; allows ints to passed for
longs as a side benefit.
Original commit message from CVS:
* codegen/argtypes.py:
* codegen/codegen.py:
* codegen/definitions.py:
* gst/arg-types.py:
Added 'keeprefcount' argument for function/method parameters in order to
cope with functions/methods that decrement the refcount of the given
parameter
* gst/gst.defs:
Added 'keeprefcount' for buffer argument of gst_pad_push() wrapper.
Original commit message from CVS:
* codegen/codegen.py:
Added pyg_[begin|end]_allow_threads before and after call of C methods
in python methods wrappers.
This should get rid of more threading issues...
Should we also do that for function calls ?
Original commit message from CVS:
* gst/Makefile.am:
* gst/common.h:
* gst/pygstobject.c: (pygstobject_sink), (pygstobject_new),
(pygst_object_unref):
* gst/pygstobject.h:
* gst/gstmodule.c: (init_gst):
add/move some code to handle wrapping/refcounting of possible
GstObject
* codegen/argtypes.py:
* gst/gstbin.override:
* gst/gstbus.override:
* gst/gstelement.override:
* gst/gstpad.override:
* gst/interfaces.override:
use this reffing code
* gst/gst-types.defs:
* gst/gst.override:
add a __gstrefcount__ field to GstObject types
add tp_traverse, tp_dealloc and tp_clear, so we handle refcounting
properly related to garbage collection
* testsuite/test_element.py:
* testsuite/test_pad.py:
add more tests, add some refcount checks
Original commit message from CVS:
* codegen/codegen.py: (GstMiniObjectWrapper.constructor_tmpl):
let's not forget to wrap the MiniObject :)
* gst/gst-types.defs:
* gst/gst.defs:
Always keep up to date with the core
* gst/gstelement.override:
override for gst_element_query_position
* gst/pygstminiobject.c:
* gst/pygstminiobject.h:
* gst/gst.override:
PyGstMiniObject now properly wrap GstMiniObject and are referenced in a
global hash table
Original commit message from CVS:
* codegen/argtypes.py:
* codegen/codegen.py:
* codegen/definitions.py:
* codegen/defsparser.py:
* codegen/defsconvert.py:
* codegen/docgen.py:
Updated codegen to support miniobject
* gst/Makefile.am:
Use the included (and modified) codegen for code generation.
* gst/pygstminiobject.c:
* gst/pygstminiobject.h:
* gst/pygstminiobject-private.h:
New GstMiniObject inspired from pygobject.[ch] code
* gst/common.h:
* gst/gst-types.defs:
* gst/gst.override:
* gst/gstbuffer.override:
* gst/gstcaps.override:
* gst/gstmodule.c:
* gst/gstpad.override:
Modifications to support MiniObject
* gst/gst.defs:
Allow null second parameter for ElementFactory.create()
and gst.element_factory_make()
Original commit message from CVS:
* codegen/argtypes.py:
* codegen/codegen.py:
* codegen/definitions.py:
* codegen/defsparser.py:
* codegen/docgen.py:
Updated codegen to support miniobject
* gst/Makefile.am:
Use the included (and modified) codegen for code generation.
* gst/pygstminiobject.c:
* gst/pygstminiobject.h:
* gst/pygstminiobject-private.h:
New GstMiniObject inspired from pygobject.[ch] code
* gst/common.h:
* gst/gst-types.defs:
* gst/gst.override:
* gst/gstbuffer.override:
* gst/gstcaps.override:
* gst/gstmodule.c:
* gst/gstpad.override:
Modifications to support MiniObject
* gst/gst.defs:
Allow null second parameter for ElementFactory.create()
and gst.element_factory_make()
Original commit message from CVS:
* codegen/codegen.py: Resync (add support for tp_as_buffer)
* gst/gst.override: Support buffer interface for GstBuffer. Move
stuff into common.h, fix wrapping for
gst_pad_template_get_caps_by_name
Original commit message from CVS:
* configure.ac (PYGTK_CODEGEN): Use built in code generator again
and don't require 2.3.91, 2.0.0 should do fine (FC1 ok, RH9 isn't)
* TODO: Update
* gst/interfaces.override, gst/play.override: Add typedef for
python < 2.3
* codegen/codegen.py: Readd :/
Original commit message from CVS:
* gst/gst.override (_wrap_gst_element_tp_new): New, just pointing
to _wrap_gst_element_factory_make
(_wrap_gst_element_tp_new): Stub, return 1 so tp_new can be used.
* gst/gst.defs (element_factory_make): Remove is-constructor-of
GstElement.
* codegen/: Remove and use the codegen from pygtk instead
* configure.ac (ACLOCAL): Require 2.3.91 of PyGTK
Original commit message from CVS:
* gstinterfaces/Makefile.am: clean up a little bit
* gstinterfaces/__init__.py (devloc): s/gstreamer/gst/
* codegen: Resync and appy my interface constructor patch
Original commit message from CVS:
* codegen/*: Copy PyGTK code generator here, to avoid depending on
latest version.
* configure.ac: Add versioning, ala pygtk, and use the internal
code generator instead of the installed one