#ifndef __GST_WESTONIMAGESRC_H__
#define __GST_WESTONIMAGESRC_H__

#include <gst/base/gstbasesrc.h>
#include <gst/gst.h>

G_BEGIN_DECLS

#define GST_TYPE_WESTONIMAGESRC (gst_westonimagesrc_get_type())
#define GST_WESTONIMAGESRC(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_WESTONIMAGESRC, GstWestonImageSrc))
#define GST_WESTONIMAGESRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_WESTONIMAGESRC, GstWestonImageSrcClass))
#define GST_IS_WESTONIMAGESRC(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_WESTONIMAGESRC))
#define GST_IS_WESTONIMAGESRC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_WESTONIMAGESRC))

typedef struct _GstWestonImageSrc GstWestonImageSrc;
typedef struct _GstWestonImageSrcClass GstWestonImageSrcClass;

struct _GstWestonImageSrc {
  GstBaseSrc element;
  GMutex lock;
  GCond cond;
  gboolean running;
  guint timeout_id;
  guint64 offset; // Счетчик отправленных сообщений
  gdouble framerate;
};

struct _GstWestonImageSrcClass {
  GstBaseSrcClass parent_class;
};

GType gst_westonimagesrc_get_type(void);

G_END_DECLS

#endif /* __GST_WESTONIMAGESRC_H__ */
