00001
00002
00003 #ifndef _GSTREAMERMM_BASETRANSFORM_H
00004 #define _GSTREAMERMM_BASETRANSFORM_H
00005
00006
00007 #include <glibmm.h>
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #include <gst/base/gstbasetransform.h>
00031 #include <gstreamermm/element.h>
00032 #include <gstreamermm/pad.h>
00033
00034
00035 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00036 typedef struct _GstBaseTransform GstBaseTransform;
00037 typedef struct _GstBaseTransformClass GstBaseTransformClass;
00038 #endif
00039
00040
00041 namespace Gst
00042 { class BaseTransform_Class; }
00043 namespace Gst
00044 {
00047 const Glib::ustring BASE_TRANSFORM_SINK_NAME = GST_BASE_TRANSFORM_SINK_NAME;
00048
00051 const Glib::ustring BASE_TRANSFORM_SRC_NAME = GST_BASE_TRANSFORM_SRC_NAME;
00052
00156 class BaseTransform
00157 : public Element
00158 {
00159
00160 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00161
00162 public:
00163 typedef BaseTransform CppObjectType;
00164 typedef BaseTransform_Class CppClassType;
00165 typedef GstBaseTransform BaseObjectType;
00166 typedef GstBaseTransformClass BaseClassType;
00167
00168 private: friend class BaseTransform_Class;
00169 static CppClassType basetransform_class_;
00170
00171 private:
00172
00173 BaseTransform(const BaseTransform&);
00174 BaseTransform& operator=(const BaseTransform&);
00175
00176 protected:
00177 explicit BaseTransform(const Glib::ConstructParams& construct_params);
00178 explicit BaseTransform(GstBaseTransform* castitem);
00179
00180 #endif
00181
00182 public:
00183 virtual ~BaseTransform();
00184
00185 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00186 static GType get_type() G_GNUC_CONST;
00187 static GType get_base_type() G_GNUC_CONST;
00188 #endif
00189
00191 GstBaseTransform* gobj() { return reinterpret_cast<GstBaseTransform*>(gobject_); }
00192
00194 const GstBaseTransform* gobj() const { return reinterpret_cast<GstBaseTransform*>(gobject_); }
00195
00197 GstBaseTransform* gobj_copy();
00198
00199 private:
00200
00201
00202 public:
00203
00209 bool is_passthrough();
00210
00220 void set_passthrough(bool passthrough);
00221
00227 bool is_in_place();
00228
00240 void set_in_place(bool in_place);
00241
00249 bool is_qos_enabled();
00250
00258 void set_qos_enabled(bool enabled);
00259
00272 void update_qos(double proportion, ClockTimeDiff diff, ClockTime timestamp);
00273
00286 void set_gap_aware(bool gap_aware);
00287
00290 void lock();
00291
00295 void unlock();
00296
00299 Glib::RefPtr<Gst::Pad> get_sink_pad() const;
00300
00303 Glib::RefPtr<Gst::Pad> get_src_pad() const;
00304
00305 #ifdef GLIBMM_PROPERTIES_ENABLED
00306
00312 Glib::PropertyProxy<bool> property_qos() ;
00313 #endif //#GLIBMM_PROPERTIES_ENABLED
00314
00315 #ifdef GLIBMM_PROPERTIES_ENABLED
00316
00322 Glib::PropertyProxy_ReadOnly<bool> property_qos() const;
00323 #endif //#GLIBMM_PROPERTIES_ENABLED
00324
00325
00326
00327
00328
00329
00330
00331
00332
00333
00334
00338 #ifdef GLIBMM_VFUNCS_ENABLED
00339 virtual Glib::RefPtr<Gst::Caps> transform_caps_vfunc(PadDirection direction, const Glib::RefPtr<Gst::Caps>& caps);
00340 #endif //GLIBMM_VFUNCS_ENABLED
00341
00342
00346 #ifdef GLIBMM_VFUNCS_ENABLED
00347 virtual void fixate_caps_vfunc(PadDirection direction, const Glib::RefPtr<Gst::Caps>& caps, const Glib::RefPtr<Gst::Caps>& othercaps);
00348 #endif //GLIBMM_VFUNCS_ENABLED
00349
00350
00352
00353
00354
00355
00356
00357
00359
00360
00361
00362
00364
00365
00366
00368
00369
00370
00371
00373
00374
00375
00376
00378
00379
00380
00381
00382
00387 #ifdef GLIBMM_VFUNCS_ENABLED
00388 virtual FlowReturn transform_vfunc(const Glib::RefPtr<Gst::Buffer>& inbuf, const Glib::RefPtr<Gst::Buffer>& outbuf);
00389 #endif //GLIBMM_VFUNCS_ENABLED
00390
00391
00395 #ifdef GLIBMM_VFUNCS_ENABLED
00396 virtual FlowReturn transform_ip_vfunc(const Glib::RefPtr<Gst::Buffer>& buf);
00397 #endif //GLIBMM_VFUNCS_ENABLED
00398
00399
00400
00401
00402
00403
00404
00405
00406
00408
00409
00410
00411
00412 public:
00413
00414 public:
00415
00416 #ifdef GLIBMM_VFUNCS_ENABLED
00417 #endif //GLIBMM_VFUNCS_ENABLED
00418
00419 protected:
00420
00421 #ifdef GLIBMM_VFUNCS_ENABLED
00422 #endif //GLIBMM_VFUNCS_ENABLED
00423
00424
00425 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00426 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00427
00428
00429 };
00430
00431 }
00432
00433
00434 namespace Glib
00435 {
00444 Glib::RefPtr<Gst::BaseTransform> wrap(GstBaseTransform* object, bool take_copy = false);
00445 }
00446
00447
00448 #endif
00449