LINUX.ORG.RU

Сообщения LINUX-ORG-RU

 

Возможно, диск скоро сломается!

 ,

6 лет верой и правдой служит мне корнем Seagate 80 Гб IDE ST380021A (3.19) это далеко не самый старый HDD в системе. Но что-то в последнее время полетел в космос Raw Read Error Rate видимо что-то не так.
Вчера на ~43 миллиона ошибок было меньше :) Но все ошибки были исправлены аппаратным ECC и как бы ладно.

"ID","Name","Failed",            "Normalized","Worst","Threshold", "Raw value",    "Type","Flags"
   1,"Raw Read Error Rate",         "never",    "78",  "59", "34", "243 580 482",  "pre-failure","POSR-- "
   3,"Spin-Up Time",                "never",    "70",  "70",  "0",           "0",  "pre-failure","PO---- "
   4,"Start / Stop Count",          "never",   "100", "100", "20",         "375",  "old age","-O--CK "
   5,"Reallocated Sector Count",    "never",   "100", "100", "36",           "7",  "pre-failure","PO--CK "
   7,"Seek Error Rate",             "never",    "84",  "60", "30", "258 216 563",  "pre-failure","POSR-- "
   9,"Power-On Time",               "never",    "37",  "37",  "0",      "55 920",  "old age","-O--CK "
  10,"Spin Retry Count",            "never",   "100", "100", "97",           "0",  "pre-failure","PO--C- "
  12,"Power Cycle Count",           "never",    "95",  "95", "20",       "5 694",  "old age","-O--CK "
 194,"Temperature (Celsius)",       "never",    "37",  "57",  "0",          "37",  "old age","-O---K "
 195,"Hardware ECC Recovered",      "never",    "78",  "59",  "0", "243 580 482",  "old age","-O-RC- "
 197,"Current Pending Sector Count","never",   "100", "100",  "0",           "0",  "old age","-O--C- "
 198,"Offline Uncorrectable",       "never",   "100", "100",  "0",           "0",  "old age","----C- "
 199,"UDMA CRC Error Count",        "never",   "200", "169",  "0",          "58",  "old age","-OSRCK "
 200,"Total Read Commands Issued",  "never",   "100", "253",  "0",           "0",  "old age","------ "
 202,"Total Count of Error Bits",   "never",    "98", "251",  "0",           "2",  "old age","-O--CK "

Ничего конечно же я менять не буду. Делаем ставки сколько ещё прослужит :) А есть ли у вас относительно старые HDD с такими показателями, которые продолжают служить годами дальше и всё хорошо?
В целом то всё нормально, нет я его не пинал. В теории пока меня не было дома, кто-то из соседей мог штробить стены например, и допустим лютейшая вибрация шатала весь дом. Вот оно и. Да?

Просто у меня раньше диски проще дохли, издавали «кря» потом «ыть-ыть-ыть» и всё.

LINUX-ORG-RU
()

Lua 5.5.0 Beta

 

Lua 5.5.0 Beta
Группа Open Source

30 Июня состоялся предварительный (бета) релиз новой версии языка программирования Lua.

Lua – это встраиваемый, интерпретируемый язык программирования, используемый в огромном числе программных продуктов как язык-компаньон.

( читать дальше... )

>>> Анонс Lua5.5 релиза в списке рассылки

>>> Описание основных изменений

>>> Онлайн документация

>>> Прямая ссылка на архив исходного кода

>>> Прямая ссылка на архив с тестами

>>> Подробности (lua.org)

LINUX-ORG-RU
()

Score: 1000

 , , , очивка,

Целая тыща, тыыыысячааа, тыщщёнка, косарь, сто десятков.

Что на них можно купить? ::)

+++++++++[>++++++<-]>-----.-...

Ниже рассказывайте что вы разрабатываете, или настраиваете, это хоть немного добавит смысла этому треду в пятницу. А линукс тут при том что я @LINUX-ORG-RU

К слову, на ресурсах посвящённых разработке игр, практически всех, есть традиция в виде скриншотного субботника, где все от мала до велика, хвалятся тем над чем работают, что разрабатывают, переводят, рисуют, паяют и так далее, причём в моменте и как есть, тем самым показывая процесс, каким бы прекрасным или ужасным или ржачным он не был, в том и суть. Очень хорошая и добрая традиция, было бы прикольно если бы и мы не отставали, это добавляет динамики, показывает разнообразие разных дел, творчества и вообще :)

Но это так, к слову. В следующую субботу (если не забуду) попробую подстегнуть.

LINUX-ORG-RU
()

virt-manager и вывод графики

 , , , ,

Возможно ли заставить virt-manager отображать графику также шустро как при kvm -display gtk,gl=on --device virtio-vga-gl?

Уточню в virt-manager настроено ускорение и на госте glxinfo -B показывает что всё хорошо, всё ускорено, устройство virgl OpenGL 4.2, также как и при -display gtk,gl=on запуске виртуалки из терминала, а не через virt-manager, разница именно что я так понимаю в выводе итоговом изображении.

Я глубоко не вникал, но при запуске в ручном режиме можно спокойно внутри в 3D шутеры гонять, но неудобно манипуляции всякие делать типа подключить/отключить CD на горячую. Через virt-manager наоборот можно мышевозить, гасить одно, запускать другое и прочее, но вывод лагает :(

А я с 3D работаю и на гостях тестирую.


Заранее отвечу проброс карты невозможен, материнка M4A88TD-M/USB3 не умеет.
Да и не нужно, virgl выдаёт на глаз нативное ускорение, но только при выводе через gtk/sdl

Я гуглил, но информации много, порой противоречивой, мне главное узнать можно ли то что я хочу или нет

LINUX-ORG-RU
()

Новая статья: «Эволюция Lua, продолжение»

 , , ,

Вышла вторая статья посвящённая эволюции развития языка Lua.

Анонс

Первая часть - 2007

Вторая часть - 2025

Я ещё не читал, кому интересно, почитайте :)

---- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
(function(v) local f f = function(v) print(v) return f end return f(v)  end)
----------------------------------------------------------------------------
                                "Lua"
                                "Это"
                               "Весело!"
                              "Полезно!"
                             "Интересно!"
----------------------------------------------------------------------------
                  string.format("%s","hello world!")
---- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

Всем бобра. Досвиданья.

Перемещено hobbit из general

LINUX-ORG-RU
()

Релиз X12 и его эталонной реализации Xero: Новый конкурент Wayland

 , , , x12, xero

Релиз X12 и его эталонной реализации Xero: Новый конкурент Wayland
Группа Open Source

30 Марта 2025 года – В мире графических систем для Linux произошло значимое событие: анонсирован выход X12 и его эталонной реализации Xero, которые уже сейчас заявляют о себе как серьёзные конкуренты для популярного протокола Wayland. Разработчики уверены, что их новое творение принесёт пользователям множество преимуществ, которые помогут преодолеть недостатки более старой технологии.

Преимущества Xero:

Одним из ключевых достоинств Xero является его высокая производительность. Новый протокол разработан с учётом современных графических технологий и оптимизирован для работы с многоядерными процессорами, что позволяет значительно улучшить скорость рендеринга. В результате, пользователи смогут наслаждаться более плавной и отзывчивой графикой.

( читать дальше... )

>>> Подробности (xsph.ru)

LINUX-ORG-RU
()

Международный день резервного копирования!

 , ,

Делаем резервные копирования, и спим спокойно! Кто чем делает резервные копирования? Что резервируете?


Я бекаплю свой домашний ПеКа самописным скриптом cutebackup, больше мне нечего бекапить.
А как дела с этим у вас? Вы уже потеряли все свои данные и начали делать бекапы, или ещё нет? :)


Рассказывайте и делитесь опытом! Хвалитесь наработками и популяризируйте резервное копирование! Возможно у вас есть увлекательные истории.

Всем бобра и sync!

LINUX-ORG-RU
()

Интересный раскладной ноутбук :D

 , , , ,

Я прям представляю как кто-то на автомате его будет не складывать, а просто закрывать… Прям золото для ремонтников.

Лучше бы сделали матрицы разворачивающиеся рулончиками, типа как свитки в тубусе, как в фантастических фильмах, там карты местности обычно такие были, тоже херня будет, но зато прикольная и перегибами не будет страдать.

У меня всё, просто поделился находкой в интернете. Наверное на нём может работать Linux, накатили бы?

Единственный плюс, код писать удобно. Сразу много видно

LINUX-ORG-RU
()

Lua workshop 2025 - поиск организатора

 

Roberto Ierusalimschy ищет организаторов.

Может кто-то связан со всякими организациями, может кому будет интересно связаться с Роберту для организации выступлений и не только.

Ранее проводимые мероприятия


Главное чтобы не связывались те кто хотел бы пригласить Роберту как свадебного капитана. Анонимная группа пользователей будет наводить глубокие справки по организатору и всем причастным. А то бывают клоуны, путающие свои корпоративы и подобные вещи с техническими форумами :)

LINUX-ORG-RU
()

Сколько пользователей LOR вы игнорируете?

 , игнорирование, ,

Игнорирование на форуме довольно неоднозначная возможность, одни этой возможностью не пользуются принципиально, иные же с радостью выставляют «личный бан» при первом «поводе», некоторые используют это как крайнюю меру, а кто-то ещё просто использует как фильтр отсеивая пользователей и их темы, которые далёки от личных интересов. Возможны и иные варианты использования или неиспользования этой возможности. Вы используете игнор? Если да, то почему и насколько активно?

  1. Никого не игнорирую (сознательно) 374 (56%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. <= 1 83 (12%)

    ***********************************************************************

  3. Никого не игнорирую (не знал/ла про такую возможность) 79 (12%)

    *******************************************************************

  4. <= 5 27 (4%)

    ***********************

  5. <= 10 19 (3%)

    ****************

  6. Не скажу 16 (2%)

    *************

  7. <= 2 15 (2%)

    ************

  8. > 100 11 (2%)

    *********

  9. <= 30 9 (1%)

    *******

  10. Свой вариант. Подробности в комментариях 9 (1%)

    *******

  11. <= 20 8 (1%)

    ******

  12. <= 40 5 (1%)

    ****

  13. <= 70 3 (0%)

    **

  14. Не имею возможности игнорировать (Персонал форума) 3 (0%)

    **

  15. <= 60 2 (0%)

    *

  16. <= 80 2 (0%)

    *

  17. <= 50 1 (0%)

  18. <= 100 1 (0%)

  19. <= 90 0 (0%)

Всего голосов: 667

LINUX-ORG-RU
()

★★★★★ C 8 Марта Девочки ::) ★★★★★

 , линукстян

Девушки ♥ LOR`а 🐥 ★★★★★★★★★★★★ 🐥 лучшие в мире

@acidpink @alpha @Ann @Aesdana @Adelya @PenguinSociophob @cavia_porcellus @Daria @D_Silina @enigma @far_tuna @isako @Jills @Jokie @kpx13 @lolset @Michkova @Monstreek @Nataly @OperaSoftvvare @rual_ilmarranen @Sylvia @Iron_Bug @tisy20 @tsarevna @Terry @Svetl @sudo @totik @Vikulya5 @TikName @nyka @romanova-olga @nmironich @Murg @Morskaya @marip68 @manik207 @LenaHR @kate24 @dasha @gssomi @Esernoke @Elenalinux @AnnaS @bel-ka @Joanna @maslv12 @Sylvia @DanaDana @krasnopuz @Veshutka @AnMv @eurozyeniz @Helmin @acidpink @Aesdana @alpha @AnnaS @Daria @D_Silina @Elenalinux @Esernoke @karapuz13 @far_tuna @gssomi @Jills @Jokie @kate24 @LenaHR @manik207 @marip68 @Morskaya @Murg @nmironich @lapasonya @nyka @PenguinSociophob @BlackKub @FoxSnejanaFox @AnastasiaM @Ann @Antonova @anutik @cavia_porcellus @Dariap @Dirty_Diana @ValK @elen12354 @enigmap @Fantasma @gssomi @Katya2023 @Homura_Akemi @nastya97core @irina_ivanovna @isako @Irma @jessgt @Jills @Jokie @kalterfive @kpx13 @lolset @LucidFox @Pelageya @Marisa @Michkova @Monstreek @Murg @Nanodesu @Nastya_F @Nataly @OperaSoftvvare @PenguinSociophob @reserved @rual_ilmarranen @Silvy @TatianaSh @totik @Veronika @wizo4ka @xenia @yanka @monolith @altgona @AnnaS @Darja @elodia @karapuz13 @Lizhen @llinuxx @Kapusha и всех остальных кого не замечал, с праздником, девушки, бабушки, мамы, дочери, сёстры. Ну и виртуалы конечно если я где обознался 🐥 По традиции путанница и дублирование ников. С празником вас наши вы солнышки. Берегите себя и здоровья вам.

LINUX-ORG-RU
()

«Письмо счастья» от провайдера - повышение цен

 , , , ,

Сижу, что-то ЛОР не включается, ага, интернету нету, перехожу а мне капсом «бла бла бла, новые законы, бла бла бла, новая ситуация в стране, и поэтому на все тарифы всего и вся цена +100 рублей» (без каких либо уточнений) :( А это 25% от стоимости интернета у меня, это много.

Какой такой там закон приняли что «вынудили» провайдера поднять цены аж на четверть? И это тут на четверть, есть ещё услуга за 150 рублей, так она теперь 250 будет стоить. А если бы услуга стоила 50 то 150 стала бы соответственно, короче не пропорционально, а тупо на всё плюс сотку. Жесть.

У кого провайдеры резко на четверть/половину/два раза подняли цены?

Загуглил, ну сайт провайдера по словам в сообщении, так попались на глаза новости что мол многие провайдеры резко повысили цены. А конкретную причину никто не пишет. А просто мол проблемы с оборудованием, проблемы там и сям, все те которые и так уже годами есть. Почему так резко и все(многие) то?

Просто нагуглить явную причину не могу. А так, наверное буду отказываться от второй услуги вообще и думать как слезть на тариф поменьше с интеренетом. А то завтра фигак и ещё раз поднимут, скажут «сорян цена теперь X2» :(

[белка итеричка]картель? случайным образом случился флушмоб повышения цен, чтобы не создавать резкой разницы, повышам, так все! И пожали руки? Или реально какой закон который просто вынуждает это делать всех кто оказывает услуги связи, а те просто переложили проблемы со своих доходов на плечи пользователей[/белка итеричка]

LINUX-ORG-RU
()

Lunatik v3.6 — релиз среды исполнения Lua в пространстве ядра Linux

 , , , ,

Lunatik v3.6 — релиз среды исполнения Lua в пространстве ядра Linux
Группа Open Source

Lunatik — это фреймворк для написания сценариев для ядра Linux на Lua. Разрабатывается LabLua в рамках Lua in kernel с явными ссылками на опыт использования Lua в ядре NetBSD.

Основные компоненты

  • интерпретатор Lua, модифицированный для работы в ядре;
  • драйвера устройства (написаны на Lua);
  • средства командной строки для запуска сценариев и управления средами выполнения из пользовательского пространства;
  • C API для загрузки и запуска сценариев и управления средами выполнения из ядра;
  • Lua API для привязки средств ядра к Lua-скриптам.

( читать дальше... )

>>> Исходный код релиза

>>> Документация, исходный код и примеры проекта

>>> Сопутствующие проекты

>>> Анонс в официальной группе Lua (google.com)

LINUX-ORG-RU
()

Если у кого более не работает приложение youtube на старых телефонах

 , , засранцы

На android 6 например, при запуске приложения выскакивает плашка

- перейдите на сайт youtube.com 
- эта версия ютубе устарела, а обновления для вашего устройства недоступны

То зайти в Настройки->Приложения->Youtube и удалить Данные приложения

Если теперь запустить, то всё работает, но если приложение закрыть и открыть снова, то плашка снова вылезет, если вылезла повторить операцию.
Короче всё работает до первого перезапуска приложения, а сброс данных приложения, лечит, до первого перезапуска приложения.

Всем бобра
Досвиданья

LINUX-ORG-RU
()

zomg_ponies вернулся!!!!!

 , zomg ponies, , эпоха

Если выбрать его в настройках, тока вот есть нюанс

Если потом нажать сохранить :)

UPDATE: А не, у меня стоит tango-auto попытка сменить на любую иную тему, приводит к тому же самому.

LINUX-ORG-RU
()

SONC - Клиент для приёма звука по сети

 , , , ,

- APK сборки НЕ рабочие оказались :( Andoid сборки удалю.
- Для запуска sonc.love можно использовать ПО из дистрибутива или Love2D для Android. 

Пятница развратница! Но это у нормальных людей, так что…
Скромное, нубское приложение на Love2D, застряло не этапе прототипа более года назад, но я пользуюсь им постоянно. Может кому пригодится.

Просто принимает 16bit LE PCM звук отправленный по сети через PulseAudo - module-simple-protocol-tcp

Исходнки

Как выглядит, там на картинке есть, я прям с LOR галереи стащил :D


Есть сборки для Android

Которые даже не проверялись на работоспособность. Нет аппарата, окончательно подох.
Но там ещё lovefile есть который можно запустить как на ПК, так и на Android через Love2d с плеймаркета .


Универсальный lovefile

  • sonc.love

Который можно запустить где угодно где есть Love2D 11+, сам я его и использую.
love файл это zip архив с программой, который может быть запущен программой love (для тех кто не знает)


Ну, в целом всё, баги есть чинить буду по мере возможностей. Процессор долбит прилично, звук заикается из за прохода GC в Lua и потом отстаёт всё сильнее и сильнее, всё как полагается. Это можно исправить, видно будет, как ни будь потихонечку.

И да, гитфлик на даёт качать тем кто не зареган, очень странно…

Так что вот ещё, временно сборки тут


На самом деле я просто хочу узнать оно вообще на android запускается или нет, и apk рабочие или нет, а то я тут насобирал да и вообще многие вещи делаю просто в слепую. Типа как бы оно должно работать, но типа как бы и не совсем обязано :D Эх…

Есть много гораздо более лучших реализаций, лучших на голову и во всём, это так, NIH синдроммная метастаза в виде пупыри. Маленька, страшненька, но зато своя, родная ^.^ программулька.

Для тех кто не в курсе что такое Love2D

Вот как-то так вот.
Всем бобра. Досвиданья.

LINUX-ORG-RU
()

Прошивка телефона

 ,

Суть собственно в том что для задумки некого проекта мне нужна камера, камера есть на полуживом Beeline Smart 6 для него же будет писаться приложение, но он сейчас лишь включается показывает попытку зарядки (батарейки нет) и выключается, ранее телефон работал как звуковая карта (всё так же без батарейки, внутри проброшены проводки). По идее можно попробовать прошить на заводскую прошивку, у меня конечно её нет, но есть на 4pda при подключении в логах dmesg появляется

[  571.295045] usb 3-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  571.295054] usb 3-4: Product: MT65xx Preloader
[  571.295060] usb 3-4: Manufacturer: MediaTek

Насколько я понимаю этого уже достаточно чтобы прошить, хоть телефон и не бубу, но ранее там через меню разработчика было разлочен загрузчик, да и вообще всё что нельзя включено (ну типа, если я правильно помню).

Чем сейчас MediaTekи прошивают из под линукса? Может получится оживить, ну или добить окончательно.

UDP: Помянем, аппарат помер, физически.

LINUX-ORG-RU
()

Там у jabber.ru сертификат опят поехал не туда или не тот

 

Суть

По мотивам MITM-атака на JABBER.RU и XMPP.RU

Это что? Вернее почему?

Перемещено hobbit из general

LINUX-ORG-RU
()

SDL3 - Камера - Заметка

 , , , ,

Короче захотел сделать фотку через SDL3 столкнулся с парой проблем.

Пишу просто по причине того что я долго ломал голову что не так, откуда ошибка, пока не втыкнул паузу, почему вместо снимка чернота, пока не пропустил несколько первых кадров. Для меня это было нифига не очевидно, может кому сэкономит время.

  1. Появляется ошибка Parameter 'surface' is invalid если не сделать паузу после открытия камеры, решается в установлении паузы в 0,5 секунды после SDL_OpenCamera

  2. Первые кадры с камеры либо просто чёрные, либо очень тёмные. Решается пропуском (в моём случае 7) нескольких первых кадров.

Я забросил в SDL3 уведомительное issue, чтобы было

Продублирую тут тестовый пример и результаты

Информация о системе

Web-camera встроена в ноут, понятия не имею что за камера
description: Notebook
    product: K53U
    vendor: ASUSTeK Computer Inc.
    version: 1.0
Distributor ID:	Debian
Description:	Debian GNU/Linux 12 (bookworm)
Release:	12
Codename:	bookworm
fedor@nixfed:~/drawshoot$ cat SDL3/VERSION.txt 
3.1.3
fedor@nixfed:~/drawshoot$

Тестовый код

Makefile

SDL_DIR=SDL3
SDL_LIB_DIR=$(SDL_DIR)/build
SDL_INC_DIR=$(SDL_DIR)/include

test-1:
	$(CC) main.c -I$(SDL_INC_DIR) -L$(SDL_LIB_DIR) -lSDL3 -o app

test-2:
	$(CC) main.c -I$(SDL_INC_DIR) -L$(SDL_LIB_DIR) -lSDL3 -o app -DENABLE_DELAY

test-3:
	$(CC) main.c -I$(SDL_INC_DIR) -L$(SDL_LIB_DIR) -lSDL3 -o app -DENABLE_DELAY -DENABLE_FRAMEDROP


sdl:
	cd $(SDL_DIR) && mkdir build
	cd  $(SDL_DIR)/build && cmake ..
	cd  $(SDL_DIR)/build && $(MAKE) -j2

clean:
	-$(MAKE) -C $(SDL_DIR) clean
	-rm app

run:
	LD_LIBRARY_PATH=$(SDL_DIR)/build ./app

main.c

#include "SDL3/SDL.h"
#include "SDL3/SDL_camera.h"
#include <stdio.h>

/*just for debug*/
const char * pixel_format_name(SDL_PixelFormat format)
{
    switch(format){
    case SDL_PIXELFORMAT_UNKNOWN:    return      "UNKNOWN";
    case SDL_PIXELFORMAT_INDEX1LSB:  return      "INDEX1LSB";
    case SDL_PIXELFORMAT_INDEX1MSB:  return      "INDEX1MSB";
    case SDL_PIXELFORMAT_INDEX2LSB:  return      "INDEX2LSB";
    case SDL_PIXELFORMAT_INDEX2MSB:  return      "INDEX2MSB";
    case SDL_PIXELFORMAT_INDEX4LSB:  return      "INDEX4LSB";
    case SDL_PIXELFORMAT_INDEX4MSB:  return      "INDEX4MSB";
    case SDL_PIXELFORMAT_INDEX8:     return      "INDEX8";
    case SDL_PIXELFORMAT_RGB332:     return      "RGB332";
    case SDL_PIXELFORMAT_XRGB4444:   return      "XRGB4444";
    case SDL_PIXELFORMAT_XBGR4444:   return      "XBGR4444";
    case SDL_PIXELFORMAT_XRGB1555:   return      "XXRGB1555";
    case SDL_PIXELFORMAT_XBGR1555:   return      "XXBGR1555";
    case SDL_PIXELFORMAT_ARGB4444:   return      "XARGB4444";
    case SDL_PIXELFORMAT_RGBA4444:   return      "XRGBA4444";
    case SDL_PIXELFORMAT_ABGR4444:   return      "XABGR4444";
    case SDL_PIXELFORMAT_BGRA4444:   return      "XBGRA4444";
    case SDL_PIXELFORMAT_ARGB1555:   return      "XARGB1555";
    case SDL_PIXELFORMAT_RGBA5551:   return      "XRGBA5551";
    case SDL_PIXELFORMAT_ABGR1555:   return      "XABGR1555";
    case SDL_PIXELFORMAT_BGRA5551:   return      "XBGRA5551";
    case SDL_PIXELFORMAT_RGB565:     return      "XRGB565";
    case SDL_PIXELFORMAT_BGR565:     return      "XBGR565";
    case SDL_PIXELFORMAT_RGB24:      return      "XRGB24";
    case SDL_PIXELFORMAT_BGR24:      return      "XBGR24";
    case SDL_PIXELFORMAT_XRGB8888:   return      "XXRGB8888";
    case SDL_PIXELFORMAT_RGBX8888:   return      "XRGBX8888";
    case SDL_PIXELFORMAT_XBGR8888:   return      "XXBGR8888";
    case SDL_PIXELFORMAT_BGRX8888:   return      "XBGRX8888";
    case SDL_PIXELFORMAT_ARGB8888:   return      "XARGB8888";
    case SDL_PIXELFORMAT_RGBA8888:   return      "XRGBA8888";
    case SDL_PIXELFORMAT_ABGR8888:   return      "XABGR8888";
    case SDL_PIXELFORMAT_BGRA8888:   return      "XBGRA8888";
    case SDL_PIXELFORMAT_XRGB2101010:   return   "XXRGB2101010";
    case SDL_PIXELFORMAT_XBGR2101010:   return   "XXBGR2101010";
    case SDL_PIXELFORMAT_ARGB2101010:   return   "XARGB2101010";
    case SDL_PIXELFORMAT_ABGR2101010:   return   "XABGR2101010";
    case SDL_PIXELFORMAT_RGB48:         return   "XRGB48";
    case SDL_PIXELFORMAT_BGR48:         return   "XBGR48";
    case SDL_PIXELFORMAT_RGBA64:        return   "XRGBA64";
    case SDL_PIXELFORMAT_ARGB64:        return   "XARGB64";
    case SDL_PIXELFORMAT_BGRA64:        return   "XBGRA64";
    case SDL_PIXELFORMAT_ABGR64:        return   "XABGR64";
    case SDL_PIXELFORMAT_RGB48_FLOAT:   return   "XRGB48_FLOAT";
    case SDL_PIXELFORMAT_BGR48_FLOAT:   return   "XBGR48_FLOAT";
    case SDL_PIXELFORMAT_RGBA64_FLOAT:  return   "XRGBA64_FLOAT";
    case SDL_PIXELFORMAT_ARGB64_FLOAT:  return   "XARGB64_FLOAT";
    case SDL_PIXELFORMAT_BGRA64_FLOAT:  return   "XBGRA64_FLOAT";
    case SDL_PIXELFORMAT_ABGR64_FLOAT:  return   "XABGR64_FLOAT";
    case SDL_PIXELFORMAT_RGB96_FLOAT:   return   "XRGB96_FLOAT";
    case SDL_PIXELFORMAT_BGR96_FLOAT:   return   "XBGR96_FLOAT";
    case SDL_PIXELFORMAT_RGBA128_FLOAT: return   "XRGBA128_FLOAT";
    case SDL_PIXELFORMAT_ARGB128_FLOAT: return   "XARGB128_FLOAT";
    case SDL_PIXELFORMAT_BGRA128_FLOAT: return   "XBGRA128_FLOAT";
    case SDL_PIXELFORMAT_ABGR128_FLOAT: return   "XABGR128_FLOAT";
    case SDL_PIXELFORMAT_YV12:          return   "XYV12";
    case SDL_PIXELFORMAT_IYUV:          return   "XIYUV";
    case SDL_PIXELFORMAT_YUY2:          return   "XYUY2";
    case SDL_PIXELFORMAT_UYVY:          return   "XUYVY";
    case SDL_PIXELFORMAT_YVYU:          return   "XYVYU";
    case SDL_PIXELFORMAT_NV12:          return   "XNV12";
    case SDL_PIXELFORMAT_NV21:          return   "XNV21";
    case SDL_PIXELFORMAT_P010:          return   "XP010";
    case SDL_PIXELFORMAT_EXTERNAL_OES:  return   "XEXTERNAL_OES";
    }
    return "UNKNOWN";
}

int main(int argc, char *argv[])
{
    SDL_InitSubSystem(SDL_INIT_CAMERA);
    int camera_count = 0;
    SDL_CameraID * camera_id = SDL_GetCameras(&camera_count);
    printf("count=%d id=%u %s\n",camera_count,camera_id,SDL_GetError());
    SDL_CameraSpec ** camera_spec;
    int camera_specs = 0;
    camera_spec = SDL_GetCameraSupportedFormats(*camera_id,&camera_specs);
    /*show supported formats and resolutions*/
    for(int i=0; i != camera_specs;i++)
    {
        printf("camera=%-2i "
               "w=%-4d h=%-4d "
               "format=%-14s "
               "frame_n=%-3d "
               "frame_d=%d\n",
               i,
               camera_spec[i]->width,
               camera_spec[i]->height,
               pixel_format_name(camera_spec[i]->format),
               camera_spec[i]->framerate_numerator,
               camera_spec[i]->framerate_denominator);
    }
    /*init camera*/
    SDL_Camera * cam =  SDL_OpenCamera(*camera_id, camera_spec[0]);

    #ifdef ENABLE_DELAY
        SDL_Delay(5000);
    #endif

    printf("[1] %s\n",SDL_GetError());
    SDL_Surface * frame;
    Uint64 t=0;
    SDL_Surface * s;
    SDL_Event event;
    while ( SDL_WaitEvent(&event) >= 0 )
    {
       if(event.type == SDL_EVENT_CAMERA_DEVICE_APPROVED)
       {
            printf("DEVICE_APPROVED!\n");
            break;
       };
       if(event.type == SDL_EVENT_CAMERA_DEVICE_DENIED)
       {
            printf("DEVICE_DENIED!\n");
            return 0;
       };
    }

    #ifdef ENABLE_FRAMEDROP
    for(int i=0;i<7;i++)
    {
        frame = SDL_AcquireCameraFrame(cam, &t);
        SDL_ReleaseCameraFrame(cam, frame);
    }
    #endif

    /*take photo*/
    frame = SDL_AcquireCameraFrame(cam, &t);
    printf("[2] %lu %s\n",t,SDL_GetError());
    /*convert photo*/
    s = SDL_ConvertSurface(frame, SDL_PIXELFORMAT_RGB24);
    /*save result*/
    SDL_SaveBMP(s,"out.bmp");
    printf("[4] %lu %s\n",t,SDL_GetError());
    /*release memory*/
    SDL_ReleaseCameraFrame(cam, frame);
    printf("[4] %lu %s\n",t,SDL_GetError());
    SDL_Quit();
    return 0;
}

Результаты

  • Ошибка Invalid surface
fedor@nixfed:~/drawshoot$ make test-1 run
cc main.c -ISDL3/include -LSDL3/build -lSDL3 -o app
LD_LIBRARY_PATH=SDL3/build ./app
count=1 id=845253408 
camera=0  w=640  h=480  format=XYUY2          frame_n=30  frame_d=1
camera=1  w=640  h=480  format=XYUY2          frame_n=25  frame_d=1
camera=2  w=640  h=480  format=XYUY2          frame_n=20  frame_d=1
camera=3  w=352  h=288  format=XYUY2          frame_n=30  frame_d=1
camera=4  w=352  h=288  format=XYUY2          frame_n=25  frame_d=1
camera=5  w=352  h=288  format=XYUY2          frame_n=20  frame_d=1
camera=6  w=320  h=240  format=XYUY2          frame_n=30  frame_d=1
camera=7  w=320  h=240  format=XYUY2          frame_n=25  frame_d=1
camera=8  w=320  h=240  format=XYUY2          frame_n=20  frame_d=1
camera=9  w=176  h=144  format=XYUY2          frame_n=30  frame_d=1
camera=10 w=176  h=144  format=XYUY2          frame_n=25  frame_d=1
camera=11 w=176  h=144  format=XYUY2          frame_n=20  frame_d=1
camera=12 w=160  h=120  format=XYUY2          frame_n=30  frame_d=1
camera=13 w=160  h=120  format=XYUY2          frame_n=25  frame_d=1
camera=14 w=160  h=120  format=XYUY2          frame_n=20  frame_d=1
[1] 
DEVICE_APPROVED!
[2] 0 
[4] 0 Parameter 'surface' is invalid
[4] 0 Parameter 'surface' is invalid
fedor@nixfed:~/drawshoot$ 

  • Чёрный снимок вместо нормального
fedor@nixfed:~/drawshoot$ make test-2 run
cc main.c -ISDL3/include -LSDL3/build -lSDL3 -o app -DENABLE_DELAY
LD_LIBRARY_PATH=SDL3/build ./app
count=1 id=3957504800 
camera=0  w=640  h=480  format=XYUY2          frame_n=30  frame_d=1
camera=1  w=640  h=480  format=XYUY2          frame_n=25  frame_d=1
camera=2  w=640  h=480  format=XYUY2          frame_n=20  frame_d=1
camera=3  w=352  h=288  format=XYUY2          frame_n=30  frame_d=1
camera=4  w=352  h=288  format=XYUY2          frame_n=25  frame_d=1
camera=5  w=352  h=288  format=XYUY2          frame_n=20  frame_d=1
camera=6  w=320  h=240  format=XYUY2          frame_n=30  frame_d=1
camera=7  w=320  h=240  format=XYUY2          frame_n=25  frame_d=1
camera=8  w=320  h=240  format=XYUY2          frame_n=20  frame_d=1
camera=9  w=176  h=144  format=XYUY2          frame_n=30  frame_d=1
camera=10 w=176  h=144  format=XYUY2          frame_n=25  frame_d=1
camera=11 w=176  h=144  format=XYUY2          frame_n=20  frame_d=1
camera=12 w=160  h=120  format=XYUY2          frame_n=30  frame_d=1
camera=13 w=160  h=120  format=XYUY2          frame_n=25  frame_d=1
camera=14 w=160  h=120  format=XYUY2          frame_n=20  frame_d=1
[1] 
DEVICE_APPROVED!
[2] 706952397 
[4] 706952397 
[4] 706952397 
fedor@nixfed:~/drawshoot$ 
  • Всё хорошо, ошибок нет, фотография с камеры нормальная
fedor@nixfed:~/drawshoot$ make test-3 run
cc main.c -ISDL3/include -LSDL3/build -lSDL3 -o app -DENABLE_DELAY -DENABLE_FRAMEDROP
LD_LIBRARY_PATH=SDL3/build ./app
count=1 id=3940756256 
camera=0  w=640  h=480  format=XYUY2          frame_n=30  frame_d=1
camera=1  w=640  h=480  format=XYUY2          frame_n=25  frame_d=1
camera=2  w=640  h=480  format=XYUY2          frame_n=20  frame_d=1
camera=3  w=352  h=288  format=XYUY2          frame_n=30  frame_d=1
camera=4  w=352  h=288  format=XYUY2          frame_n=25  frame_d=1
camera=5  w=352  h=288  format=XYUY2          frame_n=20  frame_d=1
camera=6  w=320  h=240  format=XYUY2          frame_n=30  frame_d=1
camera=7  w=320  h=240  format=XYUY2          frame_n=25  frame_d=1
camera=8  w=320  h=240  format=XYUY2          frame_n=20  frame_d=1
camera=9  w=176  h=144  format=XYUY2          frame_n=30  frame_d=1
camera=10 w=176  h=144  format=XYUY2          frame_n=25  frame_d=1
camera=11 w=176  h=144  format=XYUY2          frame_n=20  frame_d=1
camera=12 w=160  h=120  format=XYUY2          frame_n=30  frame_d=1
camera=13 w=160  h=120  format=XYUY2          frame_n=25  frame_d=1
camera=14 w=160  h=120  format=XYUY2          frame_n=20  frame_d=1
[1] 
DEVICE_APPROVED!
[2] 1329622684 
[4] 1329622684 
[4] 1329622684 
fedor@nixfed:~/drawshoot$ 

Может быть кому пригодится, досвиданья ::)

LINUX-ORG-RU
()

Теперь у меня есть флееешкааа! 32 Гигабата!

 , , , , эпохальное событие

Это случилось! Теперь я не могу к месту и без говорить что у меня нет флешки! Это даже немножко грустно :( Но да ладно :)

Раньше у меня была вот такая только самодельная флешка на аж 4 килобайта, пополам с UART на ATmega8, на базе V-USB, но она давно дала дубу.

А теперь я как настоящий хипстер с 32 гигабатами

Сейчас я буду устанавливать все лиунксы


Да жж, ну и что. Во первых пятница! Во вторых Linux-install. А ещё это моя первая флешка за лет…10 наверное! Так что это то о чём нельзя молчать! Принимаю ваши поздравления. Расскажите вашу историю про вашу флешку. Наверняка вам есть что сказать!
НЕпреднамеренное нарушение русского языка вызвано особой стилистической подачей художественного текста

LINUX-ORG-RU
()

RSS подписка на новые темы