- Main Page
- Modules
- Namespaces
- Classes
- Files

# 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