Я ищу пример декодирования видео на Raspberry Pi напрямую, без использования OpenMAX.
Это объясняет различные уровни мультимедийного программного обеспечения:
Существует дополнительный слой, который здесь не показан, слой MMAL, который (я считаю) Broadcom обертка вокруг OpenMAX. (Если нет, это была бы альтернатива OpenMAX, сидящая поверх драйвера ядра). Raspivid и raspistill, например, написаны с использованием MMAL.
Я хочу пример декодирования видео, где вход является сырым H.264, а выход - либо видео в памяти, либо видео на экране. Я хочу сделать это напрямую с помощью VCHIQ, не используя OpenMAX. (В основном, по соображениям производительности и гибкости)
Этот репозиторий github: https://github.com/raspberrypi/userland/ содержит источник для всего, что показано выше (оранжевые и зеленые поля, источник самого VCHIQ, OpenMAX Реализация IL поверх VCHIQ, а также реализации OpenGL и EGL,...). Поэтому теоретически этого должно быть достаточно, чтобы начать. Проблема в том, что очень неочевидно, как ее использовать, даже если вы хорошо знакомы с OpenMAX и с мультимедийными средами вообще.
Например: vchiq_bulk_transmit(), похоже, является функцией, которую можно использовать для отправки видео в декодер. Но как инициализировать первый аргумент типа VCHIQ_SERVICE_HANDLE_T
? Куда идут результаты, в фреймбуфере или в дескрипторе результата, или...?
EDIT. Баунти можно собрать, либо предоставив рабочий пример декодирования видео, используя vchiq, прохождение API, которое показывает последовательность вызовов (даже если это не рабочий пример), или указатель на достаточную документацию для записи. Рабочий пример получит здоровую дополнительную награду:)