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. |
4th September 2014, 14:03 | #1 | Link |
Registered User
Join Date: Aug 2006
Location: Taiwan
Posts: 392
|
Eedi2
EEDI2-r6.7z
https://github.com/HomeOfVapourSynth...urSynth-EEDI2/ Mainly used as building block for anti-aliasing scripts, not really for deinterlacing nowadays. Last edited by HolyWu; 16th May 2015 at 20:39. Reason: r6 |
4th September 2014, 18:47 | #2 | Link |
unsigned int
Join Date: Oct 2012
Location: 🇪🇺
Posts: 760
|
Nice.
Is it as slow as EEDI3? https://github.com/HolyWu/VapourSynt...EDI2.cpp#L1294 This looks like more than one thread will write to d->cx2 and friends, since you use fmParallel.
__________________
Buy me a "coffee" and/or hire me to write code! |
5th September 2014, 00:38 | #3 | Link | |
Registered User
Join Date: Aug 2006
Location: Taiwan
Posts: 392
|
I can't do speed comparison at the moment as my computer is doing encoding.
Quote:
|
|
5th September 2014, 09:20 | #4 | Link | |
unsigned int
Join Date: Oct 2012
Location: 🇪🇺
Posts: 760
|
Quote:
2. Use fmParallel and modify the filter so the getframe function doesn't write to the filter's shared data. You would allocate and free those arrays in the getframe function. If you feel like trying Myrsloik's suggestion, you may avoid allocating and freeing those things on every frame request.
__________________
Buy me a "coffee" and/or hire me to write code! |
|
5th September 2014, 17:03 | #5 | Link |
Registered User
Join Date: Aug 2006
Location: Taiwan
Posts: 392
|
Thanks for the info. I think I would just allocate and free the space in the getframe function and be done with it.
By the way, released r2 to fix an error that mthresh and vthresh was not properly initialized. |
14th May 2015, 20:36 | #7 | Link |
Registered User
Join Date: Jun 2012
Location: Ibiza, Spain
Posts: 321
|
I don't know exactly when neither why or even if it was always like this, but:
Code:
$ vspipe make-crash.py /dev/null Segmentation fault Code:
import vapoursynth as vs c = vs.get_core() s = c.std.BlankClip() s = c.eedi2.EEDI2(s, field=1) s.set_output() Is this happening only to me? :/ EDIT: Everything at latest git. Last edited by Are_; 14th May 2015 at 20:38. |
14th May 2015, 22:21 | #8 | Link | |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
Quote:
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
|
14th May 2015, 22:38 | #9 | Link |
Registered User
Join Date: Jun 2012
Location: Ibiza, Spain
Posts: 321
|
I think this time I got it right.
Some debug gibberishv2. |
14th May 2015, 23:00 | #10 | Link | |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
Quote:
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
|
14th May 2015, 23:30 | #11 | Link |
Registered User
Join Date: Jun 2012
Location: Ibiza, Spain
Posts: 321
|
I don't know how to run that exactly, here them go a few trys:
valgrind logs They were generated with this command lines: Code:
valgrind --tool=memcheck --leak-check=yes vspipe make-crash.py /dev/null 2> valgrind1.txt valgrind --track-origins=yes --tool=memcheck --leak-check=yes vspipe make-crash.py /dev/null 2> valgrind2.txt valgrind -v --track-origins=yes --tool=memcheck --leak-check=yes vspipe make-crash.py /dev/null 2> valgrind3.txt valgrind --leak-check=full --show-leak-kinds=all -v --track-origins=yes --tool=memcheck --leak-check=yes vspipe make-crash.py /dev/null 2> valgrind4.txt |
15th May 2015, 16:20 | #12 | Link |
Pajas Mentales...
Join Date: Dec 2004
Location: Spanishtán
Posts: 496
|
same here, tested with gcc 5.1.0 and gcc 4.9 and clang 3.5.0
with use this flags Code:
CPPFLAGS="-D_FORTIFY_SOURCE=2" CFLAGS="-march=native -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4" CXXFLAGS="-march=native -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4" LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro" |
16th May 2015, 12:06 | #15 | Link |
unsigned int
Join Date: Oct 2012
Location: 🇪🇺
Posts: 760
|
tmp2_2 is freed twice, first at line 1325, then at line 1413. The tmp2_2 variable in eedi2GetFrame is not affected by the assignment inside the EEDI2 function. You need to pass its address (or something similar with references).
__________________
Buy me a "coffee" and/or hire me to write code! |
|
|