+ input_item_t *oitem = p_sys->itemv[i];
+ char *omrl = input_item_GetURI (oitem);
+
+ if (!strcmp (omrl, mrl))
+ {
+ item = oitem;
+ break;
+ }
+ }
+
+ /* Add/Remove old item */
+ if (add && (item == NULL))
+ {
+ char *vnd = decode_property (dev, "ID_VENDOR_ENC");
+ const char *name = udev_device_get_property_value (dev,
+ "ID_V4L_PRODUCT");
+ item = input_item_NewWithType (VLC_OBJECT (sd), mrl,
+ name ? name : "Unnamed",
+ 0, NULL, 0, -1, ITEM_TYPE_CARD);
+ msg_Dbg (sd, "adding %s", mrl);
+ if (item != NULL)
+ {
+ services_discovery_AddItem (sd, item, vnd ? vnd : "Generic");
+ TAB_APPEND (p_sys->itemc, p_sys->itemv, item);
+ }
+ free (vnd);
+ }
+ else if (!add && (item != NULL))
+ {
+ msg_Dbg (sd, "removing %s", mrl);
+ services_discovery_RemoveItem (sd, item);