Home | History | Annotate | Download | only in libv4l2

Lines Matching refs:entity

50 static inline unsigned int __media_entity_type(struct media_entity *entity)
52 return entity->info.type & MEDIA_ENT_TYPE_MASK;
77 static struct media_link *__media_entity_add_link(struct media_entity *entity)
79 if (entity->num_links >= entity->max_links) {
80 struct media_link *links = entity->links;
81 unsigned int max_links = entity->max_links * 2;
88 for (i = 0; i < entity->num_links; ++i)
91 entity->max_links = max_links;
92 entity->links = links;
95 return &entity->links[entity->num_links++];
106 struct media_entity *entity = &media->entities[id - 1];
110 links.entity = entity->info.id;
111 links.pads = (struct media_pad_desc*)malloc(entity->info.pads * sizeof(struct media_pad_desc));
112 links.links = (struct media_link_desc*)malloc(entity->info.links * sizeof(struct media_link_desc));
121 for (i = 0; i < entity->info.pads; ++i) {
122 entity->pads[i].entity = entity;
123 entity->pads[i].index = links.pads[i].index;
124 entity->pads[i].flags = links.pads[i].flags;
127 for (i = 0; i < entity->info.links; ++i) {
134 source = exynos_media_get_entity_by_id(media, link->source.entity);
135 sink = exynos_media_get_entity_by_id(media, link->sink.entity);
137 ALOGE("WARNING entity %u link %u from %u/%u to %u/%u is invalid!",
138 id, i, link->source.entity,
140 link->sink.entity,
165 static int __media_get_devname_sysfs(struct media_entity *entity)
174 sprintf(sysname, "/sys/dev/char/%u:%u", entity->info.v4l.major,
175 entity->info.v4l.minor);
188 ret = mknod(devname, 0666 | S_IFCHR, MKDEV(81, entity->info.v4l.minor));
189 strcpy(entity->devname, devname);
217 struct media_entity *entity, *temp_entity;
222 temp_entity = entity = (struct media_entity*)calloc(1, sizeof(struct media_entity));
223 for (id = 0, ret = 0; ; id = entity->info.id) {
227 entity = &media->entities[media->entities_count];
228 memset(entity, 0, sizeof(*entity));
229 entity->fd = -1;
230 entity->info.id = id | MEDIA_ENT_ID_FLAG_NEXT;
231 entity->media = media;
233 ret = ioctl(media->fd, MEDIA_IOC_ENUM_ENTITIES, &entity->info);
244 entity->max_links = entity->info.pads + entity->info.links;
246 entity->pads = (struct media_pad*)malloc(entity->info.pads * sizeof(*entity->pads));
247 entity->links = (struct media_link*)malloc(entity->max_links * sizeof(*entity->links));
248 if (entity->pads == NULL || entity->links == NULL) {
256 if (__media_entity_type(entity) != MEDIA_ENT_T_DEVNODE &&
257 __media_entity_type(entity) != MEDIA_ENT_T_V4L2_SUBDEV)
261 __media_get_devname_sysfs(entity);
349 struct media_entity *entity = &media->entities[i];
351 free(entity->pads);
352 free(entity->links);
353 if (entity->fd != -1)
354 close(entity->fd);
379 for (i = 0; i < pad->entity->num_links; ++i) {
380 struct media_link *link = &pad->entity->links[i];
393 * @brief Find an entity by its name.
395 * @param name - entity name.
398 * Search for an entity with a name equal to @a name.
400 * @return A pointer to the entity if found, or NULL otherwise.
406 struct media_entity *entity;
409 entity = &media->entities[i];
411 if (strncmp(entity->info.name, name, length) == 0)
412 return entity;
419 * @brief Find an entity by its ID.
421 * @param id - entity ID.
423 * Search for an entity with an ID equal to @a id.
425 * @return A pointer to the entity if found, or NULL otherwise.
433 struct media_entity *entity = &media->entities[i];
435 if (entity->info.id == id)
436 return entity;
468 for (i = 0; i < source->entity->num_links; i++) {
469 link = &source->entity->links[i];
471 if (link->source->entity == source->entity &&
473 link->sink->entity == sink->entity &&
478 if (i == source->entity->num_links) {
484 ulink.source.entity = source->entity->info.id;
489 ulink.sink.entity = sink->entity->info.id;
521 struct media_entity *entity = &media->entities[i];
523 for (j = 0; j < entity->num_links; j++) {
524 struct media_link *link = &entity->links[j];
527 link->source->entity != entity)
559 struct media_entity *entity)
569 devnum = makedev(entity->info.v4l.major, entity->info.v4l.minor);
576 strncpy(entityentity->devname));
577 entity->devname[sizeof(entity->devname) - 1] = '\0';
596 struct media_entity *entity)
618 struct media_entity *entity;
628 entity = exynos_media_get_entity_by_name(media, p + 1, end - p - 1);
629 if (entity == NULL)
635 entity = exynos_media_get_entity_by_id(media, entity_id);
636 if (entity == NULL)
648 if (pad >= entity->info.pads)
655 return &entity->pads[pad];
694 for (i = 0; i < source->entity->num_links; i++) {
695 link = &source->entity->links[i];
746 link->source->entity->info.id, link->source->index,
747 link->sink->entity->info.id, link->sink->index,