Home | History | Annotate | Download | only in libv4l2

Lines Matching refs:media

40 #include <media.h>
64 struct media_device *media,
69 media->debug_handler = debug_handler;
70 media->debug_priv = debug_priv;
72 media->debug_handler = __media_debug_default;
73 media->debug_priv = NULL;
99 static int __media_enum_links(struct media_device *media)
105 for (id = 1; id <= media->entities_count; id++) {
106 struct media_entity *entity = &media->entities[id - 1];
114 if (ioctl(media->fd, MEDIA_IOC_ENUM_LINKS, &links) < 0) {
134 source = exynos_media_get_entity_by_id(media, link->source.entity);
135 sink = exynos_media_get_entity_by_id(media, link->sink.entity);
194 static int __media_get_media_fd(const char *filename, struct media_device *media)
203 media->fd = open(filename, O_RDWR, 0);
204 if (media->fd < 0) {
205 ALOGE("Open sysfs media device failed, media->fd: %d", media->fd);
209 ALOGD("%s: media->fd: %d", __func__, media->fd);
211 return media->fd;
215 static int __media_enum_entities(struct media_device *media)
224 size = (media->entities_count + 1) * sizeof(*media->entities);
225 media->entities = (struct media_entity*)realloc(media->entities, size);
227 entity = &media->entities[media->entities_count];
231 entity->media = media;
233 ret = ioctl(media->fd, MEDIA_IOC_ENUM_ENTITIES, &entity->info);
253 media->entities_count++;
275 struct media_device *media;
278 media = (struct media_device *)calloc(1, sizeof(struct media_device));
279 if (media == NULL) {
280 ALOGE("media: %p", media);
284 __media_debug_set_handler(media, debug_handler, debug_priv);
286 ALOGD("%s: Opening media device %s", __func__, filename);
287 ALOGD("%s: media: %p", __func__, media);
289 media->fd = __media_get_media_fd(filename, media);
290 if (media->fd < 0) {
291 exynos_media_close(media);
296 ALOGD("%s: media->fd: %d", __func__, media->fd);
297 ret = __media_enum_entities(media);
301 exynos_media_close(media);
305 ALOGD("%s: Found %u entities", __func__, media->entities_count);
308 ret = __media_enum_links(media);
311 exynos_media_close(media);
315 return media;
319 * @brief Open a media device.
322 * Open the media device referenced by @a filename and enumerate entities, pads and
335 * @brief Close a media device.
336 * @param media - device instance.
338 * Close the @a media device instance and free allocated resources. Access to the
341 void exynos_media_close(struct media_device *media)
345 if (media->fd != -1)
346 close(media->fd);
348 for (i = 0; i < media->entities_count; ++i) {
349 struct media_entity *entity = &media->entities[i];
357 free(media->entities);
358 free(media);
394 * @param media - media device.
402 struct media_entity *exynos_media_get_entity_by_name(struct media_device *media,
408 for (i = 0; i < media->entities_count; ++i) {
409 entity = &media->entities[i];
420 * @param media - media device.
427 struct media_entity *exynos_media_get_entity_by_id(struct media_device *media,
432 for (i = 0; i < media->entities_count; ++i) {
433 struct media_entity *entity = &media->entities[i];
444 * @param media - media device.
458 int exynos_media_setup_link(struct media_device *media,
495 ret = ioctl(media->fd, MEDIA_IOC_SETUP_LINK, &ulink);
508 * @param media - media device.
510 * Disable all links in the media device. This function is usually used after
511 * opening a media device to reset all links to a known state.
515 int exynos_media_reset_links(struct media_device *media)
520 for (i = 0; i < media->entities_count; ++i) {
521 struct media_entity *entity = &media->entities[i];
530 ret = exynos_media_setup_link(media, link->source, link->sink,
604 * @brief Parse string to a pad on the media device.
605 * @param media - media device.
614 struct media_pad *exynos_media_parse_pad(struct media_device *media,
628 entity = exynos_media_get_entity_by_name(media, p + 1, end - p - 1);
635 entity = exynos_media_get_entity_by_id(media, entity_id);
659 * @brief Parse string to a link on the media device.
660 * @param media - media device.
670 struct media_device *media,
680 source = exynos_media_parse_pad(media, p, &end);
688 sink = exynos_media_parse_pad(media, p, &end);
705 * @brief Parse string to a link on the media device and set it up.
706 * @param media - media device.
715 struct media_device *media,
723 link = exynos_media_parse_link(media, p, &end);
750 return exynos_media_setup_link(media, link->source, link->sink, flags);
754 * @brief Parse string to link(s) on the media device and set it up.
755 * @param media - media device.
763 int exynos_media_parse_setup_links(struct media_device *media, const char *p)
769 ret = exynos_media_parse_setup_link(media, p, &end);