Log in

View Full Version : Problem with DV movies larger than 10 minutes


gabrio
21st December 2004, 13:30
hi there

i have this problem.

i am capturing DV video with pinnacle studio 8, and afterwards, i edit the videos i downloaded from the DV cam with virtual dub and a .vcf file i have pre-made which has some filters, bri/contrast fix and a resize too.

ok with this said, everything works good, until the videos start getting big: when i have a video which in original DV is bigger than 10 minutes, then virtual dub crashes and the pinnacle codec gives me this error:

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

Disassembly:
01ef16e0: 8bc7 mov eax, edi
01ef16e2: 89542438 mov [esp+38], edx
01ef16e6: 03d1 add edx, ecx
01ef16e8: 8b4c2420 mov ecx, [esp+20]
01ef16ec: 8954246c mov [esp+6c], edx
01ef16f0: c1e810 shr eax, 10
01ef16f3: 8bd8 mov ebx, eax
01ef16f5: 23c1 and eax, ecx
01ef16f7: 0faf5c2434 imul ebx, [esp+34]
01ef16fc: 0faf442454 imul eax, [esp+54]
01ef1701: 8b542440 mov edx, [esp+40]
01ef1705: 8b4c2424 mov ecx, [esp+24]
01ef1709: 03da add ebx, edx
01ef170b: 89742458 mov [esp+58], esi
01ef170f: 8d1408 lea edx, [eax+ecx]
01ef1712: 8b4c2478 mov ecx, [esp+78]
01ef1716: 89542464 mov [esp+64], edx
01ef171a: 8b542428 mov edx, [esp+28]
01ef171e: 03c1 add eax, ecx
01ef1720: 89542448 mov [esp+48], edx
01ef1724: 85f6 test esi, esi
01ef1726: 8944243c mov [esp+3c], eax
01ef172a: 0f8efe000000 jle 01ef182e
01ef1730: 8b442414 mov eax, [esp+14]
01ef1734: 85c0 test eax, eax
01ef1736: 7e20 jle 01ef1758
01ef1738: 8b4c2458 mov ecx, [esp+58]
01ef173c: 8b54245c mov edx, [esp+5c]
01ef1740: 3bca cmp ecx, edx
01ef1742: 7514 jnz 01ef1758
01ef1744: 99 cdq
01ef1745: 2bc2 sub eax, edx
01ef1747: 8b4c2448 mov ecx, [esp+48]
01ef174b: d1f8 sar eax, 1
01ef174d: 0faf442418 imul eax, [esp+18]
01ef1752: 03c8 add ecx, eax
01ef1754: 894c2448 mov [esp+48], ecx
01ef1758: 8b442448 mov eax, [esp+48]
01ef175c: 8b4c242c mov ecx, [esp+2c]
01ef1760: c1e810 shr eax, 10
01ef1763: 8bd0 mov edx, eax
01ef1765: 8b7c2464 mov edi, [esp+64]
01ef1769: d3ea shr edx, cl
01ef176b: 33c9 xor ecx, ecx
01ef176d: 8a0c18 mov cl, [eax+ebx]
01ef1770: 33c0 xor eax, eax
01ef1772: 8b2c8d587ef001 mov ebp, [ecx*4+01f07e58]
01ef1779: 8b4c243c mov ecx, [esp+3c]
01ef177d: 8a040a mov al, [edx+ecx] <-- FAULT
01ef1780: 8bf0 mov esi, eax
01ef1782: 33c0 xor eax, eax
01ef1784: 8a043a mov al, [edx+edi]
01ef1787: 8bf8 mov edi, eax
01ef1789: c1e602 shl esi, 02
01ef178c: c1e702 shl edi, 02
01ef178f: 8b9658c2f001 mov edx, [esi+1f0c258]
01ef1795: 8b8e58bef001 mov ecx, [esi+1f0be58]
01ef179b: 8b8758c6f001 mov eax, [edi+1f0c658]
01ef17a1: 03cd add ecx, ebp
01ef17a3: 03c2 add eax, edx
01ef17a5: 8b9758b6f001 mov edx, [edi+1f0b658]
01ef17ab: 03c5 add eax, ebp
01ef17ad: 03d5 add edx, ebp
01ef17af: c1f908 sar ecx, 08
01ef17b2: c1f808 sar eax, 08
01ef17b5: c1fa08 sar edx, 08
01ef17b8: 81f9ff000000 cmp ecx, 000000ff
01ef17be: 7e07 jle 01ef17c7
01ef17c0: b9ff000000 mov ecx, 000000ff
01ef17c5: eb06 jmp 01ef17cd
01ef17c7: 85c9 test ecx, ecx
01ef17c9: 7d02 jge 01ef17cd
01ef17cb: 33c9 xor ecx, ecx
01ef17cd: 3dff000000 cmp eax, 000000ff
01ef17d2: 7e07 jle 01ef17db
01ef17d4: b8ff000000 mov eax, 000000ff
01ef17d9: eb06 jmp 01ef17e1
01ef17db: 85c0 test eax, eax
01ef17dd: 7d02 jge 01ef17e1
01ef17df: 33 db 33

Windows 5.0 (Windows 2000 build 2195) [Service Pack 4]

EAX = 00000000
EBX = 02ae05c0
ECX = 02baadc0
EDX = 00000240
EBP = 00004800
DS:ESI = 0023:01e6e970
ES:EDI = 0023:02b459c0
SS:ESP = 0023:063bfc18
CS:EIP = 001b:01ef177d
FS = 0038
GS = 0000
EFLAGS = 00010246
FPUCW = ffff027f
FPUTW = ffffffff

MM0 = 0000000000000072
MM1 = 0000000400000010
MM2 = 0000000800000001
MM3 = f424000000000000
MM4 = 87170067df237000
MM5 = 8000000000000000
MM6 = a5ae880000000000
MM7 = a5ae880000000000

Crash reason: Access Violation

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

...while decompressing video frame 19377 with "Pinnacle DV codec" [biCompression=64737664] (VideoSource.cpp:1567)...

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

Thread traces:

Thread 00000428 (Main thread)
C:\p4root\dev_stable\VirtualDub\source\FilterSystem.cpp(126)
C:\p4root\dev_stable\VirtualDub\source\FilterSystem.cpp(124)
C:\p4root\dev_stable\VirtualDub\source\FilterSystem.cpp(126)
C:\p4root\dev_stable\VirtualDub\source\FilterSystem.cpp(124)
C:\p4root\dev_stable\VirtualDub\source\FilterSystem.cpp(126)
C:\p4root\dev_stable\VirtualDub\source\FilterSystem.cpp(124)
C:\p4root\dev_stable\VirtualDub\source\FilterSystem.cpp(126)
C:\p4root\dev_stable\VirtualDub\source\FilterSystem.cpp(124)
C:\p4root\dev_stable\VirtualDub\source\FilterSystem.cpp(126)
C:\p4root\dev_stable\VirtualDub\source\FilterSystem.cpp(124)
C:\p4root\dev_stable\VirtualDub\source\FilterSystem.cpp(126)
C:\p4root\dev_stable\VirtualDub\source\FilterSystem.cpp(409)
C:\p4root\dev_stable\VirtualDub\source\FilterSystem.cpp(409)
C:\p4root\dev_stable\VirtualDub\source\FilterSystem.cpp(409)
C:\p4root\dev_stable\VirtualDub\source\FilterSystem.cpp(409)
C:\p4root\dev_stable\VirtualDub\source\FilterSystem.cpp(429)
Thread 000005ac (FastWriteStream)
Thread 0000071c (Processing)
C:\p4root\dev_stable\VirtualDub\source\VideoSource.cpp(1598)
C:\p4root\dev_stable\VirtualDub\source\Dub.cpp(1946)
C:\p4root\dev_stable\VirtualDub\source\FilterSystem.cpp(517)
C:\p4root\dev_stable\VirtualDub\source\FilterSystem.cpp(530)
C:\p4root\dev_stable\VirtualDub\source\FilterSystem.cpp(517)
C:\p4root\dev_stable\VirtualDub\source\FilterSystem.cpp(530)
C:\p4root\dev_stable\VirtualDub\source\FilterSystem.cpp(517)
C:\p4root\dev_stable\VirtualDub\source\FilterSystem.cpp(530)
C:\p4root\dev_stable\VirtualDub\source\FilterSystem.cpp(517)
C:\p4root\dev_stable\VirtualDub\source\FilterSystem.cpp(530)
C:\p4root\dev_stable\VirtualDub\source\VideoSequenceCompressor.cpp(389)
C:\p4root\dev_stable\VirtualDub\source\VideoSequenceCompressor.cpp(406)
C:\p4root\dev_stable\VirtualDub\source\Dub.cpp(2103)
C:\p4root\dev_stable\VirtualDub\source\Dub.cpp(2143)
C:\p4root\dev_stable\VirtualDub\source\Dub.cpp(1941)
C:\p4root\dev_stable\VirtualDub\source\VideoSource.cpp(1563)
Thread 00000720 (Dub-I/O)

Thread call stack:01ef177d: miroDV2avi!DriverProc [01ee0000+41d0+d5ad]
01ee550f: miroDV2avi!DriverProc [01ee0000+41d0+133f]
01ee6a38: miroDV2avi!DriverProc [01ee0000+41d0+2868]
01ee428a: miroDV2avi!DriverProc [01ee0000+41d0+ba]
6a8f17f8: MSVFW32!ICSendMessage [6a8f0000+17c4+34]
6a8f4ee9: MSVFW32!ICDecompress [6a8f0000+4eae+3b]
004a0712: VideoSourceAVI::streamGetFrame()
00469edc: FastWriteStream::_Put()
00492eac: AVIOutputFile::writeIndexedChunk()
00463870: Dubber::WriteVideoFrame()
0045b68f: AVIPipe::getReadBuffer()
0046411e: Dubber::ThreadRun()
7c57b2af: KERNEL32!DuplicateHandle [7c570000+b1db+d4]
004aed3e: VDThread::StaticThreadStart()
004c6cac: _threadstartex@4()
7c57b388: KERNEL32!lstrcmpiW [7c570000+b2d1+b7]

-- End of report


and i have been told by Virtual Dub author the following:

"All of your crashes are the same; the Pinnacle DV codec is blowing up in its color conversion routine trying to read one of its internal YCbCr planes. I have no idea what could trigger this."

so i guess that after XX minutes the problem appears. does anybody know if i can achieve what i want using bigger programs like premiere or something else?

otherwise well it's not a big deal, just that i have to splt the videos into multiple parts.

if you have any valuable help for me, please contact me on icq 132516819 or email/MSN gabrio AT teamperfecto.com

thanks

Gabrio

jggimi
21st December 2004, 16:24
"Sounds" like you've reached a 2GB limit of some kind, since 9.5 minutes is approximately 2GB. But I have no idea where. FAT32 has a filesize limit of 4GB, so filesystem is probably not the problem.

errandboy
21st December 2004, 16:57
Building on what jggimi said, if the partition where you're capturing the digital video happens to be a FAT16 partition and you're running Windows 98, you will have a 2 GB size limit.

gabrio
21st December 2004, 19:29
absolutely not, i am running win 2k server and i do have all hdds formatted in NTFS file system, so...next suggestion ;-)

but i do believe that the problems resides in the fact that the pinnacle codec fails after it does XX loops, and that happens exactly after 10-10.5 minutes.

buzzqw
22nd December 2004, 08:14
capturing without prefiltering ?

BHH

communist
22nd December 2004, 16:58
Originally posted by gabrio
but i do believe that the problems resides in the fact that the pinnacle codec fails after it does XX loops, and that happens exactly after 10-10.5 minutes.
Well if its just the codec ;)
You may want to try one of the following solutions:
1) Change your DV codec, you can try PanasonicDV or ffdshows DV decoder (encoder was buggy last time I checked)
2) Use VirtualDub 1.6+ which comes with its own DV decoder.