Сегодня мы продолжаем говорить о ДЕМО с открытым исходным кодом. Эта ДЕМО с открытым исходным кодом использует RV1126 в качестве платы разработки и использует свой API для сбора потока кодирования и сохранения его в файл. Давайте сначала взглянем на общую блок-схему этой программы:
Из этой блок-схемы мы имеем общее представление об этом проекте. На самом деле этот проект очень прост. Основная функция служит входом, а затем инициализирует устройство VI, инициализирует VENC, связывает VI и VENC и, наконец, запускает поток сбора данных для сохранения потока кода.
Ниже мы используем простой случай, чтобы углубить наше понимание:
Для начала давайте посмотрим на код инициализации модуля (см. картинку выше): Инициализация здесь включает в себя: инициализацию модуля isp, инициализацию модуля VI, инициализацию модуля VENC:
После вышеописанной серии операций по инициализации модуля нам еще нужно связать модуль VI и модуль VENC, чтобы весь кодер действительно мог работать. Операция привязки показана ниже:
Используйте RK_MPI_SYS_Bind для привязки модуля VI и модуля VENC:
Этот код создает бесконечный цикл в потоке h264_venc_thread. И используйте API RK_MPI_SYS_GetMediaBuffer для сбора потока кода H264 каждого кадра и используйте fwrtite, чтобы сохранить его в файл H264.
Ниже приводится эффект от операции: