Аппаратное кодирование с помощью 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
,