basetransform.h

Go to the documentation of this file.
00001 // -*- c++ -*-
00002 // Generated by gtkmmproc -- DO NOT MODIFY!
00003 #ifndef _GSTREAMERMM_BASETRANSFORM_H
00004 #define _GSTREAMERMM_BASETRANSFORM_H
00005 
00006 
00007 #include <glibmm.h>
00008 
00009 /* gstreamermm - a C++ wrapper for gstreamer
00010  *
00011  * Copyright 2008 The gstreamermm Development Team
00012  *
00013  * This library is free software; you can redistribute it and/or
00014  * modify it under the terms of the GNU Lesser General Public
00015  * License as published by the Free Software Foundation; either
00016  * version 2.1 of the License, or (at your option) any later version.
00017  *
00018  * This library is distributed in the hope that it will be useful,
00019  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00020  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00021  * Lesser General Public License for more details.
00022  *
00023  * You should have received a copy of the GNU Lesser General Public
00024  * License along with this library; if not, write to the Free
00025  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00026  */
00027 
00028 #include <gst/base/gstbasetransform.h>
00029 #include <gstreamermm/element.h>
00030 #include <gstreamermm/pad.h>
00031 
00032 
00033 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00034 typedef struct _GstBaseTransform GstBaseTransform;
00035 typedef struct _GstBaseTransformClass GstBaseTransformClass;
00036 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00037 
00038 
00039 namespace Gst
00040 { class BaseTransform_Class; } // namespace Gst
00041 namespace Gst
00042 {
00045 const Glib::ustring BASE_TRANSFORM_SINK_NAME = GST_BASE_TRANSFORM_SINK_NAME;
00046 
00049 const Glib::ustring BASE_TRANSFORM_SRC_NAME = GST_BASE_TRANSFORM_SRC_NAME;
00050 
00152 class BaseTransform
00153 : public Element
00154 {
00155   
00156 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00157 
00158 public:
00159   typedef BaseTransform CppObjectType;
00160   typedef BaseTransform_Class CppClassType;
00161   typedef GstBaseTransform BaseObjectType;
00162   typedef GstBaseTransformClass BaseClassType;
00163 
00164 private:  friend class BaseTransform_Class;
00165   static CppClassType basetransform_class_;
00166 
00167 private:
00168   // noncopyable
00169   BaseTransform(const BaseTransform&);
00170   BaseTransform& operator=(const BaseTransform&);
00171 
00172 protected:
00173   explicit BaseTransform(const Glib::ConstructParams& construct_params);
00174   explicit BaseTransform(GstBaseTransform* castitem);
00175 
00176 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00177 
00178 public:
00179   virtual ~BaseTransform();
00180 
00181 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00182   static GType get_type()      G_GNUC_CONST;
00183   static GType get_base_type() G_GNUC_CONST;
00184 #endif
00185 
00187   GstBaseTransform*       gobj()       { return reinterpret_cast<GstBaseTransform*>(gobject_); }
00188 
00190   const GstBaseTransform* gobj() const { return reinterpret_cast<GstBaseTransform*>(gobject_); }
00191 
00193   GstBaseTransform* gobj_copy();
00194 
00195 private:
00196 
00197 
00198 public:
00199   
00205   bool is_passthrough() const;
00206   
00216   void set_passthrough(bool passthrough);
00217   
00223   bool is_in_place() const;
00224   
00236   void set_in_place(bool in_place);
00237   
00245   bool is_qos_enabled() const;
00246   
00254   void set_qos_enabled(bool enabled);
00255   
00268   void update_qos(double proportion, ClockTimeDiff diff, ClockTime timestamp);
00269   
00282   void set_gap_aware(bool gap_aware);
00283 
00286   void lock();
00287 
00291   void unlock();
00292 
00295    Glib::RefPtr<Gst::Pad> get_sink_pad();
00296   Glib::RefPtr<const Gst::Pad> get_sink_pad() const;
00297  
00300    Glib::RefPtr<Gst::Pad> get_src_pad();
00301   Glib::RefPtr<const Gst::Pad> get_src_pad() const;
00302  
00303   #ifdef GLIBMM_PROPERTIES_ENABLED
00304 
00310   Glib::PropertyProxy<bool> property_qos() ;
00311 #endif //#GLIBMM_PROPERTIES_ENABLED
00312 
00313 #ifdef GLIBMM_PROPERTIES_ENABLED
00314 
00320   Glib::PropertyProxy_ReadOnly<bool> property_qos() const;
00321 #endif //#GLIBMM_PROPERTIES_ENABLED
00322 
00323 
00327   #ifdef GLIBMM_VFUNCS_ENABLED
00328   virtual Glib::RefPtr<Gst::Caps> transform_caps_vfunc(PadDirection direction, const Glib::RefPtr<Gst::Caps>& caps);
00329 #endif //GLIBMM_VFUNCS_ENABLED
00330 
00331 
00335   #ifdef GLIBMM_VFUNCS_ENABLED
00336   virtual void fixate_caps_vfunc(PadDirection direction, const Glib::RefPtr<Gst::Caps>& caps, const Glib::RefPtr<Gst::Caps>& othercaps);
00337 #endif //GLIBMM_VFUNCS_ENABLED
00338 
00339 
00340   //TODO: Some boolean vfuncs cause strange incorrect functionality when their
00341   //callbacks return false with the last "return RType()" line.  Make sure this
00342   //one doesn't cause problems and implement later.
00344    //* given caps, calculate the size in bytes of a buffer on the other pad with
00345    //* the given other caps. The default implementation uses
00346    //* get_unit_size_vfunc() and keeps the number of units the same.
00347    //*/
00348   //_WRAP_VFUNC(bool transform_size(PadDirection direction, const Glib::RefPtr<Gst::Caps>& caps, guint size, const Glib::RefPtr<Gst::Caps>& othercaps, guint& othersize), "transform_size")
00349 
00350   //TODO: Some boolean vfuncs cause strange incorrect functionality when their
00351   //callbacks return false with the last "return RType()" line.  Make sure this
00352   //one doesn't cause problems and implement later.
00354    //* unit for the given caps.
00355    //*/
00356   //_WRAP_VFUNC(bool get_unit_size(const Glib::RefPtr<Gst::Caps>& caps, guint& size) const, "get_unit_size")
00357 
00358   //TODO: Some boolean vfuncs cause strange incorrect functionality when their
00359   //callbacks return false with the last "return RType()" line.  Make sure this
00360   //one doesn't cause problems and implement later.
00362    //*/
00363   //_WRAP_VFUNC(bool set_caps(const Glib::RefPtr<Gst::Caps>& incaps, const Glib::RefPtr<Gst::Caps>& outcaps), "set_caps")
00364 
00365   //TODO: Some boolean vfuncs cause strange incorrect functionality when their
00366   //callbacks return false with the last "return RType()" line.  Make sure this
00367   //one doesn't cause problems and implement later.
00369    //* external resources.
00370    //*/
00371   //_WRAP_VFUNC(bool start(), "start")
00372 
00373   //TODO: Some boolean vfuncs cause strange incorrect functionality when their
00374   //callbacks return false with the last "return RType()" line.  Make sure this
00375   //one doesn't cause problems and implement later.
00377    //* external resources.
00378    //*/
00379   //_WRAP_VFUNC(bool stop(), "stop")
00380 
00381  
00383   //TODO: Some boolean vfuncs cause strange incorrect functionality when their
00384   //callbacks return false with the last "return RType()" line.  Make sure this
00385   //one doesn't cause problems and implement later.
00386    //* if the base class should forward the event.
00387    //*/
00388   //_WRAP_VFUNC(bool event(const Glib::RefPtr<Gst::Event>& event), "event")
00389 
00390  
00395   #ifdef GLIBMM_VFUNCS_ENABLED
00396   virtual FlowReturn transform_vfunc(const Glib::RefPtr<Gst::Buffer>& inbuf, const Glib::RefPtr<Gst::Buffer>& outbuf);
00397 #endif //GLIBMM_VFUNCS_ENABLED
00398 
00399 
00403   #ifdef GLIBMM_VFUNCS_ENABLED
00404   virtual FlowReturn transform_ip_vfunc(const Glib::RefPtr<Gst::Buffer>& buf);
00405 #endif //GLIBMM_VFUNCS_ENABLED
00406 
00407 
00408 #ifdef GLIBMM_VFUNCS_ENABLED
00409 
00414   virtual FlowReturn prepare_output_buffer_vfunc(const Glib::RefPtr<Gst::Buffer>& input, int size, const Glib::RefPtr<Gst::Caps>& caps, Glib::RefPtr<Gst::Buffer>& buffer);
00415 #endif //GLIBMM_VFUNCS_ENABLED
00416 
00417   //TODO: Some boolean vfuncs cause strange incorrect functionality when their
00418   //callbacks return false with the last "return RType()" line.  Make sure this
00419   //one doesn't cause problems and implement later.
00421    //*/
00422   //_WRAP_VFUNC(bool src_event(const Glib::RefPtr<Gst::Event>& event), "src_event")
00423 
00428   #ifdef GLIBMM_VFUNCS_ENABLED
00429   virtual void before_transform_vfunc(const Glib::RefPtr<Gst::Buffer>& buffer);
00430 #endif //GLIBMM_VFUNCS_ENABLED
00431 
00432 
00433 protected:
00434 
00435   
00436 public:
00437 
00438 public:
00439   //C++ methods used to invoke GTK+ virtual functions:
00440 #ifdef GLIBMM_VFUNCS_ENABLED
00441 #endif //GLIBMM_VFUNCS_ENABLED
00442 
00443 protected:
00444   //GTK+ Virtual Functions (override these to change behaviour):
00445 #ifdef GLIBMM_VFUNCS_ENABLED
00446 #endif //GLIBMM_VFUNCS_ENABLED
00447 
00448   //Default Signal Handlers::
00449 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00450 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00451 
00452 
00453 };
00454 
00455 } //namespace Gst
00456 
00457 
00458 namespace Glib
00459 {
00468   Glib::RefPtr<Gst::BaseTransform> wrap(GstBaseTransform* object, bool take_copy = false);
00469 }
00470 
00471 
00472 #endif /* _GSTREAMERMM_BASETRANSFORM_H */
00473 

Generated on Wed Aug 19 15:53:13 2009 for gstreamermm by  doxygen 1.5.4