LINUX.ORG.RU

openjpeg 1.5.1 to 2.1.2

 


0

2

Всем привет.

Кто-нибудь работал с новым openjpeg?

Конкретно проблема - при переходе с 1.5.1 на 2.1.2 изменился интерфейс, и приходится чуточку кода исправлять. Разработчики кое-что переименовали, кое-что убрали, но самое главное, что они довольно сильно понмеяли работу с потоками. Раньше для открытия потока использовался один метод

stream = opj_cio_open(codec, source, file_length)
, после чего мы уже можем просто его декодировать. И всё работало.

Сейчас же это убрали, и нужно вручную инициализировать поток:

stream = opj_stream_create(file_length, true);
opj_stream_set_user_data(stream, source, free);

Но такой подход почему-то не работает, так как после вызова jpeg файла пишет SOC не найден.

Может кто сталкивался с подобным?

★★

Последнее исправление: zamazan4ik (всего исправлений: 1)

Ответ на: комментарий от zamazan4ik

нужно, но не работает. документацию-то читал? не работает то, что там написано, или как?

anonymous
()
Ответ на: комментарий от anonymous

перерыл весь openjpeg.org - документация там, скажем прямо, не очень. Не работает чтение с потока - в версии 1.5.1 после вызова opj_cio_open я мог сразу делать opj_decode и всё замечательно работало - заполнялась структура opj_image_t. В версии 2.1.2 opj_cio_open убрали, вместо этого теперь нужно созадавать поток, потом отдельно определять для него данные. Но даже после этого при вызове opj_read_header я ловлю ошибку, что не найден SOC. Хотя этот же файл openjpeg 1.5.1 прекрасно парсит.

zamazan4ik ★★
() автор топика

Не работал ни с одной версией, но написано «abstract stream». Может надо самому реализовать работу с буфером как здесь, например?

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

Там вроде как в середине определяются дефолтные функции... Но попробую всё равно. Спасибо.

zamazan4ik ★★
() автор топика

одно говно переписали на том же самом говне. предвижу 9000 багов связаных с безопасностью, 666 переполнении стека неправильными файлами и ещё овер дофига граблей и траблов.

anonymous
()
Ответ на: комментарий от zamazan4ik

Ну это был стеб на тему «безопасных» языков, хотя в вебе штука полезная, так как j2k никто кроме Safari по сути не умеет

annulen ★★★★★
()

Касательно проблемы - да, действительно нужно было опрееделять свои функции для чтения и так далее. Это решило проблему - теперь header читает нормально.

Теперь проблема в том, что происходит где-то внутри что-то не так, и выдаёт в результате просто false. Но это уже совсем другая история...

zamazan4ik ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.