From 20627cc5d5d5da9cab63a884333a94f3ff170ef1 Mon Sep 17 00:00:00 2001 From: David Schleef Date: Mon, 11 Feb 2013 17:39:24 -0800 Subject: [PATCH] mfc: quiet debugging when mfc device doesn't exist Avoid registering the element if the mfc device doesn't work, but allow plugin loading to succeed. --- sys/mfc/gstmfc.c | 2 +- sys/mfc/mfc_decoder/mfc_decoder.c | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/sys/mfc/gstmfc.c b/sys/mfc/gstmfc.c index 79c4de231d..7fb22cee1f 100644 --- a/sys/mfc/gstmfc.c +++ b/sys/mfc/gstmfc.c @@ -39,7 +39,7 @@ plugin_init (GstPlugin * plugin) if (!context) { GST_CAT_DEBUG (GST_CAT_PLUGIN_LOADING, "Failed to initialize MFC decoder context"); - return FALSE; + return TRUE; } mfc_dec_destroy (context); diff --git a/sys/mfc/mfc_decoder/mfc_decoder.c b/sys/mfc/mfc_decoder/mfc_decoder.c index 31b82f91f8..b050ded009 100644 --- a/sys/mfc/mfc_decoder/mfc_decoder.c +++ b/sys/mfc/mfc_decoder/mfc_decoder.c @@ -51,6 +51,7 @@ #include #include #include +#include #include /* For logging */ @@ -279,6 +280,7 @@ struct mfc_dec_context* mfc_dec_create(unsigned int codec) { struct mfc_dec_context *ctx; struct v4l2_capability caps; + struct stat sb; pthread_mutex_lock(&mutex); if (mfc_in_use) { @@ -295,10 +297,17 @@ struct mfc_dec_context* mfc_dec_create(unsigned int codec) GST_ERROR ("Unable to allocate memory for context"); return NULL; } + + if (stat (MFC_PATH, &sb) < 0) { + GST_INFO ("MFC device node doesn't exist, failing quietly"); + free(ctx); + return NULL; + } + GST_INFO ("Opening MFC device node at: %s", MFC_PATH); ctx->fd = open(MFC_PATH, O_RDWR, 0); if (ctx->fd == -1) { - GST_ERROR ("Unable to open MFC device node: %d", errno); + GST_WARNING ("Unable to open MFC device node: %d", errno); free(ctx); return NULL; }