#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__ */