PDA

View Full Version : Vdub crash due to corrupted frames. Any solutions?


Stress_analyst
16th May 2003, 19:09
My vdub will crash while previewing a certain m2v file at the same frame all the time. I frame serve with an avs script that performs deinterlacing.

I’m not very familiar with vdub since I’m only using it for checking my scripts, but I know that CCE will crash on this m2v after the first pass without creating an mpv file. If I remove (in my script) those frames that make CCE and vdub to crash then everything is working fine. The m2v is from a digital video recorder.
This is a problem that happens once in a while. I don’ think that this is a hardware issue since the same crash will happened in another PC and at the specific frame. Something in this m2v at that frame/frames (there are about 100 that need to be removed) creates a problem in vdub and CCE. I’m posting the vdub’s crash log file.
I’m trying to understand the problem so I will prevent CCE from crashing during encoding.

If you have an idea please help. Is this a corrupted frame problem and is there a solution besides trimming the video and then the audio?
I saw that others had a similar crash problem but I haven’t read a solution…
Thanks

Log file:

VirtualDub crash report -- build 13719
--------------------------------------

Disassembly:
00486a40: jl 486a01
00486a42: dec ebx
00486a43: add [ecx-128],bl
00486a46: sti
00486a47: jnz 6a5c
00486a4a: test esi,esi
00486a4c: jnz 486a5c
00486a4e: lea eax,[ebp+0fffffdb8h]
00486a54: push eax
00486a55: call dword ptr[0004bbf74h]
00486a5b: pop ecx
00486a5c: cmp byte ptr [ebp+0fffffdb8h],2d
00486a63: jnz 486a72
00486a65: or byte ptr [ebp-3],01
00486a69: lea edi,[ebp+0fffffdb9h]
00486a6f: mov [ebp-8],edi
00486a72: push edi
00486a73: call 488400
00486a78: pop ecx
00486a79: jmp 486c7a
00486a7e: sub eax,00000069
00486a81: jz 486b58
00486a87: sub eax,00000005
00486a8a: jz 486b2e
00486a90: dec eax
00486a91: jz 486b1b
00486a97: dec eax
00486a98: jz 486aeb
00486a9a: sub eax,00000003
00486a9d: jz 4868a0
00486aa3: dec eax
00486aa4: dec eax
00486aa5: jz 486b5c
00486aab: sub eax,00000003
00486aae: jnz 486c7d
00486ab4: mov dword ptr[ebp-44],00000027
00486abb: jmp 486af9
00486abd: sub eax,ecx
00486abf: sar eax,1
00486ac1: jmp 486c7a
00486ac6: test ecx,ecx
00486ac8: jnz 486ad3
00486aca: mov ecx,[0004be114h]
00486ad0: mov [ebp-8],ecx
00486ad3: mov eax,ecx
00486ad5: mov edx,esi
00486ad7: dec esi
00486ad8: test edx,edx
00486ada: jz 486ae4
00486adc: cmp byte ptr [eax],00 <-- FAULT
00486adf: jz 486ae4
00486ae1: inc eax
00486ae2: jmp 486ad5
00486ae4: sub eax,ecx
00486ae6: jmp 486c7a
00486aeb: mov dword ptr[ebp-16],00000008
00486af2: mov dword ptr[ebp-44],00000007
00486af9: test byte ptr [ebp-4],80
00486afd: mov dword ptr[ebp-12],00000010
00486b04: jz 486b63
00486b06: mov al,[ebp-44]
00486b09: mov byte ptr [ebp-22],30
00486b0d: add al,51
00486b0f: mov dword ptr[ebp-28],00000002
00486b16: mov [ebp-21],al
00486b19: jmp 486b63
00486b1b: test byte ptr [ebp-4],80
00486b1f: mov dword ptr[ebp-12],00000008
00486b26: jz 486b63
00486b28: or byte ptr [ebp-3],02
00486b2c: jmp 486b63
00486b2e: lea eax,[ebp+16]
00486b31: push eax
00486b32: call 486e52
00486b37: test byte ptr [ebp-4],20
00486b3b: pop ecx
00486b3c: jz 486b47
00486b3e: mov ax,[eax]

Windows 5.1 (Win2000 build 2600) []

EAX = 20584d4d
EBX = 00041d73
ECX = 20584d4d
EDX = 7fffffff
EBP = 0012f660
DS:ESI = 0023:7ffffffe
ES:EDI = 0023:004a12c6
SS:ESP = 0023:0012f40c
CS:EIP = 001b:00486adc
FS = 003b
GS = 0000
EFLAGS = 00010206

MM0 = 0000000000000000
MM1 = 0000000000000000
MM2 = 0000000000000000
MM3 = 9292919193949493
MM4 = 0000000093949493
MM5 = 0000000000000000
MM6 = 0000000000000000
MM7 = 0000000000000000
Crash reason: Access Violation

Thread 000000b0 (Main thread)
T:\projects\VirtualDub_old\main\Main.cpp(412)
T:\projects\VirtualDub_old\main\Main.cpp(448)
T:\projects\VirtualDub_old\main\Main.cpp(389)
T:\projects\VirtualDub_old\main\Main.cpp(395)
T:\projects\VirtualDub_old\main\Main.cpp(412)
T:\projects\VirtualDub_old\main\Main.cpp(448)
T:\projects\VirtualDub_old\main\Main.cpp(389)
T:\projects\VirtualDub_old\main\Main.cpp(395)
T:\projects\VirtualDub_old\main\Main.cpp(412)
T:\projects\VirtualDub_old\main\Main.cpp(448)
T:\projects\VirtualDub_old\main\Main.cpp(389)
T:\projects\VirtualDub_old\main\Main.cpp(395)
T:\projects\VirtualDub_old\main\Main.cpp(412)
T:\projects\VirtualDub_old\main\Main.cpp(448)
T:\projects\VirtualDub_old\main\Main.cpp(389)
T:\projects\VirtualDub_old\main\Main.cpp(389)


00486adc: _output(0, 0)
77d60b20: USER32!WINNLSGetIMEHotkey(150538, 638840) [77d40000+20589+597]
77f52dbb: ntdll!RtlTimeToTimeFields(77f52e0f, 77f5180b) [77f50000+2a1d+39e]
77f52e0f: ntdll!RtlTimeToTimeFields(77f5180b, 9c3b78) [77f50000+2a1d+3f2]
77f5180b: ntdll!RtlAllocateHeap(9c3b78, 12faf8) [77f50000+16f8+113]
5ad73aa2: uxtheme!IsThemeBackgroundPartiallyTransparent(1, 12f4ac) [5ad70000+37e7+2bb]
77d60292: USER32!DrawFrame(638840, c) [77d40000+20138+15a]
77d5c758: USER32!GetScrollInfo(638840, c) [77d40000+1c6ae+aa]
77d43a5f: USER32!CreateWindowExA(5019e, c) [77d40000+14d4+258b]
77d43b2e: USER32!CreateWindowExA(7ffde000, 12f560) [77d40000+14d4+265a]
77d43c3f: USER32!CreateWindowExA(12f52c, 77d43b42) [77d40000+14d4+276b]
77d43b42: USER32!CreateWindowExA(0, 5019e) [77d40000+14d4+266e]
77d45874: USER32!UserClientDllInitialize(0, 77d5c70e) [77d40000+514b+729]
77d4587f: USER32!UserClientDllInitialize(8, 1bd) [77d40000+514b+734]
77d48fe3: USER32!TranslateAccelerator(638840, c) [77d40000+8f70+73]
77d48ff2: USER32!TranslateAccelerator(0, c) [77d40000+8f70+82]
77f5108f: ntdll!KiUserCallbackDispatcher(12f5f4, 74) [77f50000+107c+13]
004823c4: _vsnprintf(12f678, 4a12c6)
0047f328: _nh_malloc(400, 12f6b0)
00454b83: MyError::vsetf(9c3e18, 3ff)
00455044: MyInternalError::MyInternalError(4a12b4, 12f6c0)
77341d1c: COMCTL32!InitCommonControlsEx(77341c0b, 150c80) [77340000+16c9+653]
77341c0b: COMCTL32!InitCommonControlsEx(150c80, 5019e) [77340000+16c9+542]
773672d6: COMCTL32!ImageList_LoadImageW(5019e, c) [77340000+264b0+e26]
77341d02: COMCTL32!InitCommonControlsEx(5019e, c) [77340000+16c9+639]
77341d14: COMCTL32!InitCommonControlsEx(77341d1c, 5019e) [77340000+16c9+64b]
77341d1c: COMCTL32!InitCommonControlsEx(5019e, 150c80) [77340000+16c9+653]
77d45b51: USER32!IsWindow(5019e, 150c80) [77d40000+5b19+38]
77d45b51: USER32!IsWindow(77341c8d, 77341cc3) [77d40000+5b19+38]
77341c8d: COMCTL32!InitCommonControlsEx(77341cc3, 12f894) [77340000+16c9+5c4]
77341cc3: COMCTL32!InitCommonControlsEx(12f894, 77341c31) [77340000+16c9+5fa]
77341cc3: COMCTL32!InitCommonControlsEx(77d43a5f, 5019e) [77340000+16c9+5fa]
77d43a5f: USER32!CreateWindowExA(5019e, c) [77d40000+14d4+258b]
77d43b2e: USER32!CreateWindowExA(7ffde000, 12f8b4) [77d40000+14d4+265a]
77d43c3f: USER32!CreateWindowExA(12f880, 77d43b42) [77d40000+14d4+276b]
77d43b42: USER32!CreateWindowExA(0, 5019e) [77d40000+14d4+266e]
77d43b42: USER32!CreateWindowExA(77d45874, 0) [77d40000+14d4+266e]
77d45874: USER32!UserClientDllInitialize(0, 77341c31) [77d40000+514b+729]
77d4587f: USER32!UserClientDllInitialize(0, 12f948) [77d40000+514b+734]
77341c8d: COMCTL32!InitCommonControlsEx(1, 12f8dc) [77340000+16c9+5c4]
77d4587f: USER32!UserClientDllInitialize(77d48fe3, 638840) [77d40000+514b+734]
77d48fe3: USER32!TranslateAccelerator(638840, c) [77d40000+8f70+73]
77d48ff2: USER32!TranslateAccelerator(0, c) [77d40000+8f70+82]
77f5108f: ntdll!KiUserCallbackDispatcher(12f948, 78) [77f50000+107c+13]
77d444de: USER32!GetAppCompatFlags2(77d482b1, 5019e) [77d40000+4353+18b]
77d5bb96: USER32!SetWindowTextA(638840, 64d0f8) [77d40000+1bb6c+2a]
77d6274c: USER32!SetDlgItemTextA(5019e, 12fa40) [77d40000+2272d+1f]
0044e3c5: PositionControlUpdateString(401a4, 1f5)
77d43b42: USER32!CreateWindowExA(77d45e1d, 0) [77d40000+14d4+266e]
77d45e1d: USER32!GetWindowThreadProcessId(0, 77341c31) [77d40000+5cbc+161]
77d47076: USER32!SendMessageA(638778, 6519a8) [77d40000+702f+47]
0041b1cb: VideoSourceAVI::_read(12faf8, 495c04)
00410118: DubSource::read(41d00, 1)
0041bf8d: VideoSourceAVI::getFrame(41d40, 1)
77d43c3f: USER32!CreateWindowExA(12fb80, 0) [77d40000+14d4+276b]
77d4419a: USER32!GetWindowLongW(12fb2c, 12fc08) [77d40000+4158+42]
0045a3bc: DisplayFrame(41d40, 77d4702f)
77d43b42: USER32!CreateWindowExA(77d45e1d, 0) [77d40000+14d4+266e]
77d45e1d: USER32!GetWindowThreadProcessId(0, 44d9c9) [77d40000+5cbc+161]
0045c701: MainWndProc(40188, 41d40)
77341d14: COMCTL32!InitCommonControlsEx(12fce8, 7736d3cd) [77340000+16c9+64b]
77341cc3: COMCTL32!InitCommonControlsEx(77d43a5f, 5019e) [77340000+16c9+5fa]
77d43a5f: USER32!CreateWindowExA(5019e, 45c019) [77d40000+14d4+258b]
77d43a5f: USER32!CreateWindowExA(40188, 125) [77d40000+14d4+258b]
77d5c43e: USER32!CallNextHookEx(622a18, 0) [77d40000+1c405+39]
77d43a5f: USER32!CreateWindowExA(40188, 111) [77d40000+14d4+258b]
77d43b2e: USER32!CreateWindowExA(45c019, 40188) [77d40000+14d4+265a]
77d43d6a: USER32!CreateWindowExA(0, 45c019) [77d40000+14d4+2896]
77d43b77: USER32!CreateWindowExA(501f6, 77d45fe3) [77d40000+14d4+26a3]
77d45fe3: USER32!GetParent(77d46015, 0) [77d40000+5fbd+26]
77d46015: USER32!GetParent(0, 12fda8) [77d40000+5fbd+58]
77d441fd: USER32!DispatchMessageA(12ff08, 1) [77d40000+41f2+b]
0045a0b4: WinMain@16(12ff08, 0)
77dd247d: ADVAPI32!RegQueryValueExA(5c, 7ffdebf8) [77dd0000+23d7+a6]
77dd24ac: ADVAPI32!RegQueryValueExA(12feac, 4cbfa0) [77dd0000+23d7+d5]
0048957e: _msize(77f5281e, 77f52827)
77f5281e: ntdll!RtlAcquirePebLock(77f52827, 0) [77f50000+27f6+28]
77f52827: ntdll!RtlAcquirePebLock(0, 20000) [77f50000+27f6+31]
77dd191b: ADVAPI32!RegCloseKey(77f7e21f, 7ffdf000) [77dd0000+189a+81]
77f52837: ntdll!RtlReleasePebLock(77fc6fa0, 77e61a53) [77f50000+2828+f]
77e61a53: kernel32!GetStartupInfoA(40188, 111) [77e60000+177a+2d9]
00482b78: WinMainCRTStartup(400000, 0)
77e7eb69: kernel32!CreateProcessInternalW(0, 1) [77e60000+1d9f2+1177]

-- End of report

fccHandler
17th May 2003, 16:56
Originally posted by Stress_analyst
My vdub will crash while previewing a certain m2v file at the same frame all the time. I frame serve with an avs script that performs deinterlacing.
You could try using my version (http://home.attbi.com/~blade66) of VirtualDub to open the m2v directly, without Avisynth.

litz
17th May 2003, 18:56
I've had this exact problem as well and Vdub-mpeg2-ac3 would be *ideal* for editting *around* these glitches, except it doesn't read transport streams.

Is there a possibility of adding this ability?

The idea here is simple : use vdub-mpeg2-ac3 to read the .ts, find the glitches, and mark them. Then use an avisynth script to frameserve JUST the frames you want, cutting out the glitches and commercials (if a TV capture).

The result can then be fed back into any version of vdub or other encoder as needed.

- litz

fccHandler
17th May 2003, 21:10
Originally posted by litz
Is there a possibility of adding this ability?
While the idea sounds simple, the problem right now is that I haven't done an in-depth study of MPEG transport streams, I don't own anything that produces them, and I've only ever seen one example of what they look like (a sample .ts I downloaded from somewhere). I would like to add support someday, but it won't be a trivial thing for me and I don't know when I'll have time to work on it. (TS support is kinda low on my priority list, sorry.)