ext/raw1394/: Implement GstPropertyProbe interface and add "device-name" property...
[platform/upstream/gst-plugins-good.git] / ext / raw1394 / gstdv1394src.h
index 7d384fd..0e750dc 100644 (file)
 
 
 #include <gst/gst.h>
-#include <libraw1394/raw1394.h>
-
+#include <gst/base/gstpushsrc.h>
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
+#include <libraw1394/raw1394.h>
+#ifdef HAVE_LIBIEC61883
+#include <libiec61883/iec61883.h>
+#endif
 
+G_BEGIN_DECLS
 
 #define GST_TYPE_DV1394SRC \
   (gst_dv1394src_get_type())
 #define GST_DV1394SRC(obj) \
   (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DV1394SRC,GstDV1394Src))
 #define GST_DV1394SRC_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_DV1394SRC,GstDV1394Src))
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_DV1394SRC,GstDV1394SrcClass))
 #define GST_IS_DV1394SRC(obj) \
   (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_DV1394SRC))
-#define GST_IS_DV1394SRC_CLASS(obj) \
+#define GST_IS_DV1394SRC_CLASS(klass) \
   (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_DV1394SRC))
 
 typedef struct _GstDV1394Src GstDV1394Src;
 typedef struct _GstDV1394SrcClass GstDV1394SrcClass;
 
 struct _GstDV1394Src {
-  GstElement element;
-
-  GstPad *srcpad;
+  GstPushSrc element;
 
   // consecutive=2, skip=4 will skip 4 frames, then let 2 consecutive ones thru
   gint consecutive;
   gint skip;
   gboolean drop_incomplete;
 
-  int numcards,numports;
-  int card,port,channel;
+  gint num_ports;
+  gint port;
+  gint channel;
+  octlet_t guid;
+  gint avc_node;
+  gboolean use_avc;
 
   struct raw1394_portinfo pinfo[16];
   raw1394handle_t handle;
 
-  gboolean started;
   GstBuffer *buf;
   
   GstBuffer *frame;
-  guint frameSize;
-  guint bytesInFrame;
-  guint frameSequence;
+  guint frame_size;
+  guint frame_rate;
+  guint bytes_in_frame;
+  guint frame_sequence;
+
+  int control_sock[2];
 
-  gboolean negotiated;
+  gchar *uri;
+
+  gchar *device_name;
+
+  gboolean connected;
+  #ifdef HAVE_LIBIEC61883
+  iec61883_dv_fb_t iec61883dv;
+  #endif
 };
 
 struct _GstDV1394SrcClass {
-  GstElementClass parent_class;
+  GstPushSrcClass parent_class;
+
+  /* signal */
+  void (*frame_dropped)  (GstElement *elem);
 };
 
 GType gst_dv1394src_get_type(void);
 
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
+G_END_DECLS
 
 #endif /* __GST_GST1394_H__ */