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.

 
Crash When Opening 'file Information' Dialog
« Next Oldest | Next Newest » Track this topic | Email this topic | Print this topic
alextaylor
Posted: Oct 1 2004, 10:33 AM


Unregistered









I'm running v1.5.10.1 (build 2366). I loaded what I believe to be a standard MPEG2 elementary video stream into VirtualDubMod. The stream appears to behave normally, except that when I tried to open the 'File information' dialog, I got the following crash:

VirtualDub crash report -- build 2366 (release)
--------------------------------------

Disassembly:
004b5060: 8bec mov ebp, esp
004b5062: 56 push esi
004b5063: ff7508 push dword ptr [ebp+08]
004b5066: 8bf1 mov esi, ecx
004b5068: e870530c00 call _strdup (0057a3dd)
004b506d: 85c0 test eax, eax
004b506f: 59 pop ecx
004b5070: 894608 mov [esi+08], eax
004b5073: 7516 jnz InputFilenameNode::InputFilenameNode+2c (004b508b)
004b5075: 8d4d08 lea ecx, [ebp+08]
004b5078: e8d0330700 call MyMemoryError::MyMemoryError (0052844d)
004b507d: 6860c25b00 push 005bc260
004b5082: 8d4508 lea eax, [ebp+08]
004b5085: 50 push eax
004b5086: e8801a0b00 call _CxxThrowException@8 (00566b0b)
004b508b: 8bc6 mov eax, esi
004b508d: 5e pop esi
004b508e: 5d pop ebp
004b508f: c20400 ret 0004
004b5092: ff7108 push dword ptr [ecx+08]
004b5095: e854100b00 call free (005660ee)
004b509a: 59 pop ecx
004b509b: c3 ret
004b509c: 55 push ebp
004b509d: 8bec mov ebp, esp
004b509f: 53 push ebx
004b50a0: 56 push esi
004b50a1: be76696473 mov esi, 73646976
004b50a6: 397508 cmp [ebp+08], esi
004b50a9: 57 push edi
004b50aa: 8b7d0c mov edi, [ebp+0c]
004b50ad: 750a jnz InputFile::GetSource+1d (004b50b9)
004b50af: 85ff test edi, edi
004b50b1: 7505 jnz InputFile::GetSource+1c (004b50b8)
004b50b3: 8b4118 mov eax, [ecx+18]
004b50b6: eb64 jmp InputFile::GetSource+80 (004b511c)
004b50b8: 4f dec edi
004b50b9: 8b410c mov eax, [ecx+0c]
004b50bc: 8b4910 mov ecx, [ecx+10]
004b50bf: 3bc1 cmp eax, ecx
004b50c1: 7457 jz InputFile::GetSource+7e (004b511a)
004b50c3: ba000f0000 mov edx, 00000f00
004b50c8: 397508 cmp [ebp+08], esi
004b50cb: 7430 jz InputFile::GetSource+61 (004b50fd)
004b50cd: 817d0861756473 cmp dword ptr [ebp+08], 73647561
004b50d4: 7418 jz InputFile::GetSource+52 (004b50ee)
004b50d6: 817d0874787473 cmp dword ptr [ebp+08], 73747874
004b50dd: 7534 jnz InputFile::GetSource+77 (004b5113)
004b50df: 8b18 mov ebx, [eax]
004b50e1: 8b5b10 mov ebx, [ebx+10]
004b50e4: 23da and ebx, edx
004b50e6: 81fb00030000 cmp ebx, 00000300
004b50ec: eb1c jmp InputFile::GetSource+6e (004b510a)
004b50ee: 8b18 mov ebx, [eax]
004b50f0: 8b5b10 mov ebx, [ebx+10] <-- FAULT
004b50f3: 23da and ebx, edx
004b50f5: 81fb00020000 cmp ebx, 00000200
004b50fb: eb0d jmp InputFile::GetSource+6e (004b510a)
004b50fd: 8b18 mov ebx, [eax]
004b50ff: 8b5b10 mov ebx, [ebx+10]
004b5102: 23da and ebx, edx
004b5104: 81fb00010000 cmp ebx, 00000100
004b510a: 7507 jnz InputFile::GetSource+77 (004b5113)
004b510c: 8bdf mov ebx, edi
004b510e: 4f dec edi
004b510f: 85db test ebx, ebx
004b5111: 7410 jz InputFile::GetSource+87 (004b5123)
004b5113: 83c004 add eax, 04
004b5116: 3bc1 cmp eax, ecx
004b5118: 75ae jnz InputFile::GetSource+2c (004b50c8)
004b511a: 33c0 xor eax, eax
004b511c: 5f pop edi
004b511d: 5e pop esi
004b511e: 5b pop ebx
004b511f: 5d pop ebp
004b5120: c20800 ret 0008
004b5123: 8b00 mov eax, [eax]
004b5125: ebf5 jmp InputFile::GetSource+80 (004b511c)
004b5127: 56 push esi
004b5128: 8b742408 mov esi, [esp+08]
004b512c: 85f6 test esi, esi
004b512e: 7505 jnz InputFile::GetSource+0e (004b5135)
004b5130: 8b4118 mov eax, [ecx+18]
004b5133: eb25 jmp InputFile::GetSource+33 (004b515a)
004b5135: 8b510c mov edx, [ecx+0c]
004b5138: 85d2 test edx, edx
004b513a: 7504 jnz InputFile::GetSource+19 (004b5140)
004b513c: 33c0 xor eax, eax
004b513e: eb08 jmp InputFile::GetSource+21 (004b5148)
004b5140: 8b4110 mov eax, [ecx+10]
004b5143: 2bc2 sub eax, edx
004b5145: c1f802 sar eax, 02
004b5148: 8d56ff lea edx, [esi-01]
004b514b: 3bd0 cmp edx, eax
004b514d: 7309 jnc InputFile::GetSource+31 (004b5158)
004b514f: 8b410c mov eax, [ecx+0c]
004b5152: 8b44b0fc mov eax, [eax+esi*4-04]
004b5156: eb02 jmp InputFile::GetSource+33 (004b515a)
004b5158: 33c0 xor eax, eax
004b515a: 5e pop esi
004b515b: c20400 ret 0004
004b515e: b8 db b8
004b515f: c2 db c2

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

EAX = 00f82cd0
EBX = 00000000
ECX = 00f82cd4
EDX = 00000f00
EBP = 0012f7a8
DS:ESI = 0023:73646976
ES:EDI = 0023:00000000
SS:ESP = 0023:0012f79c
CS:EIP = 001b:004b50f0
FS = 003b
GS = 0000
EFLAGS = 00210246
FPUCW = ffff027f
FPUTW = ffffffff

MM0 = 00000006804df06b
MM1 = 0012fd5c00000001
MM2 = 0012fc340012fd40
MM3 = 0000003bee39a9f0
MM4 = 0012fe4000000000
MM5 = 002002020000001b
MM6 = 8000000000000000
MM7 = 8000000000000000

Crash reason: Access Violation

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

Thread traces:

Thread 00000988 (Main thread)
C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\Init.cpp(344)
C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\Init.cpp(387)
C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\Init.cpp(407)
C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\Init.cpp(467)
C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\VideoSource.cpp(646)
C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\VideoSource.cpp(676)
C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\FilterSystem.cpp(429)
C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\FilterSystem.cpp(569)

Thread call stack:004b50f0: InputFile::GetSource()
00448a93: InputFileMPEG::InfoDialog()
0048db74: VDProject::ShowInputInfo()
00491744: VDProjectUI::MenuHit()
77d4ecd2: USER32!IsCharAlphaW [77d40000+ebc0+112]
77d4ecd2: USER32!IsCharAlphaW [77d40000+ebc0+112]
77d56ddb: USER32!EndDialog [77d40000+16cc9+112]
77d56deb: USER32!EndDialog [77d40000+16cc9+122]
7c90eae3: ntdll!KiUserCallbackDispatcher [7c900000+ead0+13]
77d494e3: USER32!GetWindowLongA [77d40000+947c+67]
77d494b0: USER32!GetWindowLongA [77d40000+947c+34]
77d4b94c: USER32!IsWindow [77d40000+b7db+171]
77d4b813: USER32!IsWindow [77d40000+b7db+38]
77d4b2a1: USER32!DefWindowProcW [77d40000+b1e5+bc]
5ad73c20: uxtheme!DrawThemeText [5ad70000+3031+bef]
5ad8e300: uxtheme!GetThemeTextMetrics [5ad70000+1de50+4b0]
5ad73995: uxtheme!DrawThemeText [5ad70000+3031+964]
5ad71adb: uxtheme!00001adb
5ad71b3d: uxtheme!00001b3d
77d48bb1: USER32!GetWindowThreadProcessId [77d40000+8a58+159]
77d4b274: USER32!DefWindowProcW [77d40000+b1e5+8f]
77d4b250: USER32!DefWindowProcW [77d40000+b1e5+6b]
77d4b250: USER32!DefWindowProcW [77d40000+b1e5+6b]
00493fe4: VDProjectUI::MainWndProc()
5ad73b1b: uxtheme!DrawThemeText [5ad70000+3031+aea]
00493eff: VDProjectUI::StaticWndProc()
77d48709: USER32!GetDC [77d40000+8697+72]
77d48bb1: USER32!GetWindowThreadProcessId [77d40000+8a58+159]
77d48832: USER32!GetDC [77d40000+8697+19b]
77d487ff: USER32!GetDC [77d40000+8697+168]
5ad73cd0: uxtheme!DrawThemeText [5ad70000+3031+c9f]
5ad8d046: uxtheme!GetThemeRect [5ad70000+dffa+f04c]
77d487ff: USER32!GetDC [77d40000+8697+168]
77d4b368: USER32!DefWindowProcW [77d40000+b1e5+183]
77d4b373: USER32!DefWindowProcW [77d40000+b1e5+18e]
77d4b373: USER32!DefWindowProcW [77d40000+b1e5+18e]
77d4b3b4: USER32!DefWindowProcW [77d40000+b1e5+1cf]
77d4b3c4: USER32!DefWindowProcW [77d40000+b1e5+1df]
7c90eae3: ntdll!KiUserCallbackDispatcher [7c900000+ead0+13]
77d494e3: USER32!GetWindowLongA [77d40000+947c+67]
77d484bc: USER32!000084bc
77d4b8b6: USER32!IsWindow [77d40000+b7db+db]
77d484bc: USER32!000084bc
77d48564: USER32!00008564
77d4b2a1: USER32!DefWindowProcW [77d40000+b1e5+bc]
5ad73c20: uxtheme!DrawThemeText [5ad70000+3031+bef]
5ad987b4: uxtheme!GetThemeTextMetrics [5ad70000+1de50+a964]
5ad73995: uxtheme!DrawThemeText [5ad70000+3031+964]
5ad71adb: uxtheme!00001adb
5ad71b3d: uxtheme!00001b3d
77d48bb1: USER32!GetWindowThreadProcessId [77d40000+8a58+159]
77d4b274: USER32!DefWindowProcW [77d40000+b1e5+8f]
77d4b250: USER32!DefWindowProcW [77d40000+b1e5+6b]
00494563: VDProjectUI::MainWndProc()
77d4eda9: USER32!CallNextHookEx [77d40000+ed6e+3b]
74730e6c: MSCTF!TF_UninitSystem [74720000+10469+a03]
74730e71: MSCTF!TF_UninitSystem [74720000+10469+a08]
747309a9: MSCTF!TF_UninitSystem [74720000+10469+540]
00493eff: VDProjectUI::StaticWndProc()
77d48709: USER32!GetDC [77d40000+8697+72]
77d487eb: USER32!GetDC [77d40000+8697+154]
77d489a5: USER32!GetWindowLongW [77d40000+887e+127]
77d4cff8: USER32!PeekMessageA [77d40000+cefd+fb]
77d4bccc: USER32!DispatchMessageA [77d40000+bcbd+f]
00482ef4: WinMain@16()
00566f34: atexit()
00568b9e: WinMainCRTStartup()
7c816d4f: kernel32!RegisterWaitForInputIdle [7c800000+16d06+49]

-- End of report



Any thoughts?

Incidentally, as an aside, VirtualDubMod is not displaying all the frames in the clip. This particular clip has burnt-in timecoding, and the penultimate frame is not being displayed. I know that the frame exists, since I've run the clip through my own MPEG decoder. Has anyone else encountered this kind of thing before?

 
  Top
fccHandler
Posted: Oct 1 2004, 05:20 PM


Administrator n00b


Group: Moderators
Posts: 3961
Member No.: 280
Joined: 13-September 02



Does it crash in VirtualDub-MPEG2?

--------------------
May the FOURCC be with you...
 
     Top
alextaylor
Posted: Oct 1 2004, 05:33 PM


Unregistered









QUOTE (fccHandler @ Oct 1 2004, 06:20 PM)
Does it crash in VirtualDub-MPEG2?

No, it's fine.

I've just tried VDM with another m2v stream, and this time the program just vanished when I tried to get the dialog up.

 
  Top
fccHandler
Posted: Oct 1 2004, 06:18 PM


Administrator n00b


Group: Moderators
Posts: 3961
Member No.: 280
Joined: 13-September 02



I asked because supposedly VirtualDubMod's MPEG-2 decoder is based on my VirtualDub-MPEG2 code, thus if the fault was in my code then I could fix it. Unfortunately it must be something specific to VirtualDubMod (which I'm not too familiar with). Sorry.

--------------------
May the FOURCC be with you...
 
     Top
alextaylor
Posted: Oct 1 2004, 07:32 PM


Unregistered









QUOTE (fccHandler @ Oct 1 2004, 07:18 PM)
I asked because supposedly VirtualDubMod's MPEG-2 decoder is based on my VirtualDub-MPEG2 code, thus if the fault was in my code then I could fix it. Unfortunately it must be something specific to VirtualDubMod (which I'm not too familiar with). Sorry.

Fair enough :-)

VDub-MPEG does however have the problem I mentioned with the missing frame - any idea what could be causing that?
 
  Top
fccHandler
Posted: Oct 2 2004, 03:46 AM


Administrator n00b


Group: Moderators
Posts: 3961
Member No.: 280
Joined: 13-September 02



You say it's missing the penultimate frame? Hmm...

The only possibility I can think of is that the last frame (in coding order) is a B-frame and it's incomplete. If it's even one bit incomplete, the parser will discard it. This should be unlikely though, unless the stream has been deliberately cut.

Is there any way you can slice off the last 50K of your MPEG and make it available for me to download?

--------------------
May the FOURCC be with you...
 
     Top
alextaylor
Posted: Oct 2 2004, 07:09 AM


Unregistered









QUOTE (fccHandler @ Oct 2 2004, 04:46 AM)
You say it's missing the penultimate frame? Hmm...

The only possibility I can think of is that the last frame (in coding order) is a B-frame and it's incomplete. If it's even one bit incomplete, the parser will discard it. This should be unlikely though, unless the stream has been deliberately cut.

Is there any way you can slice off the last 50K of your MPEG and make it available for me to download?

As far as I can tell, the frame is fine - my decoder doesn't seem to be having any problems with it.

Unfortunately, the stream isn't mine to distribute :-(
 
  Top
fccHandler
Posted: Oct 2 2004, 03:12 PM


Administrator n00b


Group: Moderators
Posts: 3961
Member No.: 280
Joined: 13-September 02



huh.gif Who's is it then?

And why are you loading someone else's stream into VirtualDub, alextaylor? tongue.gif

Anyway, I'm not suggesting that you "distribute" anything. I just need a tiny 50K sample from the end of the stream, so I can duplicate the bug myself and track down the cause of it.

--------------------
May the FOURCC be with you...
 
     Top
alextaylor
Posted: Oct 2 2004, 03:29 PM


Unregistered









QUOTE (fccHandler @ Oct 2 2004, 04:12 PM)
huh.gif Who's is it then?

And why are you loading someone else's stream into VirtualDub, alextaylor? tongue.gif

Anyway, I'm not suggesting that you "distribute" anything. I just need a tiny 50K sample from the end of the stream, so I can duplicate the bug myself and track down the cause of it.

It's a stream I have in the office for a project I'm working on, and I really am not allowed to copy it!

I will take a closer look at the stream structure next week, and see if I can assemble a new stream which produces the same effect and that I can send you :-)
 
  Top
fccHandler
Posted: Oct 2 2004, 05:16 PM


Administrator n00b


Group: Moderators
Posts: 3961
Member No.: 280
Joined: 13-September 02



Fair enough. smile.gif

--------------------
May the FOURCC be with you...
 
     Top
alextaylor
Posted: Oct 4 2004, 08:55 AM


Unregistered









QUOTE (fccHandler @ Oct 2 2004, 06:16 PM)
Fair enough. smile.gif

Ok, I've taken a closer look :-)

The final GOP in the stream has the structure (in decode order) IBBPBBPBBPBBPBBPB. The presentation order of these frames is 2, 0, 1, 5, 3, 4, 8, 6, 7, 11, 9, 10, 14, 12, 13, 16, 15. The frame not being displayed by VirtualDub is the last one, presumably because it only has a back-reference. However, both my decoder and PremierePro are able to display this frame without errors. As I recall, while B-frames usually have both a back-reference and a forward-reference, it is legal for them to only have a single reference. How you detect that this is the case I am not sure :-)

The stream is 900 frames; VirtualDub-MPEG2 is reporting it as 899.
 
  Top
fccHandler
Posted: Oct 5 2004, 01:39 AM


Administrator n00b


Group: Moderators
Posts: 3961
Member No.: 280
Joined: 13-September 02



QUOTE (alextaylor @ Oct 4 2004, 04:55 AM)
As I recall, while B-frames usually have both a back-reference and a forward-reference, it is legal for them to only have a single reference.

To the MPEG parser, it doesn't matter if the B-frame only refers to a single reference (I agree with you that it's legal). What does matter to the parser is that both past and future references exist for the B-frame. If either potential reference frame is missing or incomplete, the parser assumes that the B-frame(s) relying on them can't be decoded, and discards them.

I can imagine situations where that assumption may be false, but not in the situation you described. Past and future reference frames do exist for your final B-frame; they are the last two P-frames of the GOP. (And you can see that's true in the re-numbered display sequence.)

Therefore, I don't think it's the case that VirtualDub-MPEG2 is discarding the B-frame for lack of existing reference frames. There must be some other reason.

--------------------
May the FOURCC be with you...
 
     Top
alextaylor
Posted: Oct 5 2004, 07:39 AM


Unregistered









QUOTE (fccHandler @ Oct 5 2004, 02:39 AM)
Past and future reference frames do exist for your final B-frame; they are the last two P-frames of the GOP. (And you can see that's true in the re-numbered display sequence.)

So they do :-) My fault for posting first thing in the morning before I've woken up!
 
  Top
dlandelle
Posted: Oct 15 2004, 08:12 PM


Unregistered









The last "missing frame" is a bit off topic, but I had the same doubt about it.

After verification, I thing everything is OK in VD MPEG2.

little story:

I was creating my MPEG2 stream from a shared memory where bytes happened to arrive (no that ain't no hacking) and I was missing the last DWORD because of a little bug.

Most player had no problem even displaying the last incomplete frame, but VD did not, maybe due to the thorough indexing that is done first ?

The bug being corrected, everything runs fine cool.gif
 
  Top
0 User(s) are reading this topic (0 Guests and 0 Anonymous Users)
0 Members:
13 replies since Oct 1 2004, 10:33 AM Track this topic | Email this topic | Print this topic

<< Back to Testing / Bug Reports