How to disable WebCam diode programmatically - c#

In my laptop (Dell) strong blue diode light while WebCam use is annoying me.
I was thinking to disable it. Do you know any library or method to turn off this diode light?

I have done this, and it is completely possible without hardware modification on MOST (if not all) Dell webcams compatible with the Dell webcam software.
With older Dell Webcam Center software and drivers (~pre 2008), there is a setting which controls the LED during motion capture and it can be easily changed in the GUI.
For the newer Dell Webcam Central software, I had to use IDA/Cheat Engine/Hex Editor to manually debug and patch the driver DLL file. But this IS possible and only requires changing a couple of jmp instructions.

Related

Lime Video SDK - Windows10 quick sync config

I compiled fine the Samples in Lime Video SDK. On a Windows 7 system works very well but I got error message in a Windows 10 system.
"You are not properly configured for either: A) GPU/IGP Quick Sync B) Software fallback
You may not continue until you fix one option for Quick Sync coding
Press a key to exit"
I don't know what is the problem. I dug the source but not found a solution.
This message simply means that you have not installed the correct Intel HD graphics driver for your OS/CPU combination, or libmfxsw64.dll/so cannot be found in the DLL path, which is the software emulation fallback.
Without the correct device driver or the software fallback DLL/so being loadable, the samples will not be able to run.
What’s the best way to be sure you have drivers setup correctly?
Use either or both of: “MediaSDK System Analyzer“ or ffmpeg with the “-vcodec h264_qsv” option. Sorry for slow response, just noticed this.

DirectShow Virtual Camera does not appear in the list on some configurations

I'm using DirectShow filter as virtual camera (CLSID_VideoInputDeviceCategory). It's working good but some apps/configurations do not display this feed as source. For example on win 8.1 I can see this source in Chrome/Firefox via webrtc. But in win 10 - chrome does not show this source in the list (but FF does). Also adobe flash does not show it in the list everywhere. What is important for me now is to make it available on win 10 /chrome. What may affect on this and how to fix it?
Update
Looks like there are two different sets of filters for x86 and x64. So the poblem with chrome was caused by different architecture. But flash still not detect camera.
DirectShow virtual cameras are only visible to same bitness applications, which consume video capture using DirectShow (or, in some cases, Video for Windows). If you have a bitness problem, you can fix it by building/registering virtual camera for respective bitness. If the application consumes video using Media Foundation, the virtual DirectShow camera won't bee seen/accessible. Applicability of Virtual DirectShow Sources blog post explains this a bit further and with a picture.
Firefox is supposedly using DirectShow, so it might be a bitness problem.
Another problem might be related to Windows 10 Anniversary Update, which changed behavior of DirectShow sources. You might want to apply a registry fix mentioned here to see if it restores the earlier behavior (to find out whether the experienced issue is related to Anniversary Update changes).

laptop dual video cards - how to programatically detect and/or choose which one is used

We're developing software which uses DirectX for 3D rendering on Windows 7 and later machines, 64-bit C#/.NET code.
We've observed that a number of newer Dell laptops we're testing on have dual video cards. They have the Intel HD 4600 integrated graphics and they also have a faster NVIDIA Quadro card (for example).
By default, out of the box, the Intel graphics are used by the DirectX application. This is done, presumably to preserve battery life. But the performance is noticeably worse than the NVIDIA card.
Using the NVIDIA control panel, the user can control which one is used by default. As soon as the user switches it to use the NVIDIA card, the performance sees a big jump for the better.
So, my question is.... Is there any way to, in code, detect this setting and/or modify it for our application (on install and/or on launch)? Can we detect that for our app the Intel card is being used and if its one of these dual card scenarios, prompt the user and perhaps (if they request it) change the setting for them?
As it is currently we have to walk the users through manually making the change in the NVIDIA control panel.
Anyone else have any experience dealing with this and have any advice on how to proceed?
You could use C# DLL Interop to access functions of the NVML (NVidia Management Libraries) that are part of the GPU Deployment Kit (GDK). NVML includes functions such as the following for enumerating and selecting GPU devices:
nvmlInit()
nvmlDeviceGetPciInfo()
nvmlDeviceGetCount()
nvmlDeviceGetHandleByIndex()
nvmlDeviceGetHandleByPciBusId()
and
nvmlDeviceSetPersistenceMode().
However, many NVML functions require Admin access and a reboot to change settings. So these are only viable if your users are ok with this (perhaps during initial installation).
A better option would be to enumerate the Direct3D devices and select the most appropriate one: Enumerating with DirectX11, and Enumerating with DirectX9.
The answer is you can't, at least with some exceptions.
Laptops that has dual video cards usually comes with a software that switches your currently used card, either manually or automatically. There are others that can automatically detect the need of a software application for larger resources, thus automatically switching to nvidia card.
However, there are a few workarounds for this, please see this thread. In addition, I suggest that you manually set the default graphics card to nvidia for all your laptops in order to eliminate this issue.

Interfacing with a webcam

So I am trying to develop a WPF app that will allow me to turn off the auto zoom and auto focus abilities of my webcam. I'm using the Emgu c# wrapper for opencv and want to be able to do frame differencing without my camera auto focusing when an object comes into the screen.
I have tried looking for an sdk that would allow me to develop something like this but apparently logitech ditched theirs a couple of years ago. I am using an HD pro Webcam c920. I have heard that maybe you can use the dll's that shipped with it to tweak the options but I have no idea how to do this.
Any help would be awesome.
Logitech HD Pro Webcam C920's Zoom, Exposure, Focus can be controlled using DirectShow API. Chances are high that Emgu CV is using DirectShow to capture (always, or as an option), or at least you possibly can set the camera up using DirectShow and the settings would survive restart of streaming sessions.
C920's properties are available using IAMCameraControl interface. It is documented on MSDN for native development, and DirectShow.NET offers respective definitions for .NET.

C# Getting/Setting BIOS Settings?

I work with a Dell XPS M1710. The laptop has lights in the lid, the side speakers, and the front speakers (3 sets of lights that can be individually adjusted) and a light under the mousepad. In the BIOS I can change the color of these lights, at least, each group. Also, I can turn a light on/off under the mousepad, I can't change it's color, just alternate if it's lit. The laptop came with a lot of software from Dell, but I've installed Windows 7 and lost all of their apps, including one that allowed me to change these light colors. Now that Dell's app is gone, I'm interested in making my own C# application to change the color of these 3 sets of lights (I don't particularly care to change the light under the mousepad, I like it off). How would I go about developing an app to retrieve and change these BIOS settings?
We released an SDK for the community:
http://www.dell.com/html/global/xps/lightfx/index.html
(I can say "we" because I worked on it!!)
Offers an extensive library of
functions for building custom effects
using the XPS M1710 LED lights.
Allows you to build custom effects
just by creating a text file with a
few simple XML tags -- even if you
are not an XML programmer.
Includes application programming interface
(API) functions that allow you to
program lighting effects directly
into applications.
Highlights
several sample effects to inspire you
to new heights of creativity.
From what I've been able to find, this hackery is done in SMBIOS.
Looks like this developer figured it out -- he's written a Python GUI on Linux.
I read the source, and he's hooking to dellLEDCtl in libsmbios to do the dirty work. Here's the source, if you can stomach it. The git repo that Dell provided to the community for this stuff is here.
I don't think you're going to get this done completely managed.

Categories