- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
## dup_hq - merge ##
dup = opos!=pos || abs(dm)<2 || abs(dm)==3 ? 0 : dcn*5<dbc && dnn*5<dbc &&
(dcn<1.25*thr || bn<bc && pos==lpos) || (dcn*dcn<dbc || dcn*5<dbc) && bn<bc && pos==lpos
&& dnn<.9*dbc || dnn*9<dbc && dcn*3<dbc ? 1 : (dbc*dbc<dcn || dbc*5<dcn) &&
bb<bc && pos==lpos && dbb<.9*dcn || dbb*9<dcn && dbc*3<dcn || dbb*5<dcn &&
dbc*5<dcn && (dbc<1.25*thr || bb<bc && pos==lpos) ? -1 : 0
mer = bom==false && opos==pos && dup==0 && abs(dm)>2 &&
(dbc*8<dcn || dbc*8<dbb || dcn*8<dbc || dcn*8<dnn || dbc*2<thr ||
dcn*2<thr || dnn*9<dbc && dcn*3<dbc || dbb*9<dcn && dbc*3<dcn)
add = bp1*cn2>bn2*cp1*(1+thr*.01) && bn0*cn2>bn2*cn0*(1+thr*.01) &&
cn2*bn1>cn1*n2*(1+thr*.01)
dup = bom ? (bn0>bp2 && bn0>=bp1 && bn0>bn1 && bn0>bn2 && cn0<125 ?
(d12*d12<d10 || d12*9<d10) ? 1 : (d10*d10<d12 || d10*9<d12) ?
0 : 4 : bp1>bp3 && bp1>=bp2 && bp1>bn0 && bp1>bn1 ? 1 : 0) : dup!=0 ?
dup : om>0 && om<5 ? (bbool==false ? 0 : om==4 && bp1*cn1<bn1*cp1 ||
om==3 && d10<d01 || om==1 ? -1 : 1) : om==5 ? (bp1*cp2>bp2*cp1*(1+thr*.01) &&
bn0*cp2>bp2*cn0*(1+thr*.01) && cp2*bn1>cn1*bp2*(1+thr*.01) &&
(add==false || cp2*bn2>cn2*bp2) ? -2 : add ? 2 : bn0*cp1>bp1*cn0 &&
(bn0*cn1<bn1*cn0 || cp1*bn1>cn1*bp1) ? -1 : bn0*cn1>bn1*cn0 ? 1 : 0) : 0
это называется AviSynth - и это вполне нормальный скрипт, ибо другого пути там просто нет, да и альтернатив AviSynthy пока нет
До тех пор пока мне не понадобилось немного доработать его
И вот тогда возникли реальные траблы.....
Тоесть там нет констант, имена переменных не могут превышать трех символов и длина строки не может быть меньше 200 символов?
Какой право неудобный язык
Штуковина - видео постпродакшн фреймсервер. Говорят, что даже продвинуто нелинейный.
Цитата из оф вики "Поскольку текстовые скрипты являются вполне читаемыми (по-английски), проекты естественным образом само-документируются" "замечательно мощно" иллюстрирует данный кодесампл.
написать программу, понятную компутеру - несложно. сложно написать программу понятную человеку.
и да, я не верю что даже используя исключительно тернарные операторы нельзя написать на порядок понятнее
другой может написать нереально полезную вещь, да еще и таким проктальным способом, и да она будет понятна не всем, зато полезности на порядок больше
зачастую это не совместимо
ИМХО разные весовые категории...
>>>>и да, я не верю что даже используя исключительно тернарные операторы нельзя написать на порядок понятнее
можно, но обычно такое пишется как скрипт для себя, и уже потом может выложено для комьюнити.
Одно дело придумать что-то концептуально новое и тут важен сам принцип,функциональность, отсутсвие багов, а не что все сходу смогут это читать. Главное не красивая коробка, а чтоб работало.
Другое дело - взять с инета кучу исходников или использовать готовые библиотеки и красиво это скомпоновать.
Вот пример, перед тем как математика Галуа подстрелили на дуэли, за ночь до дуэли он изложил свою теорию на 13 страницах.
Пока Лагранж не расписал на !700 страницах своей книги, что имел ввиду Галуа никто не мог понять, что же значили эти 13 страниц.
Галуа придумал концепт, а Лагранж красиво его изложил.
чем хуже напишешь код, тем дольше придется его исправлять/улучшать. три года исправлений тока подтверждают это
неа, просто там концептуально новые вещи вроде double-blendoв добавлены и утечки перидически фиксились - он же не каждый день его делал.
не спорю мне понять этот код сложно именно поэтому он здесь
там есть функции, globalsы, evalы, importы, есть плагины для, только не смейтесь - массивов, хитрой многопоточности и рекурсии
циклов и ifов нет - только тернарные операторы.
есть огромная куча фильтров идущих прямо в core, даже такие наворочение вещи как motion detection уже вроде положили в core-filters
с помощью него к примеру можно делать видео плавным - он может создавать с помощью компенсации движения промежуточные кадры.
есть даже такая экзотика как tcp-сервер, то есть запросто можно создать свой широковещательный video-streaming сервер в сети и можно применять к видео runtime компрессию, причем это гораздо серъезнее всяких радминов...
и конечно главная фича - плагины, которые можно писать самому к примеру на всеми тут так любмом с++
т.к. это фреймсервер - он крайне продвинут именно в области видео.
кстати
Reverse (clip)
This filter makes a clip play in reverse. This is useful for watching people walk backwards while listening to hidden satanic messages.
reverse звука делает задом наперед не слова, а звуковой поток
Спасибо, кэп!