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. |
23rd June 2016, 11:31 | #1801 | Link | |
Registered User
Join Date: Jan 2014
Posts: 2,314
|
Quote:
|
|
23rd June 2016, 12:55 | #1803 | Link | |
Acid fr0g
Join Date: May 2002
Location: Italy
Posts: 2,580
|
Quote:
Uploaded resulting files.
__________________
@turment on Telegram |
|
23rd June 2016, 15:49 | #1804 | Link |
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
|
The more I think about it, the more I like the blank slate approach when it comes to how to go from here regarding AVS+.
In order to serve frames to a client, all that's needed is avisynth.dll and optionally a some (compatible) plugins in a directory. The user doesn't have to "install" Avisynth and switching between versions (and auto-load plugin directories) can be done in an instant without rebooting. Considering this, re-compiling all compatible plugins catering for an all new interface shouldn't be such a big deal. If a user really has to use some ancient plugin, he could just switch to the "official" AVS2.6.
__________________
Groucho's Avisynth Stuff |
23rd June 2016, 16:56 | #1806 | Link |
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
|
Why? What's wrong with RGTools?
__________________
Groucho's Avisynth Stuff |
23rd June 2016, 21:27 | #1807 | Link |
AVS+ Dev
Join Date: Aug 2013
Posts: 359
|
Everybody please, there is no need to point out that a conversion layer can be written. As described in #1770, I know that the old interface can be worked around. But frankly, I will not invest my own time in developing and maintaining compatibility to something which we actually want to switch away from, once we switched away from it. I will not block such attempts, so if somebody comes up with working patches, I'll merge them. But those patches won't come from me.
As for accessing size_t members using int-functions: That will work in *most* cases, as long as plugins are well-behaved. Unfortunately, by some brain-dead decision in the early development of avs classic, the class members have been made public. Knowing the quality standards of many plugins, there is no guarantee that somebody does not access the fields directly, or maybe even create/dereference instances of VideoFrame objects. They shouldn't, most plugins probably don't, but this is a breaking change of the ABI, and I won't be doing code reviews of all plugins to determine which ones we broke and which ones we didn't. It would be a different story if we had a central repository of all plugins in Git so that we can recompile them with a single click, as well as a package manager, so that if somebody updates the core, plugins will be updated automatically to the new interface. This was a GSoC-proposal once...
__________________
AviSynth+ |
23rd June 2016, 22:48 | #1808 | Link | |
AVS+ Dev
Join Date: Aug 2013
Posts: 359
|
Quote:
Looking at the encodings, to me this looks like a clipping (overflow/underflow) bug, both at high and low pixel values. If that is true, once the binary filter causing this is isolated, the fix should be simple.
__________________
AviSynth+ |
|
23rd June 2016, 23:12 | #1809 | Link | |
Acid fr0g
Join Date: May 2002
Location: Italy
Posts: 2,580
|
Quote:
__________________
@turment on Telegram |
|
23rd June 2016, 23:28 | #1810 | Link |
AVS+ Dev
Join Date: Aug 2013
Posts: 359
|
Not strange at all. It is with all likelyhood an internal filter in the Avs+ core. Most of those have been rewritten in Avs+ to get rid of inline assembly. And I do see SMDegrain making calls to internal functions along the prefilter=4 paths (too). KNLMeansCL might be the feature of prefilter=4, but I do not think this plugin is the cause of the problem.
__________________
AviSynth+ |
23rd June 2016, 23:53 | #1811 | Link | |
Registered User
Join Date: Jan 2012
Location: Mesopotamia
Posts: 2,587
|
Quote:
__________________
See My Avisynth Stuff |
|
24th June 2016, 07:21 | #1812 | Link |
German doom9/Gleitz SuMo
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 6,782
|
... so are two different plugins using the same hardware for acceleration, therefore might switch hardware operation modes of graphic chips independently of each other, especially when working multi-threaded. There is little surprise that this may corrupt the video when the GPU gets reprogrammed to decode the next frame while filtering the previous.
|
24th June 2016, 08:46 | #1813 | Link |
Registered User
Join Date: Oct 2002
Location: France
Posts: 2,316
|
Honestly, about interface, evolution does the job only half, to do thing properly to the end, i would have put all the pitch in ptrdiff_t. If you have to break existing things, break it for a full good purpose, not half. And also the Getpitch functions should return the same.
But, i agree about something. These critical datas shouldn't have been public, and should be accessed only via functions. Well, personnaly, i would have done : Code:
class VideoFrame { public: volatile long refcount; VideoFrameBuffer* const vfb; const size_t offset; const ptrdiff_t pitch; const uint32_t row_size; const int32_t height; const size_t offsetU, offsetV; // U&V offsets are from top of picture. const ptrdiff_t pitchUV; const uint32t row_sizeUV; const int32_t heightUV; Last edited by jpsdr; 24th June 2016 at 09:02. |
24th June 2016, 11:13 | #1815 | Link | |
Acid fr0g
Join Date: May 2002
Location: Italy
Posts: 2,580
|
Quote:
__________________
@turment on Telegram |
|
24th June 2016, 11:22 | #1816 | Link |
AVS+ Dev
Join Date: Aug 2013
Posts: 359
|
Can you provide a minimalistic script that reproduces the problem? Not with SMDegrain, but something without eval, without calling other scripts, without conditional code etc. As few lines as possible.
__________________
AviSynth+ |
24th June 2016, 11:30 | #1817 | Link | |
Acid fr0g
Join Date: May 2002
Location: Italy
Posts: 2,580
|
Avisynth+
Quote:
Sorry, not in my capabilities.
__________________
@turment on Telegram |
|
24th June 2016, 13:04 | #1818 | Link |
Registered User
Join Date: Sep 2010
Location: Ukraine, Bohuslav
Posts: 377
|
tormento
Avs+: r1841, MT-pfmod, x86 KNLMeansCL: http://rgho.st/6K5RRq2t8 (dunno how to check file version) Script: Code:
SetMemoryMax(8000) SetFilterMTMode("DEFAULT_MT_MODE", 2) SetFilterMTMode("ChangeFPS", 3) SetFilterMTMode("DGSourceIM", 3) DGSourceIM("13HoursCUT.dgi", silent=true) ChangeFPS(last,last,true) Crop(0, 140, 0, -140) SMDegrain (tr=4,PreFilter=4,thSAD=400,contrasharp=false,refinemotion=false,plane=4,chroma=true,lsb=true,mode=6) Prefetch(8) Please ensure that your PC is not infected by viruses, then try my KNLMeansCL (32-bit dll). I didn't tried to check this script on my PC, only on notebook. |
24th June 2016, 13:31 | #1819 | Link | |
Soul Architect
Join Date: Apr 2014
Posts: 2,559
|
Quote:
|
|
24th June 2016, 13:44 | #1820 | Link |
Registered User
Join Date: Sep 2010
Location: Ukraine, Bohuslav
Posts: 377
|
Strange, but in avspmod x64 it only shows the first 800 pixels for height. Applying SMDegrain (with lsb) didn't change it, still 1920x800. 32-bit version works fine. Need to investigate.
Upd: made a new index and problem is fixed now (tested with avs+ r1873, x64; index made with DGIndexIM beta 50 X64). Still can't see any corruption :\ Last edited by DJATOM; 24th June 2016 at 14:09. |
Thread Tools | Search this Thread |
Display Modes | |
|
|