saperasrc: add server-index and resource-index properties
This commit is contained in:
parent
802e9316d2
commit
94b387cc13
@ -44,7 +44,7 @@ GST_DEBUG_CATEGORY_STATIC (gst_saperasrc_debug);
|
|||||||
gboolean gst_saperasrc_create_objects (GstSaperaSrc * src);
|
gboolean gst_saperasrc_create_objects (GstSaperaSrc * src);
|
||||||
gboolean gst_saperasrc_destroy_objects (GstSaperaSrc * src);
|
gboolean gst_saperasrc_destroy_objects (GstSaperaSrc * src);
|
||||||
|
|
||||||
class SapMyProcessing : public SapProcessing
|
class SapMyProcessing:public SapProcessing
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
SapMyProcessing (SapBuffer * pBuffers, SapProCallback pCallback,
|
SapMyProcessing (SapBuffer * pBuffers, SapProCallback pCallback,
|
||||||
@ -155,12 +155,34 @@ gst_saperasrc_pro_callback (SapProCallbackInfo * pInfo)
|
|||||||
/* TODO: handle buffer */
|
/* TODO: handle buffer */
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
gboolean
|
||||||
gst_saperasrc_init_objects (GstSaperaSrc * src)
|
gst_saperasrc_init_objects (GstSaperaSrc * src)
|
||||||
{
|
{
|
||||||
GST_DEBUG_OBJECT (src, "Resource count: %d", SapManager::GetResourceCount (1,
|
char name[128];
|
||||||
|
|
||||||
|
GST_DEBUG_OBJECT (src, "There are %d servers available",
|
||||||
|
SapManager::GetServerCount ());
|
||||||
|
|
||||||
|
if (!SapManager::GetServerName (src->server_index, name)) {
|
||||||
|
GST_ERROR_OBJECT (src, "Invalid server index %d", src->server_index);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
GST_DEBUG_OBJECT (src, "Trying to open server index %d ('%s')",
|
||||||
|
src->server_index, name);
|
||||||
|
|
||||||
|
GST_DEBUG_OBJECT (src, "Resource count: %d",
|
||||||
|
SapManager::GetResourceCount (src->server_index,
|
||||||
SapManager::ResourceAcq));
|
SapManager::ResourceAcq));
|
||||||
SapLocation loc (1, 0);
|
|
||||||
|
if (!SapManager::GetResourceName (src->server_index, SapManager::ResourceAcq,
|
||||||
|
src->resource_index, name, 128)) {
|
||||||
|
GST_ERROR_OBJECT (src, "Invalid resource index %d", src->resource_index);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
GST_DEBUG_OBJECT (src, "Trying to open resource '%s'", name);
|
||||||
|
|
||||||
|
SapLocation loc (src->server_index, src->resource_index);
|
||||||
src->sap_acq = new SapAcquisition (loc, src->format_file);
|
src->sap_acq = new SapAcquisition (loc, src->format_file);
|
||||||
/* TODO: allow configuring buffer count? */
|
/* TODO: allow configuring buffer count? */
|
||||||
src->sap_buffers = new SapBufferWithTrash (3, src->sap_acq);
|
src->sap_buffers = new SapBufferWithTrash (3, src->sap_acq);
|
||||||
@ -171,6 +193,8 @@ gst_saperasrc_init_objects (GstSaperaSrc * src)
|
|||||||
//src->sap_bayer = new SapBayer(m_Acq, m_Buffers);
|
//src->sap_bayer = new SapBayer(m_Acq, m_Buffers);
|
||||||
src->sap_pro =
|
src->sap_pro =
|
||||||
new SapMyProcessing (src->sap_buffers, gst_saperasrc_pro_callback, src);
|
new SapMyProcessing (src->sap_buffers, gst_saperasrc_pro_callback, src);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
@ -285,14 +309,14 @@ enum
|
|||||||
PROP_0,
|
PROP_0,
|
||||||
PROP_FORMAT_FILE,
|
PROP_FORMAT_FILE,
|
||||||
PROP_NUM_CAPTURE_BUFFERS,
|
PROP_NUM_CAPTURE_BUFFERS,
|
||||||
PROP_BOARD,
|
PROP_SERVER_INDEX,
|
||||||
PROP_CHANNEL
|
PROP_RESOURCE_INDEX,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define DEFAULT_PROP_FORMAT_FILE ""
|
#define DEFAULT_PROP_FORMAT_FILE ""
|
||||||
#define DEFAULT_PROP_NUM_CAPTURE_BUFFERS 2
|
#define DEFAULT_PROP_NUM_CAPTURE_BUFFERS 2
|
||||||
#define DEFAULT_PROP_BOARD 0
|
#define DEFAULT_PROP_SERVER_INDEX 1
|
||||||
#define DEFAULT_PROP_CHANNEL 0
|
#define DEFAULT_PROP_RESOURCE_INDEX 0
|
||||||
|
|
||||||
/* pad templates */
|
/* pad templates */
|
||||||
|
|
||||||
@ -349,13 +373,15 @@ gst_saperasrc_class_init (GstSaperaSrcClass * klass)
|
|||||||
"Number of capture buffers", 1, G_MAXUINT,
|
"Number of capture buffers", 1, G_MAXUINT,
|
||||||
DEFAULT_PROP_NUM_CAPTURE_BUFFERS,
|
DEFAULT_PROP_NUM_CAPTURE_BUFFERS,
|
||||||
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
|
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
|
||||||
g_object_class_install_property (gobject_class, PROP_BOARD,
|
g_object_class_install_property (gobject_class, PROP_SERVER_INDEX,
|
||||||
g_param_spec_uint ("board", "Board", "Board number", 0, 7,
|
g_param_spec_int ("server-index", "Server index",
|
||||||
DEFAULT_PROP_BOARD,
|
"Server (frame grabber card) index", 0, G_MAXINT,
|
||||||
|
DEFAULT_PROP_SERVER_INDEX,
|
||||||
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
|
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
|
||||||
g_object_class_install_property (gobject_class, PROP_CHANNEL,
|
g_object_class_install_property (gobject_class, PROP_RESOURCE_INDEX,
|
||||||
g_param_spec_uint ("channel", "Channel", "Channel number", 0,
|
g_param_spec_int ("resource-index", "Resource index",
|
||||||
1, DEFAULT_PROP_CHANNEL,
|
"Resource index, such as different ports or configurations", 0,
|
||||||
|
G_MAXINT, DEFAULT_PROP_RESOURCE_INDEX,
|
||||||
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
|
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -433,11 +459,11 @@ gst_saperasrc_set_property (GObject * object, guint property_id,
|
|||||||
src->num_capture_buffers = g_value_get_uint (value);
|
src->num_capture_buffers = g_value_get_uint (value);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PROP_BOARD:
|
case PROP_SERVER_INDEX:
|
||||||
src->board = g_value_get_uint (value);
|
src->server_index = g_value_get_int (value);
|
||||||
break;
|
break;
|
||||||
case PROP_CHANNEL:
|
case PROP_RESOURCE_INDEX:
|
||||||
src->channel = g_value_get_uint (value);
|
src->resource_index = g_value_get_int (value);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||||
@ -461,11 +487,11 @@ gst_saperasrc_get_property (GObject * object, guint property_id,
|
|||||||
case PROP_NUM_CAPTURE_BUFFERS:
|
case PROP_NUM_CAPTURE_BUFFERS:
|
||||||
g_value_set_uint (value, src->num_capture_buffers);
|
g_value_set_uint (value, src->num_capture_buffers);
|
||||||
break;
|
break;
|
||||||
case PROP_BOARD:
|
case PROP_SERVER_INDEX:
|
||||||
g_value_set_uint (value, src->board);
|
g_value_set_int (value, src->server_index);
|
||||||
break;
|
break;
|
||||||
case PROP_CHANNEL:
|
case PROP_RESOURCE_INDEX:
|
||||||
g_value_set_uint (value, src->channel);
|
g_value_set_int (value, src->resource_index);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||||
@ -532,8 +558,7 @@ gst_saperasrc_start (GstBaseSrc * bsrc)
|
|||||||
}
|
}
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (src, "About to initialize and create Sapera objects");
|
GST_DEBUG_OBJECT (src, "About to initialize and create Sapera objects");
|
||||||
gst_saperasrc_init_objects (src);
|
if (!gst_saperasrc_init_objects (src) || !gst_saperasrc_create_objects (src)) {
|
||||||
if (!gst_saperasrc_create_objects (src)) {
|
|
||||||
GST_ERROR_OBJECT (src, "Failed to create Sapera objects");
|
GST_ERROR_OBJECT (src, "Failed to create Sapera objects");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -56,8 +56,8 @@ struct _GstSaperaSrc
|
|||||||
/* properties */
|
/* properties */
|
||||||
gchar *format_file;
|
gchar *format_file;
|
||||||
guint num_capture_buffers;
|
guint num_capture_buffers;
|
||||||
guint board;
|
gint server_index;
|
||||||
guint channel;
|
gint resource_index;
|
||||||
|
|
||||||
GstBuffer *buffer;
|
GstBuffer *buffer;
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user