Log in

View Full Version : Playback crash with Koepi's 24062003-1


Hoschi
13th November 2003, 18:02
Hi,

I tried to playback a Movie created with VDMod 1.4.13, xvid with ac3 in avi. At a specific frame VD crashes (info below). On all other movies created with various xvid versions it works fine, but this one...

If I switch back to 04102002-1 this file works again, but I can forget about playing the files I've done with the new version.... I do not use ffdshow, but the subtitle DS filter. Is this a bug or an incompatible change in playback ?

crashinfo:

VirtualDub crash report -- build 16297 (release-P4)
--------------------------------------

Disassembly:
01c3c3a0: ffb7bc000000 push dword ptr [edi+bc]
01c3c3a6: ffb7b8000000 push dword ptr [edi+b8]
01c3c3ac: 52 push edx
01c3c3ad: e83a8f0100 call 01c552ec
01c3c3b2: 83c420 add esp, 20
01c3c3b5: ba01000000 mov edx, 00000001
01c3c3ba: 8955f8 mov [ebp-08], edx
01c3c3bd: 8d97e0000000 lea edx, [edi+e0]
01c3c3c3: 52 push edx
01c3c3c4: 56 push esi
01c3c3c5: e8167a0100 call 01c53de0
01c3c3ca: 83c408 add esp, 08
01c3c3cd: 56 push esi
01c3c3ce: 53 push ebx
01c3c3cf: e80c7a0100 call 01c53de0
01c3c3d4: 83c408 add esp, 08
01c3c3d7: 8b9f0c010000 mov ebx, [edi+10c]
01c3c3dd: 8bb710010000 mov esi, [edi+110]
01c3c3e3: b201 mov dl, 01
01c3c3e5: 89b70c010000 mov [edi+10c], esi
01c3c3eb: 899f10010000 mov [edi+110], ebx
01c3c3f1: 8b4dc8 mov ecx, [ebp-38]
01c3c3f4: 898f14010000 mov [edi+114], ecx
01c3c3fa: ff8718010000 inc dword ptr [edi+118]
01c3c400: 8855e8 mov [ebp-18], dl
01c3c403: 8b4d88 mov ecx, [ebp-78]
01c3c406: 8bd1 mov edx, ecx
01c3c408: 83e207 and edx, 07
01c3c40b: 7440 jz 01c3c44d
01c3c40d: f7da neg edx
01c3c40f: 8d541108 lea edx, [ecx+edx+08]
01c3c413: 83fa20 cmp edx, 20
01c3c416: 895588 mov [ebp-78], edx
01c3c419: 7232 jc 01c3c44d
01c3c41b: 8b5d80 mov ebx, [ebp-80]
01c3c41e: 8b4d8c mov ecx, [ebp-74]
01c3c421: 899d7cffffff mov [ebp-84], ebx
01c3c427: 8b5108 mov edx, [ecx+08] <-- FAULT
01c3c42a: 8955d0 mov [ebp-30], edx
01c3c42d: 8b45d0 mov eax, [ebp-30]
01c3c430: 0fc8 bswap eax
01c3c432: 8945d0 mov [ebp-30], eax
01c3c435: 8b5dd0 mov ebx, [ebp-30]
01c3c438: 8b4d8c mov ecx, [ebp-74]
01c3c43b: 83c104 add ecx, 04
01c3c43e: 895d80 mov [ebp-80], ebx
01c3c441: 8b5588 mov edx, [ebp-78]
01c3c444: 83c2e0 add edx, e0
01c3c447: 894d8c mov [ebp-74], ecx
01c3c44a: 895588 mov [ebp-78], edx
01c3c44d: 8b9764010000 mov edx, [edi+164]
01c3c453: 85d2 test edx, edx
01c3c455: 0f84f4020000 jz 01c3c74f
01c3c45b: 8b8f1c010000 mov ecx, [edi+11c]
01c3c461: 85c9 test ecx, ecx
01c3c463: 0f845c050000 jz 01c3c9c5
01c3c469: 8b4df8 mov ecx, [ebp-08]
01c3c46c: 85c9 test ecx, ecx
01c3c46e: 0f8546050000 jnz 01c3c9ba
01c3c474: 8a4dec mov cl, [ebp-14]
01c3c477: 84c9 test cl, cl
01c3c479: 0f8586010000 jnz 01c3c605
01c3c47f: b201 mov dl, 01
01c3c481: 8855ec mov [ebp-14], dl
01c3c484: e957fcffff jmp 01c3c0e0
01c3c489: 8b55d8 mov edx, [ebp-28]
01c3c48c: 8d4491e8 lea eax, [ecx+edx*4-18]
01c3c490: 8b957cffffff mov edx, [ebp-84]
01c3c496: 8955d8 mov [ebp-28], edx
01c3c499: baffffffff mov edx, ffffffff
01c3c49e: 8b db 8b
01c3c49f: 4d dec ebp

Windows 5.1 (Windows XP build 2600) [Service Pack 1]

EAX = 01223608
EBX = 00000000
ECX = 01233ff8
EDX = 00000020
EBP = 029ef6d8
DS:ESI = 0023:020f1800
ES:EDI = 0023:01223540
SS:ESP = 0023:029ef654
CS:EIP = 001b:01c3c427
FS = 0038
GS = 0000
EFLAGS = 00010246
FPUCW = ffff027f
FPUTW = ffffaaaa

MM0 = 4c2a48807240332e
MM1 = 004c002a00480080
MM2 = 12131f2f31272a28
MM3 = 00120013001f002f
MM4 = fffefff900000011
MM5 = fff1fff1ffe7fff9
MM6 = 00040002ffffffeb
MM7 = 0000000000000000

Crash reason: Access Violation

Crash context:
An out-of-bounds memory access (access violation) occurred in module 'xvid'...

...while decompressing video frame 4583 with "XviD MPEG-4 Codec" [biCompression=44495658] (VideoSource.cpp:1516)...

...while running thread "Processing" (thread.cpp:105).

Thread traces:

Thread 000004a8 (Main thread)
C:\p4root\dev\VirtualDub\source\Main.cpp(525)
C:\p4root\dev\VirtualDub\source\Main.cpp(542)
C:\p4root\dev\VirtualDub\source\Main.cpp(580)
C:\p4root\dev\VirtualDub\source\Main.cpp(519)
C:\p4root\dev\VirtualDub\source\VideoSource.cpp(1714)
C:\p4root\dev\VirtualDub\source\VideoSource.cpp(1735)
C:\p4root\dev\VirtualDub\source\Main.cpp(525)
C:\p4root\dev\VirtualDub\source\Main.cpp(542)
C:\p4root\dev\VirtualDub\source\Main.cpp(580)
C:\p4root\dev\VirtualDub\source\Main.cpp(519)
C:\p4root\dev\VirtualDub\source\VideoSource.cpp(1714)
C:\p4root\dev\VirtualDub\source\VideoSource.cpp(1735)
C:\p4root\dev\VirtualDub\source\Main.cpp(525)
C:\p4root\dev\VirtualDub\source\Main.cpp(542)
C:\p4root\dev\VirtualDub\source\Main.cpp(580)
C:\p4root\dev\VirtualDub\source\FilterSystem.cpp(560)
Thread 000007c8 (AsyncBlitter)
Thread 0000078c (Processing)
C:\p4root\dev\VirtualDub\source\VideoSource.cpp(1547)
C:\p4root\dev\VirtualDub\source\Dub.cpp(3060)
C:\p4root\dev\VirtualDub\source\Dub.cpp(3206)
C:\p4root\dev\VirtualDub\source\Dub.cpp(3209)
C:\p4root\dev\VirtualDub\source\Dub.cpp(3218)
C:\p4root\dev\VirtualDub\source\Dub.cpp(3402)
C:\p4root\dev\VirtualDub\source\Dub.cpp(3055)
C:\p4root\dev\VirtualDub\source\VideoSource.cpp(1514)
C:\p4root\dev\VirtualDub\source\VideoSource.cpp(1547)
C:\p4root\dev\VirtualDub\source\Dub.cpp(3060)
C:\p4root\dev\VirtualDub\source\Dub.cpp(3206)
C:\p4root\dev\VirtualDub\source\Dub.cpp(3209)
C:\p4root\dev\VirtualDub\source\Dub.cpp(3218)
C:\p4root\dev\VirtualDub\source\Dub.cpp(3402)
C:\p4root\dev\VirtualDub\source\Dub.cpp(3055)
C:\p4root\dev\VirtualDub\source\VideoSource.cpp(1514)
Thread 000006c4 (Dub-I/O)

Thread call stack:01c3c427: xvid!xvid_init [01c30000+aec8+155f]
01c3a7af: xvid!xvid_decore [01c30000+a774+3b]
01c35f94: xvid!00005f94
01c3a41f: xvid!DriverProc [01c30000+a21c+203]
77e5aeb7: kernel32!GetModuleFileNameA [77e40000+1ada9+10e]
77f844a8: ntdll!RtlRemoteCall [77f40000+442ea+1be]
77f48497: ntdll!RtlAllocateHeap [77f40000+7bae+8e9]
77f47f98: ntdll!RtlAllocateHeap [77f40000+7bae+3ea]
77f48a3a: ntdll!RtlAllocateHeap [77f40000+7bae+e8c]
77f844a8: ntdll!RtlRemoteCall [77f40000+442ea+1be]
77f48277: ntdll!RtlAllocateHeap [77f40000+7bae+6c9]
77f47f98: ntdll!RtlAllocateHeap [77f40000+7bae+3ea]
77f48a3a: ntdll!RtlAllocateHeap [77f40000+7bae+e8c]
77fa172e: ntdll!RtlConvertUlongToLargeInteger [77f40000+616c0+6e]
77fa1700: ntdll!RtlConvertUlongToLargeInteger [77f40000+616c0+40]
77f8790d: ntdll!RtlUnhandledExceptionFilter [77f40000+47865+a8]
770f56e2: OLEAUT32!SafeArrayCopyData [770f0000+53c7+31b]
77f65dba: ntdll!KiUserExceptionDispatcher [77f40000+25dac+e]
77f4b644: ntdll!NtContinue [77f40000+b638+c]
77f65dc8: ntdll!KiUserExceptionDispatcher [77f40000+25dac+1c]
77e53887: kernel32!RaiseException [77e40000+13837+50]
77f48497: ntdll!RtlAllocateHeap [77f40000+7bae+8e9]
73b4181d: MSVFW32!ICSendMessage [73b40000+17f4+29]
73b447c6: MSVFW32!ICDecompress [73b40000+478b+3b]
0043567b: VideoSourceAVI::streamGetFrame()
77f48497: ntdll!RtlAllocateHeap [77f40000+7bae+8e9]
77f47f98: ntdll!RtlAllocateHeap [77f40000+7bae+3ea]
77f48a3a: ntdll!RtlAllocateHeap [77f40000+7bae+e8c]
77e5a65f: kernel32!WaitForSingleObjectEx [77e40000+1a5a2+bd]
77e5a652: kernel32!WaitForSingleObjectEx [77e40000+1a5a2+b0]
00415348: AsyncBlitter::postStretchBlt()
0049f2c7: Dubber::WriteVideoFrame()
77e5a65f: kernel32!WaitForSingleObjectEx [77e40000+1a5a2+bd]
77e5a652: kernel32!WaitForSingleObjectEx [77e40000+1a5a2+b0]
77e5ac21: kernel32!WaitForSingleObject [77e40000+1ac12+f]
0049425c: AVIPipe::getReadBuffer()
004a0457: Dubber::ThreadRun()
77e5f01b: kernel32!DuplicateHandle [77e40000+1efb6+65]
77e5f02b: kernel32!DuplicateHandle [77e40000+1efb6+75]
00498a9c: VDThreadInitHandler()
00498af9: VDThreadInitHandler()
004ec4d8: VDThread::StaticThreadStart()
005020fe: _threadstartex@4()
77e5d33b: kernel32!RegisterWaitForInputIdle [77e40000+1d2f8+43]

-- End of report

Tuning
13th November 2003, 18:24
Have you installed DirectX 9.0.I had similar problems with directX 8.1.
Hope this may help you...

Hoschi
13th November 2003, 20:48
I have 9.0b installed. As the error occurs also when navigating in VD frame-by-frame without DDraw support enabled I don't guess thats the reason - think it's a bug in the alpha (sic) binary.

gizmotech
14th November 2003, 14:43
Though I'm sure this is gonna sound stupid, have you tried with the latest VDM or VD?

As well, have you identified if this is specifically an issue w/ xvid alone, or does it only occur when encoding a muxing the ac3 at the same time?

Gizmo.

Hoschi
14th November 2003, 17:44
It's an playback, a _decoding_ issue. Encoding works fine. I've tried this with various tools, VD was latest P4 and latest normal version.
AC3 playback was disabled (Audio none).

Maybe it's a broken frame issue. But the stable release does play the file without complaints, and usually a broken frame gives a error message, not a crash in VD.

I've done a recode yet with the stable from the "broken" file, this new one does work with all versions.

fccHandler
14th November 2003, 19:54
Oddly enough, I recently had an identical crash (at least, it looks like it's in exactly the same place, codewise) on frame 120 when playing an XviD video in VirtualDub. The video was encoded using my own build of the CVS snapshot from November 3, so at first I blamed it on that. Then I switched to Koepi's 24062003-1, but the video still crashed on frame 120 in VirtualDub. WMP would play through the frame, but after closing WMP a crash dialog would appear.

I also tried changing the FOURCC to DX50 and the DivX decoder didn't crash on frame 120, in fact, frame 120 looked perfectly OK in VirtualDub. But I was already mistrustful of the video I'd made, so I re-encoded it again with Koepi's build and there were no more crashes after that.

Clearly there was something goofy written into the video stream itself, which the different decoders choked on. I wish I could be more helpful, but unfortunately I didn't keep the bad video, and at the time I was too lazy to track down the cause. Anyway, I tend to agree that it is a decoding issue.