
VEG
12.12.2016
09:55:09
Он чётко сказал:
If someone wants to go off and implement suspension in our arithmetic codec and submit a PR, that's great. I'll gladly integrate and test it, assuming it doesn't create a performance loss or other issues.

Yokai
12.12.2016
09:56:04
добавление кода само по себе предполагает performance loss

VEG
12.12.2016
09:56:58
Ну видимо там как-то нужно менять декодер, может быть есть возможность изменить его так, чтобы он оказался медленнее, чем есть =)

Google

Yokai
12.12.2016
09:56:59
хорошо, а куда собственно коммитить? Где репозиторий libjpeg-turbo, откуда я могу скачать код, изменить его исобрать?

VEG
12.12.2016
09:57:20
https://github.com/libjpeg-turbo/libjpeg-turbo/issues/120
https://github.com/libjpeg-turbo/libjpeg-turbo
Там же можно с автором пообщаться.
libjpeg-turbo используются в Chromium и в Firefox, так что оно сразу в два проекта идёт. Правда, арифметический кодер там отключён двумя дефайнами. Но если он не будет глючить в браузерах, то будет гораздо проще уговорить разрабов хрома и лисички включить эту поддержку по умолчанию.
Даже без дополнительной оптимизации скорости декодирования, потому что она сравнима с WebP.
Ещё эта же либа исопльзуются в Android 7+
То есть оно и в Android может попасть.

Yokai
12.12.2016
10:00:36
в си есть декораторы? О_О

VEG
12.12.2016
10:01:12
?
Там для включения/отключения поддержки арифметического кодирования и декодирования есть два define-а, один для включения поддержки кодирования, второй для включения поддержки декодирования.
#define C_ARITH_CODING_SUPPORTED
#define D_ARITH_CODING_SUPPORTED
Типа такого.

Google

VEG
12.12.2016
10:03:16
И сама либа по умолчанию уже несколько версий собирается с таковой поддержкой. Но разрабы браузеров сами себе её пересобирают, и у них эта поддержка выключена.

Yokai
12.12.2016
10:05:23
if (! (*src->fill_input_buffer) (cinfo)) для начала надо допереть, что означает это таинственное условие

VEG
12.12.2016
10:07:12
Я думаю там нетривиальный патч, раз автор libjpeg-turbo завёл речь о финансировании.

Yokai
12.12.2016
10:08:00
я думаю, нет смысла размышлять над словами и действиями дядек и компаний, если есть код и можно его потыкать

VEG
12.12.2016
10:12:26
Пока что я получил мнение товарищей из Apple и Google по поводу такой поддержки. Mozilla уже давно сказала, что они поддержат при условии, если кто-то из других разрабов браузеров поддержит. Apple ответила скептицизмом, мол профит недостаточно велик, чтобы создавать лишнюю несовместимость. Со стороны Хромиума была явная заинтересованность в стиле «если оно не потребует больших усилий с нашей стороны, нет риска наличия в этом коде страшных уязвимостей, то возможно мы за».
То есть Google можно подружить с Mozilla и они вместе могут поддержать тему.
А там уже будет проще склонить к этому и Apple. И может даже Microsoft.

Yokai
12.12.2016
10:24:31
разобрался, это такой хитрый вызов функции с аргументом cinfo

Славик
12.12.2016
10:24:41
0_о
я думал тебе интересно, что делает эта функция

Yokai
12.12.2016
10:24:51
теперь гадаю о макросе #define GETJOCTET(value) (value)

Славик
12.12.2016
10:24:52
ты си не знаешь?
ты же знаешь, что делает #define?

Hacker_Define
12.12.2016
10:25:30
http://www.the-village.ru/village/business/news/252467-linux-roman?utm_source=&utm_medium=&utm_campaign=rossiyskomu-razrabotchiku-os-zapretili-is

Yokai
12.12.2016
10:25:37
знаю

Славик
12.12.2016
10:25:45
линкер перед компиляцией заменит в коде все дефайны на их значения
то есть в данном случае ничего не будет происходить специфического

Yokai
12.12.2016
10:26:21
но я еще пытаюсь понять, в чем философский смысл дефайна A(val) (val)
зачем он мог понадобиться

Славик
12.12.2016
10:26:45
на потом

Google

Славик
12.12.2016
10:26:55
сейчас ты ничего не делаешь со значением
но потом может захочешь что-то сделать
или наоборот сначала был какой-то код, а потом ты просто убрал его
фиксил баг и сделал костыль
единственное меня смущают слегка скобки
не могу придумать места в коде, когда
f(x) нельзя было бы безболезненно заменить на x
if (! (*src->fill_input_buffer) (cinfo))
а вот такое место и может быть дырявым
если value - что-то не однозначное

Кубик
12.12.2016
10:35:01

Славик
12.12.2016
10:35:15
Yokai же выше написал

Кубик
12.12.2016
10:35:18
F(x)

Славик
12.12.2016
10:35:27
разобрался, это такой хитрый вызов функции с аргументом cinfo

Кубик
12.12.2016
10:35:28
Функция

Славик
12.12.2016
10:36:35
как бы функция есть и в математике, и в программировании
признай, что ты просто студент, который надеется, что его научат программированию, но сам для этого ничего не делаешь

Yokai
12.12.2016
10:39:50
короче в этом арифметическом декомпрессоре ERREXIT(cinfo, JERR_CANT_SUSPEND) на мой взгляд не вызовется ни при каких обстоятельствах. Надо потестить.

Славик
12.12.2016
10:47:10
судя по названию это заглушка в случае ошибки
как бы пофиг, если не вызовется

Google

Yokai
12.12.2016
10:52:20
если if (! (*src->fill_input_buffer) (cinfo)) она вызывается. А в том методе return TRUE единственный внизу. А если не вызывается JERR_CANT_SUSPEND, значит, может, уже может суспендиться? И картинки у меня в хромиуме не лагали

3bl3gamer
12.12.2016
10:58:21
#ifdef __CHAR_UNSIGNED__
#define GETJOCTET(value) (value)
#else
#define GETJOCTET(value) ((value) & 0xFF)
#endif /* __CHAR_UNSIGNED__ */

Yokai
12.12.2016
11:02:09
похоже, что даже на случай, если файл неожиданно заканчивается, предохранились. Крч надо собирать руками последний хромиум и последний libjpeg-turbo и проверять

Иисус
12.12.2016
11:22:50
http://piccy.info/view3/10628571/4ba3ee589bd570adf716ac315a54d1da/orig/
Почему не ставится телеграм?)

3bl3gamer
12.12.2016
11:27:01

VEG
12.12.2016
11:40:21
И по понятным причинам это основная ОС на которую смотрят.
Будет оно под виндой работать — тогда все мейнтейнеры разных дистрибутивов linux будут включать libjpeg с поддержкой арифметического кодирования. Сейчас одни включают, другие нет.

Ar
12.12.2016
12:12:37
Кодеры под андроид есть?

¯\_(ツ)_/¯
12.12.2016
12:26:41

Ar
12.12.2016
12:27:14

¯\_(ツ)_/¯
12.12.2016
12:27:35

Ar
12.12.2016
12:27:37
Жду ответа "Я за себя и говорю".

¯\_(ツ)_/¯
12.12.2016
12:28:58

Ar
12.12.2016
12:29:33

¯\_(ツ)_/¯
12.12.2016
12:29:49

Ar
12.12.2016
12:30:00

¯\_(ツ)_/¯
12.12.2016
12:31:45

Google

Ar
12.12.2016
12:33:31
>blocked users
Ору.
Между участниками же, чтобы я не читал твои посты.
А ты мне банлист показываешь.

Кубик
12.12.2016
12:34:07

Ar
12.12.2016
12:34:17
Пиздец, короче.

¯\_(ツ)_/¯
12.12.2016
12:34:25

Ar
12.12.2016
12:34:58
Ну-ка проверим.

¯\_(ツ)_/¯
12.12.2016
12:36:00

Ar
12.12.2016
12:36:20
Затраллил, идут.

¯\_(ツ)_/¯
12.12.2016
12:36:40

Trilium
12.12.2016
12:36:56
/stat@combot

Ar
12.12.2016
12:37:06

¯\_(ツ)_/¯
12.12.2016
12:37:26

Ar
12.12.2016
12:38:10

¯\_(ツ)_/¯
12.12.2016
12:43:29

Славик
12.12.2016
13:00:37
народ, мне тут годноту скинули
это подгон всех времен