void * gstomx_core_new (void *object, GType type) { GOmxCore *core = g_omx_core_new (object); gstomx_get_component_info (core, type); g_omx_core_init (core); return core; }
static void type_instance_init (GTypeInstance *instance, gpointer g_class) { GstOmxBaseFilter21 *self; GstElementClass *element_class; GstOmxBaseFilter21Class *bclass; int i; char srcname[10]; element_class = GST_ELEMENT_CLASS (g_class); bclass = GST_OMX_BASE_FILTER21_CLASS (g_class); self = GST_OMX_BASE_FILTER21 (instance); GST_LOG_OBJECT (self, "begin"); self->gomx = g_omx_core_new (self, g_class); for (i = 0; i < NUM_INPUTS; i++) { sprintf(srcname, "in_%02x", i); self->input_port_index[i] = OMX_VSWMOSAIC_INPUT_PORT_START_INDEX + i; self->in_port[i] = g_omx_core_get_port (self->gomx, srcname, self->input_port_index[i]); self->in_port[i]->omx_allocate = TRUE; self->in_port[i]->share_buffer = FALSE; self->in_port[i]->port_index = self->input_port_index[i]; } self->output_port_index = OMX_VSWMOSAIC_OUTPUT_PORT_START_INDEX; self->out_port = g_omx_core_get_port (self->gomx, "out", self->output_port_index); self->out_port->buffer_alloc = buffer_alloc; self->out_port->omx_allocate = TRUE; self->out_port->share_buffer = FALSE; self->out_port->port_index = self->output_port_index; self->number_eos = 2; self->ready_lock = g_mutex_new (); self->collectpads = gst_collect_pads_new(); gst_collect_pads_set_function(self->collectpads, &collected_pads, self); for (i = 0; i < NUM_INPUTS; i++) { sprintf(srcname, "sink_%02x", i); self->sinkpad[i] = gst_pad_new_from_template (gst_element_class_get_pad_template (element_class, srcname), srcname); gst_pad_set_chain_function (self->sinkpad[i], bclass->pad_chain); gst_pad_set_event_function (self->sinkpad[i], bclass->pad_event); gst_pad_set_setcaps_function (self->sinkpad[i], GST_DEBUG_FUNCPTR (sink_setcaps)); gst_element_add_pad (GST_ELEMENT (self), self->sinkpad[i]); gst_collect_pads_add_pad(self->collectpads, self->sinkpad[i], sizeof(GstCollectData)); } self->srcpad= gst_pad_new_from_template (gst_element_class_get_pad_template (element_class, "src"), "src"); gst_pad_set_activatepush_function (self->srcpad, activate_push); gst_pad_set_setcaps_function (self->srcpad, GST_DEBUG_FUNCPTR (src_setcaps)); gst_element_add_pad (GST_ELEMENT (self), self->srcpad); self->duration = GST_CLOCK_TIME_NONE; self->sink_camera_timestamp = GST_CLOCK_TIME_NONE; self->out_framerate = NULL; GST_LOG_OBJECT (self, "end"); }
static void type_instance_init (GTypeInstance *instance, gpointer g_class) { GstOmxBaseFilter2 *self; GstElementClass *element_class; GstOmxBaseFilter2Class *bclass; int i; char srcname[10]; element_class = GST_ELEMENT_CLASS (g_class); bclass = GST_OMX_BASE_FILTER2_CLASS (g_class); self = GST_OMX_BASE_FILTER2 (instance); GST_LOG_OBJECT (self, "begin"); /* GOmx */ self->gomx = g_omx_core_new (self, g_class); self->in_port = g_omx_core_get_port (self->gomx, "in", 0); self->in_port->omx_allocate = TRUE; self->in_port->share_buffer = FALSE; for (i = 0; i < NUM_OUTPUTS; i++) { sprintf(srcname, "out_%02x", i); self->out_port[i] = g_omx_core_get_port (self->gomx, srcname, 1+i); self->out_port[i]->buffer_alloc = buffer_alloc; self->out_port[i]->omx_allocate = TRUE; self->out_port[i]->share_buffer = FALSE; } self->ready_lock = g_mutex_new (); self->sinkpad = gst_pad_new_from_template (gst_element_class_get_pad_template (element_class, "sink"), "sink"); gst_pad_set_chain_function (self->sinkpad, bclass->pad_chain); gst_pad_set_event_function (self->sinkpad, bclass->pad_event); gst_element_add_pad (GST_ELEMENT (self), self->sinkpad); for (i = 0; i < NUM_OUTPUTS; i++) { sprintf(srcname, "src_%02x", i); self->srcpad[i] = gst_pad_new_from_template (gst_element_class_get_pad_template (element_class, srcname), srcname); gst_pad_set_activatepush_function (self->srcpad[i], activate_push); gst_pad_use_fixed_caps (self->srcpad[i]); gst_element_add_pad (GST_ELEMENT (self), self->srcpad[i]); } self->duration = GST_CLOCK_TIME_NONE; self->input_fields_separately = FALSE; GST_LOG_OBJECT (self, "end"); }
static void type_instance_init (GTypeInstance *instance, gpointer g_class) { GstOmxBaseFilter *self; GstElementClass *element_class; element_class = GST_ELEMENT_CLASS (g_class); self = GST_OMX_BASE_FILTER (instance); GST_LOG_OBJECT (self, "begin"); self->use_timestamps = TRUE; /* GOmx */ { GOmxCore *gomx; self->gomx = gomx = g_omx_core_new (); gomx->object = self; } self->ready_lock = g_mutex_new (); self->sinkpad = gst_pad_new_from_template (gst_element_class_get_pad_template (element_class, "sink"), "sink"); gst_pad_set_chain_function (self->sinkpad, pad_chain); gst_pad_set_event_function (self->sinkpad, pad_event); self->srcpad = gst_pad_new_from_template (gst_element_class_get_pad_template (element_class, "src"), "src"); gst_pad_set_activatepush_function (self->srcpad, activate_push); gst_pad_use_fixed_caps (self->srcpad); gst_element_add_pad (GST_ELEMENT (self), self->sinkpad); gst_element_add_pad (GST_ELEMENT (self), self->srcpad); { const char *tmp; tmp = g_type_get_qdata (G_OBJECT_CLASS_TYPE (g_class), g_quark_from_static_string ("library-name")); self->omx_library = g_strdup (tmp); tmp = g_type_get_qdata (G_OBJECT_CLASS_TYPE (g_class), g_quark_from_static_string ("component-name")); self->omx_component = g_strdup (tmp); } GST_LOG_OBJECT (self, "end"); }
static void type_instance_init (GTypeInstance *instance, gpointer g_class) { GstOmxBaseFilter2 *omx_base; GstOmxBaseVfpc2 *self; char srcname[10]; int i; omx_base = GST_OMX_BASE_FILTER2 (instance); self = GST_OMX_BASE_VFPC2 (instance); omx_base->omx_setup = omx_setup; self->g_class = g_class; gst_pad_set_setcaps_function (omx_base->sinkpad, GST_DEBUG_FUNCPTR (sink_setcaps)); for (i=0; i<NUM_OUTPUTS; i++) gst_pad_set_setcaps_function (omx_base->srcpad[i], GST_DEBUG_FUNCPTR (src_setcaps)); /* free the existing core and ports */ g_omx_core_free (omx_base->gomx); g_omx_port_free (omx_base->in_port); /* create new core and ports */ omx_base->gomx = g_omx_core_new (omx_base, self->g_class); omx_base->in_port = g_omx_core_get_port (omx_base->gomx, "in", OMX_VFPC_INPUT_PORT_START_INDEX); omx_base->in_port->omx_allocate = TRUE; omx_base->in_port->share_buffer = FALSE; omx_base->in_port->always_copy = FALSE; omx_base->in_port->port_index = OMX_VFPC_INPUT_PORT_START_INDEX; for (i=0; i<NUM_OUTPUTS; i++) { g_omx_port_free (omx_base->out_port[i]); sprintf(srcname, "out_%02x", i); omx_base->out_port[i] = g_omx_core_get_port (omx_base->gomx, srcname, OMX_VFPC_OUTPUT_PORT_START_INDEX + i); omx_base->out_port[i]->port_index = OMX_VFPC_OUTPUT_PORT_START_INDEX + i; omx_base->out_port[i]->omx_allocate = TRUE; omx_base->out_port[i]->share_buffer = FALSE; omx_base->out_port[i]->always_copy = FALSE; } }
static void type_instance_init (GTypeInstance *instance, gpointer g_class) { GstOmxBaseFilter *self; GstElementClass *element_class; element_class = GST_ELEMENT_CLASS (g_class); self = GST_OMX_BASE_FILTER (instance); GST_LOG_OBJECT (self, "begin"); self->use_timestamps = TRUE; /* GOmx */ { GOmxCore *gomx; self->gomx = gomx = g_omx_core_new (); gomx->client_data = self; } self->sinkpad = gst_pad_new_from_template (gst_element_class_get_pad_template (element_class, "sink"), "sink"); gst_pad_set_chain_function (self->sinkpad, pad_chain); gst_pad_set_event_function (self->sinkpad, pad_event); self->srcpad = gst_pad_new_from_template (gst_element_class_get_pad_template (element_class, "src"), "src"); gst_pad_set_activatepush_function (self->srcpad, activate_push); gst_pad_use_fixed_caps (self->srcpad); gst_element_add_pad (GST_ELEMENT (self), self->sinkpad); gst_element_add_pad (GST_ELEMENT (self), self->srcpad); self->omx_library = g_strdup (DEFAULT_LIBRARY_NAME); GST_LOG_OBJECT (self, "end"); }
static void type_instance_init (GTypeInstance *instance, gpointer g_class) { GstOmxBaseSrc *self; GstOmxBaseSrcClass *klass; self = GST_OMX_BASE_SRC (instance); klass = GST_OMX_BASE_SRC_CLASS (g_class); GST_LOG_OBJECT (self, "begin"); /* GOmx */ self->gomx = g_omx_core_new (self, g_class); self->gomx->use_timestamps = FALSE; self->out_port = g_omx_core_get_port (self->gomx, "out", klass->out_port_index); self->out_port->buffer_alloc = buffer_alloc; GST_LOG_OBJECT (self, "end"); }
static void type_instance_init (GTypeInstance * instance, gpointer g_class) { GstOmxBaseSrc *self; GstElementClass *element_class; element_class = GST_ELEMENT_CLASS (g_class); self = GST_OMX_BASE_SRC (instance); GST_LOG_OBJECT (self, "begin"); /* GOmx */ { GOmxCore *gomx; self->gomx = gomx = g_omx_core_new (); gomx->client_data = self; } self->omx_library = g_strdup (DEFAULT_LIBRARY_NAME); GST_LOG_OBJECT (self, "end"); }
static void type_instance_init (GTypeInstance *instance, gpointer g_class) { GstOmxBaseSink *self; self = GST_OMX_BASE_SINK (instance); GST_LOG_OBJECT (self, "begin"); /* GOmx */ { GOmxCore *gomx; self->gomx = gomx = g_omx_core_new (); gomx->object = self; } { const char *tmp; tmp = g_type_get_qdata (G_OBJECT_CLASS_TYPE (g_class), g_quark_from_static_string ("library-name")); self->omx_library = g_strdup (tmp); tmp = g_type_get_qdata (G_OBJECT_CLASS_TYPE (g_class), g_quark_from_static_string ("component-name")); self->omx_component = g_strdup (tmp); } { GstPad *sinkpad; self->sinkpad = sinkpad = GST_BASE_SINK_PAD (self); self->base_activatepush = GST_PAD_ACTIVATEPUSHFUNC (sinkpad); gst_pad_set_activatepush_function (sinkpad, activate_push); gst_pad_set_link_function (sinkpad, pad_sink_link); } GST_LOG_OBJECT (self, "end"); }