1 /* 2 * Copyright © 2006 Eric Jonas <jonas@mit.edu> 3 * Copyright © 2006 Antoine Tremblay <hexa00@gmail.com> 4 * Copyright © 2010 United States Government, Joshua M. Doe <joshua.doe@us.army.mil> 5 * Copyright © 2010 Emmanuel Pacaud <emmanuel@gnome.org> 6 * 7 * This library is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU Library General Public 9 * License as published by the Free Software Foundation; either 10 * version 2 of the License, or (at your option) any later version. 11 * 12 * This library is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * Library General Public License for more details. 16 * 17 * You should have received a copy of the GNU Library General Public 18 * License along with this library; if not, write to the 19 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 20 * Boston, MA 02110-1301, USA. 21 */ 22 23 #ifndef ARV_GST_H 24 #define ARV_GST_H 25 26 #include <gst/gst.h> 27 #include <gst/base/gstpushsrc.h> 28 #include <arv.h> 29 30 G_BEGIN_DECLS 31 32 #define GST_TYPE_ARAVIS (gst_aravis_get_type()) 33 #define GST_ARAVIS(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_ARAVIS,GstAravis)) 34 #define GST_ARAVIS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_ARAVIS,GstAravis)) 35 #define GST_IS_ARAVIS(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_ARAVIS)) 36 #define GST_IS_ARAVIS_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_ARAVIS)) 37 38 typedef struct _GstAravis GstAravis; 39 typedef struct _GstAravisClass GstAravisClass; 40 41 struct _GstAravis { 42 GstPushSrc element; 43 44 char *camera_name; 45 46 double gain; 47 gboolean gain_auto; 48 double exposure_time_us; 49 gboolean exposure_auto; 50 51 gint offset_x; 52 gint offset_y; 53 54 gint h_binning; 55 gint v_binning; 56 gboolean packet_resend; 57 gint num_buffers; 58 59 gint payload; 60 61 guint64 buffer_timeout_us; 62 63 ArvCamera *camera; 64 ArvStream *stream; 65 66 GstCaps *all_caps; 67 GstCaps *fixed_caps; 68 69 guint64 timestamp_offset; 70 guint64 last_timestamp; 71 }; 72 73 struct _GstAravisClass { 74 GstPushSrcClass parent_class; 75 }; 76 77 GType gst_aravis_get_type (void); 78 79 G_END_DECLS 80 81 #endif 82