[aravis] buffer: add a per buffer user_data parameter.



commit cf85d476d31378710c6f27e767d01cacee251374
Author: Emmanuel Pacaud <emmanuel gnome org>
Date:   Mon Feb 14 15:18:57 2011 +0100

    buffer: add a per buffer user_data parameter.

 gst/gstaravis.c       |    2 +-
 src/arvbuffer.c       |    4 +++-
 src/arvbuffer.h       |    6 ++++--
 src/arvfakegvcamera.c |    2 +-
 tests/arvcameratest.c |    2 +-
 tests/arvtest.c       |    2 +-
 viewer/arvviewer.c    |    2 +-
 7 files changed, 12 insertions(+), 8 deletions(-)
---
diff --git a/gst/gstaravis.c b/gst/gstaravis.c
index a437215..be5167f 100644
--- a/gst/gstaravis.c
+++ b/gst/gstaravis.c
@@ -143,7 +143,7 @@ gst_aravis_start (GstBaseSrc *src)
 
 	for (i = 0; i < GST_ARAVIS_N_BUFFERS; i++)
 		arv_stream_push_buffer (gst_aravis->stream,
-					arv_buffer_new (gst_aravis->payload, NULL));
+					arv_buffer_new (gst_aravis->payload, NULL, NULL));
 
 	GST_LOG_OBJECT (gst_aravis, "Starting acquisition");
 
diff --git a/src/arvbuffer.c b/src/arvbuffer.c
index 42845d2..a485699 100644
--- a/src/arvbuffer.c
+++ b/src/arvbuffer.c
@@ -40,6 +40,7 @@ static GObjectClass *parent_class = NULL;
  * arv_buffer_new:
  * @size: payload size
  * @preallocated: (transfer none): preallocated memory buffer
+ * @user_data: (transfer none): a pointer to user data associated to this buffer
  *
  * Creates a new buffer for the storage of the video stream images. 
  * The data space can be either preallocated, and the caller is responsible
@@ -48,12 +49,13 @@ static GObjectClass *parent_class = NULL;
  */
 
 ArvBuffer *
-arv_buffer_new (size_t size, void *preallocated)
+arv_buffer_new (size_t size, void *preallocated, void *user_data)
 {
 	ArvBuffer *buffer;
 
 	buffer = g_object_new (ARV_TYPE_BUFFER, NULL);
 	buffer->size = size;
+	buffer->user_data = user_data;
 
 	if (preallocated != NULL) {
 		buffer->is_preallocated = TRUE;
diff --git a/src/arvbuffer.h b/src/arvbuffer.h
index 774d475..a40ad73 100644
--- a/src/arvbuffer.h
+++ b/src/arvbuffer.h
@@ -61,8 +61,10 @@ struct _ArvBuffer {
 	GObject	object;
 
 	size_t size;
-	void *data;
 	gboolean is_preallocated;
+	void *data;
+
+	void *user_data;
 
 	ArvBufferStatus status;
 
@@ -83,7 +85,7 @@ struct _ArvBufferClass {
 
 GType arv_buffer_get_type (void);
 
-ArvBuffer * 		arv_buffer_new 			(size_t size, void *preallocated);
+ArvBuffer * 		arv_buffer_new 			(size_t size, void *preallocated, void *user_data);
 
 G_END_DECLS
 
diff --git a/src/arvfakegvcamera.c b/src/arvfakegvcamera.c
index 5bb1bd6..95dac70 100644
--- a/src/arvfakegvcamera.c
+++ b/src/arvfakegvcamera.c
@@ -125,7 +125,7 @@ arv_fake_gv_camera_thread (void *user_data)
 				g_free (inet_address_string);
 
 				payload = arv_fake_camera_get_payload (gv_camera->camera);
-				image_buffer = arv_buffer_new (payload, NULL);
+				image_buffer = arv_buffer_new (payload, NULL, NULL);
 			}
 
 			arv_fake_camera_wait_for_next_frame (gv_camera->camera);
diff --git a/tests/arvcameratest.c b/tests/arvcameratest.c
index ec71f30..45deadb 100644
--- a/tests/arvcameratest.c
+++ b/tests/arvcameratest.c
@@ -163,7 +163,7 @@ main (int argc, char **argv)
 				      NULL);
 
 		for (i = 0; i < 50; i++)
-			arv_stream_push_buffer (stream, arv_buffer_new (payload, NULL));
+			arv_stream_push_buffer (stream, arv_buffer_new (payload, NULL, NULL));
 
 		arv_camera_set_acquisition_mode (camera, ARV_ACQUISITION_MODE_CONTINUOUS);
 
diff --git a/tests/arvtest.c b/tests/arvtest.c
index c881acf..5f5c60d 100644
--- a/tests/arvtest.c
+++ b/tests/arvtest.c
@@ -192,7 +192,7 @@ main (int argc, char **argv)
 		g_print ("payload size  = %d (0x%x)\n", value, value);
 
 		for (i = 0; i < 30; i++)
-			arv_stream_push_buffer (stream, arv_buffer_new (value, NULL));
+			arv_stream_push_buffer (stream, arv_buffer_new (value, NULL, NULL));
 
 		arv_device_read_register (device, ARV_GVBS_FIRST_STREAM_CHANNEL_PORT, &value);
 		g_print ("stream port = %d (%d)\n", value, arv_gv_stream_get_port (ARV_GV_STREAM (stream)));
diff --git a/viewer/arvviewer.c b/viewer/arvviewer.c
index 0699f77..1dace00 100644
--- a/viewer/arvviewer.c
+++ b/viewer/arvviewer.c
@@ -364,7 +364,7 @@ arv_viewer_select_camera_cb (GtkComboBox *combo_box, ArvViewer *viewer)
 	arv_stream_set_emit_signals (viewer->stream, TRUE);
 	payload = arv_camera_get_payload (viewer->camera);
 	for (i = 0; i < 5; i++)
-		arv_stream_push_buffer (viewer->stream, arv_buffer_new (payload, NULL));
+		arv_stream_push_buffer (viewer->stream, arv_buffer_new (payload, NULL, NULL));
 
 	arv_camera_get_region (viewer->camera, NULL, NULL, &width, &height);
 	pixel_format = arv_camera_get_pixel_format (viewer->camera);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]