Welcome Guest ( Log In | Register )


Important

The forums will be closing permanently the weekend of March 15th. Please see the notice in the announcements forum for details.

Pages: (2) [1] 2  ( Go to first unread post )
Video Capture Permanently Disabled, How could this happen?
« Next Oldest | Next Newest » Track this topic | Email this topic | Print this topic
andy
  Posted: Dec 26 2012, 08:16 AM


Advanced Member


Group: Members
Posts: 35
Member No.: 35896
Joined: 26-December 12



(Windows 7 64-bit, running 32-bit VirtualDub)

Everything was working great with my USB capture device (EzCAP 148 using this driver). I had success with VLC's Open Capture Device, Debut, and of course VirtualDub.

Then I picked "Device > 0 Microsoft WDM Image Capture (Win32) (VFW)".

The machine immediately bluescreened, and since then I have not been able to get any video out of my EzCAP, not in any application. It acts like there are no available video sources. I can still configure the capture resolution and other such generic settings, but nothing will let me pick a video source, not even the dummy "no video" source that was there before.

Audio still works fine through the device.

I uninstalled and reinstalled all the drivers and applications, but the problem persisted. I did another uninstall, then proceeded to manually scrub the Registry of any and all references to the device (searching for " 2828", part of the chipset name). Still no joy. I even did a System Restore, but to no avail. Video capture appears to be permanently disabled, and it makes absolutely no sense. Nothing came of fooling around with Safe Mode and trying different USB ports.

The problem's not the hardware. I plugged the device into a different computer and it worked fine there.

I know, you'll just say I have terrible drivers, and you'll be right. My question is: How on earth could selecting WDM Image Capture have caused any of this? What could it have corrupted? How can said corruption have survived the uninstalls, the manual Registry purge, and the System Restore? And so on. Also, what can I do to help diagnose this problem?

If no ideas turn up here on this forum, I will be forced to do a complete OS reinstall. As far as I know, I've already tried everything short of that. If you want to maybe help figure out how this problem occurred and how to make sure it never happens again, we'll need to do that before I wipe my disk.
 
     Top
GrofLuigi
Posted: Dec 27 2012, 07:40 AM


Advanced Member


Group: Members
Posts: 148
Member No.: 340
Joined: 22-September 02



Hold the shift key while entering capture mode.

GL
 
     Top
andy
Posted: Dec 27 2012, 07:43 AM


Advanced Member


Group: Members
Posts: 35
Member No.: 35896
Joined: 26-December 12



QUOTE (GrofLuigi @ Dec 27 2012, 07:40 AM)
Hold the shift key while entering capture mode.

GL

Already tried that (saw mention of it elsewhere on the forum), but it does nothing but ensure that the driver's not automatically selected. Manually selecting the driver doesn't succeed in populating the video source selection menu. Thanks anyway. Anything else I could try?
 
     Top
Abrazo
Posted: Dec 27 2012, 02:55 PM


Advanced Member


Group: Members
Posts: 775
Member No.: 28995
Joined: 5-November 10



Sometimes computers have strange behaviour.

A few things to try:

1) If you are using a portable pc, did you already execute a kind of "reset", id est : remove the battery and then holding the power button for about 10 seconds or more.

2) Is the USB capturing device already connected when you start the pc ?
Eventually, start the pc without the capturing device being connected, and plugin it in after the pc has started.

3) When in "capture mode" in VirtualDub, and you do not see the device : exit capture / unplug the USB device / plug it in again / start capture mode again.
 
     Top
andy
Posted: Dec 27 2012, 07:57 PM


Advanced Member


Group: Members
Posts: 35
Member No.: 35896
Joined: 26-December 12



QUOTE (Abrazo @ Dec 27 2012, 02:55 PM)
1) If you are using a portable pc, did you already execute a kind of "reset", id est : remove the battery and then holding the power button for about 10 seconds or more.


Yeah, just tried this. Did nothing, sorry.

QUOTE (Abrazo @ Dec 27 2012, 02:55 PM)
2) Is the USB capturing device already connected when you start the pc ?
Eventually, start the pc without the capturing device being connected, and plugin it in after the pc has started.


Tried both with and without the capturing device attached at power-on. It doesn't affect anything either way.

QUOTE (Abrazo @ Dec 27 2012, 02:55 PM)
3) When in "capture mode" in VirtualDub, and you do not see the device : exit capture / unplug the USB device / plug it in again / start capture mode again.


Tried that too. Also no change.

Any other experiments or diagnostics?

Seriously, why would the VfW capture mode bluescreen the computer, and what could that have corrupted that would prevent any future video captures by any application?
 
     Top
phaeron
Posted: Dec 27 2012, 09:04 PM


Virtualdub Developer


Group: Administrator
Posts: 7773
Member No.: 61
Joined: 30-July 02



QUOTE
Already tried that (saw mention of it elsewhere on the forum), but it does nothing but ensure that the driver's not automatically selected. Manually selecting the driver doesn't succeed in populating the video source selection menu.


Note that you won't have any entries in this list in VirtualDub if you are selecting a (VFW) device. This sub-menu is only populated when using a DirectShow-based capture device.

QUOTE
Seriously, why would the VfW capture mode bluescreen the computer, and what could that have corrupted that would prevent any future video captures by any application?


The bluescreen is due to the kernel-mode capture driver crashing. I've found the Microsoft VFW Image Capture driver to be pretty marginal as well as the Ezonics drivers -- combine the two and you have the potential for fireworks. The MVIC driver is an adapter layer that allows programs using the older Video for Windows interface to use DirectShow capture drivers, which is why it shows up as an oddball and why it tends to be flakier than using the capture drivers directly.

As for the persistent problem, it sounds like the capture driver munged its saved settings, last-used video format being the most likely. VirtualDub itself only applies a change here if a video format was manually saved for that device, so it may have been the Microsoft driver in between that did so.

QUOTE
Thanks anyway. Anything else I could try?


If you can still reconnect to it in VirtualDub in any way, try changing the video format (Video > Set Custom Format). YV12 and I420 would be the formats to try. Use the DirectShow/WDM entry first if it is available, and if you do have that, open the log window to see if it has any graph connection errors. These would give a clue as to what is going on not only in VirtualDub but also in the other capture applications.

Otherwise, you'd likely have to get dirty with Microsoft GraphEdit to manually drop in the capture driver and see what's going on. This is a tool that allows for manually mucking with DirectShow graphs, such as those used by capture programs. If you can't find the capture driver in its filters list, that would be a definite indicator of why the capture device isn't showing up in the other programs.
 
    Top
dloneranger
Posted: Dec 27 2012, 09:35 PM


Moderator


Group: Moderators
Posts: 2366
Member No.: 22158
Joined: 26-September 07



Links for a GraphStudio program - quite a nice one (freeware)
http://code.google.com/p/graph-studio-next.../downloads/list


--------------------
MultiAdjust JoinWav WavNormalize FFMPeg Input Plugin v1827 UnSharpMask
Windows7/8 Codec Chooser
All FccHandlers Stuff inc. Installers for acm codecs AAC, AC3, LameMp3
 
    Top
andy
Posted: Dec 27 2012, 09:48 PM


Advanced Member


Group: Members
Posts: 35
Member No.: 35896
Joined: 26-December 12



QUOTE (phaeron @ Dec 27 2012, 09:04 PM)
Note that you won't have any entries in this list in VirtualDub if you are selecting a (VFW) device. This sub-menu is only populated when using a DirectShow-based capture device.


I have "USB 2828x Device (DirectShow)" selected in the Device menu.

QUOTE (phaeron @ Dec 27 2012, 09:04 PM)
If you can still reconnect to it in VirtualDub in any way, try changing the video format (Video > Set Custom Format). YV12 and I420 would be the formats to try. Use the DirectShow/WDM entry first if it is available, and if you do have that, open the log window to see if it has any graph connection errors. These would give a clue as to what is going on not only in VirtualDub but also in the other capture applications.


Only YUY2 works. The only valid output sizes are {720,640}x480, 720x416, {640,480}x368, 480x272, {352,320}x240, 320x180. I tried 'em all.

The log initially reads:

(cyan) Connected to capture device: USB 2828x Device (DirectShow)
(yellow) CapDShow: Failed to build filter graph: render capture pin (hardware display)(error code: 80040200)

(by the way, I suggest adding copy'n'paste and save to the log)

That last (yellow) line is repeated every time I try to select a custom mode, whether or not it's valid, where validity is defined as the dialog closing without complaining about the mode being unsupported.

I think it goes without saying that none of this causes my device to work, or for the video source menu to populate.

QUOTE (phaeron @ Dec 27 2012, 09:04 PM)
Otherwise, you'd likely have to get dirty with Microsoft GraphEdit to manually drop in the capture driver and see what's going on. This is a tool that allows for manually mucking with DirectShow graphs, such as those used by capture programs. If you can't find the capture driver in its filters list, that would be a definite indicator of why the capture device isn't showing up in the other programs.


GraphEdit shows "Video Capture Sources > USB 2828x Device" in its filter list. It is highlighted red, indicating "Uses Kernel Streaming (KSProxy)". Underneath that is listed DisplayName, Filename, Merit, and pin 00. Let me know if you would like to know more.

Inserting the filter gives me a box with pins labeled Analog Video In, Capture, and VBI (I assume this is Vertical Blank Interval). Right-clicking Capture gives a popup menu with options Render Pin and Pin Properties.

Render Pin gives this error: "Sorry, the Filter Graph cannot render this pin. An invalid media type was specified. (Return code: 0x80040200)"

Pin Properties brings up a Capture Properties dialog listing all those modes I gave earlier. Changing the Output Size has somewhat random effects. Sometimes I can bring the dialog back up and have the same Output Size shown. Sometimes changing it instead causes it to change to some other mode. I'm not sure what's going on there.

For fun, I also tried inserting Microphone (USB Audio Device). That worked without complaint. I could select Render Pin on the Capture pin, and it connected it to Audio Input pin of Default DirectSound Device. Clicking the green "Play" triangle on the toolbar then resulted in my audio playing through the system speakers, though with occasional pops I had not previously experienced.

I could repeat this investigation on the other computer I mentioned, the one I said this capture device works on. The difference is that the other computer runs Windows XP 32-bit, whereas this one runs Windows 7 64-bit. It's also clocked far slower, has one CPU core vice four, and has substantially less RAM.
 
     Top
andy
Posted: Dec 27 2012, 10:02 PM


Advanced Member


Group: Members
Posts: 35
Member No.: 35896
Joined: 26-December 12



QUOTE (dloneranger @ Dec 27 2012, 09:35 PM)
Links for a GraphStudio program - quite a nice one (freeware)


Tried that (actually, used the non-beta 32-bit binary linked from videohelp). I got almost the same results, except with no error messages, just nothing happened when I selected Render Pin on the video source. Manually trying to connect it to a video renderer also resulted in nothing.

Audio worked in GraphStudio, plus it had the same odd pops as in GraphEdit.
 
     Top
phaeron
Posted: Dec 27 2012, 11:50 PM


Virtualdub Developer


Group: Administrator
Posts: 7773
Member No.: 61
Joined: 30-July 02



You can right-click on the log window to copy or save the text.

QUOTE

Render Pin gives this error: "Sorry, the Filter Graph cannot render this pin. An invalid media type was specified. (Return code: 0x80040200)"


Okay, this is the critical problem we need to solve. The filter for your capture device is still installed and active, but this error means that the capture pin isn't outputting a valid video format (!).

What do you see on the tab listing the formats? It should show something like this:
CODE

Major Type:  Video - Sub Type:  UYVY - Format:  UYVY 720x480, 16 bits rcSrc=(0,0,720,480) rcDst=(0,0,720,480)
Major Type:  Video - Sub Type:  UYVY - Format:  UYVY 720x240, 16 bits rcSrc=(0,0,720,240) rcDst=(0,0,720,240)
Major Type:  Video - Sub Type:  UYVY - Format:  UYVY 720x576, 16 bits rcSrc=(0,0,720,576) rcDst=(0,0,720,576)
Major Type:  Video - Sub Type:  UYVY - Format:  UYVY 720x288, 16 bits rcSrc=(0,0,720,288) rcDst=(0,0,720,288)


The error is relating to the Media Type portion. Also, can you manually render the pin? With a YUY2 format, a Color Space Converter after the capture pin should do the trick... after that you can render the CSC's output pin. If that works then we can try dumping out the raw format struct coming out of the pin to see what's up.

 
    Top
andy
Posted: Dec 28 2012, 02:16 AM


Advanced Member


Group: Members
Posts: 35
Member No.: 35896
Joined: 26-December 12



QUOTE (phaeron @ Dec 27 2012, 11:50 PM)
You can right-click on the log window to copy or save the text.


Oh, I thought I had already tried that, but apparently not. Thanks.

QUOTE (phaeron @ Dec 27 2012, 11:50 PM)
What do you see on the tab listing the formats? It should show something like this:
CODE

Major Type:  Video - Sub Type:  UYVY - Format:  UYVY 720x480, 16 bits rcSrc=(0,0,720,480) rcDst=(0,0,720,480)
Major Type:  Video - Sub Type:  UYVY - Format:  UYVY 720x240, 16 bits rcSrc=(0,0,720,240) rcDst=(0,0,720,240)
Major Type:  Video - Sub Type:  UYVY - Format:  UYVY 720x576, 16 bits rcSrc=(0,0,720,576) rcDst=(0,0,720,576)
Major Type:  Video - Sub Type:  UYVY - Format:  UYVY 720x288, 16 bits rcSrc=(0,0,720,288) rcDst=(0,0,720,288)


I'm not sure I know where to go to get exactly that format. The closest thing I was able to find was in GraphStudio (not GraphEdit). The USB 2828x Device Properties dialog has a Capture tab with this information in it:

Type 1 [MEDIATYPE_Video / MEDIASUBTYPE_YUY2]
majortype = MEDIATYPE_Video
subtype = MEDIASUBTYPE_YUY2
formattype = FORMAT_VideoInfo
bFixedSizeSamples = TRUE
bTemporalCompression = FALSE
lSampleSize = 614400
cbFormat = 88
VIDEOINFOHEADER
rcSource = [0, 0, 0, 0]
rcTarget = [0, 0, 0, 0]
dwBitRate = 147456000
dwBitErrorRate = 0
AvgTimePerFrame = 333667
BITMAPINFOHEADER
biSize = 40
biWidth= 640
biHeight = 480
biPlanes = 1
biBitCount = 16
biCompression = 0x32595559 [YUY2]
biSizeImage = 614400
biXPelsPerMeter = 0
biYPelsPerMeter = 0
biClrUsed = 0
biClrImportant = 0

This repeats for a total of fourteen types: seven of which I listed in a previous post, and seven with PAL timings (AvgTimePerFrame = 400000) and line counts (e.g. biHeight = 576). biWidth and biHeight vary, and lSampleSize, dwBitRate, and biSizeImage are multiplicative functions thereof. Everything else is the same across all formats.

I'm troubled by the fact that rcSource and rcTarget are always [0, 0, 0, 0]. If these correspond to rcSrc and rcDst in your example, shouldn't the last two values of each be equal to biWidth and biHeight?

QUOTE (phaeron @ Dec 27 2012, 11:50 PM)
The error is relating to the Media Type portion. Also, can you manually render the pin? With a YUY2 format, a Color Space Converter after the capture pin should do the trick... after that you can render the CSC's output pin. If that works then we can try dumping out the raw format struct coming out of the pin to see what's up.


In GraphEdit, connecting the Capture pin of USB 2828x Device to the Input pin of Color Space Converter gives the error "These filters cannot agree on a connection. Verify type compatibility of input pin and output pin. No combination of intermediate filters could be found to make the connection. (Return code: 0x80040217)". In GraphStudio, this also fails, but there is no error message.

By the way, thanks for taking the time to help walk me through this.
 
     Top
phaeron
Posted: Dec 28 2012, 02:51 AM


Virtualdub Developer


Group: Administrator
Posts: 7773
Member No.: 61
Joined: 30-July 02



QUOTE
I'm troubled by the fact that rcSource and rcTarget are always [0, 0, 0, 0]. If these correspond to rcSrc and rcDst in your example, shouldn't the last two values of each be equal to biWidth and biHeight?


No, that should be fine. (0,0,0,0) is a special case that means whole frame.

Check if you have input pins connected to crossbars. Often, you'll need to do this in order to get the capture filter to actually work. There will likely be a video crossbar and an audio crossbar associated with your capture device -- insert all the ones you find and connect them to the appropriate inputs on the capture filter. Leave the crossbar inputs unconnected as they're special inputs. If you were missing the crossbars, see if you can connect again.

Otherwise, let's see if we can dump the video stream into a file without decoding it: connect the video capture pin to an AVI Splitter and that to a File Writer. If it connects, hit go and run the stream for a while. If all goes well, you should have an AVI file that VirtualDub can read (or at least try to open). That would mean an issue with filter negotation, which could mean a problem with an installed codec. Otherwise, we're back to ground zero with the capture driver.
 
    Top
andy
Posted: Dec 28 2012, 02:53 AM


Advanced Member


Group: Members
Posts: 35
Member No.: 35896
Joined: 26-December 12



For comparison's sake, I just plugged the capture device into my other laptop and fired up GraphEdit and GraphStudio. Things do look different...

In GraphEdit, the filter list shows:

WDM 2828x Capture
DisplayName: ...
Filename: ksproxy.ax
Merit: ...
pin 00:
-> ...
-> type 00:
---> major type: ...
---> subtype: ...
-> ...
-> type 13:
pin 01:
-> ...
-> type 13:
pin 02:
-> ...
-> type 13:
Version: 2

Right-clicking the Capture pin and selecting Render Pin doesn't give any errors. Instead, it is connected to the VMR Input0 pin of a newly-crated Video Renderer. However, I can't get video to display in GraphEdit. It works fine in VirtualDub and other applications, so I'm probably just not using GraphEdit right. The error I get is "This graph can't play. The device is not connected. (Return code: 0x8007048f)".

I'm also able to connect to a Color Space Converter, though it automatically stuffs an AVI Decompressor in the middle. This doesn't help my playback problem though. Also, GraphStudio also fails, though there's no error message. Again, this is surely just me screwing up, since video works everywhere else on this machine.

In GraphStudio, the rcSource and rcTarget values are still [0, 0, 0, 0]. Guess that's normal, then.
 
     Top
andy
Posted: Dec 28 2012, 03:08 AM


Advanced Member


Group: Members
Posts: 35
Member No.: 35896
Joined: 26-December 12



QUOTE (phaeron @ Dec 28 2012, 02:51 AM)
Check if you have input pins connected to crossbars.


Nope, I sure don't. the Crossbar menu item is grayed out. It was there before things went to hell, and it's there currently on my other laptop.

QUOTE (phaeron @ Dec 28 2012, 02:51 AM)
Otherwise, let's see if we can dump the video stream into a file without decoding it: connect the video capture pin to an AVI Splitter and that to a File Writer. If it connects, hit go and run the stream for a while. If all goes well, you should have an AVI file that VirtualDub can read (or at least try to open). That would mean an issue with filter negotiation, which could mean a problem with an installed codec. Otherwise, we're back to ground zero with the capture driver.


I can't connect my capture source to the AVI Splitter. I get the same error I saw before: "These filters cannot agree on a connection. Verify type compatibility of input pin and output pin. No combination of intermediate filters could be found to make the connection. (Return code: 0x80040217)" However, it's worth noting that I get this same error on my other laptop, the one that everything else works on.

Another thing that baffles me is AVI Splitter's lack of an output pin. It only has "input pin". This is true across both laptops, for both GraphEdit and GraphStudio.
 
     Top
phaeron
Posted: Jan 6 2013, 11:24 PM


Virtualdub Developer


Group: Administrator
Posts: 7773
Member No.: 61
Joined: 30-July 02



Sorry for the delay in responding.

I meant "AVI Mux" instead of "AVI Splitter"... but if you no longer have the crossbar filter, then that could be the problem. If you can see it on another machine and you have the DLL on the problematic one, then you can try re-registering it with regsvr32.exe.
 
    Top
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:
20 replies since Dec 26 2012, 08:16 AM Track this topic | Email this topic | Print this topic
Pages: (2) [1] 2 
<< Back to Capture