|
|
| 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 |
 |
| 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. |
 |
| 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 |
 |
| 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. |
 |
| 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 |
 |
| 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. |
 |
| 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. 
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... |
 |
| 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. | It isn't like this 
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 |
 |
| 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. 
-------------------- May the FOURCC be with you... |
 |