From bc72e1332cfc81e166c83c90ad63b4b648f19867 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Tue, 31 Jul 2012 13:10:44 +0200 Subject: Split media_device creation and opening Make the media_device refcounted to manage its life time. Signed-off-by: Laurent Pinchart Acked-by: Hans Verkuil Acked-by: Sakari Ailus --- src/main.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index 4a27c8c..8b48fde 100644 --- a/src/main.c +++ b/src/main.c @@ -329,15 +329,20 @@ int main(int argc, char **argv) if (parse_cmdline(argc, argv)) return EXIT_FAILURE; - /* Open the media device and enumerate entities, pads and links. */ + media = media_device_new(media_opts.devname); + if (media == NULL) { + printf("Failed to create media device\n"); + goto out; + } + if (media_opts.verbose) - media = media_open_debug( - media_opts.devname, + media_debug_set_handler(media, (void (*)(void *, ...))fprintf, stdout); - else - media = media_open(media_opts.devname); - if (media == NULL) { - printf("Failed to open %s\n", media_opts.devname); + + /* Enumerate entities, pads and links. */ + ret = media_device_enumerate(media); + if (ret < 0) { + printf("Failed to enumerate %s (%d)\n", media_opts.devname, ret); goto out; } @@ -446,7 +451,7 @@ int main(int argc, char **argv) out: if (media) - media_close(media); + media_device_unref(media); return ret ? EXIT_FAILURE : EXIT_SUCCESS; } -- cgit v1.2.3