#include <glib.h>
#include <string.h>
#include <endian.h>
+#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
g_free (device_name);
self->buffer_data_fp = g_new (struct pollfd, 1);
- self->buffer_data_file = fopen (filename, "r");
- if (self->buffer_data_file == NULL) {
+ self->buffer_data_fp->fd = open (filename, O_RDONLY | O_NONBLOCK);
+ if (self->buffer_data_fp->fd < 0) {
GST_ERROR_OBJECT (self, "Failed to open buffer %s for device %s.\n",
filename, self->device.name);
g_free (filename);
goto error_pollfd_free;
}
- self->buffer_data_fp->fd = fileno (self->buffer_data_file);
- self->buffer_data_fp->events = POLLIN;
g_free (filename);
+ self->buffer_data_fp->events = POLLIN;
self->configured = TRUE;
/** bytes every buffer will be fixed */
/** restore the iio device */
gst_tensor_src_restore_iio_device (self);
+ close (self->buffer_data_fp->fd);
g_free (self->buffer_data_fp);
- fclose (self->buffer_data_file);
gst_tensors_info_free (&self->tensors_config->info);
g_free (self->tensors_config);
channels_enabled_options channels_enabled; /**< enabling which channels */
guint scan_size; /**< size for a single scan of buffer length 1 */
struct pollfd *buffer_data_fp; /**< pollfd for reading data buffer */
- FILE *buffer_data_file; /**< file pointer for reading data buffer */
guint num_channels_enabled; /**< channels to be enabled */
gboolean merge_channels_data; /**< merge channel data with same type/size */
gboolean is_tensor; /**< False if tensors is used for data */