X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gst%2Fmfldv4l2cam%2Fgstv4l2camsrc.c;h=b189d9258dee8a518a7a8fc853cd0e6602cc09fa;hb=132d7c47e77627b01c38ddd483c84891f95dfc12;hp=1ce554b00d95783ea913e0b94ec9f57531310897;hpb=87bc9f4e5b3085df12f552ddc0da28f73b58da21;p=adaptation%2Fintel_mfld%2Fgst-plugins-atomisp.git diff --git a/gst/mfldv4l2cam/gstv4l2camsrc.c b/gst/mfldv4l2cam/gstv4l2camsrc.c index 1ce554b..b189d92 100644 --- a/gst/mfldv4l2cam/gstv4l2camsrc.c +++ b/gst/mfldv4l2cam/gstv4l2camsrc.c @@ -51,11 +51,8 @@ #include "gstv4l2camvidorient.h" #include -#include "exifmakernote_main.h" -#include "exifmakernote_util.h" - #define MFLD_ADVCI_PATH "/usr/lib/" -#define MFLD_V4L2CAMSRC_VERSION "5e436697caea9d9d47d31601c4c9b9bf14559d7c" +#define MFLD_V4L2CAMSRC_VERSION "85de990a519ae021f0bf4ec89c0e352ec76f6965" #define FOCUS_POSITION_MIN 0 #define FOCUS_POSITION_MAX 512 @@ -72,6 +69,9 @@ static void gst_v4l2camsrc_get_property (GObject * object, static gboolean gst_v4l2camsrc_unlock (GstCameraSrc * src); static gboolean gst_v4l2camsrc_unlock_stop (GstCameraSrc * src); static gboolean gst_v4l2camsrc_set_zoom (GstCameraSrc * camsrc, gfloat zoom); +static gboolean gst_v4l2camsrc_set_ae_mode (GstCameraSrc * camsrc, int mode); +static gboolean gst_v4l2camsrc_get_ae_mode (GstCameraSrc * camsrc, int *mode); + static gboolean gst_v4l2camsrc_iface_supported (GstImplementsInterface * iface, GType iface_type); static gboolean gst_v4l2camsrc_get_makernote (GstCameraSrc * camsrc, unsigned char *buf, unsigned size); @@ -103,6 +103,7 @@ typedef enum PROP_AE, PROP_AE_METERING_MODE, PROP_AE_WINDOW, + PROP_AE_MODE, PROP_AF, PROP_AF_METERING_MODE, PROP_AF_WINDOW, @@ -127,6 +128,8 @@ typedef enum PROP_DUMP_RAW, PROP_DUMP_IMAGE, PROP_DEBUG_FLAGS, + PROP_DISABLE_LOW_RES_CROP, + PROP_DRAW_CORNER_MARKERS, } GstV4L2CamSrcProperties; @@ -140,6 +143,15 @@ typedef enum #define DEFAULT_DEBUG_FLAGS 0 #define C_FLAGS(v) ((guint) v) + +static const char* surface_string = + "video/x-vaapi-sharing, " + "type = vaapi, " + "width = (int) [ 1, MAX ], " + "height = (int) [ 1, MAX ], " + "framerate = (fraction) [ 0, MAX ]"; + + GType gst_camera_input_sensor_get_type (void) { @@ -179,6 +191,26 @@ gst_camera_ae_metering_mode_get_type(void) } GType +gst_camera_ae_mode_get_type(void) +{ + static GType gst_camera_ae_mode_type = 0; + static GEnumValue gst_camera_ae_mode[] = { + {GST_CAMERA_AE_MODE_AUTO, "AE auto", "auto"}, + {GST_CAMERA_AE_MODE_MANUAL, "AE manual", "manual"}, + {GST_CAMERA_AE_MODE_SHUTTER_PRIORITY, "AE shutter priority", "shutter"}, + {GST_CAMERA_AE_MODE_APERTURE_PRIORITY, "AE aperture priority", "aperture"}, + {0, NULL, NULL}, + }; + + if (G_UNLIKELY (!gst_camera_ae_mode_type)) { + gst_camera_ae_mode_type= + g_enum_register_static ("GstCameraAEMode", + gst_camera_ae_mode); + } + return gst_camera_ae_mode_type; +} + +GType gst_camera_af_metering_mode_get_type(void) { static GType gst_camera_af_metering_mode_type = 0; @@ -587,9 +619,13 @@ gst_v4l2camsrc_get_caps (GstCameraSrc * camsrc) } } + GstStructure * structure = gst_structure_from_string(surface_string, NULL); + gst_caps_append_structure (ret, structure); + v4l2camsrc->probed_caps = gst_caps_ref (ret); - GST_INFO_OBJECT (v4l2camsrc, "probed caps: %" GST_PTR_FORMAT, ret); + GST_INFO_OBJECT(v4l2camsrc, "use GST_DEBUG >= 5 for probed caps"); + GST_LOG_OBJECT (v4l2camsrc, "probed caps: %" GST_PTR_FORMAT, ret); return ret; } @@ -675,6 +711,8 @@ gst_v4l2camsrc_get_all_caps (void) gst_caps_append_structure (caps, structure); } } + structure = gst_structure_from_string(surface_string, NULL); + gst_caps_append_structure (caps, structure); } return gst_caps_ref (caps); @@ -714,7 +752,14 @@ gboolean gst_v4l2camsrc_write_settings (GstCameraSrc * camsrc, GstPhotoSettings * photoconf, gboolean scene_override); gboolean gst_v4l2camsrc_set_flash_mode (GstCameraSrc *camsrc, int value); +gboolean +gst_v4l2camsrc_read_exif (GstCameraSrc *camsrc, + GstCameraControlExifInfo *exif_info); +gboolean +gst_v4l2camsrc_set_strobe_state (GstCameraSrc *camsrc, gboolean state); +gboolean +gst_v4l2camsrc_set_AeAafwindow (GstCameraSrc * camsrc, GstCameraSrc3a_window window); /* * gst_v4l2camsrc_class_init: @@ -780,6 +825,13 @@ gst_v4l2camsrc_class_init (GstMFLDV4l2CamSrcClass * klass) GST_CAMERA_AE_METERING_AUTO, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_AE_MODE, + g_param_spec_enum ("ae-mode", "AE Mode", + "Select AE Mode", + GST_TYPE_CAMERA_AE_MODE, + GST_CAMERA_AE_MODE_AUTO, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_AE_WINDOW, g_param_spec_string("ae-window", "AE Window", "Set AE Window Coordinates in format: x_left=value,x_right=value," @@ -919,6 +971,18 @@ gst_v4l2camsrc_class_init (GstMFLDV4l2CamSrcClass * klass) "Horisontal flip", FALSE, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE)); + g_object_class_install_property (gobject_class, + PROP_DISABLE_LOW_RES_CROP, + g_param_spec_boolean ("disable-low-res-crop", "disable low resolution crop", + "disable software crop on unsupported low resolution frame size", FALSE, + G_PARAM_READWRITE)); + + g_object_class_install_property (gobject_class, + PROP_DRAW_CORNER_MARKERS, + g_param_spec_boolean ("draw-corner-markers", "draw markers in frame corners", + "draw markers in frame corners", FALSE, + G_PARAM_READWRITE)); + camera_class->is_open = GST_DEBUG_FUNCPTR (gst_v4l2camsrc_is_open); camera_class->open = GST_DEBUG_FUNCPTR (gst_v4l2camsrc_open); camera_class->close = GST_DEBUG_FUNCPTR (gst_v4l2camsrc_close); @@ -951,12 +1015,18 @@ gst_v4l2camsrc_class_init (GstMFLDV4l2CamSrcClass * klass) camera_class->get_capabilities = GST_DEBUG_FUNCPTR (gst_v4l2camsrc_get_capabilities); camera_class->set_zoom = GST_DEBUG_FUNCPTR (gst_v4l2camsrc_set_zoom); + camera_class->set_AeAafwindow = GST_DEBUG_FUNCPTR (gst_v4l2camsrc_set_AeAafwindow); + camera_class->set_ae_mode = GST_DEBUG_FUNCPTR (gst_v4l2camsrc_set_ae_mode); + camera_class->get_ae_mode = GST_DEBUG_FUNCPTR (gst_v4l2camsrc_get_ae_mode); + camera_class->get_makernote = GST_DEBUG_FUNCPTR (gst_v4l2camsrc_get_makernote); camera_class->makernote_init = GST_DEBUG_FUNCPTR(gst_v4l2camsrc_makernote_init); camera_class->makernote_deal = GST_DEBUG_FUNCPTR(gst_v4l2camsrc_makernote_deal); camera_class->makernote_uninit = GST_DEBUG_FUNCPTR(gst_v4l2camsrc_makernote_uninit); camera_class->set_flash_mode = GST_DEBUG_FUNCPTR(gst_v4l2camsrc_set_flash_mode); + camera_class->read_exif = GST_DEBUG_FUNCPTR(gst_v4l2camsrc_read_exif); + camera_class->set_strobe_state = GST_DEBUG_FUNCPTR(gst_v4l2camsrc_set_strobe_state); //camera_class->fill_image_tags = GST_DEBUG_FUNCPTR(gst_v4l2camsrc_fill_image_tags); //camera_class->get_preview_image = GST_DEBUG_FUNCPTR(gst_v4l2camsrc_get_preview_image); @@ -973,17 +1043,12 @@ gst_v4l2camsrc_mfldadvci_wrapper_load (GstMFLDV4l2CamSrc * v4l2camsrc) GstV4l2MFLDAdvCI *mfldadvci; mfldadvci = g_new0 (GstV4l2MFLDAdvCI, 1); - gint advci_version; - - int (*init_function) (GstV4l2MFLDAdvCI * mfldadvci); - - wrapper_default_functions_init (mfldadvci); + wrapper_default_link_functions_init(mfldadvci); +#ifdef USE_DYNAMIC_3A if (g_module_supported ()) { gchar *module_file; - module_file = g_module_build_path (MFLD_ADVCI_PATH, "libmfldadvci.so.0"); - GST_DEBUG_OBJECT (v4l2camsrc, "Loading %s", module_file); v4l2camsrc->module = g_module_open (module_file, G_MODULE_BIND_LOCAL); @@ -994,44 +1059,12 @@ gst_v4l2camsrc_mfldadvci_wrapper_load (GstMFLDV4l2CamSrc * v4l2camsrc) v4l2camsrc->module = g_module_open (module_file, G_MODULE_BIND_LOCAL); GST_DEBUG_OBJECT (v4l2camsrc, "Loading %s", module_file); } - - printf("Camera Source Interface version is %d\n", LIBMFLDADVCI_VERSION); - + GST_DEBUG_OBJECT(v4l2camsrc, "Camera Source Interface version is %d\n", LIBMFLDADVCI_VERSION); if (v4l2camsrc->module) { - gboolean ret; - - ret = g_module_symbol (v4l2camsrc->module, "libmfldadvci_init", - (gpointer) & init_function); - - if (ret) { - advci_version = init_function (mfldadvci); - if (advci_version < 0) { - GST_WARNING_OBJECT (v4l2camsrc, "Failed to init libmfldadvci symbol"); - g_module_close (v4l2camsrc->module); - v4l2camsrc->module = NULL; - } else { - if (advci_version != LIBMFLDADVCI_VERSION) { - GST_WARNING_OBJECT (v4l2camsrc, - "libmfldadvci version mismatch with camera source," - "the 3A is disabled, please update your libmfldadvci to %d", - LIBMFLDADVCI_VERSION); - g_module_close (v4l2camsrc->module); - v4l2camsrc->module = NULL; - wrapper_default_functions_init (mfldadvci); - } - } - } else { - GST_WARNING_OBJECT (v4l2camsrc, "libmfldadvci: Init symbol not found"); - g_module_close (v4l2camsrc->module); - v4l2camsrc->module = NULL; - } - } else { - GST_DEBUG_OBJECT (v4l2camsrc, - "libmfldadvci: Opening the module failed: %s", g_module_error ()); + lib_3a_link_functions_init(mfldadvci, v4l2camsrc->module); } - g_free (module_file); - GST_DEBUG_OBJECT (v4l2camsrc, "libmfldadvci: initialized"); } +#endif /* USE_DYNAMIC_3A */ return mfldadvci; } @@ -1045,21 +1078,12 @@ gst_v4l2camsrc_mfldadvci_wrapper_unload (GstMFLDV4l2CamSrc * v4l2camsrc) { GstV4l2MFLDAdvCI *mfldadvci = v4l2camsrc->mfldadvci; - if (v4l2camsrc->module) { - void (*deinit_function) (GstV4l2MFLDAdvCI * mfldadvci); - gboolean ret; - - GST_DEBUG_OBJECT (v4l2camsrc, "Unloading libmfldadvci"); + GST_DEBUG ("mfldadvci unload"); + g_module_close (v4l2camsrc->module); + v4l2camsrc->module = NULL; - ret = g_module_symbol (v4l2camsrc->module, "libmfdladvci_deinit", - (gpointer) & deinit_function); - if (ret) { - deinit_function (mfldadvci); - } - g_module_close (v4l2camsrc->module); - v4l2camsrc->module = NULL; - } g_free (mfldadvci); + } @@ -1096,9 +1120,9 @@ gst_v4l2camsrc_init (GstMFLDV4l2CamSrc * v4l2camsrc, v4l2camsrc->sc_enabled = TRUE; v4l2camsrc->cc_updated = FALSE; v4l2camsrc->gamma_updated = FALSE; - v4l2camsrc->ae_enabled = FALSE; - v4l2camsrc->af_enabled = FALSE; - v4l2camsrc->awb_enabled = FALSE; + v4l2camsrc->ae_enabled = TRUE; + v4l2camsrc->af_enabled = TRUE; + v4l2camsrc->awb_enabled = TRUE; v4l2camsrc->still_af = FALSE; v4l2camsrc->bayer_downscaling = FALSE; v4l2camsrc->tone.gamma = 2.2; @@ -1113,6 +1137,8 @@ gst_v4l2camsrc_init (GstMFLDV4l2CamSrc * v4l2camsrc, v4l2camsrc->dump_image = FALSE; v4l2camsrc->raw_output_size = 0; v4l2camsrc->debug_flags = DEFAULT_DEBUG_FLAGS; + v4l2camsrc->disable_low_res_crop = FALSE; + v4l2camsrc->draw_corner_markers = FALSE; v4l2camsrc->device_mutex = g_mutex_new (); @@ -1120,6 +1146,7 @@ gst_v4l2camsrc_init (GstMFLDV4l2CamSrc * v4l2camsrc, v4l2camsrc->input_sensor = GST_CAMERA_INPUT_SENSOR_PRIMARY; v4l2camsrc->ae_metering_mode = GST_CAMERA_AE_METERING_AUTO; + v4l2camsrc->ae_mode = GST_CAMERA_AE_MODE_AUTO; v4l2camsrc->af_metering_mode = GST_CAMERA_AF_METERING_AUTO; v4l2camsrc->ae_window.x_left = 0; @@ -1167,6 +1194,7 @@ gst_v4l2camsrc_dispose (GObject * object) G_OBJECT_CLASS (parent_class)->dispose (object); libmfld_cam_dispose (); + gst_v4l2camsrc_mfldadvci_wrapper_unload(v4l2camsrc); } @@ -1218,7 +1246,6 @@ gst_v4l2camsrc_set_property (GObject * object, GstStructure *ae_window_param = NULL; char * ctmp = NULL; gboolean parsed = TRUE; - ci_adv_Err r; ctmp = g_malloc0 (60); if (ctmp == NULL) @@ -1267,26 +1294,18 @@ gst_v4l2camsrc_set_property (GObject * object, "y_bottom:%d, y_top:%d, weight:%d.\n", v4l2camsrc->ae_window.x_left,v4l2camsrc->ae_window.x_right, v4l2camsrc->ae_window.y_bottom, v4l2camsrc->ae_window.y_top, - v4l2camsrc->ae_window.y_top); + v4l2camsrc->ae_window.weight); if (v4l2camsrc->ae_metering_mode != GST_CAMERA_AE_METERING_SPOT) { GST_DEBUG_OBJECT(v4l2camsrc,"wrong ae metering mode. set it to spot mode automaticly.\n"); v4l2camsrc->ae_metering_mode = GST_CAMERA_AE_METERING_SPOT; - ci_adv_Err r = v4l2camsrc->mfldadvci->AeSetMeteringMode - ( (ci_adv_AeMeteringMode) v4l2camsrc->ae_metering_mode); - if(r != ci_adv_Success) - { - GST_DEBUG_OBJECT(v4l2camsrc,"set metering mode failed.\n"); - } + v4l2camsrc->mfldadvci->AeSetMeteringMode + ( (advci_ae_metering_mode) v4l2camsrc->ae_metering_mode); } - r = v4l2camsrc->mfldadvci->AeSetWindow ((ci_adv_Window *) (&(v4l2camsrc->ae_window))); - if(r != ci_adv_Success) - { - GST_DEBUG_OBJECT(v4l2camsrc,"ae set window failed due to 3a lib error.\n"); - } + v4l2camsrc->mfldadvci->AeSetWindow ((advci_window *) (&(v4l2camsrc->ae_window))); gst_structure_free (ae_window_param); g_free (ctmp); @@ -1296,13 +1315,19 @@ gst_v4l2camsrc_set_property (GObject * object, case PROP_AE_METERING_MODE: { v4l2camsrc->ae_metering_mode = g_value_get_enum (value); - v4l2camsrc->mfldadvci->AeSetMeteringMode((ci_adv_AeMeteringMode)v4l2camsrc->ae_metering_mode); + v4l2camsrc->mfldadvci->AeSetMeteringMode((advci_ae_metering_mode)v4l2camsrc->ae_metering_mode); + break; + } + case PROP_AE_MODE: + { + v4l2camsrc->ae_mode = g_value_get_enum (value); + v4l2camsrc->mfldadvci->AeSetMode((advci_ae_mode)v4l2camsrc->ae_mode); break; } case PROP_AF_METERING_MODE: { v4l2camsrc->af_metering_mode = g_value_get_enum (value); - v4l2camsrc->mfldadvci->AfSetMeteringMode((ci_adv_AfMeteringMode)v4l2camsrc->af_metering_mode); + v4l2camsrc->mfldadvci->AfSetMeteringMode((advci_af_metering_mode)v4l2camsrc->af_metering_mode); break; } case PROP_AF_WINDOW: @@ -1310,7 +1335,6 @@ gst_v4l2camsrc_set_property (GObject * object, GstStructure *af_window_param = NULL; char * ctmp = NULL; gboolean parsed = TRUE; - ci_adv_Err r; ctmp = g_malloc0 (60); if (ctmp == NULL) @@ -1362,11 +1386,7 @@ gst_v4l2camsrc_set_property (GObject * object, v4l2camsrc->af_window.y_top); - r = v4l2camsrc->mfldadvci->AfSetWindow ((ci_adv_Window *) (&(v4l2camsrc->af_window))); - if(r != ci_adv_Success) - { - GST_DEBUG_OBJECT(v4l2camsrc,"af set window failed due to 3a lib error.\n"); - } + v4l2camsrc->mfldadvci->AfSetWindows (1, (advci_window *) (&(v4l2camsrc->af_window))); gst_structure_free (af_window_param); g_free (ctmp); @@ -1503,6 +1523,12 @@ gst_v4l2camsrc_set_property (GObject * object, case PROP_DEBUG_FLAGS: v4l2camsrc->debug_flags = g_value_get_flags (value); break; + case PROP_DISABLE_LOW_RES_CROP: + v4l2camsrc->disable_low_res_crop = g_value_get_boolean (value); + break; + case PROP_DRAW_CORNER_MARKERS: + v4l2camsrc->draw_corner_markers = g_value_get_boolean (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -1563,6 +1589,9 @@ gst_v4l2camsrc_get_property (GObject * object, case PROP_AE_METERING_MODE: g_value_set_enum (value, v4l2camsrc->ae_metering_mode); break; + case PROP_AE_MODE: + g_value_set_enum (value, v4l2camsrc->ae_mode); + break; case PROP_AE_WINDOW: { GstStructure *tmp = NULL; @@ -1676,6 +1705,12 @@ gst_v4l2camsrc_get_property (GObject * object, case PROP_DEBUG_FLAGS: g_value_set_flags (value, v4l2camsrc->debug_flags); break; + case PROP_DISABLE_LOW_RES_CROP: + g_value_set_boolean (value, v4l2camsrc->disable_low_res_crop); + break; + case PROP_DRAW_CORNER_MARKERS: + g_value_set_boolean (value, v4l2camsrc->draw_corner_markers); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -1735,6 +1770,39 @@ gst_v4l2camsrc_set_zoom (GstCameraSrc * camsrc, gfloat zoom) return ret; } +static gboolean +gst_v4l2camsrc_set_ae_mode(GstCameraSrc * camsrc, int mode) +{ + GstMFLDV4l2CamSrc *v4l2camsrc; + gboolean ret = TRUE; + + v4l2camsrc = GST_V4L2CAMSRC (camsrc); + + if (v4l2camsrc->is_active) { + g_mutex_lock (v4l2camsrc->device_mutex); + v4l2camsrc->ae_metering_mode = *(GstCameraAEMeteringMode *)&mode; + v4l2camsrc->mfldadvci->AeSetMeteringMode((advci_ae_metering_mode)v4l2camsrc->ae_metering_mode); + g_mutex_unlock (v4l2camsrc->device_mutex); + } + + return ret; +} +static gboolean +gst_v4l2camsrc_get_ae_mode(GstCameraSrc * camsrc, int *mode) +{ + GstMFLDV4l2CamSrc *v4l2camsrc; + gboolean ret = TRUE; + + v4l2camsrc = GST_V4L2CAMSRC (camsrc); + + if (v4l2camsrc->is_active) { + g_mutex_lock (v4l2camsrc->device_mutex); + *mode = v4l2camsrc->ae_metering_mode; + g_mutex_unlock (v4l2camsrc->device_mutex); + } + + return ret; +} static gboolean gst_v4l2camsrc_get_makernote (GstCameraSrc * camsrc, unsigned char *buf, unsigned size) @@ -1763,19 +1831,14 @@ static gboolean gst_v4l2camsrc_makernote_init(GstCameraSrc * camsrc, int *handle) { GstMFLDV4l2CamSrc *v4l2camsrc; - ENUM_MAKERNOTE_RET_VAL ret; v4l2camsrc = GST_V4L2CAMSRC (camsrc); GST_DEBUG_OBJECT (v4l2camsrc, "%s, !!!!!!line:%d\n", __func__, __LINE__); num_afwindows = num_grid = 1; num_faces = num_eyes = 0; - ret = makernote_nokia_init(num_afwindows, num_faces, - num_eyes, num_grid, handle, buf_size); - if(ENUM_MAKERNOTE_RET_TRUE != ret) - return FALSE; + return FALSE; - return TRUE; } static gboolean gst_v4l2camsrc_makernote_deal(GstCameraSrc * camsrc, @@ -1785,19 +1848,12 @@ static gboolean gst_v4l2camsrc_makernote_deal(GstCameraSrc * camsrc, int handle) { GstMFLDV4l2CamSrc *v4l2camsrc; - ENUM_MAKERNOTE_RET_VAL ret; v4l2camsrc = GST_V4L2CAMSRC (camsrc); GST_DEBUG_OBJECT (v4l2camsrc, "%s, !!!!!!line:%d\n", __func__, __LINE__); - makernote_util_create(handle, num_afwindows, num_grid, camsrc); // af windows is one, grid for awb is one - - ret = makernote_nokia_copy_buffer(handle, GST_BUFFER_DATA(pmakerbuf), - GST_BUFFER_SIZE(pmakerbuf)); - if(ENUM_MAKERNOTE_RET_TRUE != ret) - return FALSE; + return FALSE; - return TRUE; } static gboolean gst_v4l2camsrc_makernote_uninit(GstCameraSrc * camsrc, @@ -1808,10 +1864,7 @@ static gboolean gst_v4l2camsrc_makernote_uninit(GstCameraSrc * camsrc, v4l2camsrc = GST_V4L2CAMSRC (camsrc); GST_DEBUG_OBJECT (v4l2camsrc, "%s, !!!!!!line:%d\n", __func__, __LINE__); - if(makernote_nokia_uninit(handle) != ENUM_MAKERNOTE_RET_TRUE) - return FALSE; - - return TRUE; + return FALSE; } @@ -1824,10 +1877,10 @@ static gboolean gst_v4l2camsrc_makernote_uninit(GstCameraSrc * camsrc, static gboolean plugin_init (GstPlugin * plugin) { - GST_DEBUG_CATEGORY_INIT (gst_v4l2camsrc_debug, "mfldv4l2camsrc", 0, + GST_DEBUG_CATEGORY_INIT (gst_v4l2camsrc_debug, "camerasrc", 0, "Medfield V4L2 camera source"); - return gst_element_register (plugin, "mfldv4l2camsrc", + return gst_element_register (plugin, "camerasrc", GST_RANK_NONE, GST_TYPE_V4L2CAMSRC); }