И это всё МОЁ

У меня в браузере Хром не понятно работает декодирование h264 некоторых видео, с включенным hardware acceleration. Как я понимаю (из логов chrome://media-internals/), хром при рендеринге(и демультиплексировании?) использует DXVA, тобишь DirectX (да, я тестирую на Windows 7)

Собственно проблема в том, что видео останавливается на некотором участке времени (иногда случайным образом, иногда стабильно на X секунде). Если отключить аппаратное ускорение, то проблема исчезает. Также такие видео нормально воспроизводят нативные плееры и другие браузеры (Лиса, Андроид), просто на секунду затыкаются, но воспроизведение продолжает идти дальше (в хроме тупо останавливается с ошибкой DECODER_UNDERFLOW)

Пытался собрать Chromium, скачал около 50Гб исходников, думал собрать дебажную версию и смотреть логи, но сборка не удалась, т.к. мало опыта с Visual Studio

Я правильно понимаю, что h264 декодирует системная либа DirectX? Если так, то как посмотреть лог этого декодирования и понять причину остановки?

Вот лог chrome://media-internals

Timestamp	Property	Value
00:00:00.000 origin_url "file:///"
00:00:00.000 kFrameUrl "file:///C:/Downloads/bad_7s.mp4"
00:00:00.000 kFrameTitle ""
00:00:00.000 url "file:///C://Downloads/bad_7s.mp4"
00:00:00.006 kTotalBytes 13321640
00:00:00.006 kIsStreaming false
00:00:00.006 kIsSingleOrigin true
00:00:00.006 kIsRangeHeaderSupported true
00:00:00.007 pipeline_state "kStarting"
00:00:00.018 info "FFmpegDemuxer: created video stream, config codec: h264, profile: h264 baseline, level: not available, alpha_mode: is_opaque, coded size: [480,270], visible rect: [0,0,480,270], natural size: [480,270], has extra data: true, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:SMPTE170M, transfer:SMPTE170M, matrix:SMPTE170M, range:LIMITED}"
00:00:00.018 kAudioTracks []
00:00:00.018 kVideoTracks [{"alpha mode":"is_opaque","codec":"h264","coded size":"480x270","color space":"{primaries:SMPTE170M, transfer:SMPTE170M, matrix:SMPTE170M, range:LIMITED}","encryption scheme":"Unencrypted","has extra data":true,"hdr metadata":"unset","natural size":"480x270","orientation":"0°","profile":"h264 baseline","visible rect":"0,0 480x270"}]
00:00:00.018 kMaxDuration 64.331
00:00:00.018 kStartTime 0
00:00:00.018 kBitrate 1656637
00:00:00.018 error "{\"causes\":[{\"causes\":[],\"data\":{},\"stack\":[{\"file\":\"../../media/filters/decrypting_video_decoder.cc\",\"line\":53}],\"status_code\":264,\"status_message\":\"\"}],\"data\":{\"Decoder name\":\"DecryptingVideoDecoder\"},\"stack\":[{\"file\":\"../../media/filters/decoder_selector.cc\",\"line\":172}],\"status_code\":265,\"status_message\":\"\"}"
00:00:00.039 info "Starting Initialization of DXVAVDA"
00:00:00.040 info "Using D3D9 device for DXVA"
00:00:00.060 kIsVideoDecryptingDemuxerStream false
00:00:00.060 kVideoDecoderName "MojoVideoDecoder"
00:00:00.060 kIsPlatformVideoDecoder true
00:00:00.060 info "Selected MojoVideoDecoder for video decoding, config: codec: h264, profile: h264 baseline, level: not available, alpha_mode: is_opaque, coded size: [480,270], visible rect: [0,0,480,270], natural size: [480,270], has extra data: true, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:SMPTE170M, transfer:SMPTE170M, matrix:SMPTE170M, range:LIMITED}"
00:00:00.060 pipeline_state "kPlaying"
00:00:00.086 dimensions "480x270"
00:00:00.086 kResolution "480x270"
00:00:00.129 video_buffering_state {"state":"BUFFERING_HAVE_ENOUGH"}
00:00:00.129 pipeline_buffering_state {"for_suspended_start":false,"state":"BUFFERING_HAVE_ENOUGH"}
00:00:00.129 info "Effective playback rate changed from 0 to 1"
00:00:00.129 event "kPlay"
00:00:00.775 info "Starting Initialization of DXVAVDA"
00:00:00.775 info "Using D3D9 device for DXVA"
00:00:00.840 info "Starting Initialization of DXVAVDA"
00:00:00.841 info "Using D3D9 device for DXVA"
00:00:00.018 duration 64.331
00:00:04.070 info "Starting Initialization of DXVAVDA"
00:00:04.071 info "Using D3D9 device for DXVA"
00:00:06.488 info "Starting Initialization of DXVAVDA"
00:00:06.489 info "Using D3D9 device for DXVA"
00:00:07.359 video_buffering_state {"reason":"DECODER_UNDERFLOW","state":"BUFFERING_HAVE_NOTHING"}
00:00:07.359 pipeline_buffering_state {"for_suspended_start":false,"reason":"DECODER_UNDERFLOW","state":"BUFFERING_HAVE_NOTHING"}


Как видно из лога, Хром выбирает видео декодер MojoVideoDecoder, это и есть hardware acceleration, потом идут бесконечные «Starting Initialization of DXVAVDA», тоже не понятно почему. На других видео такого нет. В итоге видео останавливается на 7 сек. Пишет что якобы в декодере нет данных для обработки, хотя все видео забуферезировалось в плеере (1 минута)


Пример видео, которое останавливается на 7 сек.
https://bugs.chromium.org/p/chromium/issues/attachment?aid=459480&signed_...








 , , , ,








И это всё МОЁ

Доброго времени суток, установил у себя на ноутбук Kali Linux. Установка прошла успешно, после установки подключился к своей точке доступа на телефоне. Система к телефону подключилась - а вот к интернету нет. Захожу в firefox и пытаюсь загрузить любой сайт. Ничто не грузится. Пробую подключить USB модем. А вот с ним интернет пошёл на ура. Кто знает, подскажите - как в Kali выйти интернет с точки доступа на телефоне?









 , , ,








И это всё МОЁ

Коллеги, хочу собрать свой fpv дрона , подскажите где смотреть железо и какие еще есть опенсорсные проекты кроме этих http://www.opennet.ru/prog/info/3746.shtml ?









 ,








И это всё МОЁ

QtWebEngine использует движок Chromium. Chromium в оригинальном виде насыщен гуглозондами, которые пытается выпилить проект Ungoogled Chromium. Насколько googled QtWebEngine?


Я тут просто потыкал последний Falkon, который является обёрткой для QtWebEngine, в принципе, оно вполне уже юзабельно. Ещё и адблок искаропки. Если QtWebEngine совсем ungoogled, то Флакон этот вполне себе может стать весьма годной альтернативой напичканному зондами Хрому с катящимся в полное дерьмо Фаерфоксом.









 , , ,








И это всё МОЁ

Собсна, есть ATmega328P и дамп флеш-памяти. Юзаю binutils от avr-gcc, т.к. это первое, что я нашёл в репах, и по названию вроде как подходит. Сейчас зачаток процесса выглядит примерно так.


Получаем ассемблер:


$ avr-objdump -D -b binary -m avr flash.bin --no-show-raw-insn > flash.s


Подчищаем вывод обждампа в начале, дописываем к меткам адресов какую-нибудь буковку sed-ом, чтобы as кушал.


Собираем обратно:


$ avr-as -mmcu=atmega328p flash.s -o flash.o
$ avr-ld flash.o -o flash.bin
avr-ld: flash.bin section `.text' will not fit in region `text'
$ avr-ld --oformat binary flash.o -o flash.bin
avr-ld: error: cannot change output format whilst linking AVR binaries


Вот тут загвоздка. as заменяет адреса в прыжках на нули. Видимо, куда-то в другое место в ELF записывает. Следовательно, просто objcopy не катит, нужно прогнать через линковщик, чтобы тот поставил адреса обратно. Но линковщик почему-то отказывается работать - как я понял, секция в процессе пересборки якобы толстеет и в итоге может не поместиться на чип. За счёт чего толстеет - пока непонятно.


Вообще говоря, я действую почти наугад и, возможно, иду не тем путём и использую не те инструменты, так что если кто-то подскажет, чем, кроме avr-gcc+vim можно нормально пореверсить на досуге прошивку от дуины, будет очень здорово.









 








И это всё МОЁ






Собственно, вот. На момент скрина больше всего отжирает DeaDBeeF (за счёт модулей). И да, все ШГ семейства ParaType.

Imgur





















>>> Просмотр
(1920x1080,
1199 Kb
)










 , , , ,








И это всё МОЁ

Нужно собрать два NAS для разных локаций.


Один попроще: RAID 1, около 1 TB хранилища, минимальные вычислительные ресурсы.


Второй чуть веселее: RAID 01/10, около 8 TB хранилища, чуть пободрее CPU, опционально SSD в качестве кеша.


Вопрос в том, можно ли использовать современные 2.5" HDD для упаковки этого добра в компактный корпус или затея обречена на провал?


P.S. Если скинете ссылки на недорогие материнские платы для NAS (с распаяным CPU?) и корпуса, то буду благодарен.









 ,








И это всё МОЁ

Есть например софт «B» на лицензии GNU GPL “free software” который успешен и развивается. Возможно ли(чисто теоретически), что код смогут закрыть и продукт станет коммерческим без возможности форка?









 , ,








И это всё МОЁ

Все привет !
Есть некая трабла - как можно сделать kexec если у меня 2 initramfs. При попытке их слития через cat - результаты печальны…
Гуглинг не дал результатов кроме как - кроме статьи о создании efi для win


Больше инфо :
Ядро 5.8.1
Инитрамфс от mkinitcpio
Инитрамфс2 Intel_ucode


Вопрос2:
Стоит ли вшивать интеловские коды в ядро?









 , ,








И это всё МОЁ

Как по мне, так винда куда больше не годна для десктопа. Довелось тут иметь дело с виндо-планшетом, геморроя полно









 ,








И это всё МОЁ

Всем привет. Представляем вашему вниманию платформу аренды временных виртуальных машин vmpool.umvirt.com.


Благодаря платформе любой желающий может получить виртуальную машину без регистрации, без СМС, абсолютно бесплатно и анонимно. Даже с мобильного устройства.


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


В настоящее время в к платформе подключен всего один сервер: «Демонстрационный сервер вложенной виртуализации», размещенный в США.


По причине расстояния между сервером и Вами, а также по причине использования вложенной витуализации неизбежны подтормаживания и подвисания.


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


В настоящее время происходит этап тестирования и формирования партнерской сети.


Просим отнестись с пониманием к возможным неудобствам.


В целях обеспечения доступности платформы для других пользователей рекомендуем использовать операционные системы FreeDOS, KolibriOS, а так же резервировать 4 и 16 мегабайт оперативной памяти соответственно.


Если по каким либо пичинам платформа не доступна, либо ищите аналогичные сервисы рекомендуем воспользоваться сервисом DistroTest.Net.









 , , , ,








И это всё МОЁ

Всем привет! Возникла непонятная проблема с добавлением дополнительного IP:
-прописал через /etc/network/interfaces;
-прописал в etc/hostname; прописал в /etc/hosts; добавил A и MX запись в днс у регистратора; добавил днс-записи в Весте; в апаче прописал ServerName; добавил виртуальный хост - НО - все письма все равно идут с первого IP. В чем тут может быть дело?









 








И это всё МОЁ

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

Поэтому требования:

  • портативная, примерно с лист A4, может чуть больше.
  • универсальная, не должна требовать специальной посуды, чтобы не морочить бабке голову этим, тем более с газовой плитой привыкли к обычной посуде. Т.е. индукционные в пролете.
  • Очень важный пункт: защищенная, должна автоматически выключаться, если человеку будет плохо и она не сможет ее выключить вовремя. Или забудет выключить или если слишком нагреется и т.п.
    Лучше всего, если будет стоять дефолтный настраиваемый таймер, допустим на 1 час или полчаса. Но чтобы энергонезависимые настройки. Т.к. бабка привыкла неиспользуемый электроприбор из розетки выдергивать. И хорошо бы рядом на корпусе датчики температуры, в идеале бы инфракрасные пирометры, смотрящие чуть поверх конфорки и вырубающие плиту, если температура больше допустим 300 градусов (настраиваемо) становится.

Как-то так сходу не нахожу устраивающей модели.








 








И это всё МОЁ

Добрый день ЛОР.

Есть ли какой способ автоматизации пересборки модулей после обновления ядра в archlinux. Меня интерсуют такие как nvidia из aur, bbswich, thinkpad_acpi итд.









 








И это всё МОЁ

Я хочу заставить nginx кешировать любые ответы бекэнда вне зависимости от желания браузера (cache-control: no-cache должен игнорироваться). Таким образом, чтоб если у nginx есть что-то в кеше (даже если оно протухло несколько лет назад), он обязательно отправил бекэнду заголовок If-Modified-Since и дал шанс ответить 304 Not Modified.


В настоящий момент я написал такой конфиг:


proxy_cache_path cache/ keys_zone=my_cache:10m max_size=10g use_temp_path=off;
...
location / {
proxy_cache my_cache;
proxy_cache_revalidate on;
proxy_cache_use_stale updating;
proxy_cache_background_update on;
proxy_cache_lock on;
proxy_pass localhost:8080/;
proxy_ignore_headers Cache-Control;
}

Бекэнд добавляет к своим ответом заголовок (пробовал разные комбинации, результат не меняется):


Cache-Control: max-age=60, must-revalidate, public

При первом обращении nginx кеширует ответ на диск, при последующих запросах вообще не обращается к бекэнду, но стоит кешу протухнуть он обращается к бекэнду без if-modified-since, соответственно бекэнд не может знать, что у него есть шанс ответить 304 вместо полноценной обработки запроса.


Я хочу заставить nginx обращаться к бекэнду всегда (этого легко добиться, например, max-age=1), но при этом всегда же он проверял изменённость ответа (if-modified-since) и бекэнд уже решал напрягаться ему полной обработкой или отдать 304 с пустым телом.


Что я делаю не так?









 








И это всё МОЁ

Новый ноут ASUS

Установил opensuse 15.2, при попытке установить драйвер с любого стороннего репозитория - добавляет репозиторий но сам драйвер не устанвливает. Очень странно

zypper se rtl8821ce
Загрузка данных о репозиториях...
Чтение установленных пакетов...

С | Имя | Заключение | Тип
--+-----------------------+---------------------------------------------------------+-----------------------
| rtl8821ce | Wlan-Driver for Realtek RTL8821CE 802.11ac WLAN Adapter | пакет с исходным кодом
| rtl8821ce-kmp-default | Wlan-Driver for Realtek RTL8821CE 802.11ac WLAN Adapter | пакет

zypper in rtl8821ce
Загрузка данных о репозиториях...
Чтение установленных пакетов...
Строка "rtl8821ce" не найдена в именах пакетов. Пробуем возможности.
Поставщик "rtl8821ce" не найден.
Разрешение зависимостей пакетов...

Нечего выполнять.







 , , ,








И это всё МОЁ

Например, анимешники, понилюбы и прочие фигнюшники…


Здравствуйте. Вопрос в сабже и дополнение чуть выше… Почему?


И ещё из-за них считается, что настоящий линуксоид должен любить аниме.


Заранее спасибо.









 , , , ,








И это всё МОЁ

Особых запросов нет, лишь бы работал.


Рассматриваю TP-Link TL-SG108E. Нет PoE, но мне не критично. Что скажете о нем?


Еще нашел Ubiquiti UniFi US-8. Стоит немного больше чем мне хотелось бы потратить, но все еще приемлимо.









 ,








И это всё МОЁ

Есть некая библиотека (моя), солянка из разных, местами слабо связанных фрагментов кода.


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


В библиотеке есть файл dump.hpp (условно) обеспечивающий запись разных объектов в бинарном формате, и он входит в ту часть которую нужно копировать. Этот файл определяет какие то служебные (шаблонные) методы а потом их как то специализует по необходимости для всего что есть в библиотеке. Понятно что он инклюдит кучу всего, в том числе кучу того что копировать не хочется. Вопрос - че с этим делать?


Я вижу два решения, оба кривые:




  1. перенести части dump.hpp работающие с конкретными объектами в .hpp файлы где эти объекты объявлены. Минусы - все же этот код лучше выглядит когда лежит кучно, кроме того все станет зависеть от dump.hpp (сейчас это не так и хотелось бы что бы оно так и осталось).




  2. понатыкать в dump.hpp директив условной компиляции, т.е. что бы соотве фрагмент кода для объекта A включался только если .hpp файл с этим объектом уже был включен. Это немного странно выглядит, dump.hpp всегда должен будет выключаться последним.




cast @pon4ik, @monk









 








И это всё МОЁ

Почему китайцы едят летучих мышей, змей, тухлых уток и прочую гадость? Это действительно очень вкусно или есть другие причины?