Аппаратное кодирование с помощью Nanopi2 Fire под Linux

Я пытаюсь кодировать необработанные кадры с помощью nanoPi 2. Я основал API для этого: https://github.com/friendlyarm/nexell_linux_platform

В соответствии с nx_video_api.h мне нужно открыть устройство, инициализировать его, выделить память для кадра ввода и вывода, а затем нажать кодирование с помощью "NX_VidEncJpegRunFrame".

Однако в этом проблема, может ли кто-нибудь помочь мне с выделением памяти для этой структуры "NX_VID_ENC_IN"? Как поставить сырой кадр там? Какой формат пикселя это должно быть? Как прочитать данные обратно из "NX_VID_ENC_OUT"?

Я не могу найти образец или учебное пособие для кодирования hw на этом чипе, поэтому любой пример будет очень ценным.

1 ответ

От проекта Github в вопросе theser является примером, который показывает, как использовать NX_VidEncJpegRunFrame (в NXJpegHWEnc.cpp).

Вы можете выделить структуру NX_VID_ENC_OUT в стеке, выходной буфер будет выделен NX_VidEncJpegRunFrame:

NX_VID_ENC_OUT encOut;
NX_VidEncJpegRunFrame(hEnc, &memInfo, &encOut);

Далее вы можете получить доступ к буферу encOut.outBuf из encOut.bufSize,

Другие вопросы по тегам