qtgstreamer:qtgstreamer.git
12 years agoSupport mixed type registrations and enum definitions in codegen, needed for enums.h.
George Kiagiadakis [Tue, 13 Apr 2010 08:45:09 +0000 (11:45 +0300)]
Support mixed type registrations and enum definitions in codegen, needed for enums.h.

12 years agoRemove the headers from the tests and put the class declarations in the cpp files.
George Kiagiadakis [Thu, 1 Apr 2010 14:09:07 +0000 (17:09 +0300)]
Remove the headers from the tests and put the class declarations in the cpp files.

12 years agoAdd wrapper class for GstCaps.
George Kiagiadakis [Thu, 1 Apr 2010 14:02:13 +0000 (17:02 +0300)]
Add wrapper class for GstCaps.

12 years agoAdd wrapper class for GstMiniObject.
George Kiagiadakis [Wed, 31 Mar 2010 15:53:48 +0000 (18:53 +0300)]
Add wrapper class for GstMiniObject.

12 years agoImprove enum assertions generation.
George Kiagiadakis [Wed, 31 Mar 2010 15:47:04 +0000 (18:47 +0300)]
Improve enum assertions generation.
Make it possible to use enums that are not part of some class and make use
of the class name in the gst-style output if the enum belongs to a class.

12 years agoAdd wrapper class for GstStructure.
George Kiagiadakis [Fri, 26 Mar 2010 19:55:21 +0000 (21:55 +0200)]
Add wrapper class for GstStructure.

12 years agoAdd forward declarations for the gstreamer wrapper classes that will be implemented...
George Kiagiadakis [Fri, 26 Mar 2010 19:50:48 +0000 (21:50 +0200)]
Add forward declarations for the gstreamer wrapper classes that will be implemented next.

12 years agoImprove the Value API:
George Kiagiadakis [Thu, 25 Mar 2010 17:11:05 +0000 (19:11 +0200)]
Improve the Value API:
* Add constructor and assignment operator to allow copying a SharedValue to a Value.
* Add QDebug stream operator and remove the dumpContents() method.
* Rename peekNativeObject() to peekGValue().
* Add template init() method.
* Other minor fixes.

12 years agoAdd the most useful methods to the GstObject wrapper class.
George Kiagiadakis [Thu, 25 Mar 2010 14:05:15 +0000 (16:05 +0200)]
Add the most useful methods to the GstObject wrapper class.

12 years agoAdd protected constructors/destructor to all wrapper classes, so that they can only...
George Kiagiadakis [Mon, 22 Mar 2010 14:13:50 +0000 (16:13 +0200)]
Add protected constructors/destructor to all wrapper classes, so that they can only be used with RefPointer.

12 years agoMake use of the code generator.
George Kiagiadakis [Sun, 14 Mar 2010 13:48:15 +0000 (15:48 +0200)]
Make use of the code generator.
Changes include:
* Buildsystem changes to call the code generator.
* Register classes and enums with QGLIB_REGISTER_TYPE.
* QGLIB_GTYPE_WRAPPER becomes QGLIB_WRAPPER and no longer defines
  the member type() method.
* Use GetType<T>() instead of T::type() in GetType<RefPointer<T>>.
* Rename some of the enums in Type::FundamentalType so that they match
  the coding style that the code generator expects.
* Other minor compile fixes.

12 years agoInitial commit of the QtGstreamer helper code generator.
George Kiagiadakis [Sun, 14 Mar 2010 12:37:57 +0000 (14:37 +0200)]
Initial commit of the QtGstreamer helper code generator.

This is a code generator that will parse QtGstreamer's
header files and will produce some extra code:
 * For each QGLIB_REGISTER_TYPE() macro, it will provide its
   QGLIB_REGISTER_TYPE_IMPLEMENTATION() counterpart.
 * For each defined enum, it will generate BOOST_STATIC_ASSERTs
   that will ensure that the values of the enums are exactly
   the same as in Gstreamer. This will help catch enum errors at
   compile time, since all Gstreamer's enums need to be redefined
   in the bindings to avoid exporting the Gstreamer API/ABI.

12 years agoMove the GetType<>() helper template to global.h and improve the macros a bit.
George Kiagiadakis [Sat, 13 Mar 2010 23:03:58 +0000 (01:03 +0200)]
Move the GetType<>() helper template to global.h and improve the macros a bit.

12 years agoAdd the missing find_package(Boost REQUIRED).
George Kiagiadakis [Sat, 13 Mar 2010 23:14:57 +0000 (01:14 +0200)]
Add the missing find_package(Boost REQUIRED).

12 years agoInitial commit of the new code.
George Kiagiadakis [Fri, 5 Mar 2010 18:16:22 +0000 (20:16 +0200)]
Initial commit of the new code.

This mostly acts as a proof of concept for the following implemented features:
 - Generic GValue C++ wrapper.
 - Better support for setting/getting GObject properties.
 - Connection of arbitrary class member functions to GObject signals knowing
   only the signal name as a string, with conversion to/from GValue at compile
   time (using templates) and with actual type checking at runtime.

This is not yet meant to be a replacement for the old code, but it will
slowly evolve into that.

12 years agoDelete old code. Re-writing everything from scratch now.
George Kiagiadakis [Thu, 18 Feb 2010 17:27:57 +0000 (19:27 +0200)]
Delete old code. Re-writing everything from scratch now.

13 years agoRemove extra underscore from header guards to suspend krazy warnings.
George Kiagiadakis [Sat, 15 Aug 2009 11:49:49 +0000 (14:49 +0300)]
Remove extra underscore from header guards to suspend krazy warnings.

13 years agoUse peekNativeObject() to get the native object pointer instead of using m_object...
George Kiagiadakis [Mon, 3 Aug 2009 14:58:10 +0000 (17:58 +0300)]
Use peekNativeObject() to get the native object pointer instead of using m_object and making every class friend with each other.

13 years agoAdd functions for getting the native object in GstObject and GstMiniObject.
George Kiagiadakis [Mon, 3 Aug 2009 13:46:56 +0000 (16:46 +0300)]
Add functions for getting the native object in GstObject and GstMiniObject.
These are useful for combining QtGstreamer with native gstreamer API.

13 years agoAdd a wrapper class for GstMessage.
George Kiagiadakis [Mon, 3 Aug 2009 13:18:53 +0000 (16:18 +0300)]
Add a wrapper class for GstMessage.
Currently supporting only Info/Warning/Error messages.

13 years agoAdd a wrapper class for GstMiniObject.
George Kiagiadakis [Sun, 2 Aug 2009 18:28:19 +0000 (21:28 +0300)]
Add a wrapper class for GstMiniObject.

13 years agoImplement support for dynamic casting between QGstObject subclasses.
George Kiagiadakis [Sun, 2 Aug 2009 16:07:40 +0000 (19:07 +0300)]
Implement support for dynamic casting between QGstObject subclasses.

This adds a new qtgstreamer_cast() template function that takes into account the internal
GType of the object it is casting and appropriately returns NULL if the cast cannot be done.
For example, casting a QGstElement to a QGstPad will fail, but casting a QGstPipeline to
QGstElement and back to QGstPipeline will succeed.

13 years agoRemove QGstElement::currentState() and fix the testcase to work without it.
George Kiagiadakis [Thu, 30 Jul 2009 19:02:18 +0000 (22:02 +0300)]
Remove QGstElement::currentState() and fix the testcase to work without it.
This method is completely wrong in concept it seems...

13 years agoImplement QGstElement::getState() and fix the currentState() convenience method to...
George Kiagiadakis [Thu, 30 Jul 2009 12:23:08 +0000 (15:23 +0300)]
Implement QGstElement::getState() and fix the currentState() convenience method to use getState()
so that it correctly blocks and waits for the state change to happen.

13 years agoQGstStructure: Implement getName, hasName, setName methods.
George Kiagiadakis [Thu, 30 Jul 2009 09:50:46 +0000 (12:50 +0300)]
QGstStructure: Implement getName, hasName, setName methods.

13 years agoImplement the methods: QGstPad::getCaps, QGstPad::setBlocked, QGstElement::syncStateW...
George Kiagiadakis [Thu, 30 Jul 2009 09:44:18 +0000 (12:44 +0300)]
Implement the methods: QGstPad::getCaps, QGstPad::setBlocked, QGstElement::syncStateWithParent, QGstCaps::getSize.

13 years agoRename class QGValue to QGstValue.
George Kiagiadakis [Wed, 29 Jul 2009 17:27:30 +0000 (20:27 +0300)]
Rename class QGValue to QGstValue.

This is because we are making GStreamer bindings, not GObject ones
and QGValue already has much gstreamer-specific functionality.

13 years agoPopulate QGValue with functions to handle the most useful types, including most GstVa...
George Kiagiadakis [Wed, 29 Jul 2009 17:16:50 +0000 (20:16 +0300)]
Populate QGValue with functions to handle the most useful types, including most GstValue types.

13 years agoImplement a wrapper for the GstXOverlay interface.
George Kiagiadakis [Fri, 24 Jul 2009 10:03:12 +0000 (13:03 +0300)]
Implement a wrapper for the GstXOverlay interface.

13 years agoInstall qgstdefinitions.h.
George Kiagiadakis [Wed, 22 Jul 2009 12:51:08 +0000 (15:51 +0300)]
Install qgstdefinitions.h.

13 years agoAdd basic support for GstCaps.
George Kiagiadakis [Wed, 22 Jul 2009 11:35:28 +0000 (14:35 +0300)]
Add basic support for GstCaps.

The api is not as convenient as the C api, because it needs to be usable
without including gstreamer headers and linking to gstreamer, so we can't
expect the user to give us the GType of the caps fields. So, the only way
of constructing QGstCaps for now is the one seen in QtGstreamerTest::capsTest().

13 years agoMove all the forward declarations and typedefs in a separate header to keep the other...
George Kiagiadakis [Wed, 22 Jul 2009 09:31:21 +0000 (12:31 +0300)]
Move all the forward declarations and typedefs in a separate header to keep the other headers clean.

13 years agoAdd a QGValue class, a wrapper for GValue.
George Kiagiadakis [Tue, 21 Jul 2009 18:58:35 +0000 (21:58 +0300)]
Add a QGValue class, a wrapper for GValue.

This class is similar to QVariant and thus I wrote some conversion methods
from/to QVariant, but they will only work with basic types at the moment.
I also changed QGstObject::property and setProperty to use QGValue.

13 years agoWhen destroying a QGstElement, set its state to Null if the underlying GstElement...
George Kiagiadakis [Wed, 22 Jul 2009 12:32:47 +0000 (15:32 +0300)]
When destroying a QGstElement, set its state to Null if the underlying GstElement is going to be deleted.
This is to allow the GstElement to cleanup without requiring the user to set the state explicitly to Null.

13 years agoImplement QGstBin::getByName()
George Kiagiadakis [Mon, 20 Jul 2009 15:04:45 +0000 (18:04 +0300)]
Implement QGstBin::getByName()

13 years agoImplement QGstElement::releaseRequestPad()
George Kiagiadakis [Sun, 19 Jul 2009 12:50:13 +0000 (15:50 +0300)]
Implement QGstElement::releaseRequestPad()

13 years agoImplement QGstPad::direction()
George Kiagiadakis [Sun, 19 Jul 2009 12:21:48 +0000 (15:21 +0300)]
Implement QGstPad::direction()

13 years agoQualify signal arguments with the full namespace to make it possible to connect properly.
George Kiagiadakis [Sun, 19 Jul 2009 11:13:57 +0000 (14:13 +0300)]
Qualify signal arguments with the full namespace to make it possible to connect properly.

13 years agoDisconnect GObject signals properly to avoid crashes in case the underlying GObject...
George Kiagiadakis [Sun, 19 Jul 2009 11:05:58 +0000 (14:05 +0300)]
Disconnect GObject signals properly to avoid crashes in case the underlying GObject is deleted after the the QObject wrapper.

13 years agoAdd signals to QGstElement.
George Kiagiadakis [Sun, 19 Jul 2009 10:30:26 +0000 (13:30 +0300)]
Add signals to QGstElement.

13 years agoAdd basic support for getting bus messages.
George Kiagiadakis [Fri, 17 Jul 2009 18:25:23 +0000 (21:25 +0300)]
Add basic support for getting bus messages.

13 years agoMove to shared pointer architecture.
George Kiagiadakis [Mon, 13 Jul 2009 18:58:08 +0000 (21:58 +0300)]
Move to shared pointer architecture.

All classes now have protected contructors and static functions that act
as constructors returning a QSharedPointer holding the class instance.
All QObject parents where dropped as they don't make sense with this
architecture.

13 years agoAdd basic support for ghost pads.
George Kiagiadakis [Mon, 13 Jul 2009 17:27:57 +0000 (20:27 +0300)]
Add basic support for ghost pads.

13 years agoAdd simple constructor for QGstBin.
George Kiagiadakis [Mon, 13 Jul 2009 16:50:34 +0000 (19:50 +0300)]
Add simple constructor for QGstBin.

13 years agoQGstElementFactory: add methods find() and exists() and constructor/destructor.
George Kiagiadakis [Mon, 13 Jul 2009 13:12:50 +0000 (16:12 +0300)]
QGstElementFactory: add methods find() and exists() and constructor/destructor.

Note: The method exists() does not exist in the gstreamer bindings but it is
useful to have. It is a small wrapper around find() to automatically delete
the created QGstElementFactory if it was created successfully.

13 years agoInstall files.
George Kiagiadakis [Sun, 12 Jul 2009 21:48:54 +0000 (00:48 +0300)]
Install files.

13 years agoFix a bit the element state functions.
George Kiagiadakis [Sun, 12 Jul 2009 21:36:51 +0000 (00:36 +0300)]
Fix a bit the element state functions.

13 years agoAdd basic support for pads.
George Kiagiadakis [Sun, 12 Jul 2009 21:19:35 +0000 (00:19 +0300)]
Add basic support for pads.

13 years agoAdd a simple echo example, which forwards audio from the mic to the speakers.
George Kiagiadakis [Sun, 12 Jul 2009 16:35:10 +0000 (19:35 +0300)]
Add a simple echo example, which forwards audio from the mic to the speakers.

13 years agoAdd wrappers for gst_init().
George Kiagiadakis [Sun, 12 Jul 2009 16:34:37 +0000 (19:34 +0300)]
Add wrappers for gst_init().

13 years agoCleanup resources in the unit test.
George Kiagiadakis [Sun, 12 Jul 2009 16:32:37 +0000 (19:32 +0300)]
Cleanup resources in the unit test.
(doesn't seem to make much difference though...)

13 years agoFix legal stuff.
George Kiagiadakis [Sun, 12 Jul 2009 15:15:55 +0000 (18:15 +0300)]
Fix legal stuff.

13 years agoInitial commit.
George Kiagiadakis [Sun, 12 Jul 2009 15:08:43 +0000 (18:08 +0300)]
Initial commit.