Как исправить аварийное завершение nvv4l2decoder с ошибкой SIGSEGV на Jetson AGX Xavier

Как исправить аварийное завершение nvv4l2decoder с ошибкой SIGSEGV на Jetson AGX Xavier

Инженеры и разработчики встраиваемых мультимедийных комплексов на базе вычислительного модуля NVIDIA Jetson AGX Xavier под управлением дистрибутива Jetson Linux 35.6.5 (входящего в состав пакета JetPack 5.1.7) столкнулись с систематическими аварийными сбоями процессов декодирования. Ошибка проявляется как сигнал SIGSEGV в библиотеке libnvmmlite_video.so при непрерывной обработке чересстрочных видеопотоков формата 1080i H.264 через аппаратно-ускоренный плагин nvv4l2decoder среды GStreamer.

При развертывании многопоточных видеосерверов видеонаблюдения и ретрансляции телевизионного вещания формата MPEG-TS с чересстрочной разверткой 1080i на платформе Jetson AGX Xavier инженеры фиксируют регулярное падение хост-процесса конвейера GStreamer. Сбой происходит с кодом завершения SIGSEGV в собственном рабочем потоке декодера. Трассировка вызовов указывает на обращение по нулевому или поврежденному указателю внутри закрытых библиотек libnvmmlite_video.so и libnvvideo.so, вызываемых через синтаксический анализатор libnvparser.so при штатном входном потоке без потерь пакетов.

Причины сбоя и механизм деградации буфера кадров

Анализ логики декодирования показал, что критическая уязвимость локализована в открытой части плагина gst-v4l2, а именно в функции gst_v4l2_video_dec_clean_older_frames исходного файла gstv4l2videodec.c. При обработке чересстрочных потоков H.264 отдельные полукадры или кадры-призраки могут формироваться без корректной временной метки представления PTS. В стандартной кодовой базе условие проверки отсекает кадры только по строгому сравнению tmp->pts < timestamp, игнорируя факт невалидности метки.

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

Инструкция по наложению патча и сборке плагина

Официальные представители службы технической поддержки NVIDIA подтвердили наличие данной проблемы в ветке JetPack 5 и предоставили корректирующий патч для открытого исходного кода gst-v4l2, а также рекомендации по пересборке разделяемой библиотеки libgstnvvideo4linux2.so на целевой системе.

Для устранения проблемы необходимо скачать архив исходных кодов Driver Package (BSP) Sources со страницы выпуска Jetson Linux R35.6.5 и распаковать пакет gst-nvvideo4linux2_src.tbz2. После распаковки откройте файл gst-v4l2/gstv4l2videodec.c и найдите функцию очистки устаревших кадров gst_v4l2_video_dec_clean_older_frames. В теле цикла замените условие сравнения временных меток, добавив явную проверку макросом GST_CLOCK_TIME_IS_VALID. Новая конструкция должна отбрасывать кадр, если метка времени задана и при этом PTS является недействительным либо строго меньше текущего порога timestamp.

После внесения изменений выполните компиляцию библиотеки командой make в каталоге с исходными кодами плагина. Скомпилированный файл libgstnvvideo4linux2.so необходимо скопировать с заменой в системный каталог /usr/lib/aarch64-linux-gnu/gstreamer-1.0/, предварительно создав резервную копию оригинального файла. Завершающим шагом очистите кэш реестра плагинов GStreamer, удалив файл registry.aarch64.bin в домашнем каталоге пользователя, после чего перезапустите фоновые службы декодирования.

Источники

Редакция: Soft-Buy.ru
Дата публикации: 10.09.2026. Дата обновления: 10.09.2026.
Как проверяли: первоисточники, официальные публикации, документацию, changelog или профильные материалы, использованные в статье.
Важно: материал носит редакционный характер; рекламные, партнёрские и неподтверждённые источники не используются в автоматическом workflow публикации.

Случайные статьи

Статья Водные виды спорта для Wii Balance Board добавлена с разрешения редакции сайта Игромания.Автор: Роман Епишин. Если пульт Wiimote нашел в играх широкое применение, то "доска...
Музыкальный сервис Spotify объявил о запуске специализированного режима Running Mode в мобильном приложении для iOS, доступного подписчикам Spotify Premium....
Rufus 4.15 вышел 30 июня 2026 года. Это небольшая бесплатная утилита для Windows, которая помогает быстро записать ISO-образ на USB-накопитель и подготовить установочную флешку для...
Есть в этом коммуникаторе HTC Diamond2 один очень не приятный минус - это проводник. Возможно во многих коммуникаторах и смартфонах есть такая проблема и надо бы разработчикам уже ...
Компания Intel готовит кардинальное обновление настольных процессоров. Появились подробности об архитектуре Nova Lake: 22-ядерных SKU серии DS, брендинге Core Ultra 400 и ответе на...