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 With Wmv Input Plugin
« Next Oldest | Next Newest » Track this topic | Email this topic | Print this topic
ale5000
Posted: Mar 29 2011, 02:36 AM


Advanced Member


Group: Members
Posts: 1114
Member No.: 22180
Joined: 30-September 07



Test files: http://www.multiupload.com/1RY7J22PLT

Opening this file crash the input plugin:
QUOTE
VirtualDub crash report -- build 32842 (release)
--------------------------------------

Disassembly:
10004f40: 8b4104          mov    eax, [ecx+04h]
10004f43: 8b10            mov    edx, [eax]
10004f45: 50              push  eax
10004f46: 8b4208          mov    eax, [edx+08h]
10004f49: ffd0            call  eax
10004f4b: 5d              pop    ebp
10004f4c: 5b              pop    ebx
10004f4d: 5f              pop    edi
10004f4e: 5e              pop    esi
10004f4f: 8b4c2424        mov    ecx, [esp+24h]
10004f53: 33cc            xor    ecx, esp
10004f55: e80d290000      call  10007867
10004f5a: 83c428          add    esp, 28h
10004f5d: c3              ret   
10004f5e: c70000000000    mov    dword ptr [eax], 00000000
10004f64: 83be3802010000  cmp    dword ptr [esi+10238], 00h
10004f6b: c7442414000000  mov    dword ptr [esp+14h], 00000000
          00             
10004f73: 0f8ea9000000    jle    10005022
10004f79: 8d8e38000100    lea    ecx, [esi+10038]
10004f7f: 894c2410        mov    [esp+10h], ecx
10004f83: 8b542410        mov    edx, [esp+10h]
10004f87: 8b0a            mov    ecx, [edx]
10004f89: 813961756473    cmp    dword ptr [ecx], 73647561
10004f8f: 754d            jnz    10004fde
10004f91: 33ed            xor    ebp, ebp
10004f93: 33c0            xor    eax, eax
10004f95: 396934          cmp    [ecx+34h], ebp
10004f98: 7635            jbe    10004fcf
10004f9a: 33d2            xor    edx, edx
10004f9c: 8d642400        lea    esp, [esp+00h]
10004fa0: 8b792c          mov    edi, [ecx+2ch]
10004fa3: 8b9e44020100    mov    ebx, [esi+10244]
10004fa9: 395c170c        cmp    [edi+edx+0ch], ebx
10004fad: 8d7c170c        lea    edi, [edi+edx+0ch]
10004fb1: 7204            jc    10004fb7
10004fb3: 291f            sub    [edi], ebx
10004fb5: eb06            jmp    10004fbd
10004fb7: c70700000000    mov    dword ptr [edi], 00000000
10004fbd: 8b792c          mov    edi, [ecx+2ch]
10004fc0: 03441708        add    eax, [edi+edx+08h]
10004fc4: 83c501          add    ebp, 01h
10004fc7: 83c218          add    edx, 18h
10004fca: 3b6934          cmp    ebp, [ecx+34h]
10004fcd: 72d1            jc    10004fa0
10004fcf: 33d2            xor    edx, edx
10004fd1: f7710c          div    eax, dword ptr [ecx+0ch]      <-- FAULT
10004fd4: 894138          mov    [ecx+38h], eax
10004fd7: 83863c02010001  add    dword ptr [esi+1023c], 01h
10004fde: 8b442414        mov    eax, [esp+14h]
10004fe2: 8344241004      add    dword ptr [esp+10h], 04h
10004fe7: 83c001          add    eax, 01h
10004fea: 3b8638020100    cmp    eax, [esi+10238]
10004ff0: 89442414        mov    [esp+14h], eax
10004ff4: 7c8d            jl    10004f83
10004ff6: 5d              pop    ebp
10004ff7: 5b              pop    ebx
10004ff8: 5f              pop    edi
10004ff9: 5e              pop    esi
10004ffa: 8b4c2424        mov    ecx, [esp+24h]
10004ffe: 33cc            xor    ecx, esp
10005000: e862280000      call  10007867
10005005: 83c428          add    esp, 28h
10005008: c3              ret   
10005009: 8b864c020100    mov    eax, [esi+1024c]
1000500f: 8b4004          mov    eax, [eax+04h]
10005012: 8b08            mov    ecx, [eax]
10005014: 8b5104          mov    edx, [ecx+04h]
10005017: 682c650110      push  1001652c
1000501c: 50              push  eax
1000501d: ffd2            call  edx
1000501f: 83c408          add    esp, 08h
10005022: 8b4c2434        mov    ecx, [esp+34h]
10005026: 5d              pop    ebp
10005027: 5b              pop    ebx
10005028: 5f              pop    edi
10005029: 5e              pop    esi
1000502a: 33cc            xor    ecx, esp
1000502c: e836280000      call  10007867
10005031: 83c428          add    esp, 28h
10005034: c3              ret   
10005035: cc              int    3
10005036: cc              int    3
10005037: cc              int    3
10005038: cc              int    3
10005039: cc              int    3
1000503a: cc              int    3
1000503b: cc              int    3
1000503c: cc              int    3
1000503d: cc              int    3
1000503e: cc              int    3
1000503f: cc              int    3

Built on Aegis on Fri Dec 24 13:18:44 2010 using compiler version 1400

Windows 5.1 (Windows XP x86 build 2600) [Service Pack 3]

EAX = 00064f11
EBX = 000007d0
ECX = 01342170
EDX = 00000000
EBP = 0000059c
ESI = 02630048
EDI = 026445e0
ESP = 0012fcf4
EIP = 10004fd1
EFLAGS = 00210246
FPUCW = ffff027f
FPUTW = ffffffff

Crash reason: Integer Divide-by-Zero

Crash context:
An integer division by zero occurred in module 'input_WMV'.

Pointer dumps:

ECX  01342170: 73647561 00003e80 00000000 00000000 00000000 00000001 013421c0 00000017
ESI  02630048: 10016584 00000001 002dc538 00000000 00000000 00000000 00000000 00000000
EDI  026445e0: 00004538 00000000 00000097 00000058 7ffd0100 02080000 00004538 00000000
ESP  0012fcf0: 00000000 0012fda4 00000000 00c71e30 02630048 02640080 00000000 00000000
      0012fd10: 75b22636 11cf668e aa00d9a6 6cce6200 002dc032 00000000 9ea559c9 1000507d
      0012fd30: 00c70350 00c71f58 004d52bc 02630048 00c71e30 00000000 00c71f58 02630048
      0012fd50: 00c6dda8 005fb9f4 000004a8 0012fd98 005d7910 00000000 00464e4e 00c71e30

Thread call stack:
10004fd1: input_WMV!VDGetPluginInfo [10000000+4010+fc1]
1000507d: input_WMV!VDGetPluginInfo [10000000+4010+106d]
004d52bc: VDInputFilePlugin::Init()
00464e4e: VDProject::Open()
0051d29e: VDAutoLogger::VDAutoLogger()
0044909b: VDProcessCommandLine()
7e398734: USER32!GetDC [7e390000+86c7+6d]
7e39882a: USER32!GetDC [7e390000+86c7+163]
7e3989cd: USER32!GetWindowLongW [7e390000+88a6+127]
7e3993e9: USER32!PeekMessageW [7e390000+929b+14e]
7e3993a8: USER32!PeekMessageW [7e390000+929b+10d]
7e3aa43b: USER32!PeekMessageA [7e390000+1a340+fb]
004525a8: WinMain@16()
005b78db: __tmainCRTStartup()
7c817077: kernel32!RegisterWaitForInputIdle [7c800000+1702e+49]

-- End of report


--------------------
New VirtualDub forum
VirtualDub AIO (All-in-One installer for VirtualDub and plugins)
Codec Toolbox RS (A tool to read/change merit of codecs and many other things)
Input plugins for VirtualDub / ACM codecs / VFW codecs
 
     Top
DarrellS
Posted: Mar 29 2011, 07:53 AM


Advanced Member


Group: Members
Posts: 567
Member No.: 1061
Joined: 28-November 02



It's not a windows media file.

Open the file in Avidemux and copy it into an mkv container.

The audio is screwed up so you'll have to open it in Goldwave and stretch the audio to match the video, use dBpoweramp (nero wave edit or foobar) to convert to aac and mkvmerge to create a fixed mkv or yamb to create a fixed mp4.
 
     Top
ale5000
Posted: Mar 29 2011, 09:22 PM


Advanced Member


Group: Members
Posts: 1114
Member No.: 22180
Joined: 30-September 07



MediaInfo show that it is a Windows Media file and VLC can play it properly.

--------------------
New VirtualDub forum
VirtualDub AIO (All-in-One installer for VirtualDub and plugins)
Codec Toolbox RS (A tool to read/change merit of codecs and many other things)
Input plugins for VirtualDub / ACM codecs / VFW codecs
 
     Top
DarrellS
Posted: Mar 30 2011, 04:42 AM


Advanced Member


Group: Members
Posts: 567
Member No.: 1061
Joined: 28-November 02



QUOTE (ale5000 @ Mar 29 2011, 02:22 PM)
MediaInfo show that it is a Windows Media file and VLC can play it properly.

Mediainfo sees it as WMV because the extension says wmv. If it said AVI, then Mediainfo would see it as AVI. If it was a true WMV file then it would say VC-1 and WMA instead of AVC and AAC.

VLC has it's own splitters and codecs so it can play just about anything. I assume the same applies with Avidemux since it is able to open the file and copy to a different container. It failed on just about everything I tried including Windows Media File Editor.
 
     Top
ale5000
Posted: Mar 30 2011, 10:00 AM


Advanced Member


Group: Members
Posts: 1114
Member No.: 22180
Joined: 30-September 07



Try rename it to AVI, MediaInfo still say "Windows Media" (it doesn't use the extension).
It doesn't work with normal players because the Microsoft splitter that come with Windows XP (not sure about Win Vista/7) doesn't play properly H.264 in WMV container.

Many people also doesn't like H.264, AAC, Vorbis in AVI but it works fine (it just depend as how good is the program that do it).

--------------------
New VirtualDub forum
VirtualDub AIO (All-in-One installer for VirtualDub and plugins)
Codec Toolbox RS (A tool to read/change merit of codecs and many other things)
Input plugins for VirtualDub / ACM codecs / VFW codecs
 
     Top
DarrellS
Posted: Mar 30 2011, 06:57 PM


Advanced Member


Group: Members
Posts: 567
Member No.: 1061
Joined: 28-November 02



I have no idea how they even got h264/aac into a wmv container. The only thing I've found that works is the copy command in ffmpeg but the file I created would not play in MPC-HC. Asfmuxer crashes when trying to mux h264/aac and wmvmuxer will not mux the files but wants you to pick a profile to encode to wmv.

EDIT: I tried GDSMUX from haali and it did create a h264/aac wmv that plays correctly. It will not seek but it does play in sync. Mediainfo shows it as matroska though.

Obviously, there is a way to get h264/aac into a wmv container but I don't have a clue how they do it. Not sure why anyone creates files like this though.
 
     Top
fccHandler
Posted: Apr 2 2011, 02:25 AM


Administrator n00b


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



I think he (ale5000) makes these bizarre things just to give me more work. tongue.gif

The plugin crashes (divide-by-zero) because the AAC audio format has its nBlockAlign field set to zero. I would say this is badly muxed for that reason. But even if nBlockAlign wasn't zero, I bet it would still not work right.

It would involve a huge effort on my part to fully support H264/AAC in the WMV plugin, and I believe it would be a waste of my valuable time. I never see things like this in the wild.


EDIT: I will at least fix the crash in the next version by checking that nBlockAlign is nonzero, although this will effectively skip that audio stream.

This post has been edited by fccHandler on Apr 2 2011, 03:17 AM

--------------------
May the FOURCC be with you...
 
     Top
ale5000
Posted: Apr 2 2011, 11:08 AM


Advanced Member


Group: Members
Posts: 1114
Member No.: 22180
Joined: 30-September 07



QUOTE (fccHandler @ Apr 2 2011, 03:25 AM)
I think he (ale5000) makes these bizarre things just to give me more work. tongue.gif
It isn't like this biggrin.gif

There are a lot of particular files in the world, remuxing programs basically allow everything.

Can't common code just be copied from one plugin to another?
I suppose that the content of the an AAC track (and also other tracks) would be similar in different containers although the header may be different.

--------------------
New VirtualDub forum
VirtualDub AIO (All-in-One installer for VirtualDub and plugins)
Codec Toolbox RS (A tool to read/change merit of codecs and many other things)
Input plugins for VirtualDub / ACM codecs / VFW codecs
 
     Top
fccHandler
Posted: Apr 3 2011, 06:03 AM


Administrator n00b


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



QUOTE (ale5000 @ Apr 2 2011, 07:08 AM)
Can't common code just be copied from one plugin to another?

Not really. You are talking about the ability to retrieve a specific A/V sample from the container. Problem is, each container uses its own methods for storing samples, and they are not generally compatible in my experience. The code to retrieve samples always has to be customized for the container.

Unfortunately I have no idea how AAC is stored in the ASF container and as far as I know there is no official documentation about it. I might be able to reverse engineer it, but as I said I think it would be a waste of my time. Nobody sane puts AAC in WMV. rolleyes.gif


--------------------
May the FOURCC be with you...
 
     Top
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:
8 replies since Mar 29 2011, 02:36 AM Track this topic | Email this topic | Print this topic

<< Back to VirtualDub Filters and Filter Development