Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
7th April 2006, 02:31 | #21 | Link |
Avisynth Developer
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 3,167
|
@AVIL, (and others),
Plugins and applications requiring SetPlanarLegacyAlignment are broken and need to be fixed before 2.6 hits the streets. Please report such issues to the authors of the software. Code that needs the Pitch of a video plane must not assume any alignment or relationship, alway use the GetPitch() method. @Squid, Yes the internal code for all this seems 2 GB limited everywhere, you're probably right on the money about it being a cut and paste of the same dumb code everywhere. The quick debug I did shows the code is probably using long everywhere instead of ulong or __int64 Code:
long lFilePos = lStart * lBytesPerSample + lOffset |
7th April 2006, 09:42 | #22 | Link |
Registered User
Join Date: Dec 2004
Location: Melbourne, AU
Posts: 1,963
|
I've already imported most of the vdub code, for the most part it is equivalent to putting __int64 in all the right places; it just calls it VDPosition or sint64 instead of __int64 (via typedef). Still uses mmio or AVIFile routines, so it is limited like Avery said. I was thinking it might be possible to write a custom I/O procedure to plug in to mmioInstallIOProc, and use mmioSendMessage instead of mmioSeek when the offset is larger than 0x7FFFFFFF.
What I don't understand is why mmio and avifile will quite happily read over the 2gb boundary, but hurk if you seek past it then attempt to read. I even tried setting lDiskOffset manually using mmioGetInfo/SetInfo, but no dice. Last edited by squid_80; 7th April 2006 at 09:45. |
7th April 2006, 15:23 | #23 | Link | |
Avisynth Developer
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 3,167
|
Quote:
However doing a seek on huge files is a pain. All the old calls like _lseek have signed 32 bit args so they "hurk" as you say. Interestingly relative mode seeking seems to work, so I guess the mm/av code must all use absolute mode seeking. Even the modern call SetFilePointer is a pain to drive for huge files access. So a lot of slack code just ignores the high order 32 bit pointer arg and so you are stuck in a 2 gb world still. The avi code is certainly old enough to be using _lseek or a slack implementation of SetFilePointer. And M$ want to disown AVI and do everything in their nasty proprietory ASF format, so I guess they see 2gb as a lever. If you are serious about doing a reimport of the VDub code please check it into the avisynth_2_6 CVS branch. If it is low fuss enough we can retrofit it to the 2.5.7 base. From what you are saying and from what I am seeing breaking the 2gb barrier is well out of scope for a bug fix release, it's going to be a major step with lots of testing and bugs. |
|
19th April 2006, 14:25 | #24 | Link |
ангел смерти
Join Date: Nov 2004
Location: Lost
Posts: 9,558
|
I was going to ask for a way to cache function calls without their internals (sort of a heigharchial cache or something, where different entries have different merits), but now I kind of suspect you're already doing it? I have a script that uses about 70 megs of cache per frame, and it tops out after 10 frames, but the final frame is still in cache and accessible to temporal filters for at least 40 frames! Is this just random chance, or is the cache really that smart?
|
19th April 2006, 15:47 | #25 | Link |
Avisynth Developer
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 3,167
|
Yes, this is the intended behaviour.
All cache instances remember there accessed frame numbers. When you start re-hitting pre-loved frame numbers, that particular cache instance starts asking the memory manager to "promote" any vfb's it receives to the front of the LRU chain. So in your case as the top cache instance is being asked for pre-loved frames it starts promoting it's vfb's. During the first 10 frames (while the LRU is filling) it will be certainly satisfying any requests from cache, thus lower cache instances never see any re-hits. After the cache has filled, the top instance has a head start, and continued success means it will be the only cache instance being asked for pre-loved frames. Last edited by IanB; 3rd May 2006 at 13:47. Reason: ping |
7th May 2006, 03:45 | #28 | Link |
Avisynth Developer
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 3,167
|
@ricardo.santos,
Thank you very much, just the data I needed to see, and you repositioned the dialogs to show everything. You are a champ! We need more tester like you It seems the files in your plugin directory are protected somehow (possible Readonly?), so for this install the DirectShowSource.dll, TCPDeliver.dll and colors_rgb.avsi files will not have been updated. Please check the attributes and permissions on these 3 files and report what the status is. It seems the "if errors ...." statement in the script regards "skipped:" files as an error. DAMN! In the Alpha 3 release I changed the install mode from forced to ask, looks like this is going to have some positive benefits in helping with this problem. Before you fix the attribute/permisions of the 3 plugin files can you download and install the 2.5.7 Alpha 3. It should display the installers conditional file install question. Clicking Yes should force overwrite the problem file if they are simply marked Readonly. Other restrictions will need to be manually corrected, and clicking yes after fixing should give a succesful install. Your help in resolving this matter is very greatly appreciated. IanB, Avisynth Team |
4th June 2006, 01:45 | #29 | Link | |
Fighting spam with a fish
Join Date: Sep 2005
Posts: 2,699
|
Uh, hi all. I don't know if this is the right thread but I am having trouble with RemoveGrain, RemoveDirt, and RemoveNoiseMC right now.
I get this error message: Quote:
|
|
5th June 2006, 09:11 | #30 | Link |
Avisynth Developer
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 3,167
|
0xC000001E: "An attempt was made to execute an invalid lock sequence"
What Processor are you running? Typically trying to execute a LOCK MOV ...., etc, sequence on some processors will cause this error. Question is where is it coming from. The compile shouldn't generate this code, I certainly know not to try it ( I hope others do as well). Posssibly it is executing data or spewed upon code and accidently coming across this sequence. (Run some memory diags!) 2.5.7 Alpha 3 should not change this, unless the subtly different code order effects such an insideous bug. An older version without the XPsp2 MSVCRT.DLL workaround code may give better diagnostic information. |
6th June 2006, 01:29 | #32 | Link |
Fighting spam with a fish
Join Date: Sep 2005
Posts: 2,699
|
I am running an intel p4 2.4 ghz processor, I can't run memtest yet as I don't have access to the compter but as soon as I can I will tell you if anything comes up.
Would you suggest I go back to 2.56? I don't have a huge need for 2.57 and 2.56 is stable. |
14th June 2006, 14:28 | #34 | Link | |
Avisynth Developer
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 3,167
|
Quote:
Also |
|
17th June 2006, 01:26 | #35 | Link | |
Fighting spam with a fish
Join Date: Sep 2005
Posts: 2,699
|
Okay, the error does not show up with RemoveGrain any more for some reason but it does show up with RemoveNoiseMC.
Here is my script. very basic test. Quote:
|
|
18th June 2006, 05:48 | #37 | Link |
Avisynth Developer
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 3,167
|
Okay this may be a plane alignment/pitch thing. Please try these 2 scripts with 2.5.7 and 2.5.6 respectivly.
Code:
DgDecode_mpeg2source("C:\Documents and Settings\Merlin\Desktop\Movies\USA Parkour\usa.parkour[1].d2v") RemoveNoiseMC() SetPlanarLegacyAlignment(True) # For 2.5.7 to work? Code:
DgDecode_mpeg2source("C:\Documents and Settings\Merlin\Desktop\Movies\USA Parkour\usa.parkour[1].d2v") RemoveNoiseMC() SetPlanarLegacyAlignment(False) # For 2.5.6 to fail? |
19th June 2006, 08:52 | #39 | Link |
Avisynth Developer
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 3,167
|
Okay it's not an alignment/ pitch thing.
First try this, i.e. with BlankClip() substitution... Code:
DgDecode_mpeg2source("C:\Documents and Settings\Merlin\Desktop\Movies\USA Parkour\usa.parkour[1].d2v") BlankClip(Last) RemoveNoiseMC() Code:
AviSource("C:\Documents and Settings\Merlin\Desktop\Movies\USA Parkour\usa.parkour[1].AVI") RemoveNoiseMC() |
20th June 2006, 23:56 | #40 | Link |
Fighting spam with a fish
Join Date: Sep 2005
Posts: 2,699
|
Well I am using alpha 2 only, not alpha 3, and I just tested the first script/ blank clip function and it didn't work. I am now transcoding the video to avi really quick.
Okay done. Ran the Avisource script and it too shows the error. Last edited by Adub; 20th June 2006 at 23:58. |
Thread Tools | Search this Thread |
Display Modes | |
|
|