0.9.8: 2008-12-22 José Alburquerque * README: Added mailing list comment. * gstreamer/src/taglist.hg: Added _IGNOREs. * gstreamer/src/generate-methods.sh: * gstreamerbase/src/generate-methods.sh: * gstreamerbase/src/gstbase_methods.defs: Don't include plug-in directories for method generation and regenerate gstbase_methods.defs so that plug-in methods are not included in defs file. * gstreamer/src/element.hg: * gstreamer/src/index.ccg: Typos. 2008-12-19 José Alburquerque * README: Added comment about how to report bugs. 2008-12-19 José Alburquerque * tools/extra_defs_gen/generate_plugin_gmmproc_file.cc: Added warning to plug-in Doxygen blocks (class docs) that using the underlying C *type* of the wrapped plug-in is not guaranteed to be API stable across releases. 2008-12-17 José Alburquerque * gstreamer/src/Makefile_list_of_hg.am_fragment: * gstreamerbase/src/Makefile_list_of_hg.am_fragment: * tools/extra_defs_gen/generate_plugin_gmmproc_file.cc: * build_shared/Makefile_gensrc.am_fragment: Modified plug-in generation so that the required parameter of the generation tool (the plug-in name) is passed using camel casing so that this can be used as the C++ class name. This ensures that the C++ class name remains constant even if the plug-in's underlying C type changes (no more worries about ABI issues in this sense). Modified build process so that the C++ class names are specified along with the .hg file. * gstreamerbase/gstreamerbasemm/Makefile.am: Removed unneeded libgstreamermm-0.10.la build dependency of the gstreamerbasemm library. 2008-12-16 José Alburquerque * gstreamerbase/src/Makefile_list_of_hg.am_fragment: * gstreamerbase/src/cddabasesrc.ccg: * gstreamerbase/src/cddabasesrc.hg: Added cdparanoiasrc giosink giosrc giostreamsink giostreamsrc xvimagesink plug-ins. They did not exist in jhbuild environment because gst-plugins-base module must be be built with '--enable-experimental' and certain dependencies did not exist on my system (for cdparanoiasrc and xvimagesink plug-ins). Also added base class CddaBaseSrc from which cdparanoiasrc plug-in derives. * tools/m4/ctocpp.m4: Added C to C++ translations for gio types. * gstreamerbase/gstreamerbasemm.h: Added base classes to includes. * configure.ac: * gstreamerbase/gstreamerbasemm-0.10.pc.in: Added giomm-2.4 and gstreamer-cdda.0.10 (for CddaBaseSrc base class) dependencies to gstreamerbase branch. * tools/extra_defs_gen/generate_plugin_gmmproc_file.cc: Added code to determine if parent type of plug-in is wrapped or will be generated as a plug-in; If the parent type is not public, a parent class that is public is used as the plug-ins parent type. * gstreamerbase/src/gstbase_enums.defs: * gstreamerbase/src/gstbase_enums.defs.patch: * gstreamerbase/src/gstbase_signals.defs: * gstreamerbase/src/gstbase_signals.defs.patch: Went back two weeks to a gst-plugins-base version that uses GstAudioresample instead of GstSpeexResample as the type of the audioresample plug-in and regenerated these files in case a release of gstreamermm is made before a new release of GStreamer modules because the change from GstAudioresample to GstSpeexResample was made just two weeks ago and is not reflected in current releases of GStreamer modules. When a new GStreamer release is made with the change they can be regenerated then. Changing type names like this in GStreamer plug-ins (I hope it is not a common practice) makes me worry about ABI issues (if we should worry about such things in gstreamermm) because the plug-in class type names are taken from the GStreamer types and if they change this would make it appear that a class has been removed and a new one added in gstreamermm or gstreamerbasemm when plug-ins are generated. 2008-12-16 José Alburquerque * build_shared/Makefile_build_gensrc.am_fragment: * gstreamer/gstreamermm/Makefile.am: * gstreamerbase/gstreamerbasemm/Makefile.am: Removed wrap_init.cc from distribution because it depends on plug-in generation and should be generated in build system. * build_shared/Makefile_gensrc.am_fragment: Used variable $(files_plugin_stamp) instead of complex $(foreach ...) expression in CLEANFILES and in BUILT_SOURCES. Modified plugin .hg generation to pipe the output of generate_plugin_gmmproc_file to m4 instead of using $(eval ...) to define variables for temporary files. Modified build process to generate plug-in .hg and .ccg files and then run through gmmproc. Added wrap_init.cc to BUILT_SOURCES because it is now not distributed. * tools/m4/Makefile.am: Added ctocpp*.m4 to distribution. 2008-12-15 José Alburquerque * gstreamerbase/src/audiofilter.hg: * gstreamerbase/src/videosink.hg: Added base classes to gstreamerbasemm base classes Doxygen group. * gstreamer/src/element.hg: Re-ordered Doxygen groups so that base classes come before plug-ins. * gstreamerbase/src/Makefile_list_of_hg.am_fragment: Typo. 2008-12-14 José Alburquerque * gstreamerbase/src/Makefile_list_of_hg.am_fragment: Removed gdpdeplay and gdppay plug-ins because they cause strange warnings when their wrap_new() methods are registered in GstBase::wrap_init(): * Makefile.am: Build examples before tests. Discovered that the media player example only works outside of jhbuild now. The error when attempting to play a media file in jhbuild environment: Error: Missing element 'input-selector' - check your GStreamer installation. 2008-12-14 José Alburquerque * gstreamerbase/src/Makefile_list_of_hg.am_fragment: Removed some plug-ins that were not generated in jhbuild. Will re-add them after making sure they are generated. * examples/media_player_gtkmm/main.cc: * examples/media_player_gtkmm/player_window.cc: * examples/media_player_gtkmm/player_window.h: Modified example to use GstBase::PlayBin2 and GstBase::XImageSink plug-ins. They work, but some warnings that have to be looked into are generated (I hope they're not too bad :-) 2008-12-14 José Alburquerque * tools/extra_defs_gen/generate_plugin_gmmproc_file.cc: Added comment about when *Class delcaration is included in .ccg file. 2008-12-14 José Alburquerque * gstreamerbase/src/Makefile_list_of_hg.am_fragment: * gstreamerbase/src/audiofilter.ccg: * gstreamerbase/src/audiofilter.hg: * gstreamerbase/src/videosink.ccg: * gstreamerbase/src/videosink.hg: Added GstBase::AudioFilter and GstBase::VideoSink base classes (from which some plug-ins derive) and a list of most of the gst-plugins-base plug-ins to be generated (the rest are TODO's to be done bit by bit). * configure.ac: * gstreamerbase/gstreamerbasemm-0.10.pc.in: Added gstreamer-video-0.10 to list of package dependencies of gstreamerbasemm and to the gstreamerbasemm pk-config file (needed for GstBase::VideoSink). * gstreamerbase/src/audiosink.hg: * gstreamerbase/src/audiosrc.hg: Added GStreamer includes so plug-ins that include the .h files have access to the *Class structures. * tools/extra_defs_gen/generate_defs_gstbase.cc: * gstreamerbase/src/gstbase_signals.defs: Rewrote genereate_defs_gstbase tool to include GstPlayBaseBin (base class of GstPlayBin) so its properties can be wrapped. * tools/extra_defs_gen/generate_plugin_gmmproc_file.cc: Renamed global includeRoot to more appropriate parentInclude (the include of the parent class); Rewrote get_cast_macro() to use a similar algorithm for inserting the underscore ('_') in the given type name as gmmproc does more or less (just a guess, but the generate *_get_type() functions of the plug-in specific enums in the *.ccg files have names that gmmproc is happy with). Made *Class definition in *.ccg files optional based on whether there are wrapped signals in plugin. Modified so that the plug-in name can also be a type name (e.g. GstPipeline, etc.) and so that when the --suggest-hg option is used the other options like --namespace, and --target are not needed. * tools/m4/convert_gst.m4: Fixed GstBuffer conversion to work with gstreamerbase branch. * tools/m4/ctocpp_base.m4: Added gdouble C to C++ translation. * tools/m4/ctocpp.m4: Added GstElement and GstTagList C to C++ translation (for plug-in generation). 2008-12-11 José Alburquerque * tools/m4/convert_gst.m4: * gstreamer/src/basesink.hg: * gstreamer/src/basesrc.hg: * gstreamer/src/basetransform.hg: * gstreamer/src/bin.ccg: * gstreamer/src/bin.hg: * gstreamer/src/buffer.ccg: * gstreamer/src/buffer.hg: * gstreamer/src/bus.hg: * gstreamer/src/caps.ccg: * gstreamer/src/caps.hg: * gstreamer/src/childproxy.ccg: * gstreamer/src/childproxy.hg: * gstreamer/src/clock.hg: * gstreamer/src/element.ccg: * gstreamer/src/element.hg: * gstreamer/src/elementfactory.ccg: * gstreamer/src/elementfactory.hg: * gstreamer/src/event.ccg: * gstreamer/src/event.hg: * gstreamer/src/ghostpad.ccg: * gstreamer/src/ghostpad.hg: * gstreamer/src/index.hg: * gstreamer/src/indexfactory.hg: * gstreamer/src/interface.hg: * gstreamer/src/message.ccg: * gstreamer/src/message.hg: * gstreamer/src/pad.ccg: * gstreamer/src/pad.hg: * gstreamer/src/padtemplate.hg: * gstreamer/src/parse.ccg: * gstreamer/src/parse.hg: * gstreamer/src/pipeline.hg: * gstreamer/src/plugin.hg: * gstreamer/src/pluginfeature.hg: * gstreamer/src/query.ccg: * gstreamer/src/query.hg: * gstreamer/src/registry.ccg: * gstreamer/src/registry.hg: * gstreamer/src/systemclock.hg: * gstreamer/src/taglist.hg: * gstreamer/src/tagsetter.hg: * gstreamer/src/urihandler.hg: * gstreamer/src/xml.ccg: * gstreamer/src/xml.hg: Specified namespace wherever necessary so that the conversions in convert_gst.m4 can also be used with classes in gstreamerbase branch. * tools/m4/convert_gstbase.m4: Typo. * tools/extra_defs_gen/generate_defs_gstbase.cc: Modified to include some base classes that plug-ins derive from and all gst-plugins-base plug-ins. * gstreamerbase/src/generate-enums.sh: * gstreamerbase/src/generate-extra-defs.sh: * gstreamerbase/src/generate-methods.sh: Modified defs generation scripts to include plug-in directories and to patch when necessary. * gstreamerbase/src/gstbase_enums.defs: * gstreamerbase/src/gstbase_enums.defs.patch: * gstreamerbase/src/gstbase_methods.defs: * gstreamerbase/src/gstbase_signals.defs: * gstreamerbase/src/gstbase_signals.defs.patch: Regenerated and create patches to use where types are not quite correct. * gstreamerbase/src/Makefile_list_of_hg.am_fragment: * gstreamerbase/src/audiosink.ccg: * gstreamerbase/src/audiosink.hg: * gstreamerbase/src/audiosrc.ccg: * gstreamerbase/src/audiosrc.hg: * gstreamerbase/src/baseaudiosink.ccg: * gstreamerbase/src/baseaudiosink.hg: * gstreamerbase/src/baseaudiosrc.ccg: * gstreamerbase/src/baseaudiosrc.hg: Added these base classes on which some plug-ins depend (derive from). Also made a Doxygen group for them in element.hg. * tools/extra_defs_gen/generate_plugin_gmmproc_file.cc: Modified to not include an m4 conversion from a Glib::RefPtr<> to the underlying object in the generated plugin .hg file because the conversions in the convert_*.m4 files can be used just as well. Also modified to generate a _WRAP_ENUM for flags specific to the plug-in. 2008-12-11 José Alburquerque * gstreamer/src/bus.ccg: * gstreamer/src/clock.ccg: * gstreamer/src/filter.ccg: * gstreamer/src/index.ccg: * gstreamer/src/pad.ccg: * gstreamer/src/registry.ccg: * gstreamer/src/structure.ccg: * gstreamer/src/taglist.ccg: * gstreamer/src/task.ccg: * gstreamerbase/src/audioclock.ccg: Some corrections to callbacks. 2008-12-10 José Alburquerque * gstreamer/src/basesink.hg: * gstreamer/src/basesrc.hg: * gstreamer/src/basetransform.hg: * gstreamer/src/element.hg: * gstreamer/src/pushsrc.hg: Added a Doxygen group for base classes in gstreamermm from which plug-ins derive. 2008-12-10 José Alburquerque * gstreamer/src/basesink.hg: * gstreamer/src/basesrc.hg: * gstreamer/src/basetransform.hg: Temporarily "un-wrap" the vfuncs that return bool because they cause errors when using plug-ins that derive from these classes (see related bug #530416 and comments in element.hg about the bug). * tests/Makefile.am: * tests/test-plugin-signals.cc: Added a test for generated plug-in signals. They work as long as the bool vfuncs are not wrapped or the patch in bug #530416 (or something similar) is accepted. 2008-12-08 José Alburquerque * build_shared/Makefile_build.am_fragment: Added generated plug-in header files to list of files to be installed but not distributed. * gstreamer/src/parse.ccg: * gstreamer/src/parse.hg: Renamed get_bin() to create_bin() (A bin is created). * gstreamer/gstreamermm/miniobject.cc: * gstreamer/gstreamermm/miniobject.h: Reverted changes to "unshadow" Glib::ObjectBase::gobject_ for now because there's much more to this than just changing the field name (usages of the member variable must also be changed). 2008-12-08 José Alburquerque * tools/m4/Makefile_list_of_sources.am_fragment: * tools/m4/convert.m4: * tools/m4/ctocpp_base.m4: * tools/m4/ctocpp.m4: * build_shared/Makefile_gensrc.am_fragment: * tools/extra_defs_gen/generate_plugin_gmmproc_file.cc: Modified plug-in generation tool to generate preliminary .hg file (when generating the .hg file) which would then be run through m4 with macros in ctocpp_base.m4 and ctocpp.m4. Modified the build process to generate the preliminary .hg file with the tool and then run the file through m4 before running gmmproc on the final .hg file. Modified the tool to generate signals. Signals are wrapped; testing should be done though. * gstreamer/src/gst_signals.defs: * gstreamer/src/gst_signals.defs.patch: Added `*' to GstBuffer pointer type in definitions (it is GstMiniObject and the extra defs utility does not know -- see bug #562810). Modified patch to do this. * gstreamerbase/src/Makefile_list_of_hg.am_fragment: * gstreamerbase/src/gstbase_signals.defs: * tools/extra_defs_gen/generate_defs_gstbase.cc: Added plug-in `decodebin' to list of plug-ins to be generated for gstreamerbasemm to test plug-in generation that uses API from gstreamermm (properties and signals are wrapped). * gstreamer/src/basesink.ccg: * gstreamer/src/basesink.hg: * gstreamer/src/basesrc.ccg: * gstreamer/src/basesrc.hg: * gstreamer/src/pushsrc.ccg: * gstreamer/src/pushsrc.hg: Moved includes from .ccg to .hg files because plug-ins relying on these base classes need Gst*Class definitions from GStreamer header files. 2008-12-03 José Alburquerque * gstreamer/src/generate-docs.sh: * gstreamer/src/generate-enums.sh: * gstreamer/src/generate-methods.sh: * gstreamerbase/src/generate-docs.sh: * gstreamerbase/src/generate-enums.sh: * gstreamerbase/src/generate-methods.sh: Modified defs generation scripts to use include files in the jhbuild sources and not in the install directory. * gstreamer/src/gst_enums.defs: * gstreamer/src/gst_enums.defs.patch: * gstreamerbase/src/gstbase_enums.defs: * gstreamerbase/src/gstbase_methods.defs: Regenerated defs files and patch files using scripts. * gstreamer/src/element.hg: Added Doxygen groups for core and base plugins. * tools/extra_defs_gen/generate_plugin_gmmproc_file.cc: Modified to generate code to wrap plug-in enums. Included code to determine if an enum a plugin property uses is defined in the API or is plugin specific. Modified to include plugins in correct Doxygen group. Added check that the --namespace, --main-defs and --target options are used. * gstreamer/src/Makefile_list_of_hg.am_fragment: * tools/m4/ctocpp.m4: * tools/m4/ctocpp_base.m4: Added all the core plugins so that they are automatically generated. For now, all properties are generated. * gstreamer/gstreamermm/miniobject.cc: * gstreamer/gstreamermm/miniobject.h: Used _gobject instead of gobject_ as protected member so the Glib::ObjectBase member is not shadowed. 2008-11-30 José Alburquerque * examples/ogg_player_gtkmm/main.cc: * examples/ogg_player_gtkmm/player_window.cc: * examples/ogg_player_gtkmm/player_window.h: Modify example to use Gst::FileSrc for source element. * gstreamerbase/gstreamerbasemm.h: Correct typo. 2008-11-30 José Alburquerque * tools/m4/ctocpp_base.m4: Renamed macro to define translation from C to C++ type from _CPPTYPE to _CCONVERSION. Likewise, renamed the include generation macro from _CTOCPP_INCLUDE to _CCONVERSION_INCLUDE and the macro that does the translating from _CTOCPP to _CCONVERT. Used the actual C type to define translations instead of the param spec types. * tools/extra_defs_gen/generate_plugin_gmmproc_file.cc: Modified to get the actual C type name instead of the param spec name; also to determine if a GType is a pointer. Also modified so that the return type C++ translation is used for the generated property type (by adding a second parameter, `true', to the generated _CCONVERT macro call). * tools/extra_defs_gen/Makefile.am: * tools/extra_defs_gen/gst_type_is_a_pointer.cc: * tools/extra_defs_gen/gst_type_is_a_pointer.h: Included to determine if a GType is a pointer. * tools/extra_defs_gen/generate_defs_gst.cc: Modified to generate extra defs for all core plug-ins. * gstreamer/src/gst_signals.defs: Regenerated so that the core plug-in extra defs (signals and properties) are included. * gstreamer/src/Makefile_list_of_hg.am_fragment: Added `capsfilter' plug-in to list of plug-ins to be generated. * tools/m4/Makefile_list_of_sources.am_fragment: * tools/m4/convert.m4: * tools/m4/ctocpp.m4: Added a file independent of ctopp_base.m4 to include additional C to C++ translations (the basic ones will go in ctocpp_base.m4). 2008-11-30 José Alburquerque * build_shared/Makefile_build_gensrc.am_fragment: * build_shared/Makefile_gensrc.am_fragment: Add patches to .h files to dist. * tools/extra_defs_gen/Makefile.am: Added get_plugin_defs.{h,cc} to dist. 2008-11-30 José Alburquerque * gstreamer/src/Makefile_list_of_hg.am_fragment: * build_shared/Makefile_gensrc.am_fragment: * gstreamer/gstreamermm/Makefile.am: Modified build process so that taglist.hg can be included in list of .hg files to generate, but also to patch the generated .h file to remove the "typedef _GstTagList ..." section because the C API defines GstTagList as a GstStructure (so there's a conflict). * gstreamer/gstreamermm/taglist.h.patch: Added this patch so build process can use it to patch taglist.h. * gstreamer/gstreamermm/private/taglist_p.h: * gstreamer/gstreamermm/taglist.cc: * gstreamer/gstreamermm/taglist.h: Removed these because now they are generated. 2008-11-29 José Alburquerque * gstreamer/src/bin.ccg: Modified add() to take extra reference of element if it is still floating. This is necessary because bins like to destroy the elements themselves so we can't let the Glib::RefPtr<> to the element do this (see comments in add method). * tests/test-create-bin.cc: Added lines to test removal and re-addition of element to a bin. * tests/test-interface.cc: Modified to use a Glib::RefPtr<> to hold the copy of the element gobject so it is properly destroyed when Glib::RefPtr<> goes out of scope. 2008-11-28 José Alburquerque * gstreamer/src/element.hg: Commented out set_clock() vfunc wrap because of problems with generated plug-ins that rely on the underlying GstElement base class to always have a set_clock() vfunc implementation (see comments in .hg file). * examples/ogg_player/main.cc: Use Gst::FileSrc and its property to ensure that (generated) plug-in wrapper works correctly. May be a good idea to not require additional includes for plug-ins (just include them in gstreamermm.h (or gstreamerbasemm.h). 2008-11-26 José Alburquerque * gstreamer/src/ghostpad.ccg: Restored because changes were committed accidentally (rev. 1808). * tools/m4/Makefile_list_of_sources.am_fragment: Added ctocpp_base.m4 to list of m4 tool files. * tools/m4/ctocpp_base.m4: Added macro docs. Added _CTOCPP_INCLUDE() macro to generate a C++ include directive, if necessary, from a ctype. Removed commented example usages because docs explain how to use macros. * tools/extra_defs_gen/generate_plugin_gmmproc_file.cc: Modified to use _CTOCPP_INCLUDE() macro so that C++ type declarations are included if necessary. 2008-11-25 José Alburquerque * build_shared/Makefile_gensrc.am_fragment: Use BUILT_SOURCES only when not in maintainer mode (e.g. when running a distcheck) because it is only needed when tarball is distributed and plug-ins need to be generated on build machine. * tools/m4/convert.m4: * tools/m4/ctocpp_base.m4: Added _CPPTYPE() and _CTOCPP() macros for defining ways to translate from a C type to a C++ type (both when used as a parameter and as a return type) and then translating from a C type to a C++ type. If successful, the macros will include ways of automatically including the correct header file if the include header file is specified in the translation specification. * tools/extra_defs_gen/Makefile.am: * tools/extra_defs_gen/get_plugin_defs.cc: * tools/extra_defs_gen/get_plugin_defs.h: * gstreamer/src/generate-extra-defs.sh: Renamed generate_extra_defs to generate_defs_gst (to complement generate_defs_gstbase). Factored out get_plugin_defs() so that generate_defs_gstbase can also generate plug-in defs for gstreamerbase branch. * tools/extra_defs_gen/generate_defs_gst.cc: Added `filesrc' to the list of plug-ins to generate defs for. * tools/extra_defs_gen/generate_defs_gstbase.cc: Added `audioconvert' and `oggmux' to the list of plug-ins to generate defs for. * gstreamer/src/gst_signals.defs: * gstreamerbase/src/gstbase_signals.defs: Regenerated to include additional plug-in defs. * tools/extra_defs_gen/generate_plugin_gmmproc_file.cc: Modified plug-in generation tool to wrap plug-in properties using the _CTOCPP marco described above (property iteration was adapted from glibmm's extra defs generation utility). Made the GType of the plug-in global for easy access. * gstreamer/src/Makefile_list_of_hg.am_fragment: * tests/test-plugin-gen.cc: * gstreamerbase/src/Makefile_list_of_hg.am_fragment: Used Gst::FileSrc instead of Gst::FakeSrc in the gstreamer branch and GstBase::OggDemux instead of GstBase::AudioConvert in the gstreamerbase branch to test plug-in generation because property generation does not quite work with the `fakesrc' and `audioconvert' plug-ins just yet because special care must be used in dealing with enums and boxed types. 2008-11-23 José Alburquerque * gstreamer/gstreamermm/Makefile.am: * gstreamer/gstreamermm/private/Makefile.am: * gstreamerbase/gstreamerbasemm/Makefile.am: * gstreamerbase/gstreamerbasemm/private/Makefile.am: Removed generated plug-in sources from distribution because they should be generated on the build system. * docs/reference/Makefile.am: Modified so that the html/ directory is not distributed because docs may differ depending on the plug-ins available on the build system. Made docs clean on `make clean' (for distcheck). * build_shared/Makefile_gensrc.am_fragment: Modified plug-in generation to use a stamp directory (like the regular .hg files do) so that the build system is aware of changes to them and knows how to regenerate them if necessary. Modified the BUILT_SOURCES to build the stamp of the plug-ins which uses the plug-ins .hg and .ccg rules to generate the .hg and .ccg files and then creates a stamp after running gmmproc on the files. Added the plug-in stamps to CLEANFILES so that they are cleaned with `make clean'. Removed unused `sublib_srcdir' variable and unneeded (?) Makefile dependencies. Used $(srcdir) and $(builddir) where necessary (for distcheck). Added `stamp_plugin_dir' dependency to plug-in stamp generation because in the distcheck, a stamp directory is not created by `all-local'. The distcheck now works to make it easier for future releases, but write permission is necessary in the source directory because the plug-in .hg and .ccg files must be generated there and gmmproc must also generate the private headers, the .cc and the .h files in the source directory structure so that wrap_init(), which includes stuff from the plug-in header files, is built successfully. * gstreamer/gstreamermm.h: Moved init includes to top (to keep logical order of includes). 2008-11-20 José Alburquerque * tools/extra_defs_gen/generate_plugin_gmmproc_file.cc: Modified plug-in generation tool to prepend namespaces to parent types and use correct include roots in cases where parent types are from gstreamermm. Added --sugest-hg option that outputs what the name of the .hg file should if the plug-in exists (nothing otherwise) while building gstreamermm. Modified it to output a comment warning in the .hg file if a plug-in is not available. * build_shared/Makefile_build_gensrc.am_fragment: * build_shared/Makefile_gensrc.am_fragment: * gstreamer/gstreamermm/Makefile.am: * gstreamer/gstreamermm/private/Makefile.am: * gstreamerbase/gstreamerbasemm/Makefile.am: * gstreamerbase/gstreamerbasemm/private/Makefile.am: Modified build process so that all plug-ins are generated and compiled, but only included in wrap_init() if they exist during the build. * gstreamer/src/Makefile_list_of_hg.am_fragment: Added dvbsrc plug-in[1] from gst-plugins-ugly to list of plug-ins to build (which will not exist in jhbuild environment) to test compilation of a plug-in that is not available. Also added fakesink from the core plugins[2]. * gstreamerbase/src/Makefile_list_of_hg.am_fragment: Added audioconvert plug-in[3] from gst-plugins-base to list of plug-ins to build for gstreamerbasemm. These plug-in additions are just tests to ensure build process works. [1] http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-plugins/html/gst-plugins-bad-plugins-dvbsrc.html [2] http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-fakesink.html [3] http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-plugins/html/gst-plugins-base-plugins-audioconvert.html 2008-11-19 José Alburquerque * examples/media_player_gtkmm/main.cc: Modify example to use GstBase::init() instead of Gst::init() to show that GstBase::init() can be used instead of Gst::init() in some cases. I'm not sure how awkward it will be for developers, but I think it's workable enough so that both distributors and developers feel good about gstreamermm (see yesterday's ChangeLog entries and bug references for context). 2008-11-18 José Alburquerque * INSTALL: Removed warning about certain unsupported linking flags which now are supported. 2008-11-18 José Alburquerque * gstreamer/gstreamermm-0.10.pc.in: * gstreamer/gstreamermm/init.cc: * gstreamer/gstreamermm/init.h: Removed gstreamermm dependency on gstreamerbasemm by not using GstBase::wrap_init() in gstreamermm initialization. Modified init() and init_check() methods so that they only call gst_init() or gst_init_check() only once regardless of how many times the methods are used. * gstreamerbase/gstreamerbasemm/init.cc: * gstreamerbase/gstreamerbasemm/init.h: Added init() and init_check() methods. Modified docs to explain that GstBase::init() and GstBase::init_check() methods can be used to initialize gstreamermm. * gstreamerbase/gstreamerbasemm/wrap_init.h: * gstreamerbase/gstreamerbasemm/gst_wrap_init.h: Modified docs to suggest to use GstBase::init() or GstBase::init_check() methods instead of GstBase::wrap_init() or GstBase::gst_wrap_init(). * tests/test-init-check.cc: * tests/test-init.cc: Modified two tests to ensure that GstBase::init() and GstBase::init_check() initialize both gstreamermm and gstreamerbasemm. Fixes Bug #560601 and Bug #556570 2008-11-18 José Alburquerque * gstreamer/src/task.ccg: * gstreamer/src/task.hg: Used _WRAP_CREATE() to generate create() method. * gstreamerbase/src/audioclock.ccg: * gstreamerbase/src/audioclock.hg: Modified both Gst::Task and GstBase::AudioClock to keep track if a slot was created so that if one has not been created (because an object was wrapped and not created) the delete statement is is not called in the destructor. 2008-11-17 José Alburquerque * configure.ac: * gstreamer/gstreamermm-0.10.pc.in: Restore gstreamermm dependency on gstreamer-base-0.10 because it is in fact needed to build elements like Gst::BaseSrc, Gst::BaseSink and Gst::BaseTransform. 2008-11-15 José Alburquerque * gstreamer/gstreamermm-0.10.pc.in: Also remove gstreamer-base-0.10 from dependency of gstreamermm in pkg-config file (as in last commit). 2008-11-15 José Alburquerque * configure.ac: Remove gstreamer-base-0.10 as dependency of gstreamermm. 2008-11-13 José Alburquerque * tools/extra_defs_gen/generate_plugin_gmmproc_file.cc: Corrected includes. * tools/extra_defs_gen/generate_defs_gst.cc: Added code to generate extra defs for plug-ins. Added `fakesrc' to list of generated types as test. * gstreamer/src/gst_signals.defs: Regenerated extra defs (now includes `fakesrc' plug-in properties/signals). * tests/test-plugin-gen.cc: Modified test to access created plug-in gobjcect and get a known property. * tools/extra_defs_gen/Makefile.am: * gstreamerbase/gstreamerbasemm/Makefile.am: Typos. 2008-11-13 Sebastian Dröge * gstreamerbase/gstreamerbasemm/Makefile.am: Link gstreamerbasemm to gstreamermm as it uses symbols from it. Fixes bug #560600. 2008-11-12 José Alburquerque * tools/extra_defs_gen/generate_plugin_gmmproc_file.cc: Modified so that gen. plugin has create() methods. * tests/test-plugin-gen.cc: Modified test to use Gst::FakeSrc::create() instead of casting. 2008-11-12 José Alburquerque * tools/extra_defs_gen/Makefile.am: * tools/extra_defs_gen/generate_plugin_gmmproc_file.cc: * tools/extra_defs_gen/generate_plugin_hg_file.cc: Renamed generate_plugin_hg_file.cc to generate_plugin_gmmproc_file.cc. Modified it to generate both .hg and .ccg files. Made it generate basic stuff (class declaration, simple class docs and a *_get_type() function which is needed for compilation). * build_shared/Makefile_gensrc.am_fragment: Also made build process use plugin generation tool to generate plugin .ccg file. * gstreamer/src/Makefile.am: * gstreamerbase/src/Makefile.am: Removed .defs extension in declaration of `main_defs =' variable (used to pass the main def that the plugin gen. tool should use). * gstreamer/src/Makefile_list_of_hg.am_fragment: Added `fakesrc.hg' to `files_plugin_hg =' list to test plugin generation. * tests/Makefile.am: * tests/test-plugin-gen.cc: Added minimal test. 2008-11-11 José Alburquerque * tools/extra_defs_gen/Makefile.am: * tools/extra_defs_gen/generate_plugin_hg_file.cc: Added first cut at source generation tool that generates *.hg files from a given plug-in name (same syntax as in gst-inspect) so that additional GStreamer plug-ins like GstFileSrc (see TODO in ogg player example) can have corresponding C++ classes. * tools/extra_defs_gen/generate_defs_gst.cc: * tools/extra_defs_gen/generate_defs_gstbase.cc: Removed unused includes. * build_shared/Makefile_build.am_fragment: * build_shared/Makefile_build_gensrc.am_fragment: * build_shared/Makefile_gensrc.am_fragment: * gstreamer/src/Makefile.am: * gstreamer/src/Makefile_list_of_hg.am_fragment: * gstreamerbase/src/Makefile.am: * gstreamerbase/src/Makefile_list_of_hg.am_fragment: Modified build process to be sensitive to generating source code for additional GStreamer plug-ins that are not public. All that is need is to include the *.hg name (e.g. filesrc.hg) in the `files_plugin_hg =' variable definition of the Makefile_list_of_hg.am_fragment in the branch `src' directory. 2008-11-07 José Alburquerque * gstreamer/src/caps.ccg: * gstreamer/src/caps.hg: * tests/test-caps.cc: Added a set_simple() for C strings (const char*) and modified test to ensure it works. * gstreamer/src/tagsetter.ccg: * gstreamer/src/tagsetter.hg: * tests/test-tagsetter.cc: Added add_tag() for C strings (const char*) and modified test to ensure it works. 2008-11-06 José Alburquerque * gstreamer/gstreamermm/Makefile.am: * gstreamer/gstreamermm/structurevalue.cc: * gstreamer/gstreamermm/structurevalue.h: * gstreamer/src/caps.hg: * gstreamer/src/tagsetter.hg: Remove unneeded Gst::StructureValue classes (used before for setting and getting generic types in methods such as Gst::Caps::set_simple(), Gst::TagList::add() and Gst::TagList::add_tag()). * gstreamer/src/taglist.ccg: * gstreamer/src/taglist.hg: * gstreamer/gstreamermm/taglist.cc: * gstreamer/gstreamermm/taglist.h: Renamed get_tag_size() to size(). Added a non-index get() method for Glib::ValueBase. Replaced the overridden get() methods with index and non-index generic data type get() methods. * tests/test-taglist.cc: Added sections for adding and getting a Glib::Date. Used the index get() method for retrieving the bit rate to ensure that the index get() generic data type method works. 2008-11-05 José Alburquerque * tools/m4/convert_gst.m4: Forgot to commit (commented in last entry). 2008-11-05 José Alburquerque * tools/m4/convert_gst.m4: * gstreamer/gstreamermm/taglist.cc: Corrected Gst::TagList conversions to take a copy of the GstTagList (as is done for Gst::Structure which Gst::TagList derives from). * tests/test-taglist.cc: * tests/test-tagsetter.cc: Added if-else clauses when getting tags to report errors if any. * gstreamer/gstreamermm/object.cc: Used G_LIKELY in floating reference aversion test as suggested in Bug #559209 (RichardF). 2008-11-05 José Alburquerque * INSTALL: Added standard install instructions with specific comment about unsupported linking flags (adapted from patch). Bug #556570 (Deng Xiyue) 2008-11-04 José Alburquerque * gstreamer/gstreamermm/object.cc: Fix the floating reference aversion code so that it checks that the GstObject is floating before referencing it and then sinking it. 2008-11-04 Murray Cumming * gstreamer/src/element.hg: get_factory(): Use refreturn. refresult is not a valid _WRAP_METHOD() parameter. 2008-10-27 José Alburquerque * gstreamer/gstreamermm/taglist.h: * gstreamer/src/taglist.hg: * tests/test-taglist.cc: Moved GstTagList constants to new Gst::Tag namespace. * gstreamer/src/Makefile_list_of_hg.am_fragment: Marked TODO completed. 2008-10-21 José Alburquerque * gstreamerbase/gstreamerbasemm/init.h: * gstreamerbase/gstreamerbasemm/wrap_init.h: * gstreamerbase/gstreamerbasemm/gst_wrap_init.h: Repaired initialization function docs of gstreamerbasemm specifying what needs to be used for initialization and what does not. 2008-10-16 José Alburquerque * gstreamer/src/Makefile.am: * gstreamerbase/src/Makefile.am: Added docs xml files to list of def files so that it is included in release tarballs (not included before). * gstreamer/src/gsterror.defs: Removed unused def file (definitions are already found in gst_enums.defs and gst_methods.defs. 2008-10-15 José Alburquerque * gstreamer/src/gst_signals.defs.patch: Fixed signal defs patch to not add "new-uri" signal of GstURIHandler interface (already generated by extra defs utility). 2008-10-15 José Alburquerque * gstreamer/src/gst_signals.defs: Removed extra "new-uri" signal of GstURIHandler definition (added when the signal patch was applied) because the extra defs generation utility which now generates signals for interfaces already generated it. 2008-10-14 José Alburquerque * gstreamerbase/src/colorbalance.hg: Added extra ref to GstColorBalance signal conversion. * gstreamer/src/plugin.hg: Removed paragraph that was also removed in C API. 2008-10-14 José Alburquerque * gstreamer/src/generate-docs.sh: * gstreamer/src/generate-enums.sh: * gstreamer/src/generate-extra-defs.sh: * gstreamer/src/generate-methods.sh: * gstreamerbase/src/generate-docs.sh: * gstreamerbase/src/generate-enums.sh: * gstreamerbase/src/generate-extra-defs.sh: * gstreamerbase/src/generate-methods.sh: Error proofed generation scripts from directory names with spaces (as best possible) and have them automatically apply patches on generated files where appropriate. * gstreamer/src/gst_docs.xml: * gstreamer/src/gst_enums.defs: * gstreamer/src/gst_methods.defs: * gstreamer/src/gst_signals.defs: * gstreamerbase/src/gstbase_docs.xml: * gstreamerbase/src/gstbase_enums.defs: * gstreamerbase/src/gstbase_methods.defs: * gstreamerbase/src/gstbase_signals.defs: Regenerated defs and docs. * gstreamerbase/src/colorbalance.hg: Wrapped "value-changed" signal. * gstreamer/src/index.hg: Used int instead of gint. 2008-10-12 José Alburquerque * gstreamer/src/xml.hg: Added signal docs. * gstreamer/src/bin.hg: * gstreamer/src/childproxy.hg: * gstreamer/src/clock.hg: * gstreamer/src/element.hg: Corrected typos in virtual method docs. 2008-10-12 José Alburquerque * gstreamer/src/bin.ccg: * gstreamer/src/bin.hg: * gstreamer/src/pipeline.ccg: * gstreamer/src/pipeline.hg: Added create() methods for Gst::Bin and Gst::Pipeline that don't require a name param. * tests/test-create-bin.cc: Modified test to use new create() methods. * gstreamer/src/indexfactory.hg: Renamed make() methods to create_index(). * gstreamer/src/xml.hg: Added create() docs. 2008-10-12 José Alburquerque * gstreamer/src/pad.ccg: * gstreamer/src/pad.hg: Added create() methods without requiring a name param. Added method docs (a couple are still missing); Added signal docs. * tests/Makefile.am: * tests/test-ghost-pad.cc: * tests/test-pad.cc: Rewrote test-pad to test Gst::Pad::create() methods and copied old contents to test-ghost-pad.cc (for future ghost pad test). 2008-10-12 José Alburquerque * gstreamer/src/event.ccg: * gstreamer/src/event.hg: Added Gst::Enums::get_flags(EventType). * gstreamer/src/element.hg: * gstreamer/src/format.hg: * gstreamer/src/message.hg: * gstreamer/src/query.hg: Fixed parameter name typos in Gst::Enum methods. * gstreamer/src/index.ccg: * gstreamer/src/index.hg: * gstreamer/src/gst_others.defs: Handwrote is_readable() and is_writable() and removed definitions in *.defs file. Added method docs.