Rockchip · AI & Linux Hub

Экран и звук

Руководство по разработке приложений Rockchip RKADK

Руководство по разработке приложений Rockchip RKADK — V2.3.2

· ArmSoM Editorial · Rockchip source documentation · 129 мин чтения

Основа - китайский и английский документы Rockchip RKADK V2.3.2. Сохранены 14 технических глав, API, определения типов и примеры. Для применения на ArmSoM проверьте конкретную плату, SoC, SDK/BSP, ядро и периферию; поддержка всех плат ArmSoM не заявляется. Примеры взяты из источников. Команды и аппаратные испытания не выполнялись.

В китайской главе 3 обзор, API и типы имеют номера 3.1, 3.2, 3.3; в английской обзор идёт без номера, API и типы - 3.1, 3.2. Сохранена нумерация соответствующего источника. Китайский заголовок 3.3.6 - RKADK_MUXER_MANUAL_SPLIT_ATTR_S, английский 3.2.6 - RKADK_REC_MANUAL_SPLIT_ATTR_S; проверьте тип по заголовочным файлам SDK. В английском объявлении RKADK_RECORD_Single_Stop слитно написано RKADK_STREAM_TYPE_EenStrmType; исходное написание сохранено, разделение типа и параметра требует проверки по SDK.

Оба источника датированы 2025-08-04. Определение структуры ручного разделения заканчивается именем MUXER_MANUAL_SPLIT_ATTR_S, а следующее перечисление типов - RKADK_MUXER_MANUAL_SPLIT_ATTR_S, вопреки заголовку. Эти определения сохранены как в источнике и не являются проверенными компилируемыми заголовками SDK. RKADK_MUXER_Disbale, librokadk.so, RGBA9888 и RV1103/RV1103 в списке платформ проигрывателя также сохранены из источников; проверьте SDK. Между перенесёнными строками объявлений восстановлены пробелы без изменения параметров, указателей и идентификаторов.

SoC Linux
RV1126/RV1109 4.19
RV1106/RV1103 5.10
RV1103B 5.10
RK3576 6.10
RV1126B 6.10

1. Обзор системы

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

1.1 Версии

Версия 1.x.x: дополнительная обёртка над rkmedia и rockit, репозиторий master. Версия 2.x.x: дополнительная обёртка над rockit, репозиторий develop.

2. Запись

2.1 Обзор

Базовые функции записи видео: создание и уничтожение задач, запуск и остановка задач, ручное разделение файлов, интервальная запись, предварительная запись и запись «картинка в картинке» (PiP). Задачи получают сведения о видео и аудио из модуля параметров, запускают и останавливают VENC и AENC, а через модуль мультиплексирования создают файлы и записывают кадры. Каждой задаче соответствует один или несколько файлов. Для каждого файла требуется канал видеокодирования; при записи звука добавляется канал аудиокодирования. Файлы одной задачи имеют одинаковый тип записи и условия разделения, а при интервальной записи - одинаковый интервал. Длительность записи может задаваться отдельно.

Post AI ISP: RV1106/RV1126/RV1109 поддерживают подавление шума при слабом освещении и интеллектуальное улучшение выходных изображений VI через AI ISP. Это позволяет получать более чёткое изображение с меньшим шумом и без шлейфов даже при слабом освещении.

2.2 Справочник API

2.2.1 RKADK_RECORD_Create

Описание

Создать задачу записи видео.

Синтаксис

RKADK_S32 RKADK_RECORD_Create(RKADK_RECORD_ATTR_S *pstRecAttr, RKADK_MW_PTR *ppRecorder);

Параметры

Имя параметра Описание Вход/выход
pstRecAttr Атрибуты задачи записи Вход
ppRecorder Указатель созданной задачи записи Выход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_record.h. Библиотека: librkadk.so.

Примечание

Одна задача поддерживает одновременную запись не более двух файлов. Каждый файл содержит как минимум один видеопоток; максимум - один видеопоток и один аудиопоток. Повторное создание той же задачи не поддерживается. После создания для начала записи вызовите RKADK_RECORD_Start. Для PiP включите stPipAttr при RKADK_RECORD_Create, чтобы создать тракт «картинка в картинке».

Пример

rkadk_record_test.

См. также

RKADK_RECORD_Destroy.

2.2.2 RKADK_RECORD_Destroy

Описание

Уничтожить задачи записи видео.

Синтаксис

RKADK_S32 RKADK_RECORD_Destroy(RKADK_MW_PTR pRecorder);

Параметры

Имя параметра Описание Вход/выход
pRecorder Указатель задачи записи Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_record.h. Библиотека: librkadk.so.

Примечание

RKADK_RECORD_Destroy разрешён только после создания задачи. Уничтожать можно только созданные задачи; повторное уничтожение той же задачи не поддерживается.

Пример

rkadk_record_test.

См. также

RKADK_RECORD_Create

2.2.3 RKADK_RECORD_Start

Описание

Запустить задачу записи.

Синтаксис

RKADK_S32 RKADK_RECORD_Start(RKADK_MW_PTR pRecorder);

Параметры

Имя параметра Описание Вход/выход
pRecorder Указатель задачи записи Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_record.h. Библиотека: librkadk.so.

Примечание

RKADK_RECORD_Start разрешён только после создания задачи. Остановленную задачу можно запустить снова.

Пример

rkadk_record_test.

См. также

RKADK_RECORD_Stop

2.2.4 RKADK_RECORD_Stop

Описание

Остановить задачу записи.

Синтаксис

RKADK_S32 RKADK_RECORD_Stop(RKADK_MW_PTR pRecorder);

Параметры

Имя параметра Описание Вход/выход
pRecorder Указатель задачи записи Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_record.h. Библиотека: librkadk.so.

Примечание

RKADK_RECORD_Stop разрешён только после создания задачи. Повторная остановка той же задачи не поддерживается.

Пример

rkadk_record_test.

См. также

RKADK_RECORD_Start

2.2.5 RKADK_RECORD_Single_Start

Описание

Запустить запись указанного потока.

Синтаксис

RKADK_S32 RKADK_RECORD_Single_Start(RKADK_MW_PTR pRecorder, RKADK_STREAM_TYPE_E enStrmType);

Параметры

Имя параметра Описание Input/Output
pRecorder Указатель задачи записи Вход
enStrmType Тип потока Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_record.h. Библиотека: librkadk.so.

Примечания

RKADK_RECORD_Single_Start разрешён только после создания задачи. Используется вместе с RKADK_RECORD_Single_Stop. После остановки запись можно запустить снова.

Пример

rkadk_record_test.

Связанные темы

RKADK_RECORD_Single_Stop.

2.2.6 RKADK_RECORD_Single_Stop

Описание

Остановить запись указанного потока.

Синтаксис

RKADK_S32 RKADK_RECORD_Single_Stop(RKADK_MW_PTR pRecorder, RKADK_STREAM_TYPE_EenStrmType);

Параметры

Имя параметра Описание Input/Output
pRecorder Указатель задачи записи Вход
enStrmType Тип потока Вход

Возвращаемые значения

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_record.h. Библиотека: librkadk.so.

Примечания

RKADK_RECORD_Stop разрешён только после создания задачи. Используется вместе с RKADK_RECORD_Single_Start. Повторная остановка той же задачи не поддерживается.

Пример

rkadk_record_test.

Связанные темы

RKADK_RECORD_Single_Start

2.2.7 RKADK_RECORD_Reset

Описание

Перенастроить задачу записи.

Синтаксис

RKADK_S32 RKADK_RECORD_Reset(RKADK_MW_PTR *ppRecorder);

Параметры

Имя параметра Описание Вход/выход
ppRecorder Указатель задачи записи Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_record.h. Библиотека: librkadk.so.

Примечание

RKADK_RECORD_Reset разрешён только после создания задачи. При смене разрешения, частоты кадров, битрейта, типа кодирования или записи измените параметры Record в ini через RKADK_PARAM_SetCamParam. RV1126/RV1109 и RK3576 не поддерживают динамическую смену разрешения и типа кодирования.

Сначала вызовите RKADK_RECORD_Destroy, задайте новое разрешение или тип кодирования, затем снова вызовите RKADK_RECORD_Create. Если Record делит канал VI с другими модулями, переключайте разрешение всех этих модулей одновременно, чтобы разрешения VI и VENC совпадали.

Пример

rkadk_record_test.

См. также

Нет

2.2.8 RKADK_RECORD_ManualSplit

Описание

Разделить видеофайлы вручную.

Синтаксис

RKADK_S32 RKADK_RECORD_ManualSplit(RKADK_MW_PTR pRecorder, RKADK_REC_MANUAL_SPLIT_ATTR_S *pstSplitAttr);

Параметры

Имя параметра Описание Вход/выход
pRecorder Указатель задачи записи Вход
pstSplitAttr Параметры ручного разделения Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_record.h. Библиотека: librkadk.so.

Примечание

RKADK_RECORD_ManualSplit разрешён только после создания задачи. Повторное ручное разделение допускается до завершения предыдущего разделения.

Пример

rkadk_record_test.

См. также

Нет

2.2.9 RKADK_RECORD_GetAencChn

Описание

Получить ID канала AENC записи.

Синтаксис

RKADK_S32 RKADK_RECORD_GetAencChn();

Возвращаемое значение

ID канала AENC, используемого для записи.

Требования

Заголовочный файл: rkadk_record.h. Библиотека: librkadk.so.

2.2.10 RKADK_GetThmInMp4

Описание

Получить миниатюру из MP4.

Синтаксис

RKADK_S32 RKADK_GetThmInMp4(RKADK_U32 u32CamId, RKADK_CHAR *pszFileName, RKADK_U8 *pu8Buf, RKADK_U32 *pu32Size);

Параметры

Имя параметра Описание Вход/выход
u32CamId ID камеры Вход
pszFileName Путь к MP4 Вход
pu8Buf Вход: указатель буфера миниатюры; выход: фактические данные миниатюры Input/Output
pu32Size Вход: длина pu8Buf; выход: фактическая длина данных миниатюры Input/Output

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_thumb.h. Библиотека: librkadk.so.

Пример

rkadk_thumb_test

См. также

Нет

2.2.11 RKADK_GetThmInMp4Ex

Описание

Расширенный интерфейс извлечения миниатюры из MP4 позволяет задать тип и разрешение выходного изображения. Используйте вместе с RKADK_ThmBufFree.

Синтаксис

RKADK_S32 RKADK_GetThmInMp4Ex(RKADK_U32 u32CamId, RKADK_CHAR *pszFileName, RKADK_THUMB_ATTR_S *pstThumbAttr);

Параметры

Имя параметра Описание Вход/выход
u32CamId ID камеры Вход
pszFileName Путь к MP4 Вход
pstThumbAttr Указатель структуры атрибутов миниатюры Вход/выход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_thumb.h. Библиотека: librkadk.so.

Пример

rkadk_thumb_test

См. также

RKADK_ThmBufFree

2.2.12 RKADK_ThmBufFree

Описание

Освободить память, выделенную RKADK_GetThmInMp4Ex. Используется вместе с RKADK_GetThmInMp4Ex.

Синтаксис

RKADK_S32 RKADK_ThmBufFree(RKADK_THUMB_ATTR_S *pstThumbAttr);

Параметры

Имя параметра Описание Вход/выход
pstThumbAttr Указатель структуры атрибутов миниатюры Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_thumb.h. Библиотека: librkadk.so.

Пример

rkadk_thumb_test

См. также

RKADK_GetThmInMp4Ex

2.2.13 RKADK_RECORD_SetRotation

Описание

Задать поворот записи.

Синтаксис

RKADK_S32 RKADK_RECORD_SetRotation(RKADK_MW_PTR pRecorder, ROTATION_E enRotation, RKADK_STREAM_TYPE_E enStreamType);

Параметры

Имя параметра Описание Вход/выход
pRecorder Указатель задачи записи Вход
enRotation Угол поворота Вход
enStreamType Тип потока Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_record.h. Библиотека: librkadk.so.

Пример

rkadk_record_test

2.2.14 RKADK_RECORD_ToggleMirror

Описание

Задать зеркальное отражение записи.

Синтаксис

RKADK_S32 RKADK_RECORD_ToggleMirror(RKADK_MW_PTR pRecorder, RKADK_STREAM_TYPE_E enStrmType, bool mirror);

Параметры

Имя параметра Описание Вход/выход
pRecorder Указатель задачи записи Вход
enStreamType Тип потока Вход
mirror Включение зеркального отражения Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_record.h. Библиотека: librkadk.so.

2.2.15 RKADK_RECORD_ToggleFlip

Описание

Задать переворот записи.

Синтаксис

RKADK_S32 RKADK_RECORD_ToggleFlip(RKADK_MW_PTR pRecorder, RKADK_STREAM_TYPE_E enStrmType, bool flip);

Параметры

Имя параметра Описание Вход/выход
pRecorder Указатель задачи записи Вход
enStreamType Тип потока Вход
flip Включение переворота Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_record.h. Библиотека: librkadk.so.

2.2.16 RKADK_RECORD_FileCacheInit

Описание

Инициализация File Cache сглаживает запись файлов. При включённом File Cache данные записываются на накопитель через DirectIO; механизм кэширования ядра не действует.

Синтаксис

RKADK_S32 RKADK_RECORD_FileCacheInit(FILE_CACHE_ARG *pstFileCacheAttr)

Параметры

Имя параметра Описание Вход/выход
pstFileCacheAttr Указатель атрибутов File Cache Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_record.h. Библиотека: librkadk.so.

Примечание

По умолчанию File Cache выключен. Для включения задайте переменную окружения file_cache_env.

export file_cache_env=1

При включённом File Cache вызовите этот интерфейс один раз до RKADK_RECORD_Create; иначе вызов не нужен. Для File Cache требуется дополнительная память объёмом u32TotalCache. Используйте в паре с RKADK_RECORD_FileCacheDeInit.

Пример

rkadk_record_test

2.2.17 RKADK_RECORD_FileCacheDeInit

Описание

Деинициализация File Cache

Синтаксис

RKADK_S32 RKADK_RECORD_FileCacheDeInit();

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_record.h. Библиотека: librkadk.so.

Примечание

Используйте вместе с RKADK_RECORD_FileCacheInit. При включённом File Cache вызывайте после RKADK_RECORD_Destroy; иначе вызов не нужен. rkadk_record_test.

2.2.18 RKADK_RECORD_FileCacheSetMode

Описание

Задать тип записи для File Cache.

Синтаксис

void RKADK_RECORD_FileCacheSetMode(RKADK_REC_TYPE_E enRecType);

Параметры

Имя параметра Описание Input/Output
enRecType Тип записи Вход

Требования

Заголовочный файл: rkadk_record.h. Библиотека: librkadk.so.

Примечания

Если File Cache включён, при смене типа записи задайте новый тип File Cache через этот API. rkadk_aov_record_test.

2.2.19 RKADK_MEDIA_EnablePostIsp

Описание

Включить Post AI ISP. Помимо этого интерфейса, функцию можно включить параметром post_aiisp в ini-файле сенсора.

Синтаксис

RKADK_S32 RKADK_MEDIA_EnablePostIsp(RKADK_U32 u32CamId, RKADK_STREAM_TYPE_E enStrmType, RKADK_POST_ISP_ATTR_S *pstPostIspAttr);

Параметры

Имя параметра Описание Вход/выход
u32CamId ID камеры Вход
enStrmType Тип потока Вход
pstPostIspAttr Указатель атрибутов Post AI ISP Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_media_comm.h. Библиотека: librkadk.so.

2.2.20 RKADK_MEDIA_SetPostIspAttr

Описание

Динамически задать атрибуты Post AI ISP.

Синтаксис

RKADK_S32 RKADK_MEDIA_SetPostIspAttr(RKADK_U32 u32CamId, RKADK_STREAM_TYPE_E enStrmType, bool bEnable, RKADK_POST_ISP_ATTR_S *pstPostIspAttr);

Параметры

Имя параметра Описание Вход/выход
u32CamId ID камеры Вход
enStrmType Тип потока Вход
bEnable Переключатель Post AI ISP, динамический атрибут Вход
pstPostIspAttr Указатель атрибутов Post AI ISP Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_media_comm.h. Библиотека: librkadk.so.

2.2.21 RKADK_RECORD_SetPipAttr

Описание

Динамически задать атрибуты PiP.

Синтаксис

RKADK_S32 RKADK_RECORD_SetPipAttr(RKADK_MW_PTR pRecorder, RKADK_PIP_ATTR_S *pstPipAttr);

Параметры

Имя параметра Описание Input/Output
pRecorder Указатель задачи записи Вход
pstPipAttr Атрибуты «картинки в картинке» Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_record.h.

Библиотека: librkadk.so. Примечание: для PiP включите stPipAttr при RKADK_RECORD_Create, чтобы создать соответствующий тракт.

2.3 Типы данных

Основные типы модуля записи: RKADK_MW_PTR - указатель задачи; RECORD_FILE_NUM_MAX - максимальное число одновременно записываемых файлов одной задачи; RKADK_REC_EVENT_CALLBACK_FN - обратный вызов событий; RKADK_REC_TYPE_E - типы записи; RKADK_REC_REQUEST_FILE_NAMES_FN - функция запроса имён файлов; RKADK_REC_PTS_CALLBACK_FN - обратный вызов временной метки видеокадра; RKADK_RECORD_ATTR_S - атрибуты задачи; RKADK_REC_MANUAL_SPLIT_ATTR_S - ручное разделение; FILE_CACHE_ARG - атрибуты File Cache; RKADK_POST_ISP_ATTR_S - атрибуты Post AI ISP; RKADK_MOUNT_SDCARD_FN - функция монтирования SD; RKADK_AOV_ATTR_S - атрибуты AOV; RKADK_PIP_ATTR_S - атрибуты PiP.

2.3.1 Общие типы данных

Описание

Определение базовых типов данных.

Определение

typedef unsigned char RKADK_U8;
typedef unsigned short RKADK_U16;
typedef unsigned int RKADK_U32;

typedef signed char RKADK_S8;
typedef short RKADK_S16;
typedef int RKADK_S32;

typedef unsigned long RKADK_UL;
typedef signed long RKADK_SL;
typedef float RKADK_FLOAT;
typedef double RKADK_DOUBLE;

#ifndef _M_IX86
typedef unsigned long long RKADK_U64;
typedef long long RKADK_S64;
#else
typedef unsigned __int64 RKADK_U64;
typedef __int64 RKADK_S64;
#endif

typedef char RKADK_CHAR;
#define RKADK_VOID void

typedef unsigned int RKADK_HANDLE;

typedef RKADK_VOID *RKADK_MW_PTR;

typedef char (*ARRAY_FILE_NAME)[RKADK_MAX_FILE_PATH_LEN];

typedef enum {
  RKADK_FALSE = 0,
  RKADK_TRUE = 1,
} RKADK_BOOL;

#ifndef NULL
#define NULL 0L
#endif

#define RKADK_NULL 0L
#define RKADK_SUCCESS 0
#define RKADK_FAILURE (-1)

2.3.2 RKADK_MW_PTR

Описание

Определение указателя задачи

Определение

typedef RKADK_VOID *RKADK_MW_PTR;

2.3.3 RKADK_MAX_SENSOR_CNT

Описание

Максимальное поддерживаемое число сенсоров; можно изменить согласно конкретной конфигурации

Определение

#define RKADK_MAX_SENSOR_CNT 8

2.3.4 RECORD_FILE_NUM_MAX

Описание

Максимальное число файлов, одновременно записываемых одной задачей.

Определение

#define RECORD_FILE_NUM_MAX 2

2.3.5 RKADK_REC_EVENT_CALLBACK_FN

Описание

Указатель обратного вызова событий записи.

Определение

typedef RKADK_MUXER_EVENT_CALLBACK_FN RKADK_REC_EVENT_CALLBACK_FN;

Связанные типы данных и интерфейсы

RKADK_MUXER_EVENT_CALLBACK_FN

2.3.6 RKADK_REC_TYPE_E

Описание

Перечисление типов записи.

Определение

typedef RKADK_MUXER_REC_TYPE_E RKADK_REC_TYPE_E;

Связанные типы данных и интерфейсы

RKADK_MUXER_REC_TYPE_E

2.3.7 RKADK_REC_REQUEST_FILE_NAMES_FN

Описание

Указатель функции запроса имени видеофайла.

Определение

typedef RKADK_S32 (*RKADK_REC_REQUEST_FILE_NAMES_FN)(RKADK_MW_PTR pRecorder, RKADK_U32
u32FileCnt, RKADK_CHAR(*paszFilename)[RKADK_MAX_FILE_PATH_LEN]);

Поля

Имя поля Описание
pRecorder Указатель задачи записи
u32FileCnt Число запрашиваемых имён файлов
paszFilename Буфер для имён файлов

Связанные типы данных и интерфейсы

RKADK_MW_PTR RKADK_RECORD_ATTR_S

2.3.8 RKADK_REC_PTS_CALLBACK_FN

Описание

Указатель обратного вызова временной метки видеокадра.

Определение

typedef RKADK_MUXER_PTS_CALLBACK_FN RKADK_REC_PTS_CALLBACK_FN;

Связанные типы данных и интерфейсы

RKADK_MUXER_PTS_CALLBACK_FN RKADK_RECORD_ATTR_S

2.3.9 RKADK_MOUNT_SDCARD_FN

Описание

Указатель функции монтирования SD-карты.

Определение

typedef int (*RKADK_MOUNT_SDCARD_FN)(void);

Связанные типы данных и интерфейсы

RKADK_RECORD_ATTR_S

2.3.10 RKADK_RECORD_ATTR_S

Описание

Структура атрибутов задачи записи.

Определение

typedef struct {
  RKADK_S32 s32CamID;                                  /* Camera ID */
  RKADK_U32 u32FragKeyFrame;
  RKADK_REC_REQUEST_FILE_NAMES_FN pfnRequestFileNames; /* rec callbak */
  RKADK_REC_EVENT_CALLBACK_FN pfnEventCallback;        /* event callbak */
  RKADK_AOV_ATTR_S stAovAttr;
  RKADK_POST_ISP_ATTR_S *pstPostIspAttr;
  RKADK_MOUMNT_SDCARD_FN pfnMountSdcard;
  RKADK_PIP_ATTR_S stPipAttr[RECORD_FILE_NUM_MAX];
  RKADK_U32 u32GetThumbTime[RECORD_FILE_NUM_MAX];      /* get thumbnail delay time(ms) when
enbale file cache, default: 3000(ms) */
  RKADK_THIRD_MUXER_ATTR_S *pstThirdMuxerAttr;         /* third party muxer attr */
} RKADK_RECORD_ATTR_S;

Поля

Имя поля Описание
s32CamID ID камеры
u32FragKeyFrame Разделять ли видеофайл по I-кадрам
pfnRequestFileNames Указатель функции запроса имени файла
pfnEventCallback Указатель обратного вызова событий записи
stAovAttr Атрибуты AOV (Always On Video)
pstPostIspAttr Атрибуты Post AI ISP
pfnMountSdcard Указатель функции монтирования SD-карты
stPipAttr Атрибуты «картинки в картинке»
u32GetThumbTime Задержка получения миниатюры при включённом File Cache, мс
pstThirdMuxerAttr Указатель атрибутов стороннего Muxer

Связанные типы данных и интерфейсы

RKADK_REC_EVENT_CALLBACK_FN RKADK_REC_REQUEST_FILE_NAMES_FN RKADK_MOUMNT_SDCARD_FN RKADK_AOV_ATTR_S RKADK_POST_ISP_ATTR_S RKADK_PIP_ATTR_S RKADK_THIRD_MUXER_ATTR_S RKADK_RECORD_Create

2.3.11 RKADK_REC_MANUAL_SPLIT_ATTR_S

Описание

Структура атрибутов ручного разделения.

Определение

typedef MUXER_MANUAL_SPLIT_ATTR_S RKADK_REC_MANUAL_SPLIT_ATTR_S;

Связанные типы данных и интерфейсы

MUXER_MANUAL_SPLIT_ATTR_S RKADK_RECORD_ManualSplit

2.3.12 FILE_CACHE_ARG

Описание

Структура атрибутов File Cache.

Определение

typedef struct _FILE_CACHE_ARG {
  const char *sdcard_path;
  int write_cache;  /* write cache size(byte), default 1M */
  int total_cache;  /* total cache size(byte), default 10M */
  FILE_WRITE_THREAD_ARG write_thread_arg;
  FILE_SDCARD_ARG sdcard_arg;
} FILE_CACHE_ARG;

Поля

Имя поля Описание
sdcard_path Путь монтирования SD-карты
write_cache Размер кэша для каждого записываемого файла
total_cache Общий размер кэша
write_thread_arg Атрибуты потока записи
sdcard_arg Атрибуты SD-карты

Связанные типы данных и интерфейсы

RKADK_RECORD_FileCacheInit FILE_WRITE_THREAD_ARG FILE_SDCARD_ARG

2.3.13 FILE_WRITE_THREAD_ARG

Описание

Структура атрибутов потока записи.

Определение

typedef enum _FILE_SCHED_POLICY {
  FILE_SCHED_OTHER = 0,
  FILE_SCHED_BATCH,
  FILE_SCHED_IDLE,
  FILE_SCHED_FIFO,      /* sched_priority[1, 99] */
  FILE_SCHED_RR,        /* sched_priority[1, 99] */
} FILE_SCHED_POLICY;

typedef struct _FILE_WRITE_THREAD_ARG {
  FILE_SCHED_POLICY sched_policy;
  int priority; /* SCHED_OTHER/SCHED_IDLE/SCHED_BATCH inoperative */
} FILE_WRITE_THREAD_ARG;

Поля

Имя поля Описание
sched_policy Политика планирования потока
priority Приоритет потока

Связанные типы данных и интерфейсы

RKADK_RECORD_FileCacheInit

FILE_CACHE_ARG

2.3.14 FILE_SDCARD_ARG

Описание

Структура атрибутов SD-карты.

Определение

typedef struct _FILE_SDCARD_ARG {
    FILE_CACHE_SDCARD_LOCK lock;
    FILE_CACHE_SDCARD_UNLOCK unlock;
    FILE_CACHE_MOUMNT_SDCARD mount_sdcard;
    FILE_CACHE_UMOUMNT_SDCARD umount_sdcard;
} FILE_SDCARD_ARG;

Поля

Имя поля Описание
lock Функция блокировки операций SD-карты
unlock Функция снятия блокировки операций SD-карты
mount_sdcard Функция монтирования SD-карты
umount_sdcard Функция размонтирования SD-карты

Связанные типы данных и интерфейсы

FILE_CACHE_ARG

2.3.15 RKADK_POST_ISP_ATTR_S

Описание

Структура атрибутов Post AI ISP.

Определение

typedef struct {
  AIISP_CALLBACK_FUNC_S stAiIspCallback;      /* post isp callback function */
  const RK_CHAR        *pModelFilePath;       /* post isp model file path   */
  RK_U32                u32FrameBufCnt;       /* RW; frame buffer cnt    */
} RKADK_POST_ISP_ATTR_S;

Поля

Имя поля Описание
stAiIspCallback Обратный вызов обновления параметров AI NR
pModelFilePath Путь к файлу модели Post AI ISP
u32FrameBufCnt Число кадровых буферов, по умолчанию 1

Связанные типы данных и интерфейсы

RKADK_MEDIA_EnablePostIsp RKADK_MEDIA_SetPostIspAttr

2.3.16 RKADK_AOV_ATTR_S

Описание

Структура атрибутов AOV.

Определение

typedef struct {
  RKADK_ISP_WAKE_UP_PAUSE_FN pfnSingleFrame;
  RKADK_ISP_WAKE_UP_RESUME_FN pfnMultiFrame;
} RKADK_AOV_ATTR_S;

Поля

Имя поля Описание
pfnSingleFrame Указатель функции однокадрового режима
pfnMultiFrame Указатель функции многокадрового режима

Связанные типы данных и интерфейсы

RKADK_RECORD_Create

2.3.17 RKADK_PIP_ATTR_S

Описание

Структура атрибутов «картинки в картинке».

Определение

typedef struct {
  RKADK_BOOL bEnablePip;                      /* enable picture-in-picture */
  RKADK_U32 u32AvsGrpId;                      /* AVS group id [0, AVS_MAX_GRP_NUM)] */
  RKADK_U32 u32AvsBufCnt;                     /* default 2, min value 2 */
  RKADK_U32 u32SubCamId;                      /* subwindow camera id */
  RKADK_STREAM_TYPE_E enSubStreamType;        /* subwindow stream type */
  RKADK_RECT_S stSubRect;                     /* The subwindow is based on the display area
of the main window */
} RKADK_PIP_ATTR_S;

Поля

Имя поля Описание
bEnablePip Включить «картинку в картинке»
u32AvsGrpId ID группы AVS для PiP
u32AvsBufCnt Максимальное число буферов целевого изображения AVS
u32SubCamId ID камеры вложенного окна
enSubStreamType Тип потока вложенного окна
stSubRect Область вложенного окна внутри основного окна

Связанные типы данных и интерфейсы

RKADK_RECORD_Create RKADK_RECORD_SetPipAttr

3. Мультиплексор

Модуль предоставляет создание и уничтожение, запуск и остановку мультиплексоров, ручное разделение файлов. Каждый мультиплексор одновременно упаковывает до двух файлов. В файле должен быть как минимум один видеопоток; максимум - один видеопоток и один аудиопоток. Можно создавать несколько мультиплексоров одновременно. Поддерживается упаковка сторонних потоков.

3.1 Справочник API

3.1.1 RKADK_MUXER_Create

Описание

Создать мультиплексор.

Синтаксис

RKADK_S32 RKADK_MUXER_Create(RKADK_MUXER_ATTR_S *pstMuxerAttr, RKADK_MW_PTR *ppHandle);

Параметры

Имя параметра Описание Input/Output
pstMuxerAttr Атрибуты мультиплексора Вход
ppHandle Указатель созданного мультиплексора Выход

Возвращаемые значения

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_muxer.h. Библиотека: librkadk.so.

Примечания

Повторное создание того же мультиплексора не поддерживается. После создания включите его через RKADK_MUXER_Enable, затем запустите через RKADK_MUXER_Start.

Пример

rkadk_muxer_test.

Связанные темы

RKADK_MUXER_Destroy.

3.1.2 RKADK_MUXER_Destroy

Описание

Уничтожить мультиплексор.

Синтаксис

RKADK_S32 RKADK_MUXER_Destroy(RKADK_MW_PTR pHandle);

Параметры

Имя параметра Описание Input/Output
pHandle Указатель мультиплексора Вход

Возвращаемые значения

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_muxer.h. Библиотека: librkadk.so.

Примечания

Уничтожать можно только созданный мультиплексор; повторное уничтожение не поддерживается. Перед уничтожением остановите его через RKADK_MUXER_Stop, затем отключите через RKADK_MUXER_Disable.

Пример

rkadk_muxer_test.

Связанные темы

RKADK_MUXER_Create

3.1.3 RKADK_MUXER_Enable

Описание

Включить мультиплексор.

Синтаксис

RKADK_S32 RKADK_MUXER_Enable(RKADK_MUXER_ATTR_S *pstMuxerAttr, RKADK_MW_PTR pHandle);

Параметры

Имя параметра Описание Input/Output
pstMuxerAttr Атрибуты мультиплексора Вход
pHandle Указатель мультиплексора Вход

Возвращаемые значения

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_muxer.h. Библиотека: librkadk.so.

Примечания

Используйте вместе с RKADK_MUXER_Disable.

Пример

rkadk_muxer_test.

Связанные темы

RKADK_MUXER_Disable.

3.1.4 RKADK_MUXER_Disable

Описание

Отключить мультиплексор.

Синтаксис

RKADK_S32 RKADK_MUXER_Disable(RKADK_MW_PTR pHandle);

Параметры

Имя параметра Описание Input/Output
pHandle Указатель мультиплексора Вход

Возвращаемые значения

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_muxer.h. Библиотека: librkadk.so.

Примечания

Используйте вместе с RKADK_MUXER_Enable.

Пример

rkadk_muxer_test.

Связанные темы

RKADK_MUXER_Enable

3.1.5 RKADK_MUXER_Start

Описание

Инициализировать мультиплексор.

Синтаксис

RKADK_S32 RKADK_MUXER_Start(RKADK_MW_PTR pHandle);

Параметры

Имя параметра Описание Input/Output
pHandle Указатель мультиплексора Вход

Возвращаемые значения

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_muxer.h. Библиотека: librkadk.so.

Примечания

После остановки мультиплексор можно запустить снова.

Пример

rkadk_muxer_test.

Связанные темы

RKADK_MUXER_Stop

3.1.6 RKADK_MUXER_Stop

Описание

Остановить мультиплексор.

Синтаксис

RKADK_S32 RKADK_MUXER_Stop(RKADK_MW_PTR pHandle);

Параметры

Имя параметра Описание Input/Output
pHandle Указатель мультиплексора Вход

Возвращаемые значения

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_muxer.h. Библиотека: librkadk.so.

Примечания

Повторная остановка того же мультиплексора не поддерживается.

Пример

rkadk_muxer_test.

Связанные темы

RKADK_MUXER_Start

3.1.7 RKADK_MUXER_Single_Start

Описание

Запустить мультиплексор указанного потока.

Синтаксис

RKADK_S32 RKADK_MUXER_Single_Start(RKADK_MW_PTR pHandle, int s32MuxerId, int s32VencChn);

Параметры

Имя параметра Описание Input/Output
pHandle Указатель мультиплексора Вход
s32MuxerId ID мультиплексора Вход
s32VencChn Канал VENC; для мультиплексирования стороннего потока s32VencChn должен быть -1 Вход

Возвращаемые значения

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_muxer.h. Библиотека: librkadk.so.

Примечания

Используйте вместе с RKADK_MUXER_Single_Stop. После остановки мультиплексор можно запустить снова.

Пример

rkadk_muxer_test.

Связанные темы

RKADK_MUXER_Single_Stop

3.1.8 RKADK_MUXER_Single_Stop

Описание

Остановить мультиплексор указанного потока.

Синтаксис

RKADK_S32 RKADK_MUXER_Single_Stop(RKADK_MW_PTR pHandle, int s32MuxerId, int s32VencChn);

Параметры

Имя параметра Описание Input/Output
pHandle Указатель мультиплексора Вход
s32MuxerId ID мультиплексора Вход
s32VencChn Канал VENC; при упаковке стороннего потока s32VencChn должен быть -1 Вход

Возвращаемые значения

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_muxer.h. Библиотека: librkadk.so.

Примечания

Используйте вместе с RKADK_MUXER_Single_Start. Повторная остановка того же мультиплексора не поддерживается.

Пример

rkadk_muxer_test.

Связанные темы

RKADK_MUXER_Single_Start

3.1.9 RKADK_MUXER_ManualSplit

Описание

Разделить файлы вручную.

Синтаксис

RKADK_S32 RKADK_MUXER_ManualSplit(RKADK_MW_PTR pHandle, RKADK_MUXER_MANUAL_SPLIT_ATTR_S *pstSplitAttr);

Параметры

Имя параметра Описание Input/Output
pRecorder Указатель мультиплексора Вход
pstSplitAttr Параметры ручного разделения Вход

Возвращаемые значения

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_muxer.h. Библиотека: librkadk.so.

Примечания

Допускается повторное ручное разделение до завершения предыдущего разделения.

Пример

rkadk_muxer_test

3.1.10 RKADK_MUXER_Reset

Описание

Сбросить мультиплексор.

Синтаксис

RKADK_S32 RKADK_MUXER_Reset(RKADK_MW_PTR pHandle);

Параметры

Имя параметра Описание Input/Output
pHandle Указатель мультиплексора Вход

Возвращаемые значения

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_muxer.h. Библиотека: librokadk.so.

Примечания

До RKADK_MUXER_Reset вызовите RKADK_MUXER_SetResetState для перехода в состояние сброса. После RKADK_MUXER_Reset вызовите RKADK_MUXER_ResetParam для перенастройки параметров, затем снова RKADK_MUXER_SetResetState для выхода из состояния сброса.

Пример

rkadk_muxer_test.

Связанные темы

RKADK_MUXER_ResetParam RKADK_MUXER_SetResetState

3.1.11 RKADK_MUXER_ResetParam

Описание

Перенастроить параметры мультиплексора.

Синтаксис

RKADK_S32 RKADK_MUXER_ResetParam(RKADK_MUXER_ATTR_S *pstMuxerAttr, RKADK_MW_PTR pHandle);

Параметры

Имя параметра Описание Input/Output
pstMuxerAttr Атрибуты мультиплексора Вход
pHandle Указатель мультиплексора Вход

Возвращаемые значения

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_muxer.h. Библиотека: librkadk.so.

Пример

rkadk_muxer_test.

Связанные темы

RKADK_MUXER_Reset RKADK_MUXER_SetResetState

3.1.12 RKADK_MUXER_SetResetState

Описание

Задать состояние сброса мультиплексора.

Синтаксис

void RKADK_MUXER_SetResetState(RKADK_MW_PTR pHandle, bool state);

Параметры

Имя параметра Описание Input/Output
pHandle Указатель мультиплексора Вход
state Состояние сброса: True до сброса, False после Вход

Требования

Заголовочный файл: rkadk_muxer.h. Библиотека: librkadk.so.

Пример

rkadk_muxer_test.

Связанные темы

RKADK_MUXER_Reset RKADK_MUXER_ResetParam

3.1.13 RKADK_MUXER_BuildInThumb

Описание

Встроить миниатюры в файлы.

Синтаксис

RKADK_S32 RKADK_MUXER_BuildInThumb(RKADK_MW_PTR pHandle, RKADK_MUXER_THUMB_INFO_S stThumbInfo);

Параметры

Имя параметра Описание Input/Output
pHandle Указатель кодировщика Вход
stThumbInfo Информация о миниатюре Вход

Требования

Заголовочный файл: rkadk_muxer.h. Библиотека: librkadk.so.

Примечания

Для встраивания миниатюр задайте их разрешение при RKADK_MUXER_Create, чтобы зарезервировать место хранения. Встроенные миниатюры поддерживаются только в MP4.

Пример

rkadk_muxer_test.

3.1.14 RKADK_MUXER_WriteVideoFrame

Описание

Записать данные видеопотока.

Синтаксис

int RKADK_MUXER_WriteVideoFrame(RKADK_MUXER_DATA_S stData, void *handle);

Параметры

Имя параметра Описание Input/Output
handle Указатель мультиплексора Вход
stData Данные видеопотока Вход

Возвращаемые значения

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_muxer.h. Библиотека: librkadk.so.

Пример

rkadk_muxer_test.

3.1.15 RKADK_MUXER_WriteAudioFrame

Описание

Записать данные аудиопотока.

Синтаксис

int RKADK_MUXER_WriteAudioFrame(RKADK_MUXER_DATA_S stData, void *handle);

Параметры

Имя параметра Описание Input/Output
handle Указатель мультиплексора Вход
stData Данные аудиопотока Вход

Возвращаемые значения

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_muxer.h. Библиотека: librkadk.so.

Пример

rkadk_muxer_test.

3.2 Типы данных

Основные типы модуля Muxer: RKADK_MUXER_FILE_TYPE_E - типы файлов; RKADK_MUXER_EVENT_E - события; RKADK_MUXER_FILE_EVENT_INFO_S - информация о файловом событии; RKADK_MUXER_EVENT_INFO_S - информация о событии мультиплексора; RKADK_MUXER_EVENT_CALLBACK_FN - обратный вызов событий; RKADK_MUXER_MANUAL_SPLIT_ATTR_S - атрибуты ручного разделения; RKADK_MUXER_MANUAL_SPLIT_TYPE_E - типы ручного разделения; RKADK_MUXER_ATTR_S - атрибуты мультиплексора; RKADK_MUXER_REC_TYPE_E - типы записи; RKADK_MUXER_TYPE_E - типы мультиплексоров; RKADK_MUXER_REQUEST_FILE_NAME_CB - запрос имени файла; RKADK_MUXER_STREAM_ATTR_S - атрибуты потока; RKADK_MUXER_PRE_RECORD_ATTR_S - атрибуты предварительной записи; RKADK_MUXER_PRE_RECORD_MODE_E - режимы предварительной записи; RKADK_MUXER_PTS_CALLBACK_FN - обратный вызов временной метки; RKADK_MUXER_PTS_INFO_S - информация о временной метке; RKADK_MUXER_DATA_S - данные упаковки; RKADK_MUXER_THUMB_INFO_S - информация о миниатюре; RKADK_THIRD_MUXER_ATTR_S - атрибуты стороннего мультиплексора.

3.2.1 RKADK_MUXER_FILE_TYPE_E

Описание

Перечисление типов файлов мультиплексора.

Определение

typedef enum rkMUXER_TYPE_E {
  RKADK_MUXER_TYPE_MP4 = 0,
  RKADK_MUXER_TYPE_MPEGTS,
  RKADK_MUXER_TYPE_FLV,
  RKADK_MUXER_TYPE_BUTT
} RKADK_MUXER_FILE_TYPE_E;

Поля

Имя поля Описание
RKADK_MUXER_TYPE_MP4 MP4
RKADK_MUXER_TYPE_MPEGTS TS
RKADK_MUXER_TYPE_FLV FLV

Примечания

Встроенные миниатюры поддерживаются только в MP4.

3.2.2 RKADK_MUXER_EVENT_E

Описание

Перечисление событий мультиплексора.

Определение

typedef enum rkMUXER_EVENT_E {
  RKADK_MUXER_EVENT_STREAM_START = 0,
  RKADK_MUXER_EVENT_STREAM_STOP,
  RKADK_MUXER_EVENT_FILE_BEGIN,
  RKADK_MUXER_EVENT_FILE_END,
  RKADK_MUXER_EVENT_MANUAL_SPLIT_END,
  RKADK_MUXER_EVENT_ERR_CREATE_FILE_FAIL,
  RKADK_MUXER_EVENT_ERR_WRITE_FILE_FAIL,
  RKADK_MUXER_EVENT_FILE_WRITING_SLOW,
  RKADK_MUXER_EVENT_ERR_CARD_NONEXIST,
  RKADK_MUXER_EVENT_BUTT
} RKADK_MUXER_EVENT_E;

Поля

Имя поля Описание
RKADK_MUXER_EVENT_STREAM_START Начало записи
RKADK_MUXER_EVENT_STREAM_STOP Остановка записи
RKADK_MUXER_EVENT_FILE_BEGIN Начало записи нового файла
RKADK_MUXER_EVENT_FILE_END Окончание записи файла
RKADK_MUXER_EVENT_MANUAL_SPLIT_END Окончание записи файла при ручном разделении
RKADK_MUXER_EVENT_ERR_GET_FILENAME Не удалось получить имя файла
RKADK_MUXER_EVENT_ERR_CREATE_FILE_FAIL Зарезервировано
RKADK_MUXER_EVENT_ERR_WRITE_FILE_FAIL Ошибка записи файла
RKADK_MUXER_EVENT_FILE_WRITING_SLOW Медленная запись файлов
RKADK_MUXER_EVENT_ERR_CARD_NONEXIST SD-карта отсутствует

Связанные типы данных и интерфейсы

RKADK_MUXER_EVENT_INFO_S

3.2.3 RKADK_MUXER_FILE_EVENT_INFO_S

Описание

Структура информации о файловом событии.

Определение

typedef struct {
  RK_CHAR asFileName[RKADK_MUXER_FILE_NAME_LEN];
  RK_U32 u32Duration; // ms
} RKADK_MUXER_FILE_EVENT_INFO_S;

Поля

Имя поля Описание
asFileName Имя файла
u32Duration Фактическая длительность записанного файла

Связанные типы данных и интерфейсы

RKADK_MUXER_EVENT_INFO_S

3.2.4 RKADK_MUXER_EVENT_INFO_S

Описание

Структура информации о событии мультиплексора.

Определение

typedef struct {
  RKADK_MUXER_EVENT_E enEvent;
  union {
    RKADK_MUXER_FILE_EVENT_INFO_S stFileInfo;
    RKADK_MUXER_ERROR_EVENT_INFO_S stErrorInfo;
  } unEventInfo;
} RKADK_MUXER_EVENT_INFO_S;

Поля

Имя поля Описание
enEvent Тип события записи
stFileInfo Информация о файловом событии
stErrorInfo Информация об ошибке (зарезервировано)

Связанные типы данных и интерфейсы

RKADK_MUXER_EVENT_E RKADK_MUXER_FILE_EVENT_INFO_S

3.2.5 RKADK_MUXER_EVENT_CALLBACK_FN

Описание

Указатель обратного вызова событий мультиплексора.

Определение

typedef RKADK_VOID (*RKADK_MUXER_EVENT_CALLBACK_FN)(RKADK_MW_PTR pRecorder, const
RKADK_MUXER_EVENT_INFO_S *pstEventInfo);

Связанные типы данных и интерфейсы

RKADK_MUXER_EVENT_INFO_S

3.2.6 RKADK_REC_MANUAL_SPLIT_ATTR_S

Описание

Структура атрибутов ручного разделения.

Определение

typedef struct {
  RKADK_MUXER_MANUAL_SPLIT_TYPE_E enManualType;               /* maual split type */
  RKADK_U32 u32DurationSec; /* file duration of manual split file */
} MUXER_MANUAL_SPLIT_ATTR_S;

Поля

Имя поля Описание
enManualType Тип ручного разделения
u32DurationSec Длительность видеофайла при ручном разделении

Связанные типы данных и интерфейсы

RKADK_MUXER_MANUAL_SPLIT_TYPE_E RKADK_MUXER_ManualSplit

3.2.7 RKADK_MUXER_MANUAL_SPLIT_TYPE_E

Описание

Тип ручного разделения.

Определение

typedef enum {
  MUXER_PRE_MANUAL_SPLIT,      /* pre manual split type */
  MUXER_NORMAL_MANUAL_SPLIT,   /* normal manual split type */
} RKADK_MUXER_MANUAL_SPLIT_ATTR_S;

Поля

Имя поля Описание
MUXER_PRE_MANUAL_SPLIT Ручное разделение видеофайлов с предварительной записью
MUXER_NORMAL_MANUAL_SPLIT Ручное разделение видеофайлов

Связанные типы данных и интерфейсы

RKADK_REC_MANUAL_SPLIT_ATTR_S

3.2.8 RKADK_THIRD_MUXER_ATTR_S

Описание

Структура атрибутов стороннего мультиплексора.

Определение

typedef struct {
  RKADK_THIRD_MUXER_INIT_FN pfnMuxerInit;
  RKADK_THIRD_MUXER_DEINIT_FN pfnMuxerDeinit;
  RKADK_THIRD_MUXER_WRITE_VIDEO_FN pfnWriteVideo;
  RKADK_THIRD_MUXER_WRITE_AUDIO_FN pfnWriteAudio;
  RKADK_THIRD_MUXER_GET_THUMB_POS_FN pfnGetThumbPos;
} RKADK_THIRD_MUXER_ATTR_S;

Поля

Имя поля Описание
pfnMuxerInit Указатель функции инициализации стороннего мультиплексора
pfnMuxerDeinit Указатель функции деинициализации стороннего мультиплексора
pfnWriteVideo Указатель функции записи видеокадра стороннего мультиплексора
pfnWriteAudio Указатель функции записи аудиокадра стороннего мультиплексора
pfnGetThumbPos Указатель получения позиции записи миниатюры стороннего мультиплексора

Примечания

При включении стороннего мультиплексора RKADK_GetthmInMp4 и RKADK_GetthmInMp4Ex не поддерживают получение миниатюр видео.

Связанные типы данных и интерфейсы

RKADK_MUXER_ATTR_S

3.2.9 RKADK_MUXER_ATTR_S

Описание

Структура атрибутов мультиплексора.

Определение

typedef struct {
  RKADK_U32 u32CamId;
  RKADK_MUXER_REC_TYPE_E enRecType;
  RKADK_MUXER_TYPE_E enMuxerType;
  RKADK_U32 u32StreamCnt; /* stream cnt */
  RKADK_U32 u32FragKeyFrame;
  RKADK_MUXER_STREAM_ATTR_S
  astStreamAttr[RKADK_MUXER_STREAM_MAX_CNT]; /* array of stream attr */
  RKADK_MUXER_PRE_RECORD_ATTR_S stPreRecordAttr;
  RKADK_MUXER_REQUEST_FILE_NAME_CB pcbRequestFileNames;
  RKADK_MUXER_EVENT_CALLBACK_FN pfnEventCallback;
  RKADK_MUXER_PTS_CALLBACK_FN pfnPtsCallback;
  RKADK_AOV_ATTR_S stAovAttr;
  RKADK_MOUMNT_SDCARD_FN pfnMountSdcard;
  bool bEnableAiisp;
  RKADK_THIRD_MUXER_ATTR_S *pstThirdMuxerAttr;         /* third party muxer attr */
} RKADK_MUXER_ATTR_S;

Поля

Имя поля Описание
u32CamId Идентификатор камеры
enRecType Тип записи; сторонний поток не поддерживает интервальную запись AOV
enMuxerType Тип мультиплексора
u32StreamCnt Число потоков мультиплексора
u32FragKeyFrame Разделять ли файл по I-кадрам
astStreamAttr Атрибуты потока мультиплексора
stPreRecordAttr Атрибуты предварительной записи
pcbRequestFileNames Указатель функции запроса имён файлов
pfnEventCallback Указатель обратного вызова событий
pfnPtsCallback Указатель обратного вызова временной метки текущего видеокадра
stAovAttr Атрибуты AOV (Always On Video); сторонний поток не поддерживается
pfnMountSdcard Указатель функции монтирования SD-карты; обязателен для интервального режима AOV
bEnableAiisp Включить Aiisp
pstThirdMuxerAttr Указатель атрибутов стороннего Muxer

Связанные типы данных и интерфейсы

RKADK_MUXER_REC_TYPE_E RKADK_MUXER_TYPE_E RKADK_MUXER_STREAM_ATTR_S RKADK_MUXER_PRE_RECORD_ATTR_S RKADK_MUXER_REQUEST_FILE_NAME_CB

RKADK_MUXER_EVENT_CALLBACK_FN RKADK_MUXER_PTS_CALLBACK_FN RKADK_AOV_ATTR_S RKADK_MOUMNT_SDCARD_FN RKADK_THIRD_MUXER_ATTR_S RKADK_MUXER_Create RKADK_MUXER_ResetParam

3.2.10 RKADK_MUXER_REC_TYPE_E

Описание

Перечисление типов записи мультиплексора.

Определение

typedef enum {
  RKADK_REC_TYPE_NORMAL = 0, /* normal record */
  RKADK_REC_TYPE_LAPSE,      /* time lapse record */
  RKADK_REC_TYPE_AOV_LAPSE,  /* low power time lapse record */
  RKADK_REC_TYPE_BUTT
} RKADK_MUXER_REC_TYPE_E;

Поля

Имя поля Описание
RKADK_REC_TYPE_NORMAL Обычная запись
RKADK_REC_TYPE_LAPSE Интервальное видео
RKADK_REC_TYPE_AOV_LAPSE Интервальная запись с низким энергопотреблением

Связанные типы данных и интерфейсы

Нет. Примечание: интервальную запись AOV поддерживают только RV1126, RV1106 и RV1126B.

3.2.11 RKADK_MUXER_TYPE_E

Описание

Перечисление типов мультиплексоров.

Определение

typedef enum {
  RKADK_MUXER_TYPE_RECORD = 0,
  RKADK_MUXER_TYPE_THIRD_STREAM,
} RKADK_MUXER_TYPE_E;

Поля

Имя поля Описание
RKADK_MUXER_TYPE_RECORD Мультиплексор локальной записи
RKADK_MUXER_TYPE_THIRD_STREAM Мультиплексор стороннего потока

Связанные типы данных и интерфейсы

RKADK_MUXER_ATTR_S

3.2.12 RKADK_MUXER_REQUEST_FILE_NAME_CB

Описание

Указатель обратного вызова запроса имён файлов.

Определение

typedef int (*RKADK_MUXER_REQUEST_FILE_NAME_CB)(void *pHandle, char *pcFileName, unsigned
int u32MuxerId);

Поля

Имя поля Описание
pHandle Указатель кодировщика
pcFileName Указатель имени файла
u32MuxerId ID мультиплексора

Связанные типы данных и интерфейсы

RKADK_MUXER_ATTR_S

3.2.13 RKADK_MUXER_PTS_CALLBACK_FN

Описание

Указатель обратного вызова временной метки видеокадра.

Определение

typedef RKADK_VOID (*RKADK_MUXER_PTS_CALLBACK_FN)(const RKADK_MUXER_PTS_INFO_S *pstPtsInfo);

Поля

Имя поля Описание
pstPtsInfo Указатель информации о временной метке видеокадра

Связанные типы данных и интерфейсы

RKADK_MUXER_PTS_INFO_S RKADK_MUXER_ATTR_S

3.2.14 RKADK_MUXER_PTS_INFO_S

Описание

Структура информации о временной метке.

Определение

typedef struct {
  RKADK_U32 u32CamId;
  RKADK_S32 s32MuxerId;
  RKADK_U32 u32ChnId;
  RKADK_U64 u64PTS;
  RKADK_U32 u32Seq;
  const char *pFileName;
} RKADK_MUXER_PTS_INFO_S;

Поля

Имя поля Описание
u32CamId ID камеры
s32MuxerId ID мультиплексора
u32ChnId Канал VENC
u64PTS Временная метка кадра
u32Seq Порядковый номер кадра
pFileName Имя файла

Связанные типы данных и интерфейсы

RKADK_MUXER_PTS_CALLBACK_FN

3.2.15 RKADK_MUXER_STREAM_ATTR_S

Описание

Структура атрибутов потока мультиплексора.

Определение

typedef struct {
  RKADK_S32 s32MuxerId;
  /* If it is a third-party stream that is not Rockit(such as a network stream),
    * s32ViChn/s32VencChn must set to -1.
  */
  RKADK_S32 s32ViChn;
  RKADK_S32 s32VencChn;
  RKADK_S32 s32ThumbVencChn;
  bool bUseVpss;
  RKADK_U32 u32TimeLenSec; /* record time */
  RKADK_PIP_ATTR_S stPipAttr;
  RKADK_U32 u32GetThumbTime;
  RKADK_U32 u32TrackCnt;   /* track cnt*/
  RKADK_MUXER_TRACK_SOURCE_S
  aHTrackSrcHandle[RKADK_MUXER_TRACK_MAX_CNT]; /* array of track source cnt */
  RKADK_MUXER_FILE_TYPE_E enType;
} RKADK_MUXER_STREAM_ATTR_S;

Поля

Имя поля Описание
s32MuxerId ID мультиплексора
s32ViChn Канал VI; для сторонних потоков задайте -1
s32VencChn Канал VENC; для сторонних потоков задайте -1
s32ThumbVencChn Канал VENC миниатюр; для сторонних потоков задайте -1
bUseVpss Использование VPSS; для сторонних потоков задайте False
u32TimeLenSec Имя файла
stPipAttr Атрибуты PiP; для сторонних потоков не действуют
u32GetThumbTime Время встраивания миниатюры, по умолчанию 3000 мс
u32TrackCnt Число потоков
aHTrackSrcHandle Атрибуты потока
enType Тип файла

Связанные типы данных и интерфейсы

RKADK_MUXER_TRACK_SOURCE_S RKADK_MUXER_FILE_TYPE_E

3.2.16 RKADK_MUXER_TRACK_SOURCE_S

Описание

Структура атрибутов потока мультиплексора.

Определение

typedef struct {
  RKADK_TRACK_SOURCE_TYPE_E enTrackType;
  union {
    RKADK_TRACK_VIDEO_SOURCE_INFO_S stVideoInfo; /* <video track info */
    RKADK_TRACK_AUDIO_SOURCE_INFO_S stAudioInfo; /* <audio track info */
  } unTrackSourceAttr;
} RKADK_MUXER_TRACK_SOURCE_S;

Поля

Имя поля Описание
enTrackType Тип потока
stVideoInfo Атрибуты видеопотока
stAudioInfo Атрибуты аудиопотока

Связанные типы данных и интерфейсы

RKADK_TRACK_SOURCE_TYPE_E RKADK_TRACK_VIDEO_SOURCE_INFO_S RKADK_TRACK_AUDIO_SOURCE_INFO_S

3.2.17 RKADK_TRACK_SOURCE_TYPE_E

Описание

Перечисление типов дорожек потока мультиплексора.

Определение

typedef enum {
  RKADK_TRACK_SOURCE_TYPE_VIDEO = 0,
  RKADK_TRACK_SOURCE_TYPE_AUDIO,
  RKADK_TRACK_SOURCE_TYPE_BUTT
} RKADK_TRACK_SOURCE_TYPE_E;

Поля

Имя поля Описание
RKADK_TRACK_SOURCE_TYPE_VIDEO Видеопоток
RKADK_TRACK_SOURCE_TYPE_AUDIO Аудиопоток

3.2.18 RKADK_TRACK_VIDEO_SOURCE_INFO_S

Описание

Структура атрибутов видеопотока мультиплексора.

Определение

typedef struct {
  RKADK_CODEC_TYPE_E enCodecType;
  RKADK_CHAR cPixFmt[RKADK_PIX_FMT_LEN];
  RKADK_U32 u32Width;
  RKADK_U32 u32Height;
  RKADK_U32 u32BitRate;
  RKADK_U32 u32FrameRate;
  RKADK_U32 u32Gop;
  RKADK_U16 u16Profile;
  RKADK_U16 u16Level;
  RKADK_U32 u32ThumbWidth;
  RKADK_U32 u32ThumbHeight;
} RKADK_TRACK_VIDEO_SOURCE_INFO_S;

Поля

Имя поля Описание
enCodecType Тип кодирования
cPixFmt Формат пикселей
u32Width Ширина изображения
u32Height Высота изображения
u32BitRate Битрейт
u32FrameRate Частота кадров
u32Gop GOP
u16Profile Профиль кодирования
u16Level Уровень кодирования
u32ThumbWidth Ширина миниатюры
u32ThumbHeight Высота миниатюры

3.2.19 RKADK_TRACK_AUDIO_SOURCE_INFO_S

Описание

Структура атрибутов аудиопотока мультиплексора.

Определение

typedef struct {
  RKADK_CODEC_TYPE_E enCodecType;
  RKADK_U16 u32BitWidth;
  RKADK_U32 u32ChnCnt;
  RKADK_U32 u32SampleRate;
  RKADK_U32 u32SamplesPerFrame;
  RKADK_U32 u32Bitrate;
} RKADK_TRACK_AUDIO_SOURCE_INFO_S;

Поля

Имя поля Описание
enCodecType Тип кодека
u32BitWidth Разрядность
u32ChnCnt Число каналов
u32SampleRate Частота дискретизации
u32SamplesPerFrame Отсчётов на кадр
u32Bitrate Битрейт

3.2.20 RKADK_MUXER_PRE_RECORD_ATTR_S

Описание

Структура атрибутов предварительной записи.

Определение

typedef struct {
  RKADK_U32 u32PreRecTimeSec; /* pre record time, unit in second(s) */
  RKADK_U32 u32PreRecCacheTime;
  RKADK_MUXER_PRE_RECORD_MODE_E enPreRecordMode;
} RKADK_MUXER_PRE_RECORD_ATTR_S;

Поля

Имя поля Описание
u32PreRecTimeSec Длительность предварительной записи
u32PreRecCacheTime Длительность кэша предварительной записи
enPreRecordMode Режим предварительной записи

Связанные типы данных и интерфейсы

RKADK_MUXER_PRE_RECORD_MODE_E RKADK_MUXER_ATTR_S

Примечания

u32PreRecCacheTime должен быть не меньше u32PreRecTimeSec и содержать полный GoP, чтобы корректно получить I-кадр.

3.2.21 RKADK_MUXER_PRE_RECORD_MODE_E

Описание

Перечисление режимов предварительной записи.

Определение

typedef enum {
  RKADK_MUXER_PRE_RECORD_NONE = 0,
  RKADK_MUXER_PRE_RECORD_MANUAL_SPLIT, /* manual split file prerecord */
  RKADK_MUXER_PRE_RECORD_SINGLE        /* first file prerecord */
} RKADK_MUXER_PRE_RECORD_MODE_E;

Поля

Имя поля Описание
RKADK_MUXER_PRE_RECORD_NONE Без предварительной записи
RKADK_MUXER_PRE_RECORD_MANUAL_SPLIT Предварительная запись при ручном разделении файла
RKADK_MUXER_PRE_RECORD_SINGLE Предварительная запись первого файла

3.2.22 RKADK_MUXER_DATA_S

Описание

Структура данных мультиплексора.

Определение

typedef struct {
  RKADK_S32 s32MuxerId;
  RKADK_S32 s32VencChn;
  int isKeyFrame;
  RKADK_U64 u64Pts;
  RKADK_U32 u32Seq;
  RKADK_U32 u32Len;
  MB_BLK pMbBlk;
} RKADK_MUXER_DATA_S;

Поля

Имя поля Описание
s32MuxerId ID мультиплексора
s32VencChn Канал VENC; для стороннего потока задайте -1
isKeyFrame Является ли кадр ключевым
u64Pts Временная метка кадра
u32Seq Порядковый номер кадра
u32Len Длина данных кадра
pMbBlk Указатель блока кадрового буфера

Связанные типы данных и интерфейсы

RKADK_MUXER_WriteVideoFrame RKADK_MUXER_WriteAudioFrame

3.2.23 RKADK_MUXER_THUMB_INFO_S

Описание

Структура информации о миниатюре.

Определение

typedef struct {
  RKADK_S32 s32MuxerId;
  unsigned char* pBuf;
  RKADK_U32 u32Len;
} RKADK_MUXER_THUMB_INFO_S;

Поля

Имя поля Описание
s32MuxerId ID мультиплексора
pBuf Указатель данных миниатюры
u32Len Длина данных миниатюры

Связанные типы данных и интерфейсы

RKADK_MUXER_BuildInThumb

4. AOV (непрерывная видеозапись)

4.1 Обзор

AOV (Always On Video) - непрерывная запись с низкой частотой кадров на основе циклов сна и пробуждения. При событии, например обнаружении ИИ, срабатывании PIR или пробуждении по Wi-Fi, можно вернуться к обычной частоте кадров. Рекомендуется включить файловый кэш; см. RKADK_RECORD_FileCacheInit и RKADK_RECORD_FileCacheDeInit в главе о записи. Для снижения энергопотребления при интервальной записи AOV питание SD-карты во сне отключают; перед засыпанием приложение должно её размонтировать. При включённом файловом кэше он пытается монтировать карту во время записи и защищает операцию, чтобы карта не была размонтирована до её завершения. Процесс AOV показан ниже.

AOV

4.2 Справочник API

4.2.1 RKADK_AOV_Init

Описание

Инициализация AOV.

Синтаксис

int RKADK_AOV_Init(RKADK_AOV_ARG_S *pstAovAttr);

Параметр

Имя параметра Описание Вход/выход
pstAovAttr Указатель атрибутов AOV Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_aov.h. Библиотека: librkadk.so.

Примечание

Используйте вместе с RKADK_AOV_DeInit. Повторная инициализация не поддерживается.

Пример

rkadk_aov_record_test

Связанная тема

RKADK_AOV_DeInit

4.2.2 RKADK_AOV_DeInit

Описание

Деинициализация AOV.

Синтаксис

int RKADK_AOV_DeInit();

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_aov.h. Библиотека: librkadk.so.

Примечание

Используйте вместе с RKADK_AOV_Init. Повторная деинициализация не поддерживается.

Пример

rkadk_aov_record_test

Связанная тема

RKADK_AOV_Init

4.2.3 RKADK_AOV_SetSuspendTime

Описание

Задать запланированную длительность сна AOV в мс.

Синтаксис

int RKADK_AOV_SetSuspendTime(int u32WakeupSuspendTime);

Параметр

Имя параметра Описание Вход/выход
u32WakeupSuspendTime Длительность сна Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_aov.h. Библиотека: librkadk.so.

Пример

rkadk_aov_record_test

4.2.4 RKADK_AOV_EnterSleep

Описание

Перейти в AOV.

Синтаксис

int RKADK_AOV_EnterSleep();

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_aov.h. Библиотека: librkadk.so.

Пример

rkadk_aov_record_test

4.2.5 RKADK_AOV_WakeupLock

Описание

Заблокировать операции AOV.

Синтаксис

void RKADK_AOV_WakeupLock();

Требования

Заголовочный файл: rkadk_aov.h. Библиотека: librkadk.so.

Примечание

Используйте вместе с RKADK_AOV_WakeupUnlock.

Пример

rkadk_aov_record_test

Связанная тема

RKADK_AOV_WakeupUnlock

4.2.6 RKADK_AOV_WakeupUnlock

Описание

Разблокировать операции AOV.

Синтаксис

void RKADK_AOV_WakeupUnlock();

Требования

Заголовочный файл: rkadk_aov.h. Библиотека: librkadk.so.

Примечание

Используйте вместе с RKADK_AOV_WakeupLock.

Пример

rkadk_aov_record_test

Связанная тема

RKADK_AOV_WakeupLock

4.3 Типы данных

Основные типы модуля AOV: RKADK_AOV_ARG_S - структура атрибутов AOV; RKADK_AOV_NOTIFY_CALLBACK - указатель обратного вызова уведомлений AOV.

4.3.1 RKADK_AOV_ARG_S

Определение

Структура атрибутов AOV.

Определение

typedef struct {
   RKADK_AOV_NOTIFY_CALLBACK pfnNotifyCallback;
} RKADK_AOV_ARG_S;

Поля

Имя поля Описание
pfnNotifyCallback Указатель обратного вызова уведомлений AOV

Связанные типы и интерфейсы: RKADK_AOV_Init, RKADK_AOV_NOTIFY_CALLBACK

4.3.2 RKADK_AOV_NOTIFY_CALLBACK

Определение

Указатель обратного вызова уведомлений AOV.

Определение

typedef void (*RKADK_AOV_NOTIFY_CALLBACK)(RKADK_AOV_EVENT_E enEvent, void *msg);

Поля

Имя поля Описание
enEvent Перечисление событий уведомления AOV
msg Резерв

Связанные типы и интерфейсы: RKADK_AOV_ARG_S, RKADK_AOV_EVENT_E

4.3.3 RKADK_AOV_EVENT_E

Определение

Перечисление событий уведомления AOV.

Определение

typedef enum {
   RKADK_AOV_ENTER_SLEEP = 0,
   RKADK_AOV_EVENT_BUTT
} RKADK_AOV_EVENT_E;

Поля

Имя поля Описание
RKADK_AOV_ENTER_SLEEP Переход AOV в сон

Связанные типы данных и интерфейсы

RKADK_AOV_NOTIFY_CALLBACK

5. Фотосъёмка

5.1 Обзор

Базовая фотосъёмка с упаковкой JPEG: одиночные снимки, серийная съёмка и JPEG Slice. При JPEG Slice данные VI кодируются в JPEG по сегментам для экономии памяти. При увеличении JPEG данные VI сначала увеличиваются интерполяцией по сегментам, затем сегментами кодируются в JPEG. Высота сегмента должна быть кратна 16 пикселям. Для качественного объединения рекомендуется сохранять соотношение сторон сегментов максимально близким к исходному изображению. Больше сегментов требует меньше памяти, но увеличивает время формирования изображения; меньше сегментов требует больше памяти, но ускоряет обработку. Число сегментов выбирайте по конкретной задаче.

5.2 Справочник API

5.2.1 RKADK_PHOTO_Init

Описание

Инициализировать задачу фотосъёмки.

Синтаксис

RKADK_S32 RKADK_PHOTO_Init(RKADK_PHOTO_ATTR_S *pstPhotoAttr, RKADK_MW_PTR *ppHandle);

Параметры

Имя параметра Описание Вход/выход
pstPhotoAttr Указатель атрибутов задачи фотосъёмки Вход
ppHandle Указатель созданной задачи фотосъёмки Выход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_photo.h. Библиотека: librkadk.so.

Примечание

Повторная инициализация не поддерживается.

Пример

rkadk_photo_test

См. также

RKADK_PHOTO_DeInit

5.2.2 RKADK_PHOTO_DeInit

Описание

Деинициализировать задачу фотосъёмки.

Синтаксис

RKADK_S32 RKADK_PHOTO_DeInit(RKADK_MW_PTR pHandle);

Параметры

Имя параметра Описание Вход/выход
PHandle Указатель задачи фотосъёмки Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_photo.h. Библиотека: librkadk.so.

Примечание

Повторная деинициализация не поддерживается.

Пример

rkadk_photo_test

См. также

RKADK_PHOTO_DeInit

5.2.3 RKADK_PHOTO_TakePhoto

Описание

Выполнить фотосъёмку.

Синтаксис

RKADK_S32 RKADK_PHOTO_TakePhoto(RKADK_MW_PTR pHandle, RKADK_TAKE_PHOTO_ATTR_S *pstAttr);

Параметры

Имя параметра Описание Вход/выход
PHandle Указатель задачи фотосъёмки Вход
pstAttr Атрибуты фотосъёмки Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_photo.h. Библиотека: librkadk.so.

Примечание

RKADK_PHOTO_TakePhoto разрешён только после инициализации задачи записи (так указано в оригинале).

Пример

rkadk_photo_test

См. также

Нет

5.2.4 RKADK_PHOTO_Reset

Описание

Перенастроить задачу фотосъёмки.

Синтаксис

RKADK_S32 RKADK_PHOTO_Reset(RKADK_MW_PTR *ppHandle);

Параметры

Имя параметра Описание Вход/выход
ppHandle Указатель задачи фотосъёмки Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_photo.h. Библиотека: librkadk.so.

Примечание

RKADK_PHOTO_Reset разрешён только после инициализации задачи записи (термин оригинала). При смене разрешения измените разрешение Photo в ini через RKADK_PARAM_SetCamParam. RV1126/RV1109 и RK3576 не поддерживают динамическую смену разрешения: сначала RKADK_PHOTO_DeInit, затем настройка нового разрешения и RKADK_PHOTO_Init. Если Photo и другие модули делят канал VI, меняйте их разрешения одновременно, чтобы VI и VENC совпадали.

Пример

rkadk_photo_test

См. также

5.2.5 RKADK_PHOTO_GetThmInJpg

Описание

Получить данные миниатюры из JPG.

Синтаксис

RKADK_S32 RKADK_PHOTO_GetThmInJpg(RKADK_U32 u32CamId, RKADK_CHAR *pszFileName, RKADK_JPG_THUMB_TYPE_E eThmType, RKADK_U8 *pu8Buf, RKADK_U32 *pu32Size);

Параметры

Имя параметра Описание Вход/выход
u32CamId ID камеры Вход
pszFileName Путь к JPG Вход
eThmType Тип миниатюры Вход
pu8Buf Вход: указатель буфера миниатюры; выход: фактические данные миниатюры Input/Output
pu32Size Вход: длина pu8Buf; выход: фактическая длина данных миниатюры Input/Output

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_photo.h. Библиотека: librkadk.so.

Пример

rkadk_thumb_test

См. также

No.

5.2.6 RKADK_PHOTO_GetThmInJpgEx

Описание

Расширенный интерфейс извлечения миниатюры из JPG позволяет задать тип и разрешение выходной миниатюры. Используйте вместе с RKADK_PHOTO_ThumbBufFree.

Синтаксис

RKADK_S32 RKADK_PHOTO_GetThmInJpgEx(RKADK_U32 u32CamId, RKADK_CHAR *pszFileName, RKADK_JPG_THUMB_TYPE_E eThmType, RKADK_THUMB_ATTR_S *pstThumbAttr);

Параметры

Имя параметра Описание Вход/выход
u32CamId ID камеры Вход
pszFileName Путь к JPG Вход
eThmType Тип миниатюры Вход
pstThumbAttr Указатель структуры атрибутов миниатюры Вход/выход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_photo.h. Библиотека: librkadk.so.

Пример

rkadk_thumb_test

См. также

RKADK_PHOTO_ThumbBufFree

5.2.7 RKADK_PHOTO_ThumbBufFree

Описание

Освободить память, выделенную RKADK_PHOTO_GetThmInJpgEx. Используйте вместе с RKADK_PHOTO_GetThmInJpgEx.

Синтаксис

RKADK_S32 RKADK_PHOTO_ThumbBufFree(RKADK_THUMB_ATTR_S *pstThumbAttr);

Параметры

Имя параметра Описание Вход/выход
pstThumbAttr Указатель структуры атрибутов миниатюры Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_photo.h. Библиотека: librkadk.so.

Пример

rkadk_thumb_test

См. также

RKADK_PHOTO_GetThmInJpgEx

5.2.8 RKADK_MEDIA_SetVencRotation

Описание

Задать поворот канала VENC.

Синтаксис

RKADK_S32 RKADK_MEDIA_SetVencRotation(RKADK_U32 u32CamId, ROTATION_E enRotation, RKADK_STREAM_TYPE_E enStreamType);

Параметры

Имя параметра Описание Вход/выход
u32CamId ID камеры Вход
enRotation Угол поворота Вход
enStreamType Тип потока Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_media_comm.h. Библиотека: librkadk.so.

5.2.9 RKADK_MEDIA_ToggleVencMirror

Описание

Задать зеркальное отражение канала VENC.

Синтаксис

RKADK_S32 RKADK_MEDIA_ToggleVencMirror(RKADK_U32 u32CamId, RKADK_STREAM_TYPE_E enStrmType, bool mirror);

Параметры

Имя параметра Описание Вход/выход
u32CamId ID камеры Вход
enStreamType Тип потока Вход
mirror Включение зеркального отражения Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_media_comm.h. Библиотека: librkadk.so.

5.2.10 RKADK_MEDIA_ToggleVencFlip

Описание

Задать переворот канала VENC.

Синтаксис

RKADK_S32 RKADK_MEDIA_ToggleVencFlip(RKADK_U32 u32CamId, RKADK_STREAM_TYPE_E enStrmType, bool flip);

Параметры

Имя параметра Описание Вход/выход
u32CamId ID камеры Вход
enStreamType Тип потока Вход
flip Включение переворота Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_media_comm.h. Библиотека: librkadk.so.

5.3 Типы данных

Основные типы модуля фотосъёмки: RKADK_PHOTO_TYPE_E - типы съёмки; RKADK_PHOTO_SINGLE_ATTR_S - атрибуты одиночного снимка; RKADK_PHOTO_MULTIPLE_ATTR_S - серийной съёмки; RKADK_PHOTO_RECV_DATA_S - данные фотографии; RKADK_PHOTO_DATA_RECV_FN_PTR - функция приёма данных; RKADK_TAKE_PHOTO_ATTR_S - атрибуты съёмки; RKADK_PHOTO_ATTR_S - атрибуты задачи; RKADK_JPG_THUMB_TYPE_E - типы миниатюр JPG; RKADK_THUMB_TYPE_E - типы выходных миниатюр; RKADK_THUMB_ATTR_S - атрибуты миниатюры; ROTATION_E - типы поворота; RKADK_PHOTO_FMT_CHANGE_S - параметры преобразования FBC0/NV16.

5.3.1 RKADK_PHOTO_TYPE_E

Описание

Перечисление типов фотосъёмки.

Определение

typedef enum {
  RKADK_PHOTO_TYPE_SINGLE = 0,
  RKADK_PHOTO_TYPE_MULTIPLE,
  RKADK_PHOTO_TYPE_LAPSE, // TODO
  RKADK_PHOTO_TYPE_BUTT
} RKADK_PHOTO_TYPE_E;

Поля

Имя поля Описание
RKADK_PHOTO_TYPE_SINGLE Режим одиночного снимка
RKADK_PHOTO_TYPE_MULTIPLE Режим серийной съёмки
RKADK_PHOTO_TYPE_LAPSE Интервальная фотосъёмка (зарезервировано)

Связанные типы данных и интерфейсы

RKADK_TAKE_PHOTO_ATTR_S

5.3.2 RKADK_PHOTO_SINGLE_ATTR_S

Описание

Структура атрибутов одиночного снимка.

Определение

typedef struct {
  // TODO
  RKADK_S32 s32Time_sec;
} RKADK_PHOTO_SINGLE_ATTR_S;

Поля

Имя поля Описание
s32Time_sec Зарезервировано

Связанные типы данных и интерфейсы

RKADK_TAKE_PHOTO_ATTR_S

5.3.3 RKADK_PHOTO_MULTIPLE_ATTR_S

Описание

Структура атрибутов серийной съёмки.

Определение

typedef struct {
  /* s32Count is -1 that means continuous photo, larger than 0 that meas photo
   * number */
  RKADK_S32 s32Count;
} RKADK_PHOTO_MULTIPLE_ATTR_S;

Поля

Имя поля Описание
s32Count Число последовательных снимков; -1 означает непрерывную съёмку до RKADK_PHOTO_DeInit

Связанные типы данных и интерфейсы

RKADK_TAKE_PHOTO_ATTR_SS

5.3.4 RKADK_PHOTO_THUMB_ATTR_S

Описание

Структура параметров миниатюры.

Определение

#define RKADK_MPF_LARGE_THUMB_NUM_MAX 2  /* Supports the maximum number of MPF thumbnails to
be generated simultaneously */

typedef struct rkSIZE_S {
  RK_U32 u32Width;               /* Thumbnail width*/
  RK_U32 u32Height;              /* Thumbnail height */
} SIZE_S;

typedef enum {
  RKADK_PHOTO_MPF_SINGLE = 0,    /* Single MPF thumbnail */
  RKADK_PHOTO_MPF_MULTI,         /* Multiple MPF thumbnails */
  RKADK_PHOTO_MPF_BUTT
} RKADK_PHOTO_MPF_MODE_E;

typedef struct {
  RKADK_U8 u8LargeThumbNum;      /* Number of generated MPF thumbnails*/
  SIZE_S astLargeThumbSize[RKADK_MPF_LARGE_THUMB_NUM_MAX];  /* Each thumbnail resolution */
} RKADK_PHOTO_MPF_CFG_S;
typedef struct {
  RKADK_PHOTO_MPF_MODE_E eMode;  /* MPF thumbnail mode */
  RKADK_PHOTO_MPF_CFG_S sCfg;    /* MPF thumbnail configuration */
} RKADK_PHOTO_MPF_ATTR_S;

typedef struct {
  RKADK_BOOL bSupportDCF; /* Fixed resolution: 160 * 120 jpg */
  RKADK_PHOTO_MPF_ATTR_S stMPFAttr;
} RKADK_PHOTO_THUMB_ATTR_S;

Поля

Имя поля Описание
bSupportDCF Создавать ли миниатюры DCF с фиксированным разрешением 160*120
stMPFAttr Параметры миниатюры MPF

Связанные типы данных и интерфейсы

RKADK_PHOTO_ATTR_S

5.3.5 RKADK_PHOTO_RECV_DATA_S

Описание

Структура данных фотографии.

Определение

typedef struct {
  RKADK_U8 *pu8DataBuf;
  RKADK_U32 u32DataLen;
  RKADK_U32 u32CamId;
  bool bStreamEnd;
  void *userdata;
} RKADK_PHOTO_RECV_DATA_S;

Поля

Имя поля Описание
pu8DataBuf Указатель данных
u32DataLen Длина данных
u32CamId ID камеры
bStreamEnd Конец потока данных; главным образом для JPEG Slice
userdata Указатель пользовательских данных

Связанные типы данных и интерфейсы

RKADK_PHOTO_DATA_RECV_FN_PTR

5.3.6 RKADK_PHOTO_DATA_RECV_FN_PTR

Описание

Указатель функции приёма данных фотографии.

Определение

typedef void (*RKADK_PHOTO_DATA_RECV_FN_PTR)(RKADK_PHOTO_RECV_DATA_S *pstData);

Поля

Имя поля Описание
pstData Указатель данных

Связанные типы данных и интерфейсы

RKADK_PHOTO_RECV_DATA_S RKADK_PHOTO_ATTR_S

5.3.7 RKADK_TAKE_PHOTO_ATTR_S

Описание

Структура атрибутов фотографии.

Определение

typedef struct {
  RKADK_PHOTO_TYPE_E enPhotoType;
  union tagPhotoTypeAttr {
    RKADK_PHOTO_SINGLE_ATTR_S stSingleAttr;
    RKADK_PHOTO_LAPSE_ATTR_S stLapseAttr; // TODO
    RKADK_PHOTO_MULTIPLE_ATTR_S stMultipleAttr;
  } unPhotoTypeAttr;
} RKADK_TAKE_PHOTO_ATTR_S;

Поля

Имя поля Описание
enPhotoType Тип фотосъёмки
stSingleAttr Параметры одиночного снимка
stMultipleAttr Параметры серийной съёмки
stLapseAttr Параметры интервальной фотосъёмки (зарезервировано)

Связанные типы данных и интерфейсы

RKADK_PHOTO_TYPE_E RKADK_PHOTO_SINGLE_ATTR_S RKADK_PHOTO_MULTIPLE_ATTR_S RKADK_PHOTO_TakePhoto

5.3.8 RKADK_PHOTO_FMT_CHANGE_S

Описание

Структура параметров преобразования формата FBC0/NV16

Определение

typedef struct {
  RKADK_U32 u32VencChn;
  RKADK_U32 u32VdecChn;

  //format change venc parameter
  RKADK_U32 u32BitRate;   //default 4M
  RKADK_U32 u32Profile;   //default 77
} RKADK_PHOTO_FMT_CHANGE_S;

Поля

Имя поля Описание
u32VencChn ID канала VENC для преобразования формата
u32VdecChn ID канала VDEC для преобразования формата
u32BitRate Битрейт кодирования, по умолчанию 4M
u32Profile Уровень кодирования, по умолчанию 77

Связанные типы данных и интерфейсы

RKADK_PHOTO_ATTR_S RKADK_PHOTO_Init

5.3.9 RKADK_PHOTO_ATTR_S

Описание

Структура атрибутов задачи фотосъёмки.

Определение

typedef struct {
  RKADK_U32 u32CamId;
  RKADK_PHOTO_THUMB_ATTR_S stThumbAttr;
  RKADK_PHOTO_DATA_RECV_FN_PTR pfnPhotoDataProc;
  void *userdata;
  RKADK_POST_ISP_ATTR_S *pstPostIspAttr;
  RKADK_PHOTO_FMT_CHANGE_S stFmtChange;
} RKADK_PHOTO_ATTR_S;

Поля

Имя поля Описание
u32CamId ID камеры
stThumbAttr Параметры миниатюры
pfnPhotoDataProc Указатель обратного вызова приёма данных фотографии
userdata Указатель пользовательских данных
pstPostIspAttr Атрибуты Post AI ISP
stFmtChange Параметры преобразования формата FBC0/NV16

Связанные типы данных и интерфейсы

RKADK_PHOTO_THUMB_ATTR_S RKADK_PHOTO_DATA_RECV_FN_PTR RKADK_POST_ISP_ATTR_S RKADK_PHOTO_FMT_CHANGE_S RKADK_PHOTO_Init

5.3.10 RKADK_JPG_THUMB_TYPE_E

Описание

Перечисление типов миниатюр JPG.

Определение

typedef enum {
  RKADK_JPG_THUMB_TYPE_DCF,
  RKADK_JPG_THUMB_TYPE_MFP1,
  RKADK_JPG_THUMB_TYPE_MFP2,
  RKADK_JPG_THUMB_TYPE_BUTT
} RKADK_JPG_THUMB_TYPE_E;

Поля

Имя поля Описание
RKADK_JPG_THUMB_TYPE_DCF Миниатюра DCF
RKADK_JPG_THUMB_TYPE_MFP1 Миниатюра MPF1
RKADK_JPG_THUMB_TYPE_MFP2 Миниатюра MPF2

Связанные типы данных и интерфейсы

RKADK_PHOTO_GetThmInJpg RKADK_PHOTO_GetThmInJpgEx

5.3.11 RKADK_THUMB_TYPE_E

Описание

Перечисление типов выходных миниатюр.

Определение

typedef enum {
  RKADK_THUMB_TYPE_NV12 = 0,
  RKADK_THUMB_TYPE_JPEG,
  RKADK_THUMB_TYPE_RGB565,
  RKADK_THUMB_TYPE_RGBA8888,
  RKADK_THUMB_TYPE_BGRA8888
} RKADK_THUMB_TYPE_E;

Поля

Имя поля Описание
RKADK_THUMB_TYPE_NV12 Выходная миниатюра NV12
RKADK_THUMB_TYPE_JPEG Выходная миниатюра JPG
RKADK_THUMB_TYPE_RGB565 Выходная миниатюра RGB565
RKADK_THUMB_TYPE_RGBA8888 Выходная миниатюра RGBA9888
RKADK_THUMB_TYPE_BGRA8888 Выходная миниатюра BGRA8888

Связанные типы данных и интерфейсы

RKADK_THUMB_ATTR_S RKADK_GetThmInMp4Ex RKADK_PHOTO_GetThmInJpgEx

5.3.12 RKADK_THUMB_ATTR_S

Описание

Структура атрибутов миниатюры.

Определение

typedef struct {
  RKADK_THUMB_TYPE_E enType;
  // 4 alignment
  RKADK_U32 u32Width;
  // 2 alignment
  RKADK_U32 u32Height;
  // 4 alignment
  RKADK_U32 u32VirWidth;
  // 2 alignment
  RKADK_U32 u32VirHeight;
  RKADK_U8 *pu8Buf;
  RKADK_U32 u32BufSize;
} RKADK_THUMB_ATTR_S;

Поля

Имя поля Описание
enType Требуемый тип миниатюры
u32Width На входе требуемая ширина миниатюры, на выходе фактическая
u32Height На входе требуемая высота миниатюры, на выходе фактическая
u32VirWidth На входе требуемая виртуальная ширина миниатюры, на выходе фактическая
u32VirHeight На входе требуемая виртуальная высота миниатюры, на выходе фактическая
pu8Buf Указатель данных миниатюры
u32BufSize Длина данных миниатюры

Связанные типы данных и интерфейсы

RKADK_THUMB_TYPE_E

RKADK_GetThmInMp4Ex RKADK_PHOTO_GetThmInJpgEx

5.3.13 ROTATION_E

Описание

Перечисление типов поворота.

Определение

typedef enum rkROTATION_E {
    ROTATION_0        = 0,
    ROTATION_90       = 1,
    ROTATION_180      = 2,
    ROTATION_270      = 3,
    ROTATION_BUTT
} ROTATION_E;

Связанные типы данных и интерфейсы

RKADK_MEDIA_SetVencRotation

6. Удалённый предварительный просмотр

6.1 Обзор

Обратные вызовы предварительного просмотра позволяют получать сведения о видео и аудио, запускать и останавливать VENC/AENC и регистрировать функции обработки кадров аудио и видео.

6.2 Справочник API

6.2.1 RKADK_STREAM_VideoInit

Описание

Инициализировать видеомодули VI и VENC.

Синтаксис

RKADK_S32 RKADK_STREAM_VideoInit(RKADK_STREAM_VIDEO_ATTR_S *pstVideoAttr, RKADK_MW_PTR *ppHandle);

Параметры

Имя параметра Описание Вход/выход
pstVideoAttr Указатель атрибутов видео Вход
ppHandle Указатель созданной видеозадачи Выход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_stream.h. Библиотека: librkadk.so.

Примечание

Повторная инициализация видеомодуля не поддерживается.

Пример

rkadk_stream_test

См. также

RKADK_STREAM_VideoDeInit

6.2.2 RKADK_STREAM_VideoDeInit

Описание

Деинициализировать видеомодули VI и VENC.

Синтаксис

RKADK_S32 RKADK_STREAM_VideoDeInit(RKADK_MW_PTR pHandle);

Параметры

Имя параметра Описание Вход/выход
PHandle Указатель видеозадачи Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_stream.h. Библиотека: librkadk.so.

Примечание

Повторная деинициализация не поддерживается.

Пример

rkadk_stream_test

См. также

RKADK_STREAM_VideoInit

6.2.3 RKADK_STREAM_VencStart

Описание

Включить VENC.

Синтаксис

RKADK_S32 RKADK_STREAM_VencStart(RKADK_MW_PTR pHandle, RKADK_S32 s32FrameCnt);

Параметры

Имя параметра Описание Вход/выход
PHandle Указатель видеозадачи Вход
s32FrameCnt Число принимаемых кадров; -1 означает неограниченный приём до VencStop Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_stream.h. Библиотека: librkadk.so.

Примечание

RKADK_STREAM_VencStart разрешён только после инициализации видеомодуля. После вызова запускается обратный вызов данных VENC для начала приёма.

Пример

rkadk_stream_test

См. также

RKADK_STREAM_VencStop

6.2.4 RKADK_STREAM_VencStop

Описание

Отключить VENC.

Синтаксис

RKADK_S32 RKADK_STREAM_VencStop(RKADK_MW_PTR pHandle);

Параметры

Имя параметра Описание Вход/выход
PHandle Указатель видеозадачи Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_stream.h. Библиотека: librkadk.so.

Примечание

Нет

Пример

rkadk_stream_test

См. также

RKADK_STREAM_VencStart

6.2.5 RKADK_STREAM_VideoReset

Описание

Перенастроить потоковое видео.

Синтаксис

RKADK_S32 RKADK_STREAM_VideoReset(RKADK_MW_PTR pHandle);

Параметры

Имя параметра Описание Вход/выход
PHandle Указатель видеозадачи Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_stream.h. Библиотека: librkadk.so.

Примечание

RKADK_STREAM_VideoReset разрешён только после RKADK_STREAM_VideoInit. При смене разрешения, частоты кадров, битрейта, типа кодирования или записи измените параметры Preview в ini через RKADK_PARAM_SetCamParam. RV1126/RV1109 и RK3576 не поддерживают динамическую смену разрешения и типа кодирования: сначала RKADK_STREAM_VideoDeInit, затем новые параметры и RKADK_STREAM_VideoInit. Если Preview делит канал VI с другими модулями, переключайте разрешение всех этих модулей одновременно, чтобы VI и VENC совпадали.

Пример

rkadk_stream_test

6.2.6 RKADK_STREAM_GetVideoInfo

Описание

Получить сведения о видео.

Синтаксис

RKADK_S32 RKADK_STREAM_GetVideoInfo(RKADK_U32 u32CamId, RKADK_VIDEO_INFO_S *pstVideoInfo);

Параметры

Имя параметра Описание Вход/выход
u32CamId ID камеры Вход
pstVideoInfo Указатель структуры сведений о видео Выход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_stream.h. Библиотека: librkadk.so.

Примечание

Нет

Пример

rkadk_stream_test

См. также

Нет

6.2.7 RKADK_STREAM_AudioInit

Описание

Инициализировать аудиомодули AI и AENC.

Синтаксис

RKADK_S32 RKADK_STREAM_AudioInit(RKADK_STREAM_AUDIO_ATTR_S *pstAudioAttr, RKADK_MW_PTR *ppHandle);

Параметры

Имя параметра Описание Вход/выход
pstAudioAttr Указатель атрибутов аудио Вход
ppHandle Указатель созданной аудиозадачи Выход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_stream.h. Библиотека: librkadk.so.

Примечание

Повторная инициализация аудиомодуля не поддерживается.

Пример

rkadk_stream_test

См. также

RKADK_STREAM_AudioDeInit

6.2.8 RKADK_STREAM_AudioDeInit

Описание

Деинициализировать аудиомодули AI и AENC.

Синтаксис

RKADK_S32 RKADK_STREAM_AudioDeInit(RKADK_MW_PTR pHandle);

Параметры

Имя параметра Описание Вход/выход
PHandle Указатель аудиозадачи Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_stream.h. Библиотека: librkadk.so.

Примечание

Нет

Пример

rkadk_stream_test

См. также

RKADK_STREAM_AudioInit

6.2.9 RKADK_STREAM_AencStart

Описание

Включить AENC.

Синтаксис

RKADK_S32 RKADK_STREAM_AencStart(RKADK_MW_PTR *pHandle);

Параметры

Имя параметра Описание Вход/выход
PHandle Указатель аудиозадачи Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_stream.h. Библиотека: librkadk.so.

Примечание

RKADK_STREAM_AencStart разрешён только после инициализации аудиомодуля. После вызова запускается обратный вызов данных AENC для начала приёма.

Пример

rkadk_stream_test

См. также

RKADK_STREAM_AencStop

6.2.10 RKADK_STREAM_AencStop

Описание

Отключить AENC.

Синтаксис

RKADK_S32 RKADK_STREAM_AencStop(RKADK_MW_PTR *pHandle);

Параметры

Имя параметра Описание Вход/выход
PHandle Указатель аудиозадачи Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_stream.h. Библиотека: librkadk.so.

Примечание

Нет

Пример

rkadk_stream_test

См. также

RKADK_STREAM_AencStart

6.2.11 RKADK_STREAM_GetAudioInfo

Описание

Получить сведения об аудио.

Синтаксис

RKADK_S32 RKADK_STREAM_GetAudioInfo(RKADK_MW_PTR *pHandle, RKADK_AUDIO_INFO_S *pstAudioInfo);

Параметры

Имя параметра Описание Вход/выход
PHandle Указатель аудиозадачи Вход
pstAudioInfo Указатель структуры сведений об аудио Выход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_stream.h. Библиотека: librkadk.so.

Примечание

Нет

Пример

rkadk_stream_test

См. также

Нет

6.3 Типы данных

В источнике перечислены типы модуля воспроизведения: RKADK_CODEC_TYPE_E - форматы кодирования; RKADK_VENC_DATA_PROC_FUNC - обратный вызов данных VENC; RKADK_VIDEO_STREAM_S - видеопоток; RKADK_VENC_DATA_PACK_S - пакет VENC; RKADK_VENC_DATA_TYPE_S - тип пакета VENC; RKADK_VIDEO_INFO_S - сведения о видео; RKADK_STREAM_VIDEO_ATTR_S - атрибуты видеозадачи; RKADK_AUDIO_DATA_PROC_FUNC - обратный вызов аудиоданных; RKADK_AUDIO_STREAM_S - аудиоданные; RKADK_AUDIO_INFO_S - сведения об аудио; RKADK_STREAM_AUDIO_ATTR_S - атрибуты аудиозадачи.

6.3.1 RKADK_CODEC_TYPE_E

Описание

Перечисление форматов кодирования. По умолчанию аудиокодирование AAC не поддерживается.

Определение

typedef enum {
  //Video
  RKADK_CODEC_TYPE_H264 = 0,
  RKADK_CODEC_TYPE_H265,
  RKADK_CODEC_TYPE_MJPEG,
  RKADK_CODEC_TYPE_JPEG,

  //Audio
  RKADK_CODEC_TYPE_G711A,
  RKADK_CODEC_TYPE_G711U,
  RKADK_CODEC_TYPE_G726,
  RKADK_CODEC_TYPE_MP2,
  RKADK_CODEC_TYPE_MP3,
  RKADK_CODEC_TYPE_ACC,
  RKADK_CODEC_TYPE_PCM,
  RKADK_CODEC_TYPE_BUTT
} RKADK_CODEC_TYPE_E;

6.3.2 RKADK_VENC_DATA_PROC_FUNC

Описание

Указатель обратного вызова данных VENC.

Определение

typedef RKADK_S32 (*RKADK_VENC_DATA_PROC_FUNC)(RKADK_VIDEO_STREAM_S *pVStreamData);

Связанные типы данных и интерфейсы

RKADK_VIDEO_STREAM_S

6.3.3 RKADK_VIDEO_STREAM_S

Описание

Структура видеопотока.

Определение

typedef struct {
  RKADK_VENC_DATA_PACK_S astPack; /* stream pack attribute */
  RKADK_U32 u32Seq;               /* the list number of stream */
  RKADK_BOOL bEndOfStream;        /* frame end flag */
  RKADK_U32 u32CamId;
} RKADK_VIDEO_STREAM_S;

Поля

Имя поля Описание
astPack Структура пакета
u32Seq Порядковый ID пакета
bEndOfStream Зарезервировано
u32CamId ID камеры

Связанные типы данных и интерфейсы

RKADK_VENC_DATA_PACK_S RKADK_VENC_DATA_PROC_FUNC

6.3.4 RKADK_VENC_DATA_PACK_S

Описание

Структура пакета VENC.

Определение

typedef struct {
  RKADK_U8 *apu8Addr;                /* the virtual address of stream */
  RKADK_U32 au32Len;                 /* the length of stream */
  RKADK_U64 u64PTS;                  /* time stamp */
  RKADK_VENC_DATA_TYPE_S stDataType; /* the type of stream */
} RKADK_VENC_DATA_PACK_S;

Поля

Имя поля Описание
apu8Addr Указатель данных
au32Len Длина данных
u64PTS Временная метка
stDataType Тип данных

Связанные типы данных и интерфейсы

RKADK_VENC_DATA_TYPE_S RKADK_VIDEO_STREAM_S

6.3.5 RKADK_VENC_DATA_TYPE_S

Описание

Тип пакета VENC.

Определение

/* the nalu type of H264 */
typedef enum {
  RKADK_H264E_NALU_BSLICE = 0,   /* B SLICE types */
  RKADK_H264E_NALU_PSLICE = 1,   /* P SLICE types */
  RKADK_H264E_NALU_ISLICE = 2,   /* I SLICE types */
  RKADK_H264E_NALU_IDRSLICE = 5, /* IDR SLICE types */
  RKADK_H264E_NALU_SEI = 6,      /* SEI types */
  RKADK_H264E_NALU_SPS = 7,      /* SPS types */
  RKADK_H264E_NALU_PPS = 8,      /* PPS types */
  RKADK_H264E_NALU_BUTT
} RKADK_H264E_NALU_TYPE_E;
/* the nalu type of H265 */
typedef enum {
  RKADK_H265E_NALU_BSLICE = 0,    /* B SLICE types */
  RKADK_H265E_NALU_PSLICE = 1,    /* P SLICE types */
  RKADK_H265E_NALU_ISLICE = 2,    /* I SLICE types */
  RKADK_H265E_NALU_IDRSLICE = 19, /* IDR SLICE types */
  RKADK_H265E_NALU_VPS = 32,      /* VPS types */
  RKADK_H265E_NALU_SPS = 33,      /* SPS types */
  RKADK_H265E_NALU_PPS = 34,      /* PPS types */
  RKADK_H265E_NALU_SEI = 39,      /* SEI types */
  RKADK_H265E_NALU_BUTT
} RKADK_H265E_NALU_TYPE_E;

typedef struct {
  RKADK_CODEC_TYPE_E enPayloadType;      /* H.264/H.265/JPEG/MJPEG */
  union {
    RKADK_H264E_NALU_TYPE_E enH264EType; /* H264E NALU types */
    RKADK_H265E_NALU_TYPE_E enH265EType; /* H265E NALU types */
    RKADK_JPEGE_PACK_TYPE_E enJPEGEType; /* TODO: JPEGE PACK types*/
  };
} RKADK_VENC_DATA_TYPE_S;

Поля

Имя поля Описание
enPayloadType Тип кодирования
enH264EType Тип пакета H264
enH265EType Тип пакета H265
enJPEGEType Зарезервировано

Связанные типы данных и интерфейсы

RKADK_CODEC_TYPE_E RKADK_VENC_DATA_PACK_S

6.3.6 RKADK_VIDEO_INFO_S

Описание

Структура сведений о видео.

Определение

typedef struct {
  RKADK_CODEC_TYPE_E enCodecType;
  RKADK_U32 u32Width;
  RKADK_U32 u32Height;
  RKADK_U32 u32BitRate;
  RKADK_U32 u32FrameRate;
  RKADK_U32 u32Gop;
} RKADK_VIDEO_INFO_S;

Поля

Имя поля Описание
enPayloadType Тип кодирования
u32Width Ширина изображения
u32Height Высота изображения
u32BitRate Битрейт
u32FrameRate Частота кадров
u32Gop Интервал I-кадров

Связанные типы данных и интерфейсы

RKADK_CODEC_TYPE_E RKADK_STREAM_GetVideoInfo

6.3.7 RKADK_STREAM_VIDEO_ATTR_S

Описание

Структура атрибутов видеозадачи.

Определение

typedef struct {
  RKADK_U32 u32CamId;
  RKADK_VENC_DATA_PROC_FUNC pfnDataCB;
} RKADK_STREAM_VIDEO_ATTR_S;

Поля

Имя поля Описание
u32CamId ID камеры
pfnDataCB Обратный вызов выдачи видеоданных

Связанные типы данных и интерфейсы

RKADK_VENC_DATA_PROC_FUNC RKADK_STREAM_VideoInit

6.3.8 RKADK_AUDIO_DATA_PROC_FUNC

Описание

Указатель обратного вызова данных AENC.

Определение

typedef RKADK_S32 (*RKADK_AUDIO_DATA_PROC_FUNC)(RKADK_AUDIO_STREAM_S *pAStreamData);

Связанные типы данных и интерфейсы

RKADK_AUDIO_STREAM_S

6.3.9 RKADK_AUDIO_STREAM_S

Описание

Структура потока аудиоданных.

Определение

typedef struct {
  RKADK_U8 *pStream;      /* the virtual address of stream */
  RKADK_U32 u32Len;       /* stream lenth, by bytes */
  RKADK_U64 u64TimeStamp; /* frame time stamp */
  RKADK_U32 u32Seq;       /* frame seq, if stream is not a valid frame,u32Seq is 0 */
  RKADK_CODEC_TYPE_E enType;
} RKADK_AUDIO_STREAM_S;

Поля

Имя поля Описание
pStream Указатель данных
u32Len Длина данных
u64TimeStamp Временная метка
u32Seq Порядковый номер
enType Тип кодирования аудиоданных

Связанные типы данных и интерфейсы

RKADK_AUDIO_DATA_PROC_FUNC

6.3.10 RKADK_AUDIO_INFO_S

Описание

Структура сведений об аудио.

Определение

typedef struct {
  RKADK_CODEC_TYPE_E enCodecType;
  RKADK_U32 u32ChnCnt;
  RKADK_U32 u32SampleRate;
  RKADK_U32 u32AvgBytesPerSec;
  RKADK_U32 u32SamplesPerFrame;
  RKADK_U16 u16SampleBitWidth;
} RKADK_AUDIO_INFO_S;

Поля

Имя поля Описание
enPayloadType Тип кодирования
u32ChnCntt Число каналов
u32SampleRate Частота дискретизации
u32AvgBytesPerSec Байт в секунду
u32SamplesPerFrame Число отсчётов на кадр
u16SampleBitWidth Бит на отсчёт

Связанные типы данных и интерфейсы

RKADK_CODEC_TYPE_E RKADK_STREAM_GetAudioInfo

6.3.11 RKADK_STREAM_AUDIO_ATTR_S

Описание

Структура атрибутов аудиозадачи.

Определение

typedef struct {
  RKADK_U32 u32CamId;
  RKADK_CODEC_TYPE_E enCodecType;
  RKADK_AUDIO_DATA_PROC_FUNC pfnPcmDataCB;
  RKADK_AUDIO_DATA_PROC_FUNC pfnAencDataCB;
} RKADK_STREAM_AUDIO_ATTR_S;

Поля

Имя поля Описание
u32CamId ID камеры
enCodecType Тип кодирования
pfnPcmDataCB Обратный вызов выдачи PCM
pfnAencDataCB Обратный вызов выдачи кодированных аудиоданных

Связанные типы данных и интерфейсы

RKADK_AUDIO_DATA_PROC_FUNC RKADK_STREAM_AudioInit

7. Проигрыватель

7.1 Обзор

Воспроизведение локальных аудио- и видеофайлов и сетевых потоков RTSP с управлением воспроизведением, паузой, переходом и снимком экрана. Функция Player совместима с RV1109/RV1126, RV1103/RV1103, RK3308 и RK3506 (перечень сохранён из источника). RV1109/RV1126 используют аппаратное декодирование, остальные платформы - программное.

7.2 Справочник API

7.2.1 RKADK_PLAYER_Create

Описание

Создать проигрыватель.

Синтаксис

RKADK_S32 RKADK_PLAYER_Create(RKADK_MW_PTR *ppPlayer, RKADK_PLAYER_CFG_S *pstPlayCfg);

Параметры

Имя параметра Описание Вход/выход
ppPlayer Указатель созданного проигрывателя Выход
pstPlayCfg Свойства проигрывателя Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_player.h. Библиотека: librkadk.so.

Примечание

Повторное создание того же проигрывателя не поддерживается.

Пример

rkadk_player_test

См. также

RKADK_PLAYER_Destroy

7.2.2 RKADK_PLAYER_Destroy

Описание

Уничтожить проигрыватель.

Синтаксис

RKADK_S32 RKADK_PLAYER_Destroy(RKADK_MW_PTR pPlayer);

Параметры

Имя параметра Описание Вход/выход
pPlayer Указатель проигрывателя Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_player.h. Библиотека: librkadk.so.

Примечание

Повторное уничтожение одного и того же проигрывателя не поддерживается.

Пример

rkadk_player_test

См. также

RKADK_PLAYER_Create

7.2.3 RKADK_PLAYER_SetDataSource

Описание

Задать путь воспроизводимого файла. Если в Player включена сторонняя библиотека демультиплексирования, следует использовать RKADK_PLAYER_SetDataParam.

Синтаксис

RKADK_S32 RKADK_PLAYER_SetDataSource(RKADK_MW_PTR pPlayer, const RKADK_CHAR *pszfilePath);

Параметры

Имя параметра Описание Вход/выход
pPlayer Указатель проигрывателя Вход
pszfilePath Путь воспроизводимого файла Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_player.h. Библиотека: librkadk.so.

Примечание

Интерфейс RKADK_PLAYER_SetDataSource можно вызывать только после создания проигрывателя.

Пример

rkadk_player_test

См. также

Нет

7.2.4 RKADK_PLAYER_SetDataParam

Описание

Задать параметры аудио и видео воспроизводимого файла. Используйте этот интерфейс, если в Player включена сторонняя библиотека демультиплексирования; иначе используйте RKADK_PLAYER_SetDataSource.

Синтаксис

RKADK_S32 RKADK_PLAYER_SetDataParam(RKADK_MW_PTR pPlayer, RKADK_PLAYER_DATA_PARAM_S *pstDataParam);

Параметры

Имя параметра Описание Вход/выход
pPlayer Указатель проигрывателя Вход
pstDataParam Параметры аудио и видео воспроизводимого файла Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_player.h. Библиотека: librkadk.so.

Примечание

RKADK_PLAYER_SetDataParam можно вызывать только после создания проигрывателя.

Пример

rkadk_player_test

См. также

RKADK_PLAYER_SendAudioPacket RKADK_PLAYER_SendVideoPacket

7.2.5 RKADK_PLAYER_Prepare

Описание

Подготовка к воспроизведению.

Синтаксис

RKADK_S32 RKADK_PLAYER_Prepare(RKADK_MW_PTR pPlayer);

Параметры

Имя параметра Описание Вход/выход
pPlayer Указатель проигрывателя Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_player.h. Библиотека: librkadk.so.

Примечание

RKADK_PLAYER_Prepare можно вызывать только после создания проигрывателя и задания пути воспроизведения.

Пример

rkadk_player_test

См. также

Нет

7.2.6 RKADK_PLAYER_GetCurrentPosition

Описание

Получить текущую позицию воспроизведения.

Синтаксис

RKADK_S64 RKADK_PLAYER_GetCurrentPosition(RKADK_MW_PTR pPlayer);

Параметры

Имя параметра Описание Вход/выход
pPlayer Указатель проигрывателя Вход

Возвращаемое значение

Возвращаемое значение Описание
Позиция воспроизведения, мс Успех
-1 Ошибка

Требования

Заголовочный файл: rkadk_player.h

Библиотека: librkadk.so

Примечание

Нет

Пример

rkadk_player_test

См. также

Нет

7.2.7 RKADK_PLAYER_Play

Описание

Начать воспроизведение.

Синтаксис

RKADK_S32 RKADK_PLAYER_Play(RKADK_MW_PTR pPlayer);

Параметры

Имя параметра Описание Вход/выход
pPlayer Указатель проигрывателя Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_player.h. Библиотека: librkadk.so.

Примечание

RKADK_PLAYER_Play можно вызывать только после RKADK_PLAYER_Prepare.

Пример

rkadk_player_test

См. также

RKADK_PLAYER_Stop

7.2.8 RKADK_PLAYER_Stop

Описание

Остановить воспроизведение и освободить ресурсы.

Синтаксис

RKADK_S32 RKADK_PLAYER_Stop(RKADK_MW_PTR pPlayer);

Параметры

Имя параметра Описание Вход/выход
pPlayer Указатель проигрывателя Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_player.h. Библиотека: librkadk.so.

Примечание

Нет

Пример

rkadk_player_test

См. также

RKADK_PLAYER_Play

7.2.9 RKADK_PLAYER_Pause

Описание

Приостановить воспроизведение.

Синтаксис

RKADK_S32 RKADK_PLAYER_Pause(RKADK_MW_PTR pPlayer);

Параметры

Имя параметра Описание Вход/выход
pPlayer Указатель проигрывателя Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_player.h. Библиотека: librkadk.so.

Примечание

Нет

Пример

rkadk_player_test

См. также

RKADK_PLAYER_Play

7.2.10 RKADK_PLAYER_Seek

Описание

Seek.

Синтаксис

RKADK_S32 RKADK_PLAYER_Seek(RKADK_MW_PTR pPlayer, RKADK_S64 s64TimeInMs);

Параметры

Имя параметра Описание Вход/выход
pPlayer Указатель проигрывателя Вход
s64TimeInMs Время перехода Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_player.h. Библиотека: librkadk.so.

Примечание

RKADK_PLAYER_Seek можно вызывать только после RKADK_PLAYER_Play.

Пример

rkadk_player_test

См. также

RKADK_PLAYER_Play

7.2.11 RKADK_PLAYER_GetPlayStatus

Описание

Получить текущее состояние воспроизведения.

Синтаксис

RKADK_S32 RKADK_PLAYER_GetPlayStatus(RKADK_MW_PTR pPlayer, RKADK_PLAYER_STATE_E *penState);

Параметры

Имя параметра Описание Вход/выход
pPlayer Указатель проигрывателя Вход
penState Текущее состояние воспроизведения Выход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_player.h. Библиотека: librkadk.so.

Примечание

Нет

Пример

rkadk_player_test

См. также

Нет

7.2.12 RKADK_PLAYER_GetDuration

Описание

Получить длительность текущего воспроизводимого файла.

Синтаксис

RKADK_S32 RKADK_PLAYER_GetDuration(RKADK_MW_PTR pPlayer, RKADK_U32 *pDuration);

Параметры

Имя параметра Описание Вход/выход
pPlayer Указатель проигрывателя Вход
pDuration Длительность текущего воспроизводимого файла, мс Выход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_player.h. Библиотека: librkadk.so.

Примечание

Нет

Пример

rkadk_player_test

См. также

Нет

7.2.13 RKADK_PLAYER_Snapshot

Описание

Снимок экрана проигрывателя: этот интерфейс кодирует текущее отображаемое изображение в JPEG. Приложение получает созданные данные JPEG, зарегистрировав обратный вызов RKADK_PPLAYER_SNAPSHOT_RECV_FN.

Синтаксис

RKADK_S32 RKADK_PLAYER_Snapshot(RKADK_MW_PTR pPlayer);

Параметры

Имя параметра Описание Вход/выход
pPlayer Указатель проигрывателя Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_player.h. Библиотека: librkadk.so.

Пример

rkadk_player_test

См. также

Нет

7.2.14 RKADK_PLAYER_SendAudioPacket

Описание

При включенной сторонней библиотеке демультиплексирования этот интерфейс передает распакованные аудиоданные в Player для декодирования и воспроизведения.

Синтаксис

RKADK_S32 RKADK_PLAYER_SendAudioPacket(RKADK_MW_PTR pPlayer, RKADK_PLAYER_PACKET *pstPacket);

Параметры

Имя параметра Описание Вход/выход
pPlayer Указатель проигрывателя Вход
pstPacket Передаваемый пакет Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_player.h. Библиотека: librkadk.so.

Примечание

Перед использованием этого интерфейса вызовите RKADK_PLAYER_SetDataParam для задания параметров аудио и видео.

Пример

rkadk_player_test

См. также

RKADK_PLAYER_SendVideoPacket RKADK_PLAYER_SetDataParam

7.2.15 RKADK_PLAYER_SendVideoPacket

Описание

При включенной сторонней библиотеке демультиплексирования этот интерфейс передает распакованные видеоданные в Player для декодирования и воспроизведения.

Синтаксис

RKADK_S32 RKADK_PLAYER_SendVideoPacket(RKADK_MW_PTR pPlayer, RKADK_PLAYER_PACKET *pstPacket);

Параметры

Имя параметра Описание Вход/выход
pPlayer Указатель проигрывателя Вход
pstPacket Передаваемый пакет Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_player.h. Библиотека: librkadk.so.

Примечание

Перед использованием этого интерфейса вызовите RKADK_PLAYER_SetDataParam для задания параметров аудио и видео.

Пример

rkadk_player_test

См. также

RKADK_PLAYER_SendAudioPacket RKADK_PLAYER_SetDataParam

7.2.16 RKADK_PLAYER_GetSendFrameNum

Описание

Получить количество успешно декодированных кадров.

Синтаксис

RKADK_S32 RKADK_PLAYER_GetSendFrameNum(RKADK_MW_PTR pPlayer);

Параметры

Имя параметра Описание Input/Output
pPlayer Указатель проигрывателя Вход

Возвращаемое значение

Возвращаемое значение Описание
Количество кадров Успех
-1 Ошибка

Требования

Заголовочный файл: rkadk_player.h

Библиотека: librkadk.so. Примечание: счетчик сбрасывается после Pause/Stop.

Пример

rkadk_player_test

Связанные темы

Нет

7.2.17 RKADK_PLAYER_SetVdecWaterline

Описание

Задать порог заполнения VDEC.

Синтаксис

RKADK_S32 RKADK_PLAYER_SetVdecWaterline(RKADK_MW_PTR pPlayer, RKADK_U32 u32VdecWaterline);

Параметры

Имя параметра Описание Input/Output
pPlayer Указатель проигрывателя Вход
u32VdecWaterline Значение порога заполнения Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_player.h. Библиотека: librkadk.so. Примечание: после задания порога VDEC воспроизведение начинается только при достижении этого уровня заполнения буфера VDEC.

Пример

rkadk_player_test

Связанные темы

Нет

7.2.18 RKADK_PLAYER_SetAoVolume

Описание

Задать громкость воспроизведения.

Синтаксис

RKADK_S32 RKADK_PLAYER_SetAoVolume(RKADK_MW_PTR pPlayer, RKADK_S32 s32Volume);

Параметры

Имя параметра Описание Input/Output
pPlayer Указатель проигрывателя Выход
s32Volume Значение громкости Вход

Возвращаемые значения

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_player.h. Библиотека: librkadk.so.

Примечания

Нет

Пример

rkadk_player_test

Связанные темы

Нет

7.3 Типы данных

Модуль воспроизведения предоставляет следующие основные типы данных: RKADK_PLAYER_EVENT_E — перечисление событий воспроизведения; RKADK_PLAYER_EVENT_FN — указатель функции обратного вызова события воспроизведения.

RKADK_PLAYER_CFG_S: структура атрибутов проигрывателя; RKADK_VO_FORMAT_E: перечисление пиксельных форматов; RKADK_VO_INTF_TYPE_E: перечисление интерфейсов дисплея; RKADK_PLAYER_FRAME_INFO_S: структура информации изображения; RKADK_PLAYER_STATE_E: перечисление состояний воспроизведения; RKADK_PLAYER_DATA_PARAM_S: структура параметров аудио и видео; RKADK_PLAYER_PACKET: пакет данных проигрывателя; RKADK_PLAYER_RTSP_CFG_S: структура атрибутов RTSP; RKADK_PLAYER_VDEC_CFG_S: структура атрибутов VDEC; RKADK_PLAYER_SNAPSHOT_CFG_S: структура атрибутов снимка; RKADK_PLAYER_SNAPSHOT_S: структура данных снимка; RKADK_PPLAYER_SNAPSHOT_RECV_FN: указатель функции обратного вызова данных снимка.

7.3.1 RKADK_PLAYER_EVENT_E

Описание

Определяет перечисление событий воспроизведения.

Определение

typedef enum {
  RKADK_PLAYER_EVENT_STATE_CHANGED = 0x0,
  RKADK_PLAYER_EVENT_PREPARED,
  RKADK_PLAYER_EVENT_PLAY,
  RKADK_PLAYER_EVENT_PAUSED,
  RKADK_PLAYER_EVENT_STOPPED,
  RKADK_PLAYER_EVENT_EOF,
  RKADK_PLAYER_EVENT_SOF,
  RKADK_PLAYER_EVENT_SEEK_END,
  RKADK_PLAYER_EVENT_ERROR,
  RKADK_PLAYER_EVENT_BUTT
} RKADK_PLAYER_EVENT_E;

Поля

Имя поля Описание
RKADK_PLAYER_EVENT_STATE_CHANGED Изменение состояния (зарезервировано)
RKADK_PLAYER_EVENT_PREPARED Подготовка Prepared завершена
RKADK_PLAYER_EVENT_PLAY Начать воспроизведение
RKADK_PLAYER_EVENT_PAUSED Приостановить воспроизведение (зарезервировано)
RKADK_PLAYER_EVENT_STOPPED Остановить воспроизведение
RKADK_PLAYER_EVENT_EOF Конец воспроизведения
RKADK_PLAYER_EVENT_SOF Зарезервировано
RKADK_PLAYER_EVENT_SEEK_END Переход Seek завершен (зарезервировано)

Связанные типы данных и интерфейсы

RKADK_PLAYER_EVENT_FN

7.3.2 RKADK_PLAYER_EVENT_FN

Описание

Определить указатель обратного вызова события воспроизведения.

Определение

typedef RKADK_VOID (*RKADK_PLAYER_EVENT_FN)(RKADK_MW_PTR pPlayer, RKADK_PLAYER_EVENT_E
enEvent, RKADK_VOID *pData);

Поля

Имя поля Описание
pPlayer Указатель проигрывателя
enEvent Тип события
pData Параметры события

Связанные типы данных и интерфейсы

RKADK_PLAYER_EVENT_E RKADK_PLAYER_CFG_S

7.3.3 RKADK_PLAYER_CFG_S

Описание

Определить структуру атрибутов проигрывателя.

Определение

typedef struct {
  RKADK_BOOL bEnableVideo;
  RKADK_BOOL bEnableAudio;
  RKADK_BOOL bEnableThirdDemuxer;
  RKADK_PLAYER_FRAME_INFO_S stFrmInfo;
  RKADK_PLAYER_RTSP_CFG_S stRtspCfg;
  RKADK_PLAYER_VDEC_CFG_S stVdecCfg;
  RKADK_PLAYER_SNAPSHOT_CFG_S stSnapshotCfg;
  RKADK_BOOL bEnableBlackBackground;
  RKADK_PLAYER_EVENT_FN pfnPlayerCallback;
} RKADK_PLAYER_CFG_S;

Поля

Имя поля Описание
bEnableVideo Включить воспроизведение видео
bEnableAudio Включить воспроизведение аудио
bEnableThirdDemuxer Включить стороннюю библиотеку демультиплексирования
pfnPlayerCallback Указатель функции обратного вызова события проигрывателя
stFrmInfo Определить информацию изображения
stRtspCfg Атрибут RTSP
stVdecCfg Атрибут VDEC
stSnapshotCfg Атрибут снимка экрана
bEnableBlackBackground Становится ли экран черным после воспроизведения

Связанные типы данных и интерфейсы

RKADK_PLAYER_EVENT_FN RKADK_PLAYER_FRAME_INFO_S RKADK_PLAYER_RTSP_CFG_S RKADK_PLAYER_VDEC_CFG_S RKADK_PLAYER_SNAPSHOT_CFG_S RKADK_PLAYER_Create

7.3.4 RKADK_VO_FORMAT_E

Описание

Определяет перечисление пиксельных форматов изображения.

Определение

typedef enum {
  VO_FORMAT_ARGB8888 = 0,
  VO_FORMAT_ABGR8888,
  VO_FORMAT_RGB888,
  VO_FORMAT_BGR888,
  VO_FORMAT_ARGB1555,
  VO_FORMAT_ABGR1555,
  VO_FORMAT_RGB565,
  VO_FORMAT_RGB444,
  VO_FORMAT_NV12,
  VO_FORMAT_NV21
} RKADK_VO_FORMAT_E;

Связанные типы данных и интерфейсы

RKADK_PLAYER_FRAME_INFO_S

7.3.5 RKADK_VO_INTF_TYPE_E

Описание

Определяет перечисление интерфейсов дисплея.

Определение

typedef enum {
  DISPLAY_TYPE_HDMI = 0,
  DISPLAY_TYPE_EDP,
  DISPLAY_TYPE_VGA,
  DISPLAY_TYPE_DP,
  DISPLAY_TYPE_HDMI_EDP,
  DISPLAY_TYPE_MIPI,
  DISPLAY_TYPE_DEFAULT,
} RKADK_VO_INTF_TYPE_E;

Поля

Имя поля Описание
DISPLAY_TYPE_HDMI Интерфейс дисплея HDMI
DISPLAY_TYPE_EDP Интерфейс дисплея EDP
DISPLAY_TYPE_VGA Интерфейс дисплея VGA
DISPLAY_TYPE_MIPI Интерфейс дисплея MIPI
DISPLAY_TYPE_DP Интерфейс дисплея DP
DISPLAY_TYPE_HDMI_EDP Интерфейс дисплея HDMI | EDP
DISPLAY_TYPE_DEFAULT Внутреннее обнаружение; интерфейс дисплея соответствует фактически подключенному оборудованию

Связанные типы данных и интерфейсы

RKADK_PLAYER_FRAME_INFO_S

7.3.6 RKADK_VO_SPLICE_MODE_E

Описание

Определяет перечисление способов объединения слоев.

Определение

typedef enum {
  SPLICE_MODE_RGA = 0,
  SPLICE_MODE_GPU,
  SPLICE_MODE_BYPASS
} RKADK_VO_INTF_TYPE_E;

Поля

Имя поля Описание
SPLICE_MODE_RGA Объединение через RGA
SPLICE_MODE_GPU Объединение через GPU
SPLICE_MODE_BYPASS BYPASS, без объединения

Связанные типы данных и интерфейсы

RKADK_PLAYER_FRAME_INFO_S

7.3.7 RKADK_PLAYER_FRAME_INFO_S

Описание

Определить структуру информации изображения.

Определение

typedef struct {
  RKADK_U32 u32FrmInfoX;
  RKADK_U32 u32FrmInfoY;
  RKADK_U32 u32DispWidth;
  RKADK_U32 u32DispHeight;
  RKADK_U32 u32ImgWidth;
  RKADK_U32 u32ImgHeight;
  RKADK_U32 u32VoLay;
  RKADK_U32 u32VoDev;
  RKADK_U32 u32VoChn;
  RKADK_U32 u32BorderColor;
  RKADK_U32 u32BorderTopWidth;
  RKADK_U32 u32BorderBottomWidth;
  RKADK_U32 u32BorderLeftWidth;
  RKADK_U32 u32BorderRightWidth;
  RKADK_BOOL bMirror;
  RKADK_BOOL bFlip;
  RKADK_U32 u32Rotation; //0: 0, 1: 90, 2: 180, 3: 270
  RKADK_VO_FORMAT_E u32VoFormat;
  RKADK_VO_INTF_TYPE_E u32EnIntfType;
  RKADK_VO_INTF_SYNC_E enIntfSync;
  RKADK_VO_SYNC_INFO_S stSyncInfo;
  RKADK_VO_SPLICE_MODE_E enVoSpliceMode;
} RKADK_PLAYER_FRAMEINFO_S;

Поля

Имя поля Описание
u32FrmInfoX Координата x области отображения слоя
u32FrmInfoY Координата y области отображения слоя
u32DispWidth Ширина области отображения слоя
u32DispHeight Высота области отображения слоя
u32ImgWidth Ширина изображения слоя
u32ImgHeight Высота изображения слоя
u32VoLay Номер видеослоя видеовыхода
u32VoDev Номер устройства вывода изображения
u32VoChn Номер канала видеовыхода, диапазон: [0, VO_MAX_CHN_NUM(128)]
u32BorderColor Атрибут рамки канала видеовыхода: цвет (зарезервировано)
u32BorderTopWidth Атрибут рамки канала видеовыхода: ширина верхней границы (зарезервировано)
u32BorderBottomWidth Атрибут рамки канала видеовыхода: ширина нижней границы (зарезервировано)
u32BorderLeftWidth Атрибут рамки канала видеовыхода: ширина левой границы (зарезервировано)
u32BorderRightWidth Атрибут рамки канала видеовыхода: ширина правой границы (зарезервировано)
bMirror Включить зеркальное отражение
bFlip Включить переворот
u32Rotation Поворот, значения: [0: 0, 1: 90, 2: 180, 3: 270]
u32VoFormat Определить пиксельный формат изображения
u32EnIntfType Тип интерфейса дисплея
enIntfSync Режим синхронизации интерфейса экрана
stSyncInfo Структура атрибутов экрана
enVoSpliceMode Режим объединения слоев

Примечание

Подробные атрибуты видеовыхода описаны в главе VO документа Rockit Rockchip_Developer_Guide_MPI.pdf.

Связанные типы данных и интерфейсы

RKADK_VO_FORMAT_E RKADK_VO_INTF_TYPE_E RKADK_VO_SPLICE_MODE_E

RKADK_PLAYER_Create

7.3.8 RKADK_PLAYER_STATE_E

Описание

Определяет перечисление состояний воспроизведения.

Определение

typedef enum {
  RKADK_PLAYER_STATE_IDLE = 0, /* The player state before init */
  RKADK_PLAYER_STATE_INIT,     /* The player is in the initial state. It changes
                                  to the initial state after being SetDataSource */
  RKADK_PLAYER_STATE_PREPARED, /* The player is in the prepared state */
  RKADK_PLAYER_STATE_PLAY,     /* The player is in the playing state */
  RKADK_PLAYER_STATE_TPLAY,    /* The player is in the trick playing state, Reserved */
  RKADK_PLAYER_STATE_PAUSE,    /* The player is in the pause state */
  RKADK_PLAYER_STATE_ERR,      /* The player is in the err state */
  RKADK_PLAYER_STATE_BUTT
} RKADK_PLAYER_STATE_E;

Связанные типы данных и интерфейсы

RKADK_PLAYER_GetPlayStatus

7.3.9 RKADK_PLAYER_SNAPSHOT_S

Описание

Определить структуру данных снимка экрана.

Определение

typedef struct {
  RKADK_U32 u32Width;
  RKADK_U32 u32Height;
  RKADK_U32 u32DataLen;
  RKADK_U8 *pu8DataBuf;
} RKADK_PLAYER_SNAPSHOT_S;

Поля

Имя поля Описание
u32Width Ширина снимка
u32Height Высота снимка
u32DataLen Длина данных снимка
pu8DataBuf Указатель данных снимка

Связанные типы данных и интерфейсы

RKADK_PPLAYER_SNAPSHOT_RECV_FN

7.3.10 RKADK_PPLAYER_SNAPSHOT_RECV_FN

Описание

Определяет указатель функции обратного вызова данных снимка.

Определение

typedef void (*RKADK_PPLAYER_SNAPSHOT_RECV_FN)(RKADK_PLAYER_SNAPSHOT_S *pstData);

Поля

Имя поля Описание
pstData Указатель данных снимка

Связанные типы данных и интерфейсы

RKADK_PLAYER_SNAPSHOT_S RKADK_PLAYER_SNAPSHOT_CFG_S

7.3.11 RKADK_PLAYER_SNAPSHOT_CFG_S

Описание

Определить структуру атрибутов снимка.

Определение

typedef struct {
  RKADK_U32 u32VencChn;
  RKADK_U32 u32MaxWidth;    //Support snapshot max width, default 4096
  RKADK_U32 u32MaxHeight;   //Support snapshot max height, default 4096
  RKADK_PPLAYER_SNAPSHOT_RECV_FN pfnDataCallback;
} RKADK_PLAYER_SNAPSHOT_CFG_S;

Поля

Имя поля Описание
u32VencChn Канал кодирования JPEG
u32MaxWidth Максимальная ширина снимка, по умолчанию 4096
u32MaxHeight Максимальная высота снимка, по умолчанию 4096
pfnDataCallback Указатель обратного вызова данных снимка

Связанные типы данных и интерфейсы

RKADK_PPLAYER_SNAPSHOT_RECV_FN RKADK_PLAYER_CFG_S

7.3.12 RKADK_PLAYER_VDEC_CFG_S

Описание

Определить структуру атрибутов VDEC.

Определение

typedef struct {
  RKADK_U32 u32FrameBufCnt; //frame buffer cnt(output), default: 3
  RKADK_U32 u32StreamBufCnt; //stream buffer cnt(input), default: 3
} RKADK_PLAYER_VDEC_CFG_S;

Поля

Имя поля Описание
u32FrameBufCnt Количество выходных буферов, по умолчанию 3
u32StreamBufCnt Количество входных буферов, по умолчанию 3

Связанные типы данных и интерфейсы

RKADK_PLAYER_CFG_S

7.3.13 RKADK_PLAYER_RTSP_CFG_S

Описание

Определить структуру атрибутов RTSP.

Определение

typedef struct {
  const char *transport; //udp or tcp, default: udp
  RKADK_U32 u32IoTimeout; //timeout (in microseconds) of socket I/O operations
} RKADK_PLAYER_RTSP_CFG_S;

Поля

Имя поля Описание
transport Транспортный протокол, по умолчанию UDP
u32ITimeout Тайм-аут операций ввода-вывода сокета, мс; по умолчанию без ограничения

Связанные типы данных и интерфейсы

RKADK_PLAYER_CFG_S

7.3.14 RKADK_PLAYER_PACKET

Описание

Определить структуру пакета данных для использования сторонней библиотеки демультиплексирования.

Определение

typedef struct {
  bool bEofFlag;
  RKADK_S8 *s8PacketData;
  RKADK_S32 s32PacketSize;
  RKADK_U32 u32Seq;
  RKADK_S64 s64Pts;

  //if bypass, must set pFreeCB;
  bool bBypass;
  RKADK_MPI_MB_FREE_CB pFreeCB;
} RKADK_PLAYER_PACKET;

Поля

Имя поля Описание
bEofFlag Являются ли данные последним кадром
s8PacketData Указатель данных
s32PacketSize Длина данных
u32Seq Порядковый номер
s64Pts Временная метка
bBypass Способ передачи данных: true — прямая передача, false — дополнительное копирование
pFreeCB Указатель функции освобождения s8PacketData; обязателен при bBypass=true

Связанные типы данных и интерфейсы

RKADK_PLAYER_SendAudioPacket RKADK_PLAYER_SendVideoPacket

7.3.15 RKADK_PLAYER_DATA_PARAM_S

Описание

Определить структуру параметров аудио и видео для работы со сторонней библиотекой демультиплексирования.

Определение

typedef struct {
  const RKADK_CHAR *pFilePath;
  RKADK_BOOL bIsRtsp;
  RKADK_BOOL bVideoExist;
  RKADK_BOOL bAudioExist;

  //video param
  RKADK_CODEC_TYPE_E enVCodecType;
  RKADK_U32 u32Width;
  RKADK_U32 u32Height;
  RKADK_FORMAT_E enPixFmt; //output pixel format
  RKADK_U32 u32FrameRate;

  //audio param
  RKADK_CODEC_TYPE_E enACodecType;
  RKADK_S32 u32BitWidth;
  RKADK_S32 u32SampleRate;
  RKADK_S32 u32Channel;
} RKADK_PLAYER_DATA_PARAM_S;

Поля

Имя поля Описание
pFilePath Путь воспроизводимого файла
bIsRtsp Является ли поток сетевым потоком RTSP
bVideoExist Есть ли видеопоток в воспроизводимом файле
bAudioExist Есть ли аудиопоток в воспроизводимом файле
enVCodecType Формат декодирования видеопотока
u32Width Ширина видеопотока
u32Height Высота видеопотока
u32FrameRate Частота кадров видеопотока
enACodecType Формат декодирования аудиопотока
u32BitWidth Разрядность аудиопотока
u32SampleRate Частота дискретизации аудиопотока
u32Channel Количество каналов аудиопотока

Связанные типы данных и интерфейсы

RKADK_PLAYER_SetDataParam

8. Прямая трансляция

8.1 Обзор

Предоставляет базовые службы стандартной прямой трансляции RTSP и службы прямой трансляции RTMP. Одновременный запуск RTSP и RTMP не поддерживается.

8.2 Справочник API

8.2.1 RTSP

8.2.1.1 RKADK_RTSP_Init

Описание

Инициализировать модуль RTSP.

Синтаксис

RKADK_S32 RKADK_RTSP_Init(RKADK_U32 u32CamId, RKADK_U32 port, const char *path, RKADK_MW_PTR *ppHandle);

Параметры

Имя параметра Описание Вход/выход
u32CamId ID камеры Вход
port Номер порта Вход
path Адрес RTSP Вход
ppHandle Созданный дескриптор RTSP Выход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_rtsp.h

Библиотека: librkadk.so

Примечание

После RKADK_RTSP_Init вызовите RKADK_RTSP_Start для запуска прямой трансляции RTSP.

Пример

rkadk_rtsp_test

См. также

RKADK_RTSP_DeInit

8.2.1.2 RKADK_RTSP_DeInit

Описание

Деинициализировать модуль RTSP.

Синтаксис

RKADK_S32 RKADK_RTSP_DeInit(RKADK_MW_PTR pHandle);

Параметры

Имя параметра Описание Вход/выход
PHandle Созданный дескриптор RTSP Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_rtsp.h. Библиотека: librkadk.so

Пример

rkadk_rtsp_test

См. также

RKADK_RTSP_Init

8.2.1.3 RKADK_RTSP_Start

Описание

Начать прямую трансляцию RTSP.

Синтаксис

RKADK_S32 RKADK_RTSP_Start(RKADK_MW_PTR pHandle);

Параметры

Имя параметра Описание Вход/выход
PHandle Созданный дескриптор RTSP Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_rtsp.h. Библиотека: librkadk.so

Примечание

Вызывайте этот интерфейс после RKADK_RTSP_Init.

Пример

rkadk_rtsp_test

См. также

RKADK_RTSP_Stop

8.2.1.4 RKADK_RTSP_Stop

Описание

Остановить прямую трансляцию RTSP.

Синтаксис

RKADK_S32 RKADK_RTSP_Stop(RKADK_MW_PTR pHandle);

Параметры

Имя параметра Описание Вход/выход
PHandle Созданный дескриптор RTSP Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_rtsp.h. Библиотека: librkadk.so

Пример

rkadk_rtsp_test

См. также

RKADK_RTSP_Start

8.2.1.5 RKADK_RTSP_VideoReset

Описание

Перенастроить прямую трансляцию RTSP.

Синтаксис

RKADK_S32 RKADK_RTSP_VideoReset(RKADK_MW_PTR pHandle);

Параметры

Имя параметра Описание Вход/выход
PHandle Созданный дескриптор RTSP Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_rtsp.h

Библиотека: librkadk.so

Примечание

RKADK_RTSP_VideoReset можно использовать только после RKADK_RTSP_Init. При изменении разрешения, частоты кадров, битрейта, типа кодирования или записи перенастройте параметры модуля Live в ini-файле через RKADK_PARAM_SetCamParam. RV1126/RV1109 и RK3576 не поддерживают динамическую смену разрешения и типа кодирования: сначала выполните RKADK_RTSP_DeInit, задайте новое разрешение или тип кодирования, затем снова RKADK_RTSP_Init. Если Live совместно с другими модулями использует канал VI, разрешение Live и этих модулей нужно менять одновременно, чтобы избежать несовпадения разрешений VI и VENC.

8.2.2 RTMP

8.2.2.1 RKADK_RTMP_Init

Описание

Инициализировать модуль RTMP.

Синтаксис

RKADK_S32 RKADK_RTMP_Init(RKADK_U32 u32CamId, const char *path, RKADK_MW_PTR *ppHandle);

Параметры

Имя параметра Описание Вход/выход
u32CamId ID камеры Вход
path Адрес RTMP Вход
ppHandle Созданный дескриптор RTMP Выход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_rtmp.h. Библиотека: librkadk.so

Пример

rkadk_rtmp_test

См. также

RKADK_RTMP_DeInit

8.2.2.2 RKADK_RTMP_DeInit

Описание

Деинициализировать модуль RTMP.

Синтаксис

RKADK_S32 RKADK_RTMP_DeInit(RKADK_MW_PTR pHandle);

Параметры

Имя параметра Описание Вход/выход
PHandle Созданный дескриптор RTMP Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_rtmp.h. Библиотека: librkadk.so

Пример

rkadk_rtmp_test

См. также

RKADK_RTMP_Init

8.2.2.3 RKADK_RTSP_VideoReset

Описание

Перенастроить прямую трансляцию RTSP.

Синтаксис

RKADK_S32 RKADK_RTSP_VideoReset(RKADK_MW_PTR pHandle);

Параметры

Имя параметра Описание Вход/выход
PHandle Созданный дескриптор RTSP Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_rtsp.h. Библиотека: librkadk.so

Примечание

RKADK_RTMP_VideoReset можно использовать только после RKADK_RTMP_Init. При изменении разрешения, частоты кадров, битрейта, типа кодирования или записи перенастройте параметры модуля Live в ini-файле через RKADK_PARAM_SetCamParam. RV1126/RV1109 и RK3576 не поддерживают динамическую смену разрешения и типа кодирования: сначала выполните RKADK_RTMP_DeInit, задайте новое разрешение или тип кодирования, затем снова RKADK_RTMP_Init. Если Live совместно с другими модулями использует канал VI, разрешение Live и этих модулей нужно менять одновременно, чтобы избежать несовпадения разрешений VI и VENC.

9. Хранение данных

9.1 Обзор

Предоставляет базовые функции хранения: обнаружение, хранение, получение и управление файлами; запрос емкости и состояния устройства; автоматическое удаление файлов; форматирование.

9.2 Справочник API

9.2.1 RKADK_STORAGE_Init

Описание

Инициализация модуля хранения.

Синтаксис

RKADK_S32 RKADK_STORAGE_Init(RKADK_MW_PTR *ppHandle, RKADK_STR_DEV_ATTR *pstDevAttr);

Параметры

Имя параметра Описание Вход/выход
ppHandle Созданный дескриптор модуля хранения Выход
pstDevAttr Указатель атрибутов подключенного устройства Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_storage.h. Библиотека: librkadk.so

Примечание

Повторная инициализация не поддерживается. Если RKADK_STR_DEV_ATTR передается как NULL, используются атрибуты по умолчанию: 2 папки video_front и video_back, сортировка по имени файла, порог автоматического удаления 500~1000M, без ограничения количества файлов, с долей 50%.

Пример

rkadk_storage_test

См. также

RKADK_STORAGE_Deinit

9.2.2 RKADK_STORAGE_Deinit

Описание

Деинициализация модуля хранения.

Синтаксис

RKADK_S32 RKADK_STORAGE_Deinit(RKADK_MW_PTR pHandle);

Параметры

Имя параметра Описание Вход/выход
PHandle Указатель дескриптора модуля хранения Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_storage.h. Библиотека: librkadk.so

Примечание

Повторная деинициализация не поддерживается.

Пример

rkadk_storage_test

См. также

RKADK_STORAGE_Init

9.2.3 RKADK_STORAGE_GetDevAttr

Описание

Получить атрибуты подключенного устройства.

Синтаксис

RKADK_STR_DEV_ATTR RKADK_STORAGE_GetDevAttr(RKADK_MW_PTR pHandle);

Параметры

Имя параметра Описание Вход/выход
PHandle Указатель дескриптора модуля хранения Вход

Возвращаемое значение

Возвращаемое значение Описание
RKADK_STR_DEV_ATTR Структура атрибутов подключенного устройства

Требования

Заголовочный файл: rkadk_storage.h. Библиотека: librkadk.so

Примечание

RKADK_STORAGE_GetDevAttr можно использовать только после инициализации модуля хранения.

Пример

Нет

См. также

Нет

9.2.4 RKADK_STORAGE_GetMountStatus

Описание

Получить состояние подключения устройства.

Синтаксис

RKADK_MOUNT_STATUS RKADK_STORAGE_GetMountStatus(RKADK_MW_PTR pHandle);

Параметры

Имя параметра Описание Вход/выход
PHandle Указатель дескриптора модуля хранения Вход

Возвращаемое значение

Возвращаемое значение Описание
RKADK_MOUNT_STATUS Перечисление состояний подключения

Требования

Заголовочный файл: rkadk_storage.h

Библиотека: librkadk.so

Пример

rkadk_storage_test

См. также

Нет

9.2.5 RKADK_STORAGE_GetCapacity

Описание

Получить емкость устройства.

Синтаксис

RKADK_S32 RKADK_STORAGE_GetCapacity(RKADK_MW_PTR *ppHandle, RKADK_S32 *totalSize, RKADK_S32 *freeSize);

Параметры

Имя параметра Описание Вход/выход
ppHandle Созданный дескриптор модуля хранения Input/Output
totalSize Указатель полной емкости устройства Выход
freeSize Указатель оставшейся емкости устройства Выход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_storage.h. Библиотека: librkadk.so

Пример

rkadk_storage_test

См. также

Нет

9.2.6 RKADK_STORAGE_GetFileList

Описание

Получить список файлов.

Синтаксис

RKADK_S32 RKADK_STORAGE_GetFileList(RKADK_FILE_LIST *list, RKADK_MW_PTR pHandle, RKADK_SORT_TYPE sort);

Параметры

Имя параметра Описание Вход/выход
list Указатель структуры списка файлов Вход/выход
PHandle Указатель дескриптора модуля хранения Вход
sort Тип сортировки Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_storage.h. Библиотека: librkadk.so

Примечание

Необходимо использовать вместе с RKADK_STORAGE_FreeFileList.

Пример

rkadk_storage_test

См. также

RKADK_STORAGE_FreeFileList

9.2.7 RKADK_STORAGE_FreeFileList

Описание

Освободить список файлов.

Синтаксис

RKADK_S32 RKADK_STORAGE_FreeFileList(RKADK_FILE_LIST *list);

Параметры

Имя параметра Описание Вход/выход
list Указатель структуры списка файлов Вход/выход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_storage.h. Библиотека: librkadk.so

Примечание

Необходимо использовать вместе с RKADK_STORAGE_GetFileList.

Пример

rkadk_storage_test

См. также

RKADK_STORAGE_GetFileList

9.2.8 RKADK_STORAGE_GetFileNum

Описание

Получить количество файлов.

Синтаксис

RKADK_S32 RKADK_STORAGE_GetFileNum(RKADK_CHAR *fileListPath, RKADK_MW_PTR pHandle);

Параметры

Имя параметра Описание Вход/выход
fileListPath Указатель пути списка файлов Вход
PHandle Указатель дескриптора модуля хранения Вход

Возвращаемое значение

Возвращаемое значение Описание
non-negative Количество файлов
-1 Ошибка

Требования

Заголовочный файл: rkadk_storage.h. Библиотека: librkadk.so

Пример

Нет

См. также

Нет

9.2.9 RKADK_STORAGE_GetDevPath

Описание

Получить путь подключенного устройства.

Синтаксис

RKADK_CHAR *RKADK_STORAGE_GetDevPath(RKADK_MW_PTR pHandle);

Параметры

Имя параметра Описание Вход/выход
PHandle Указатель дескриптора модуля хранения Вход

Возвращаемое значение

Возвращаемое значение Описание
RKADK_CHAR * Указатель пути подключенного устройства

Требования

Заголовочный файл: rkadk_storage.h. Библиотека: librkadk.so

Примечание

RKADK_STORAGE_GetDevPath можно использовать только после инициализации модуля хранения.

Пример

rkadk_storage_test

См. также

Нет

9.2.10 RKADK_STORAGE_Format

Описание

Форматирование устройства.

Синтаксис

RKADK_S32 RKADK_STORAGE_Format(RKADK_MW_PTR pHandle, RKADK_CHAR *cFormat);

Параметры

Имя параметра Описание Вход/выход
PHandle Указатель дескриптора модуля хранения Вход
cFormat Тип файловой системы Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_storage.h. Библиотека: librkadk.so

Пример

Нет

См. также

Нет

9.3 Типы данных

Модуль хранения предоставляет следующие основные типы: RKADK_MOUNT_STATUS — перечисление состояний подключения; RKADK_SORT_TYPE — перечисление типов сортировки; RKADK_SORT_CONDITION — перечисление условий сортировки.

RKADK_STR_FOLDER_ATTR: структура атрибутов папки; RKADK_STR_DEV_ATTR: структура атрибутов устройства; RKADK_FILE_INFO: структура информации файла; RKADK_FILE_LIST: структура списка файлов; RKADK_FILE_LIST_ARRAY: структура группы списков файлов.

9.3.1 RKADK_MOUNT_STATUS

Описание

Определяет перечисление состояний подключения.

Определение

typedef enum {
  DISK_UNMOUNTED = 0,
  DISK_NOT_FORMATTED,
  DISK_FORMAT_ERR,
  DISK_SCANNING,
  DISK_MOUNTED,
  DISK_MOUNT_BUTT,
} RKADK_MOUNT_STATUS;

Поля

Имя поля Описание
DISK_UNMOUNTED Диск не подключен
DISK_NOT_FORMATTED Диск не отформатирован
DISK_FORMAT_ERR Ошибка формата диска
DISK_SCANNING Выполняется сканирование диска
DISK_MOUNTED Диск подключен

Связанные типы данных и интерфейсы

RKADK_STORAGE_GetMountStatus

9.3.2 RKADK_SORT_TYPE

Описание

Определяет перечисление типов сортировки.

Определение

typedef enum {
  LIST_ASCENDING = 0,
  LIST_DESCENDING,
  LIST_BUTT,
} RKADK_SORT_TYPE;

Поля

Имя поля Описание
LIST_ASCENDING Сортировать список по возрастанию
LIST_DESCENDING Сортировать список по убыванию

Связанные типы данных и интерфейсы

RKADK_STORAGE_GetFileList

9.3.3 RKADK_SORT_CONDITION

Описание

Определяет перечисление условий сортировки.

Определение

typedef enum {
  SORT_MODIFY_TIME = 0,
  SORT_FILE_NAME,
  SORT_BUTT,
} RKADK_SORT_CONDITION;

Поля

Имя поля Описание
SORT_MODIFY_TIME Список сортируется по времени изменения файла
SORT_FILE_NAME Список сортируется по имени файла

Связанные типы данных и интерфейсы

RKADK_STR_FOLDER_ATTR

9.3.4 RKADK_STR_FOLDER_ATTR

Описание

Определить структуру атрибутов папки.

Определение

typedef struct {
  RKADK_CHAR cFolderPath[RKADK_MAX_FILE_PATH_LEN];
  RKADK_SORT_CONDITION s32SortCond;
  RKADK_BOOL bNumLimit;
  RKADK_S32 s32Limit;
} RKADK_STR_FOLDER_ATTR;

Поля

Имя поля Описание
cFolderPath Путь папки
s32SortCond Условия сортировки
bNumLimit Параметр: задавать ли верхний предел по количеству файлов
s32Limit Максимальная емкость папки (доля/количество)

Связанные типы данных и интерфейсы

RKADK_SORT_CONDITION RKADK_STR_DEV_ATTR

9.3.5 RKADK_STR_DEV_ATTR

Описание

Определить структуру атрибутов устройства.

Определение

typedef struct {
  RKADK_CHAR cDevPath[RKADK_MAX_FILE_PATH_LEN];
  RKADK_CHAR cMountPath[RKADK_MAX_FILE_PATH_LEN];
  RKADK_S32 s32FreeSizeDelMin;
  RKADK_S32 s32FreeSizeDelMax;
  RKADK_S32 s32AutoDel;
  RKADK_S32 s32FolderNum;
  RKADK_CHAR cFormatId[RKADK_MAX_FORMAT_ID_LEN];
  RKADK_CHAR cVolume[RKADK_MAX_VOLUME_LEN];
  RKADK_S32 s32CheckFormatId;
  RKADK_STR_FOLDER_ATTR *pstFolderAttr;
} RKADK_STR_DEV_ATTR;

Поля

Имя поля Описание
cDevPath Имя устройства (путь устройства)
cMountPath Путь подключения устройства
s32FreeSizeDelMin Нижний порог автоматического удаления
s32FreeSizeDelMax Верхний порог автоматического удаления
s32AutoDel Параметр автоматического удаления
s32FolderNum Количество папок
cFormatId Идентификатор формата
cVolume Метка тома
s32CheckFormatId Проверить соответствие идентификатора формата
pstFolderAttr Указатель структуры атрибутов папки

Связанные типы данных и интерфейсы

RKADK_STR_FOLDER_ATTR RKADK_STORAGE_Init RKADK_STORAGE_GetDevAttr

9.3.6 RKADK_FILE_INFO

Описание

Определить структуру информации файла.

Определение

typedef struct {
  RKADK_CHAR filename[RKADK_MAX_FILE_PATH_LEN];
  off_t stSize;
  time_t stTime;
  void *thumb;
} RKADK_FILE_INFO;

Поля

Имя поля Описание
filename Имя файла
stSize Размер файла
stTime Время изменения файла
thumb Указатель миниатюры

Связанные типы данных и интерфейсы

RKADK_FILE_LIST

9.3.7 RKADK_FILE_LIST

Описание

Определить структуру списка файлов.

Определение

typedef struct {
  RKADK_CHAR path[RKADK_MAX_FILE_PATH_LEN];
  RKADK_S32 s32FileNum;
  RKADK_FILE_INFO *file;
} RKADK_FILE_LIST;

Поля

Имя поля Описание
path Путь списка файлов (папки)
s32FileNum Количество файлов
file Указатель структуры информации файла

Связанные типы данных и интерфейсы

RKADK_FILE_INFO RKADK_FILE_LIST_ARRAY

9.3.8 RKADK_FILE_LIST_ARRAY

Описание

Определить структуру группы списков файлов.

Определение

typedef struct {
  RKADK_S32 s32ListNum;
  RKADK_FILE_LIST *list;
} RKADK_FILE_LIST_ARRAY;

Поля

Имя поля Описание
s32ListNum Количество списков файлов (папок)
list Указатель структуры списка файлов

Связанные типы данных и интерфейсы

RKADK_FILE_LIST

10. Отображение

10.1 Обзор

Предоставляет локальный предпросмотр, отображение двух потоков с горизонтальным или вертикальным объединением, а также «картинку в картинке» для потоков нескольких камер с переключением содержимого основного экрана и вложенной области. Поддерживается совместный показ локального предпросмотра и стороннего потока H264/H265 в режиме «картинка в картинке», также с переключением этих областей. Поддерживается отображение до двух каналов PIP.

10.2 Справочник API

10.2.1 RKADK_DISP_Init

Описание

Инициализировать модуль локального предпросмотра.

Синтаксис

RKADK_S32 RKADK_DISP_Init(RKADK_U32 u32CamId);

Параметры

Имя параметра Описание Вход/выход
u32CamId ID камеры Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_disp.h. Библиотека: librkadk.so

Пример

rkadk_disp_test

См. также

RKADK_DISP_DeInit

10.2.2 RKADK_DISP_DeInit

Описание

Деинициализировать модуль локального предпросмотра.

Синтаксис

RKADK_S32 RKADK_DISP_DeInit(RKADK_U32 u32CamId);

Параметры

Имя параметра Описание Вход/выход
u32CamId ID камеры Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_disp.h

Библиотека: librkadk.so

Пример

rkadk_disp_test

См. также

RKADK_DISP_Init

10.2.3 RKADK_DISP_SetAttr

Описание

Задать атрибуты предпросмотра.

Синтаксис

RKADK_S32 RKADK_DISP_SetAttr(RKADK_U32 u32CamId, RKADK_DISP_ATTR_S *pstAttr);

Параметры

Имя параметра Описание Вход/выход
u32CamId ID камеры Вход
pstAttr Атрибуты предпросмотра Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_disp.h. Библиотека: librkadk.so

10.2.4 RKADK_DISP_InitEx

Описание

Инициализировать локальный предпросмотр и дополнительный поток.

Синтаксис

RKADK_S32 RKADK_DISP_InitEx(RKADK_DISP_CFG_S *pstAttr, RKADK_MW_PTR *ppHandle) ;

Параметры

Имя параметра Описание Input/Output
pstAttr Указатель параметров настройки предпросмотра и дополнительного потока Вход
ppHandle Указатель созданной задачи предпросмотра Выход

Возвращаемые значения

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Примечания

Если тип дополнительного потока равен RKADK_STREAM_TYPE_DISP, параметры инициализации читаются из ini.

Требования

Заголовочный файл: rkadk_disp.h. Библиотека: librkadk.so

Пример

rkadk_disp_test

Связанные темы

RKADK_DISP_DeInitEx

10.2.5 RKADK_DISP_DeInitEx

Описание

Деинициализировать локальный предпросмотр и дополнительный поток.

Синтаксис

RKADK_S32 RKADK_DISP_DeInitEx(RKADK_MW_PTR pHandle) ;

Параметры

Имя параметра Описание Input/Output
pHandle Указатель задачи предпросмотра Вход

Возвращаемые значения

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_disp.h. Библиотека: librkadk.so

Пример

rkadk_disp_test

Связанные темы

RKADK_DISP_InitEx

10.2.6 RKADK_DISP_SetAttrEx

Описание

Задать атрибуты предпросмотра и дополнительного потока.

Синтаксис

RKADK_S32 RKADK_DISP_SetAttrEx(RKADK_DISP_ATTR_S *pstAttr, RKADK_MW_PTR pHandle);

Параметры

Имя параметра Описание Input/Output
pstAttr Атрибуты предпросмотра и дополнительного потока Вход
pHandle Указатель задачи предпросмотра Вход

Возвращаемые значения

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_disp.h. Библиотека: librkadk.so

10.2.7 RKADK_DISP_SendVideoStream

Описание

При включенном отображении дополнительного потока этот интерфейс передает его данные в VDEC.

Синтаксис

RKADK_S32 RKADK_DISP_SendVideoStream(RKADK_MW_PTR pHandle, RKADK_U32 u32VdecChn, RKADK_DISP_DATA_S *pstData);

Параметры

Имя параметра Описание Input/Output
pHandle Указатель задачи предпросмотра Вход
u32VdecChn Канал VDEC Вход
pstData Указатель данных дополнительного потока Вход

Возвращаемые значения

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_disp.h. Библиотека: librkadk.so

10.3 Типы данных

Модуль отображения предоставляет следующие основные типы: RKADK_DISP_SUB_STREAM_NUM — количество дополнительных потоков; RKADK_DISP_CFG_S — структура настройки параметров предпросмотра и дополнительных потоков; RKADK_DISP_STREAM_CFG_S — структура настройки параметров дополнительного потока; RKADK_DISP_VDEC_CFG_S — структура настройки параметров VDEC дополнительного потока; RKADK_DISP_VO_CFG_S — структура настройки параметров VO дополнительного потока; RKADK_DISP_ATTR_S — структура атрибутов предпросмотра и дополнительных потоков; RKADK_DISP_STREAM_ATTR_S — структура атрибутов дополнительного потока; RKADK_DISP_VDEC_ATTR_S — структура атрибутов VDEC дополнительного потока.

RKADK_DISP_DATA_S: структура данных дополнительного потока

10.3.1 RKADK_DISP_SUB_STREAM_NUM

Описание

Количество дополнительных потоков.

Определение

#define RKADK_DISP_SUB_STREAM_NUM 2

10.3.2 RKADK_DISP_CFG_S

Описание

Определяет структуру настройки параметров предпросмотра и дополнительного потока.

Определение

typedef struct {
  RKADK_U32 u32CamId;
  RKADK_DISP_STREAM_CFG_S stSubStream[RKADK_DISP_SUB_STREAM_NUM];
} RKADK_DISP_CFG_S;

Поля

Имя поля Описание
u32CamId ID камеры
stSubStream Параметры дополнительного потока

10.3.3 RKADK_DISP_STREAM_CFG_S

Описание

Определяет структуру настройки параметров дополнительного потока.

Определение

typedef struct {
  RKADK_BOOL bEnable;                       /* enable subwindow */
  RKADK_S32 s32CamId;                       /* subwindow camera id, set to -1 when
RKADK_STREAM_TYPE_THIRD_STREAM */
  RKADK_STREAM_TYPE_E enStreamType;         /* subwindow stream type */
  RKADK_DISP_VO_CFG_S stVoCfg;              /* VO configuration read from ini when
RKADK_STREAM_TYPE_DISP */
  RKADK_DISP_VDEC_CFG_S stVdecCfg;          /* stream must set stVdecCfg when
RKADK_STREAM_TYPE_THIRD_STREAM */
} RKADK_DISP_STREAM_CFG_S;

Поля

Имя поля Описание
bEnable Включать ли дополнительный поток
s32CamId Идентификатор камеры дополнительного потока; для стороннего потока задайте -1
enStreamType Тип дополнительного потока
stVoCfg Параметры VO дополнительного потока; при типе RKADK_STREAM_TYPE_DISP читаются из ini
stVdecCfg Параметры VDEC дополнительного потока; обязательны при типе RKADK_STREAM_TYPE_THIRD_STREAM

10.3.4 RKADK_DISP_VDEC_CFG_S

Описание

Определяет структуру настройки параметров VDEC дополнительного потока.

Определение

typedef struct {
  RKADK_U32 u32VdecChn;
  RKADK_U32 u32SrcWidth;
  RKADK_U32 u32SrcHeight;
  RKADK_CODEC_TYPE_E enCodecType;
  RKADK_U32 u32StreamBufCnt;                /* stream(input) buffer count, default: 8 */
  RKADK_U32 u32FrameBufCnt;                 /* frame(output) buffer count, default: 3 */
  RKADK_U32 u32FrameBufSize;                /* if not set, calculated internally */
  VIDEO_MODE_E u32DecodeMode;               /* decoding mode */
  VIDEO_OUTPUT_ORDER_E enOutputOrder;       /* frames output order */
} RKADK_DISP_VDEC_CFG_S;

Поля

Имя поля Описание
u32VdecChn Канал VDEC
u32SrcWidth Ширина дополнительного потока
u32SrcHeight Высота дополнительного потока
enCodecType Тип кодирования дополнительного потока (H264/H265)
u32StreamBufCnt Количество входных буферов VDEC, по умолчанию 8
u32FrameBufCnt Количество выходных буферов VDEC, по умолчанию 3
u32FrameBufSize Размер буфера VDEC; при значении 0 вычисляется внутри VDEC
u32DecodeMode Способ передачи потока
enOutputOrder Порядок вывода декодированных кадров: для потоков с B-кадрами задайте порядок отображения, иначе порядок декодирования

10.3.5 RKADK_DISP_VO_CFG_S

Описание

Определяет структуру настройки параметров VO дополнительного потока.

Определение

typedef struct {
  RKADK_U32 u32VoChn;
  RKADK_RECT_S stVoRect;
  RKADK_U32 rotation;     /* Range:[0,3], 0:0, 1:90, 2:180, 3:270 */
} RKADK_DISP_VO_CFG_S;

Поля

Имя поля Описание
u32VoChn Канал VO
stVoRect Область вывода дополнительного потока
rotation Поворот дополнительного потока

10.3.6 RKADK_DISP_ATTR_S

Описание

Определить структуру атрибутов предпросмотра и дополнительного потока.

Определение

typedef struct {
  RKADK_RECT_S stVpssCropRect;
  RKADK_RECT_S stVoRect;
  RKADK_S32 s32Priority;  /* Overlay priority, higher value, higher priority, -1 is not
change */
  RKADK_DISP_STREAM_ATTR_S stSubStreamAttr[RKADK_DISP_SUB_STREAM_NUM];
} RKADK_DISP_ATTR_S;

Поля

Имя поля Описание
stVpssCropRect Входная область отображения
stVoRect Выходная область отображения
s32Priority Приоритет канала Vo: чем больше значение, тем выше приоритет; -1 означает не задавать (использовать приоритет по умолчанию)
stSubStreamAttr Атрибуты дополнительного потока

10.3.7 RKADK_DISP_STREAM_ATTR_S

Описание

Определяет структуру атрибутов дополнительного потока.

Определение

typedef struct {
  RKADK_RECT_S stVpssCropRect;
  RKADK_RECT_S stVoRect;
  RKADK_S32 s32Priority;  /* Overlay priority, higher value, higher priority, -1 is not
change */
  RKADK_DISP_VDEC_ATTR_S stVdecAttr;
} RKADK_DISP_STREAM_ATTR_S;

Поля

Имя поля Описание
stVpssCropRect Входная область отображения дополнительного потока; действует только при типе RKADK_STREAM_TYPE_DISP
stVoRect Выходная область отображения дополнительного потока
s32Priority Приоритет канала vo: чем больше значение, тем выше приоритет; -1 означает не задавать (использовать приоритет по умолчанию)
stVdecAttr Атрибуты VDEC дополнительного потока; действуют только при типе RKADK_STREAM_TYPE_THIRD_STREAM

10.3.8 RKADK_DISP_VDEC_ATTR_S

Описание

Определяет структуру атрибутов VDEC дополнительного потока.

Определение

typedef struct {
  RKADK_U32 u32SrcWidth;
  RKADK_U32 u32SrcHeight;
  RKADK_CODEC_TYPE_E enCodecType; // RKADK_CODEC_TYPE_BUTT is not change
} RKADK_DISP_VDEC_ATTR_S;

Поля

Имя поля Описание
u32SrcWidth Ширина дополнительного потока
u32SrcHeight Высота дополнительного потока
enCodecType Тип кодирования дополнительного потока (H264/H265)

10.3.9 RKADK_DISP_DATA_S

Описание

Определяет структуру данных дополнительного потока.

Определение

typedef struct {
  bool bEofFlag;
  char *data;
  RKADK_U32 u32Len;
  RKADK_U64 u64Pts;
  RKADK_U32 u32Seq;
  bool bBypass;             /* if bypass, must set pFreeCB; */
  RKADK_DISP_MB_FREE_CB pFreeCB;
} RKADK_DISP_DATA_S;

Поля

Имя поля Описание
bEofFlag Указывает, является ли это последним кадром данных
data Указатель данных
u32Len Длина данных
u32Seq Порядковый номер
u64Pts Временная метка
bBypass Способ передачи данных: true — прямая передача, false — копирование
pFreeCB Указатель функции освобождения данных; обязателен при bBypass=true

11. OSD

11.1 Обзор

Модуль OSD предоставляет базовые функции водяного знака

11.2 Справочник API

11.2.1 RKADK_OSD_Init

Описание

Инициализировать задачу водяного знака.

Синтаксис

RKADK_S32 RKADK_OSD_Init(RKADK_U32 u32OsdId, RKADK_OSD_ATTR_S *pstOsdAttr);

Параметры

Имя параметра Описание Вход/выход
u32OsdId Идентификатор водяного знака Вход
pstOsdAttr Указатель атрибутов задачи водяного знака Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_osd.h. Библиотека: librkadk.so

Примечание

Повторная инициализация не поддерживается.

11.2.2 RKADK_OSD_Deinit

Описание

Деинициализировать задачу водяного знака.

Синтаксис

RKADK_S32 RKADK_OSD_Deinit(RKADK_U32 u32OsdId);

Параметры

Имя параметра Описание Вход/выход
u32OsdId Идентификатор водяного знака Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_osd.h. Библиотека: librkadk.so

Примечание

Повторная деинициализация не поддерживается.

11.2.3 RKADK_OSD_UpdateBitMap

Описание

Обновить содержимое водяного знака.

Синтаксис

RKADK_S32 RKADK_OSD_UpdateBitMap(RKADK_U32 u32OsdId, RKADK_OSD_ATTR_S *pstOsdAttr);

Параметры

Имя параметра Описание Вход/выход
u32OsdId Идентификатор водяного знака Вход
pstOsdAttr Указатель атрибутов задачи водяного знака Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_osd.h. Библиотека: librkadk.so

Примечание

Необходимо использовать после завершения задачи деинициализации.

11.2.4 RKADK_OSD_AttachToStream

Описание

Добавить водяной знак к целевому потоку.

Синтаксис

RKADK_S32 RKADK_OSD_AttachToStream(RKADK_U32 u32OsdId, RKADK_U32 u32CamId, RKADK_STREAM_TYPE_E enStrmType, RKADK_OSD_STREAM_ATTR_S *pstOsdStreamAttr);

Параметры

Имя параметра Описание Вход/выход
u32OsdId Идентификатор водяного знака Вход
u32CamId ID камеры Вход
enStrmType Тип целевого потока Вход
pstOsdStreamAttr Указатель информации о положении водяного знака Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_osd.h. Библиотека: librkadk.so

Примечание

Один и тот же водяной знак нельзя повторно добавить к одному типу потока.

11.2.5 RKADK_OSD_DettachFromStream

Описание

Удалить водяной знак из целевого потока.

Синтаксис

RKADK_S32 RKADK_OSD_DettachFromStream(RKADK_U32 u32OsdId, RKADK_U32 u32CamId, RKADK_STREAM_TYPE_E enStrmType);

Параметры

Имя параметра Описание Вход/выход
u32OsdId Идентификатор водяного знака Вход
u32CamId ID камеры Вход
enStrmType Тип целевого потока Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_osd.h. Библиотека: librkadk.so

11.2.6 RKADK_OSD_UpdateOsdSize

Описание

Обновить размер водяного знака.

Синтаксис

RKADK_S32 RKADK_OSD_UpdateOsdSize(RKADK_U32 u32OsdId, RKADK_OSD_ATTR_S *pstOsdAttr);

Параметры

Имя параметра Описание Вход/выход
u32OsdId Идентификатор водяного знака Вход
pstOsdAttr Указатель атрибутов задачи водяного знака Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_osd.h. Библиотека: librkadk.so

11.2.7 RKADK_OSD_UpdateDisplayAttr

Описание

Обновить область отображения водяного знака.

Синтаксис

RKADK_S32 RKADK_OSD_UpdateDisplayAttr(RKADK_U32 u32OsdId, RKADK_U32 u32CamId, RKADK_STREAM_TYPE_E enStrmType, RKADK_OSD_STREAM_ATTR_S *pstOsdStreamAttr);

Параметры

Имя параметра Описание Вход/выход
u32OsdId Идентификатор водяного знака Вход
u32CamId ID камеры Вход
enStrmType Тип потока Вход
pstOsdStreamAttr Информация о положении водяного знака Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_osd.h. Библиотека: librkadk.so

11.3 Типы данных

Модуль водяного знака предоставляет следующие основные типы: RKADK_OSD_ATTR_S — структура атрибутов водяного знака; RKADK_OSD_STREAM_ATTR_S — структура информации о его положении; RKADK_OSD_TYPE_E — тип наложения водяного знака.

11.3.1 RKADK_OSD_ATTR_S

Описание

Определить атрибуты водяного знака.

Определение

typedef struct {
  RKADK_U32 Width;
  RKADK_U32 Height;
  RKADK_VOID *pData;
  RKADK_FORMAT_E Format;
  RKADK_OSD_TYPE_E enOsdType;
} RKADK_OSD_ATTR_S;

Поля

Имя поля Описание
Ширина Ширина водяного знака
Высота Высота водяного знака
pData Содержимое водяного знака
Формат Формат водяного знака
enOsdType Тип наложения водяного знака

Связанные типы данных и интерфейсы

RKADK_OSD_ATTR_S RKADK_OSD_TYPE_E

11.3.2 RKADK_OSD_STREAM_ATTR_S

Описание

Определить информацию о положении водяного знака.

Определение

typedef struct {
  RKADK_BOOL bEnableShow;
  RKADK_U32 Origin_X;
  RKADK_U32 Origin_Y;
} RKADK_OSD_STREAM_ATTR_S;

Поля

Имя поля Описание
Origin_X Начальное смещение водяного знака по X
Origin_Y Начальное смещение водяного знака по Y
bEnableShow Отображать ли водяной знак

Связанные типы данных и интерфейсы

RKADK_OSD_STREAM_ATTR_S

11.4 RKADK_OSD_TYPE_E

Описание

Определить тип наложения водяного знака.

Определение

typedef enum {
  RKADK_OSD_TYPE_NORMAL = 0, //use encoder do osd
  RKADK_OSD_TYPE_EXTRA,      //use rga do osd
  RKADK_OSD_TYPE_BUTT
} RKADK_OSD_TYPE_E;

Поля

Имя поля Описание
RKADK_OSD_TYPE_NORMAL Наложение OSD кодировщиком
RKADK_OSD_TYPE_EXTRA Наложение через RGA

Примечание

Кодирование JPEG на RV1109/RV1126 не поддерживает наложение водяного знака OSD кодировщика; необходимо задать RKADK_OSD_TYPE_EXTRA.

12. Наложение UI

12.1 Обзор

Предоставляет наложение UI на видеоизображение для платформ с однослойным VOP, например RV1103/RV1106.

12.2 Справочник API

12.2.1 RKADK_UI_Create

Описание

Инициализировать модуль наложения UI

Синтаксис

RKADK_S32 RKADK_UI_Create(RKADK_UI_ATTR_S *pstUiAttr, RKADK_MW_PTR *ppUi);

Параметры

Имя параметра Описание Вход/выход
pstUiAttr Атрибуты UI Вход
ppUi Указатель созданной задачи UI Выход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_ui.h. Библиотека: librkadk.so

Пример

rkadk_ui_test

См. также

RKADK_UI_Destroy

12.2.2 RKADK_UI_Destroy

Описание

Деинициализировать модуль наложения UI

Синтаксис

RKADK_S32 RKADK_UI_Destroy(RKADK_MW_PTR pUi);

Параметры

Имя параметра Описание Вход/выход
pUi Указатель задачи UI Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_ui.h. Библиотека: librkadk.so

Пример

rkadk_ui_test

См. также

RKADK_UI_Create

12.2.3 RKADK_UI_Update

Описание

Обновить данные UI.

Синтаксис

RKADK_S32 RKADK_UI_Update(RKADK_MW_PTR pUi, RKADK_UI_FRAME_INFO *pstUiFrameInfo);

Параметры

Имя параметра Описание Вход/выход
pUi Указатель задачи UI Вход
pstUiFrameInfo Указатель данных UI Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_ui.h. Библиотека: librkadk.so

Пример

rkadk_ui_test

12.3 Типы данных

RKADK_UI_ATTR_S: структура атрибутов UI; RKADK_UI_FRAME_INFO: структура данных UI

12.3.1 RKADK_UI_ATTR_S

Описание

Определить структуру атрибутов UI.

Определение

typedef struct {
  RKADK_U32 u32DispX;
  RKADK_U32 u32DispY;
  RKADK_U32 u32DispWidth;
  RKADK_U32 u32DispHeight;
  RKADK_U32 u32DispFrmRt;
  RKADK_U32 u32ImgWidth;
  RKADK_U32 u32ImgHeight;
  RKADK_U32 u32VoLay;
  RKADK_U32 u32VoDev;
  RKADK_U32 u32VoChn;
  RKADK_U32 u32Rotation; //0: 0, 1: 90, 2: 180, 3: 270
  RKADK_BOOL bMirror;
  RKADK_BOOL bFlip;
  RKADK_VO_FORMAT_E enUiVoFormat;
  RKADK_VO_INTF_TYPE_E enUiVoIntfTye;
  RKADK_VO_SPLICE_MODE_E enVoSpliceMode;
} RKADK_UI_ATTR_S;

Поля

Имя поля Описание
u32DispX Координата x области отображения слоя
u32DispY Координата y области отображения слоя
u32DispWidth Ширина области отображения слоя
u32DispHeight Высота области отображения слоя
u32ImgWidth Ширина изображения слоя
u32ImgHeight Высота изображения слоя
u32DispFrmRt Частота обновления кадров
u32VoLay Номер видеослоя видеовыхода
u32VoDev Номер устройства вывода изображения
u32VoChn Номер канала видеовыхода, диапазон: [0, VO_MAX_CHN_NUM(128)]
u32Rotation Поворот, значения: [0: 0, 1: 90, 2: 180, 3: 270]
bMirror Включить зеркальное отражение
bFlip Включить переворот
enUiVoFormat Пиксельный формат изображения
enUiVoIntfTye Тип интерфейса дисплея
enVoSpliceMode Режим композиции слоев

Связанные типы данных и интерфейсы

RKADK_VO_FORMAT_E RKADK_VO_INTF_TYPE_E RKADK_VO_SPLICE_MODE_E RKADK_UI_Create

12.3.2 RKADK_UI_FRAME_INFO

Описание

Определить информацию о данных UI.

Определение

typedef struct {
  RKADK_U32 u32Width;
  RKADK_U32 u32Height;
  RKADK_FORMAT_E Format;
  RKADK_VOID *pMblk;
  RKADK_S32 s32MilliSec; //update timeout in millisecond, default: 1000ms
} RKADK_UI_FRAME_INFO;

Поля

Имя поля Описание
u32Width Ширина данных UI
u32Height Высота данных UI
Формат Формат данных UI
pMblk Указатель данных UI
s32MilliSec Тайм-аут обновления UI, по умолчанию 1000ms; -1 означает блокирование

Связанные типы данных и интерфейсы

RKADK_FORMAT_E RKADK_UI_Update

12.3.3 RKADK_FORMAT_E

Описание

Определить пиксельный формат.

Определение

typedef enum {
  RKADK_FMT_ARGB1555,                                   /* 16-bit RGB               */
  RKADK_FMT_ABGR1555,                                   /* 16-bit RGB               */
  RKADK_FMT_RGBA5551,                                   /* 16-bit RGB               */
  RKADK_FMT_BGRA5551,                                   /* 16-bit RGB               */
  RKADK_FMT_ARGB4444,                                   /* 16-bit RGB               */
  RKADK_FMT_ABGR4444,                                   /* 16-bit RGB               */
  RKADK_FMT_RGBA4444,                                   /* 16-bit RGB               */
  RKADK_FMT_BGRA4444,                                   /* 16-bit RGB               */
  RKADK_FMT_ARGB8888,                                   /* 32-bit RGB               */
  RKADK_FMT_ABGR8888,                                   /* 32-bit RGB               */
  RKADK_FMT_RGBA8888,                                   /* 32-bit RGB               */
  RKADK_FMT_BGRA8888,                                   /* 32-bit RGB               */
  RKADK_FMT_2BPP,
  RKADK_FMT_YUV420SP,
  RKADK_FMT_YUV420SP_10BIT,
  RKADK_FMT_YUV422SP,
  RKADK_FMT_BUTT,
} RKADK_FORMAT_E;

Связанные типы данных и интерфейсы

RKADK_UI_FRAME_INFO

13. Настройка параметров

13.1 Обзор

Модуль параметров тесно связан с формой продукта. Комбинируя структуры данных общих компонентов, определяют структуру для соответствующего продукта. Модуль позволяет получать и сохранять заданные параметры и восстанавливать значения по умолчанию. Для удобства редактирования параметры хранятся в ini-файлах. Путь ini по умолчанию можно задать переменной среды rkadk_default_ini_path; стандартный путь — /oem/usr/etc.

export rkadk_default_ini_path=/oem/usr/etc

13.2 Справочник API

13.2.1 RKADK_PARAM_Init

Описание

Инициализировать модуль параметров

Синтаксис

RKADK_S32 RKADK_PARAM_Init(char *globalSetting, char **sesnorSettingArrary);

Параметры

Имя параметра Описание Вход/выход
globalSetting Путь глобального конфигурационного ini-файла Вход
sesnorSettingArrary Путь конфигурационного ini-файла датчика Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_param.h. Библиотека: librkadk.so

Примечание

Перед запуском любого модуля сначала вызовите RKADK_PARAM_Init для инициализации модуля параметров. Если globalSetting не задан, используется путь RKADK_PARAM_PATH. Если sesnorSettingArrary не задан, используется RKADK_PARAM_PATH_SENSOR_PREFIX. Стандартное имя конфигурации датчика — rkadk_setting_sensor_n.ini, где _n обозначает идентификатор камеры датчика; нумерация начинается с 0.

Пример

rkadk_record_test

См. также

Нет

13.2.2 RKADK_PARAM_GetCamParam

Описание

Получить параметры камеры.

Синтаксис

RKADK_S32 RKADK_PARAM_GetCamParam(RKADK_S32 s32CamID, RKADK_PARAM_TYPE_E enParamType, RKADK_VOID *pvParam);

Параметры

Имя параметра Описание Вход/выход
s32CamID ID камеры Вход
enParamType Тип параметра Вход
pvParam Указатель полученного параметра Выход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_param.h. Библиотека: librkadk.so

Примечание

Этот интерфейс можно вызывать только после инициализации модуля параметров через RKADK_PARAM_Init.

Пример

rkadk_record_test

См. также

RKADK_PARAM_SetCamParam

13.2.3 RKADK_PARAM_SetCamParam

Описание

Задать параметры камеры.

Синтаксис

RKADK_S32 RKADK_PARAM_SetCamParam(RKADK_S32 s32CamID, RKADK_PARAM_TYPE_E enParamType, const RKADK_VOID *pvParam);

Параметры

Имя параметра Описание Вход/выход
s32CamID ID камеры Вход
enParamType Тип параметра Вход
pvParam Указатель задаваемого параметра Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_param.h. Библиотека: librkadk.so

Примечание

Этот интерфейс можно вызывать только после инициализации модуля параметров через RKADK_PARAM_Init.

Пример

rkadk_record_test

См. также

RKADK_PARAM_GetCamParam

13.2.4 RKADK_PARAM_GetCommParam

Описание

Получить общие параметры.

Синтаксис

RKADK_S32 RKADK_PARAM_GetCommParam(RKADK_PARAM_TYPE_E enParamType, RKADK_VOID *pvParam);

Параметры

Имя параметра Описание Вход/выход
enParamType Тип параметра Вход
pvParam Указатель полученного параметра Выход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_param.h

Библиотека: librkadk.so

Примечание

Этот интерфейс можно вызывать только после инициализации модуля параметров через RKADK_PARAM_Init.

Пример

rkadk_record_test

См. также

RKADK_PARAM_SetCommParam

13.2.5 RKADK_PARAM_SetCommParam

Описание

Задать общие параметры.

Синтаксис

RKADK_S32 RKADK_PARAM_SetCommParam(RKADK_PARAM_TYPE_E enParamType, const RKADK_VOID *pvParam);

Параметры

Имя параметра Описание Вход/выход
enParamType Тип параметра Вход
pvParam Указатель задаваемого параметра Вход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_param.h. Библиотека: librkadk.so

Примечание

Этот интерфейс можно вызывать только после инициализации модуля параметров через RKADK_PARAM_Init.

Пример

rkadk_record_test

См. также

RKADK_PARAM_GetCommParam

13.2.6 RKADK_PARAM_SetDefault

Описание

Восстановить конфигурацию по умолчанию.

Синтаксис

RKADK_S32 RKADK_PARAM_SetDefault(RKADK_VOID);

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_param.h. Библиотека: librkadk.so

13.2.7 RKADK_PARAM_GetResolution

Описание

Преобразовать RKADK_PARAM_RES_E в конкретное разрешение.

Синтаксис

RKADK_S32 RKADK_PARAM_GetResolution(RKADK_PARAM_RES_E type, RKADK_U32 *width, RKADK_U32 *height);

Параметры

Имя параметра Описание Вход/выход
type Тип разрешения Вход
width Ширина после преобразования разрешения Выход
height Высота после преобразования разрешения Выход

Возвращаемое значение

Возвращаемое значение Описание
0 Успех
Другое значение Ошибка

Требования

Заголовочный файл: rkadk_param.h. Библиотека: librkadk.so

Примечание

Этот интерфейс можно вызывать только после инициализации модуля параметров через RKADK_PARAM_Init.

Пример

Нет

См. также

RKADK_PARAM_GetResType

13.2.8 RKADK_PARAM_GetResType

Описание

Преобразовать разрешение в RKADK_PARAM_RES_E.

Синтаксис

RKADK_PARAM_RES_E RKADK_PARAM_GetResType(RKADK_U32 width, RKADK_U32 height);

Параметры

Имя параметра Описание Вход/выход
width Ширина изображения Вход
height Высота изображения Вход

Возвращаемое значение

Возвращаемое значение Описание
Соответствующее значение RKADK_PARAM_RES_E Успех
RKADK_RES_BUTT Ошибка

Требования

Заголовочный файл: rkadk_param.h. Библиотека: librkadk.so

Примечание

Этот интерфейс можно вызывать только после инициализации модуля параметров через RKADK_PARAM_Init.

Пример

Нет

См. также

RKADK_PARAM_GetResolution

13.2.9 RKADK_PARAM_GetVencChnId

Описание

Получить номер канала VENC для Record, Photo и Stream.

Синтаксис

RKADK_S32 RKADK_PARAM_GetVencChnId(RKADK_U32 u32CamId, RKADK_STREAM_TYPE_E enStrmType);

Параметры

Имя параметра Описание Вход/выход
u32CamId ID камеры Вход
enStrmType Тип потока Вход

Возвращаемое значение

Возвращаемое значение Описание
Соответствующий номер канала VENC Успех
-1 Ошибка

Требования

Заголовочный файл: rkadk_param.h. Библиотека: librkadk.so

Примечание

Этот интерфейс можно вызывать только после инициализации модуля параметров через RKADK_PARAM_Init.

Пример

Нет

См. также

Нет

13.3 Типы данных

Модуль параметров предоставляет следующие основные типы: RKADK_DEFPARAM_PATH — путь глобального ini по умолчанию; RKADK_DEFPARAM_PATH_SENSOR_PREFIX — путь ini датчика по умолчанию; RKADK_PARAM_PATH — путь глобального ini; RKADK_PARAM_PATH_SENSOR_PREFIX — путь ini датчика; RKADK_PARAM_TYPE_E — перечисление типов параметров; RKADK_PARAM_RES_E — перечисление разрешений; RKADK_STREAM_TYPE_E — перечисление типов потоков данных; RKADK_PARAM_CODEC_CFG_S — структура настройки типа кодирования; RKADK_PARAM_BITRATE_S — структура настройки битрейта; RKADK_PARAM_REC_TIME_S — структура настройки длительности записи; RKADK_PARAM_GOP_S — структура настройки GOP VENC; RKADK_VQE_MODE_E — перечисление улучшений качества входного аудио; RKADK_MIC_TYPE_E — перечисление режимов каналов аудиоустройства.

13.3.1 RKADK_DEFPARAM_PATH

Описание

Путь глобального ini по умолчанию: файл хранит общую конфигурацию датчиков и используется для восстановления настроек по умолчанию.

Определение

#define RKADK_DEFPARAM_PATH "/oem/usr/etc/rkadk_defsetting.ini"

13.3.2 RKADK_DEFPARAM_PATH_SENSOR_PREFIX

Описание

Путь ini датчика по умолчанию: файл хранит индивидуальную конфигурацию каждого датчика и используется для восстановления настроек по умолчанию.

Определение

#define RKADK_DEFPARAM_PATH_SENSOR_PREFIX "/oem/usr/etc/rkadk_defsetting_sensor"

Примечание

Стандартное имя файла конфигурации датчика — rkadk_defsetting_sensor_n.ini; _n — идентификатор камеры датчика, нумерация начинается с 0.

13.3.3 RKADK_PARAM_PATH

Описание

Путь глобального ini-файла, содержащего общую конфигурацию всех датчиков.

Определение

#define RKADK_PARAM_PATH "/data/rkadk/rkadk_setting.ini"

13.3.4 RKADK_PARAM_PATH_SENSOR_PREFIX

Описание

Путь ini-файла датчика, содержащего его индивидуальную конфигурацию. Используется для сохранения новых настроек при изменении разрешения записи, типа Codec и других операциях.

Определение

#define RKADK_PARAM_PATH_SENSOR_PREFIX "/data/rkadk/rkadk_setting_sensor"

Примечание

Стандартное имя файла конфигурации датчика — rkadk_setting_sensor_n.ini; _n — идентификатор камеры датчика, нумерация начинается с 0.

13.3.5 RKADK_PARAM_TYPE_E

Описание

Определить перечисление типов параметров.

Определение

typedef enum {
  /* Cam Dependent Param */
  RKADK_PARAM_TYPE_FPS,             /* framerate */
  RKADK_PARAM_TYPE_GOP,             /* gop */
  RKADK_PARAM_TYPE_RES,             /* specify RKADK_PARAM_RES_E(record) */
  RKADK_PARAM_TYPE_PHOTO_RES,       /* specify RKADK_PARAM_RES_E(photo) */
  RKADK_PARAM_TYPE_STREAM_RES,      /* specify RKADK_PARAM_RES_CFG_S(record_main,
record_sub, photo, stream, live) */
  RKADK_PARAM_TYPE_CODEC_TYPE,      /* specify RKADK_PARAM_CODEC_CFG_S(record) */
  RKADK_PARAM_TYPE_BITRATE,         /* encode bitrate,specify RKADK_PARAM_BITRATE_S */
  RKADK_PARAM_TYPE_FLIP,            /* bool */
  RKADK_PARAM_TYPE_MIRROR,          /* bool */
  RKADK_PARAM_TYPE_LDC,             /* ldc level [0,255] */
  RKADK_PARAM_TYPE_ANTIFOG,         /* antifog value, [0,10] */
  RKADK_PARAM_TYPE_WDR,             /* wdr level, [0,10] */
  RKADK_PARAM_TYPE_HDR,             /* 0: normal, 1: HDR2, 2: HDR3, [0,2] */
  RKADK_PARAM_TYPE_RECORD_TYPE,     /* specify RKADK_REC_TYPE_E */
  RKADK_PARAM_TYPE_RECORD_TIME,     /* specify RKADK_PARAM_REC_TIME_S, record time(s) */
  RKADK_PARAM_TYPE_PRE_RECORD_TIME, /* pre record time, unit in second(s) */
  RKADK_PARAM_TYPE_PRE_RECORD_MODE, /* pre record mode, specify MUXER_PRE_RECORD_MODE_E */
  RKADK_PARAM_TYPE_SPLITTIME,       /* specify RKADK_PARAM_REC_TIME_S, manual splite time(s)
*/
  RKADK_PARAM_TYPE_FILE_CNT,        /* record file count, maximum RECORD_FILE_NUM_MAX */
  RKADK_PARAM_TYPE_LAPSE_INTERVAL,  /* specify RKADK_PARAM_REC_TIME_S, lapse interval(s) */
  RKADK_PARAM_TYPE_LAPSE_MULTIPLE,  /* lapse multiple */
  RKADK_PARAM_TYPE_JPEG_SLICE,      /* enable/disable JPEG slice */
  RKADK_PARAM_TYPE_SLICE_HEIGHT,    /* set JPEG slice height */
  RKADK_PARAM_TYPE_INPUT_FMT,       /* set vi input format */
  RKADK_PARAM_TYPE_INPUT_BUFCNT,    /* set vi input buffer count */
  RKADK_PARAM_TYPE_ENABLE_AUDIO,    /* enable record audio */
  RKADK_PARAM_TYPE_MUTE,            /* mute specifies sensor, bool */

  /* COMM Dependent Param */
  RKADK_PARAM_TYPE_REC_MUTE,        /* record audio mute, bool */
  RKADK_PARAM_TYPE_VOLUME,          /* speaker volume, [0,100] */
  RKADK_PARAM_TYPE_MIC_VOLUME,      /* mic volume, [0,100] */
  RKADK_PARAM_TYPE_BUTT
} RKADK_PARAM_TYPE_E;

Поля

Имя поля Описание
RKADK_PARAM_TYPE_FPS Частота кадров
RKADK_PARAM_TYPE_GOP Интервал I-кадров, RKADK_PARAM_GOP_S
RKADK_PARAM_TYPE_RES Разрешение видео, RKADK_PARAM_RES_E
RKADK_PARAM_TYPE_PHOTO_RES Разрешение фотографии, RKADK_PARAM_RES_E
RKADK_PARAM_TYPE_STREAM_RES Задает разрешение потока, указанного перечислением RKADK_STREAM_TYPE_E
RKADK_PARAM_TYPE_CODEC_TYPE Тип кодирования видео, RKADK_PARAM_CODEC_CFG_S
RKADK_PARAM_TYPE_BITRATE Битрейт, RKADK_PARAM_BITRATE_S
RKADK_PARAM_TYPE_FLIP Переворот вверх-вниз
RKADK_PARAM_TYPE_MIRROR Зеркальное отражение слева направо
RKADK_PARAM_TYPE_LDC Коррекция искажения [0,255]
RKADK_PARAM_TYPE_ANTIFOG Удаление дымки [0,10]
RKADK_PARAM_TYPE_WDR Широкий динамический диапазон [0,10]
RKADK_PARAM_TYPE_HDR Расширенный динамический диапазон HDR [0,10]
RKADK_PARAM_TYPE_RECORD_TYPE Тип записи, RKADK_REC_TYPE_E
RKADK_PARAM_TYPE_RECORD_TIME Длительность записи; основной и дополнительный потоки могут иметь разные длительности, RKADK_PARAM_REC_TIME_S
RKADK_PARAM_TYPE_PRE_RECORD_TIME Длительность предварительной записи
RKADK_PARAM_TYPE_PRE_RECORD_MODE Режим предварительной записи: 0 - выключена, 1 - при ручном разделении, 2 - первый файл, 3 - все файлы
RKADK_PARAM_TYPE_SPLITTIME Длительность записи при ручном разделении; основной и дополнительный потоки могут иметь разные длительности, RKADK_PARAM_REC_TIME_S
RKADK_PARAM_TYPE_FILE_CNT Число одновременно записываемых файлов, максимум 2
RKADK_PARAM_TYPE_LAPSE_INTERVAL Длительность интервальной записи; основной и дополнительный потоки могут иметь разные длительности, RKADK_PARAM_REC_TIME_S
RKADK_PARAM_TYPE_LAPSE_MULTIPLE Кратность отношения длительности воспроизведения интервального файла к реальному времени снятого содержимого
Имя поля Описание
RKADK_PARAM_TYPE_JPEG_SLICE Включение JPEG Slice
RKADK_PARAM_TYPE_SLICE_HEIGHT Высота сегмента JPEG Slice
RKADK_PARAM_TYPE_INPUT_FMT Входной формат VI
RKADK_PARAM_TYPE_INPUT_BUFCNT Число буферов VI
RKADK_PARAM_TYPE_ENABLE_AUDIO Включение канала аудиозаписи указанного сенсора
RKADK_PARAM_TYPE_MUTE Отключение звука записи указанного сенсора
RKADK_PARAM_TYPE_REC_MUTE Отключение звука всех записей
RKADK_PARAM_TYPE_VOLUME Громкость динамика [0,100]
RKADK_PARAM_TYPE_MIC_VOLUME Громкость микрофона [0,100]

Примечание

Для аппаратных настроек камеры, например удаления тумана, WDR и HDR, помимо изменения ini через RKADK_PARAM_SetCamParam вызовите соответствующий интерфейс ISP, чтобы настройка вступила в силу. RKADK_PARAM_TYPE_LAPSE_MULTIPLE: отношение длительности воспроизведения интервального файла к реальному времени связано с частотой кадров. Например, при обычной записи 30 fps и интервальной 1 fps кратность равна 30. При смене разрешения RV1126/RV1109, если разрешение фото не равно максимальному для сенсора, оно должно совпадать с разрешением основного потока Record. RKADK_PARAM_TYPE_REC_MUTE используйте вместе с RKADK_RECORD_GetAencChn и RK_MPI_AENC_SetMute.

Связанные типы данных и интерфейсы

RKADK_PARAM_GetCamParam RKADK_PARAM_SetCamParam RKADK_PARAM_GetCommParam RKADK_PARAM_SetCommParam

13.3.6 RKADK_PARAM_RES_E

Описание

Определяет перечисление событий воспроизведения.

Определение

typedef enum {
  RKADK_RES_480P = 0, /* 848*480 */
  RKADK_RES_720P,     /* 1280*720 */
  RKADK_RES_1080P,    /* 1920*1080 */
  RKADK_RES_1296P,    /* 2304*1296 */
  RKADK_RES_1440P,    /* 2560*1440 */
  RKADK_RES_1520P,    /* 2688*1520 */
  RKADK_RES_1600P,    /* 2560*1600 */
  RKADK_RES_1620P,    /* 2880*1616, height 8 alignment */
  RKADK_RES_1944P,    /* 2592*1944 */
  RKADK_RES_2160P,    /* 3840*2160 */
  RKADK_RES_3456P,    /* 4608*3456 */
  RKADK_RES_4000P,    /* 6000*4000 */
  RKADK_RES_4480P,    /* 6720*4480 */
  RKADK_RES_4275P,    /* 7600*4275 */
  RKADK_RES_4320P,    /* 7680*4320 */
  RKADK_RES_3672P,    /* 6528*3672 */
  RKADK_RES_BUTT,
} RKADK_PARAM_RES_E;

Связанные типы данных и интерфейсы

RKADK_PARAM_GetResolution RKADK_PARAM_GetResType

13.3.7 RKADK_STREAM_TYPE_E

Описание

Перечисление типов потоков.

Определение

typedef enum {
  RKADK_STREAM_TYPE_SENSOR,
  RKADK_STREAM_TYPE_VIDEO_MAIN,
  RKADK_STREAM_TYPE_VIDEO_SUB,
  RKADK_STREAM_TYPE_SNAP,
  RKADK_STREAM_TYPE_PREVIEW,
  RKADK_STREAM_TYPE_LIVE,
  RKADK_STREAM_TYPE_DISP,
  RKADK_STREAM_TYPE_BUTT
} RKADK_STREAM_TYPE_E;

Поля

Имя поля Описание
RKADK_STREAM_TYPE_VIDEO_MAIN Основной видеопоток
RKADK_STREAM_TYPE_VIDEO_SUB Дополнительный видеопоток
RKADK_STREAM_TYPE_SNAP Фотосъёмка
RKADK_STREAM_TYPE_PREVIEW Удалённый предварительный просмотр
RKADK_STREAM_TYPE_LIVE Прямая трансляция
RKADK_STREAM_TYPE_DISP Локальный предварительный просмотр
RKADK_STREAM_TYPE_SENSOR Сенсор

Связанные типы данных и интерфейсы

RKADK_PARAM_GetVencChnId

13.3.8 RKADK_PARAM_CODEC_CFG_S

Описание

Структура настройки типа кодирования.

Определение

typedef struct {
  RKADK_STREAM_TYPE_E enStreamType;
  RKADK_CODEC_TYPE_E enCodecType;
} RKADK_PARAM_CODEC_CFG_S;

Поля

Имя поля Описание
enStreamType Тип потока
enCodecType Тип кодирования

Связанные типы данных и интерфейсы

RKADK_CODEC_TYPE_E RKADK_STREAM_TYPE_E

13.3.9 RKADK_PARAM_BITRATE_S

Описание

Структура настройки битрейта.

Определение

typedef struct {
  RKADK_STREAM_TYPE_E enStreamType;
  RKADK_U32 u32Bitrate;
} RKADK_PARAM_BITRATE_S;

Поля

Имя поля Описание
enStreamType Тип потока
u32Bitrate Битрейт

Связанные типы данных и интерфейсы

RKADK_STREAM_TYPE_E

13.3.10 RKADK_PARAM_REC_TIME_S

Описание

Структура настройки длительности записи.

Определение

typedef struct {
  RKADK_STREAM_TYPE_E enStreamType;
  RKADK_U32 time;
} RKADK_PARAM_REC_TIME_S;

Поля

Имя поля Описание
enStreamType Тип потока
time Длительность записи

Связанные типы данных и интерфейсы

RKADK_STREAM_TYPE_E

13.3.11 RKADK_PARAM_GOP_S

Описание

Структура настройки интервала I-кадров VENC.

Определение

typedef struct {
  RKADK_STREAM_TYPE_E enStreamType;
  RKADK_U32 u32Gop;
} RKADK_PARAM_GOP_S;

Поля

Имя поля Описание
enStreamType Тип потока
u32Gop Интервал I-кадров

Связанные типы данных и интерфейсы

RKADK_STREAM_TYPE_E

13.3.12 RKADK_VQE_MODE_E

Описание

Перечисление улучшений качества входного аудио

Определение

typedef enum {
  RKADK_VQE_MODE_AI_TALK = 0,
  RKADK_VQE_MODE_AI_RECORD,
  RKADK_VQE_MODE_BUTT
} RKADK_VQE_MODE_E;

Поля

Имя поля Описание
RKADK_VQE_MODE_AI_TALK Включить AEC, ANR, AGC
RKADK_VQE_MODE_AI_RECORD Включить ANR

13.3.13 RKADK_MIC_TYPE_E

Описание

Тип режима каналов аудиоустройства

Определение

typedef enum {
  RKADK_MIC_TYPE_LEFT = 0,
  RKADK_MIC_TYPE_RIGHT,
  RKADK_MIC_TYPE_BOTH,
  RKADK_MIC_TYPE_BUTT
} RKADK_MIC_TYPE_E;

Поля

Имя поля Описание
RKADK_MIC_TYPE_LEFT Звук левого канала
RKADK_MIC_TYPE_RIGHT Звук правого канала
RKADK_MIC_TYPE_BOTH Dual-channel

13.4 Введение в INI-файлы

13.4.1 Глобальный INI-файл конфигурации

[version]
version                        = 2.2.0      /* Version */

/* common parameters */
[common]
sensor_count                   = 2          /* Number of Sensors*/
rec_mute                       = FALSE      /* Whether to enable video mute */
speaker_volume                 = 80         /* Speaker volume,[0,100] */
mic_volume                     = 80         /* Microphone volume,[0,100] */
vpss_devcie                    = 1          /* VPSS hardware device type, 0:GPU, 1:RGA */

/* Audio parameters */
[audio]
ai_audio_node                  = hw:0,0     /* AI device node */
ao_audio_node                  = hw:0,0     /* AO device node */
ai_depth                       = 1          /* AI depth */
bit_width                      = 1          /* Sampling accuracy */
channels                       = 1          /* Channels */
mic_type                       = 0          /* Audio device channel mode, specifically
RKADK_MIC_TYPE_E, 0: left channel, 1: right channel, 2: dual channel*/
samplerate                     = 16000      /* Sample rate   */
samples_per_frame              = 576        /* Number of samples per frame*/
bitrate                        = 64000      /* Bitrate */
vqe_mode                       = 1          /* Configure audio input sound quality
enhancement, specifically RKADK_VQE_MODE_E*/
vqe_config_path                = /oem/usr/share/vqefiles/config_aivqe.json /*vqe
configuration file path */
codec_type                     = 8          /* Record and Live Audio encoding types, adapted
to MP3 by default, specifically RKADK_CODEC_TYPE_E */

13.4.2 INI-файлы конфигурации сенсоров

[sensor]
used_isp                       = TRUE       /* Has the Sensor used ISP? */
max_width                      = 2688       /* Max width */
max_height                     = 1520       /* Max height    */
framerate                      = 30         /* Framerate*/
flip                           = FALSE      /* Flip up and down*/
mirror                         = FALSE      /* Mirror left and right */
ldc                            = 0          /* Lens distortion correction, [0,255] */
wdr                            = 0          /* Wide dynamic range, [0,10] */
hdr                            = 0          /* High dynamic range imaging, [0,10] */
antifog                        = 0          /* Remove fog, [0,10] */
enable_wrap                    = FALSE      /* Whether the VI enables wrap */
wrap_buf_line                  = 1620       /* The line height of the wrap buffer */

/* VI channel configuration parameters */
[vi.0]
chn_id                         = 0                  /* Channel ID */
device_name                    = rkispp_m_bypass    /* Video node path*/
buf_cnt                        = 4                  /* The total number of buffer blocks in
the output channel */
depth                          = 0                  /* VI depth depth  */
width                          = 2688               /* Video width   */
height                         = 1520               /* Video height  */
pix_fmt                        = FBC0               /* VI output format*/
module                         = RECORD_MAIN|PHOTO  /* The usage module of this VI,Options:
NONE/RECORD_MAIN/RECORD_SUB/PREVIEW/PHOTO/LIVE/DISP */

[vi.1]
chn_id                         = 1
device_name                    = rkispp_scale0
buf_cnt                        = 4
depth                          = 0
width                          = 0
height                         = 0
pix_fmt                        = NV12
module                         = RECORD_MAIN|PHOTO

[vi.2]
chn_id                         = 2
device_name                    = rkispp_scale1
buf_cnt                        = 2
depth                          = 0
width                          = 0
height                         = 0
pix_fmt                        = NV12
module                         = NONE

[vi.3]
chn_id                         = 3
device_name                    = rkispp_scale2
buf_cnt                        = 4
depth                          = 0
width                          = 848
height                         = 480
pix_fmt                        = NV12
module                         = RECORD_SUB|PREVIEW|LIVE|DISP

/* Record parameters */
[record]
record_type                    = 0          /* Recording type, specifically
RKADK_REC_TYPE_E*/
file_type                      = 0          /* Video file type, specifically
RKADK_MUXER_FILE_TYPE_E */
pre_record_time                = 0          /* Pre-recording duration */
pre_record_mode                = 0          /* Pre-recorded mode */
lapse_multiple                 = 30         /* The multiple relationship between the
playback duration of a time-lapse video file and the actual screen content duration */
file_num                       = 1          /* Number of files recorded simultaneously,
maximum 2 */
switch_res                     = TRUE       /* Whether to switch resolution */
enable_audio                   = TRUE       /* Whether to enable recording */

/* Record 0 VENC parameters of Main stream  */
[record.0]
record_time                    = 60         /* Recording duration*/
splite_time                    = 60         /* Manually divide video duration */
lapse_interval                 = 60         /* Time-lapse recording duration */
width                          = 2688       /* Video width */
height                         = 1520       /* Video height */
bufsize                        = 10379776   /* The buffer size of the code stream */
framerate                      = 30         /* Venc framerate */
bitrate                        = 8294400    /* Bitrate */
gop                            = 30         /* I frame interval */
profile                        = 100        /* Encoder profile */
codec_type                     = 0          /* Encoding type, specificallyRKADK_CODEC_TYPE_E
*/
venc_chn                       = 0          /* VENC channel ID */
vpss_grp                       = 0          /* VPSS GROUP ID*/
vpss_chn                       = 0          /* VPSS channel ID */
post_aiisp                     = FALSE      /* Whether to enbale Post AI ISP */
rc_mode                        = CBR        /* Encoding protocol type, supports CBR, VBR,
AVBR*/
/* The following are advanced encoding parameters. If you need to adjust the encoder effect,
please add them according to your actual needs. For specific instructions, please refer to
the Rockit and MPP documents */
min_qp                         = 10
max_qp                         = 51
min_i_qp                       = 10
max_i_qp                       = 51
frame_min_i_qp                 = 25
frame_min_qp                   = 26
frame_max_i_qp                 = 45
frame_max_qp                   = 48
full_range                     = 1
scalinglist                    = 1
hier_qp_delta                  = -2,0,0,0
hier_frame_num                 = 3,0,0,0
enable_motion_deblur           = 1
motion_deblur_strength         = 0
enable_motion_static_switch    = 0
enable_debreath_effect         = 0
debreath_effect_strength       = 16
thrd_i                         = 0,0,0,0,3,3,5,5,8,8,8,15,15,20,25,25
thrd_p                         = 0,0,0,0,3,3,5,5,8,8,8,15,15,20,25,25
aq_step_i                      = -8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,7,8,9
aq_step_p                      = -8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,7,8,9
qbias_enable                   = 1
qbias_i                        = 171
qbias_p                        = 85
flt_str_i                      = 2
flt_str_p                      = 2
cu_dqp                         = 1
anti_ring                      = 3
anti_line                      = 3
lambda                         = 4
lambda_i                       = 7
atf_str                        = 2
tmvp_en                        = 0
static_frm_num                 = 5
madp16_th                      = 15
skip16_wgt                     = 6
skip32_wgt                     = 6
qbias_arr                     = 3,6,13,144,144,144,144,3,6,13,144,144,171,144,85,85,85,85
aq_rnge_arr                    = 8,8,12,12,12,8,8,12,12,12
lgt_chg_lvl                    = 0
sao_str_i                      = 0
sao_str_p                      = 0
speed                          = 1

/* VENC parameter of the substream Record 1, when file_num = 1, rec.1 does not need to be
configured*/
[record.1]
record_time                    = 60
splite_time                    = 60
lapse_interval                 = 60
width                          = 848
height                         = 480
bufsize                        = 2367488
bitrate                        = 407040
framerate                      = 30
gop                            = 30
profile                        = 100
codec_type                     = 0
venc_chn                       = 1
vpss_grp                       = 0          /* VPSS GROUP ID*/
vpss_chn                       = 0          /* VPSS channel ID */
post_aiisp                     = FALSE      /* Whether to enbale Post AI ISP */
rc_mode                        = VBR

/* Photo VENC parameters */
[photo]
image_width                    = 3840       /* Image width */
image_height                   = 2160       /* Image_height  */
venc_chn                       = 2          /* VENC channel ID */
vpss_grp                       = 0          /* VPSS GROUP ID*/
vpss_chn                       = 0          /* VPSS channel ID */
post_aiisp                     = FALSE      /* Whether to enbale Post AI ISP */
enable_combo                   = FALSE      /* Enable the Combo attribute of the encoding
channel */
combo_venc_chn                 = 0          /* Combo data source channel */
qfactor                        = 50         /* For the detailed meaning, please refer to the
RFC2435 protocol. The system default value is 70 and the value range is [1, 99] */
switch_res                     = TRUE       /* Whether to switch resolution */
jpeg_slice                     = FALSE      /* Whether to enable JPEG Slice */
slice_height                   = 0          /* The height of JPEG Slice must not be greater
than max_slice_height*/
max_slice_width                = 0          /* Maximum width of JPEG Slice */
max_slice_height               = 0          /* Maximum height of JPEG Slice*/

/* Remote preview of VENC parameters */
[preview]
width                          = 848        /* Video width */
height                         = 480        /* Video height */
bufsize                        = 2367488
bitrate                        = 407040     /* Bitrate */
framerate                      = 30         /* Venc framerate  */
gop                            = 30         /* I frame interval */
profile                        = 100        /* Encoder profile */
codec_type                     = 0          /* Coding type, specifically RKADK_CODEC_TYPE_E
*/
venc_chn                       = 1          /* Venc channel ID */
vpss_grp                       = 0          /* VPSS GROUP ID */
vpss_chn                       = 0          /* VPSS  channel ID */
post_aiisp                     = FALSE      /* Whether to enbale Post AI ISP */
rc_mode                        = VBR        /* Encoding protocol type, supports CBR, VBR,
AVBR */

/* Live VENC parameters */
[live]
width                          = 1280
height                         = 720
bufsize                        = 2367488
bitrate                        = 4194304
framerate                      = 30
gop                            = 30
profile                        = 100
codec_type                     = 0
venc_chn                       = 1
vpss_grp                       = 0
vpss_chn                       = 0
post_aiisp                     = FALSE
rc_mode                        = VBR

/* Local preview parameters */
[display]
x                              = 0                /* Display X coordinate */
y                              = 0                /* Display y coordinate */
width                          = 720              /* Display the width  */
height                         = 1280             /* Display the height */
rotaion                        = 90               /* Degrees of rotation, Options: 0:0,
1:90, 2:180, 3:270 */
vpss_grp                       = 0                /* VPSS GROUP ID */
vpss_chn                       = 0                /* VPSS channel ID */
img_type                       = RGB888           /* Video output format */
vo_device                      = 0                /* Display output device number */
vo_layer                       = 0                /* Video output video layer number */
vo_chn                         = 0                /* VO channel ID */
frame_rate                     = 30               /* VO frame rate */
intf_type                      = default          /* Show interface type, Options:  MIPI,
HDMI, EDP, VGA, DP, HDMI_EDP, LCD, default*/
splice_mode                    = RGA              /* Splice mode, Options: RGA, GPU, BYPASS
*/

13.4.3 Указания по настройке INI

Путь к INI по умолчанию задаётся переменной окружения, например: export rkadk_default_ini_path=/oem/usr/etc. Путь также задаётся через RKADK_PARAM_Init. Версии в rkadk_defsetting.ini и rkadk_setting.ini должны совпадать; иначе проверка версии не проходит и используется INI по умолчанию. При обновлении SDK набор ini-параметров может изменяться. sensor_count означает фактическое число сенсоров и не может превышать RKADK_MAX_SENSOR_CNT; в источнике сообщается об отладке трёх сенсоров. Если сенсор использует ISP, задайте used_isp=TRUE: масштабирование задаётся разрешением узла ISP, канал VPSS не требуется, vpss_grp и vpss_chn равны 0. Без ISP задайте used_isp=FALSE и соответствующие vpss_grp/vpss_chn; масштабирование выполняет VPSS. При одинаковом разрешении записи, удалённого просмотра и трансляции рекомендуется совместно использовать VENC с одинаковыми параметрами для экономии полосы памяти и памяти. При совместном использовании VENC или одинаковом его разрешении рекомендуется также совместно использовать каналы VPSS для экономии полосы памяти. Рекомендуется gop=framerate, чтобы получать один I-кадр в секунду.

14. Примеры

Ниже приведены функциональные примеры. Перед запуском убедитесь, что используемые узлы не заняты другими приложениями, например mediaserver или ispserver. Параметры по умолчанию рассчитаны на RK EVB. Для другого оборудования задайте соответствующие параметры команд или измените код.

14.1 rkadk_record_test

Описание

Проверка записи. Исходный код: rkadk/examples/rkadk_record_test.c. Быстрый запуск:

./rkadk_record_test

Параметр

Параметры Описание По умолчанию
-a Включить встроенную функцию ISP. Без аргумента используется значение по умолчанию; аргумент задаёт путь к каталогу с файлом aiq. /etc/iqfiles
-I ID камеры 0
-m Проверка двух сенсоров: 0 - ISP-сенсор, 1 - все ISP-сенсоры, 2 - ISP+AHD-сенсоры 0
-p Путь к каталогу INI-конфигурации /data/rkadk
-k Разделять ли видеофайл по I-кадрам Без разделения
-P Включить запись «картинка в картинке» Выключено
-c Число буферов AVS 2
-t Задержка получения миниатюры при включённом File Cache, мс 3000ms
-e Включить EIS Выключено

14.2 rkadk_photo_test

Описание

Проверка фотосъёмки. Исходный код: /rkadk/examples/rkadk_photo_test.c. Быстрый запуск:

./rkadk_photo_test

Параметр

Параметры Описание По умолчанию
-a Включить встроенную функцию ISP. Без аргумента используется значение по умолчанию; аргумент задаёт путь к каталогу с файлом aiq. /etc/iqfiles
-I ID камеры 0
-p Путь к каталогу INI-конфигурации /data/rkadk
-t Тип данных полученного JPG NV12
-m Проверка двух сенсоров: 0 - ISP-сенсор, 1 - все ISP-сенсоры, 2 - ISP+AHD-сенсоры 0
-o Путь к файлу OSD NULL
-W Ширина OSD 0
-H Высота OSD 0

14.3 rkadk_stream_test

Описание

Получить аудиопоток, закодировать и записать в файл; получить видеопоток, закодировать и записать в файл. Исходный код: /rkadk/examples/rkadk_stream_test.c. Быстрый запуск:

./rkadk_stream_test

Параметр

Параметры Описание По умолчанию
-a Включить встроенную функцию ISP. Без аргумента используется значение по умолчанию; аргумент задаёт путь к каталогу с файлом aiq. /etc/iqfiles
-I ID камеры 0
-M Режим проверки: audio, video audio
-e Тип кодирования pcm
-o Путь к выходному файлу /tmp/ai.pcm
-p Путь к каталогу INI-конфигурации /data/rkadk
-m Проверка двух сенсоров: 0 - ISP-сенсор, 1 - все ISP-сенсоры, 2 - ISP+AHD-сенсоры 0

14.4 rkadk_player_test

Описание

Проверка воспроизведения локального файла. Исходный код: /rkadk/examples/rkadk_player_test.c. Быстрый запуск:

./rkadk_player_test

Параметр

Параметры Описание По умолчанию
-i Путь к воспроизводимому файлу /etc/bsa_file/8k8bpsMono.wav
-x Начальная координата X области видео 0
-y Начальная координата Y области видео 0
-W Ширина области видео Физическая ширина экрана
-H Высота области видео Физическая высота экрана
-r Угол поворота видео: 0, 90, 180, 270 0
-p Путь к каталогу INI-конфигурации /data/rkadk
-m Зеркальное отражение видео Выключено (disable)
-f Переворот видео Выключено (disable)
-a Воспроизведение звука: 0 - выключено, 1 - включено 1
-v Включить воспроизведение видео Выключено (disable)
-s Способ композиции слоёв: 0 - RGA, 1 - GPU, 2 - ByPass 0
-P Формат пикселей экрана: 0 - RGB888, 1 - NV12, 2 - RGB565 0
-I Интерфейс дисплея: 0 - DEFAILT, 1 - MIPI, 2 - LCD 1106: 0; другие платформы: 1
-F Частота обновления кадров 30
-t Протокол передачи RTSP: 0 - udp, 1 - tcp 0
-b Чёрный экран после воспроизведения Выключено (disable)
-T Тайм-аут выхода для операций ввода-вывода сокета RTSP, мс Блокировка без тайм-аута
-l ID слоя VO 0
-O Число выходных буферов VDEC 3 [1, 8]
-D Включить стороннюю библиотеку демультиплексирования Выключено (disable)

Примечание

При воспроизведении видеофайлов параметр -v обязателен для включения видео. Зеркальное отражение/переворот нельзя одновременно использовать с поворотом.

14.5 rkadk_thumb_test

Проверка извлечения миниатюры. Исходный код: /rkadk/examples/rkadk_thumb_test.c. Быстрый запуск:

Get MP4 thumbnail: ./rkadk_thumb_test -i test_file.mp4
Get JPG thumbnail: ./rkadk_thumb_test -i test_file.jpg -f jpg -t MPF1

Параметр

Параметры Описание По умолчанию
-i Путь к тестовому файлу Нет
-f Формат файла: mp4, jpg mp4
-t Типы миниатюр JPG: DCF, MPF1, MPF2 DCF
-T Тип выходной миниатюры: JPG, NV12, RGB565, RGB888 JPG
-W Ширина миниатюры Из ini
-H Высота миниатюры Из ini

14.6 rkadk_rtsp_test

Проверка трансляции RTSP. Исходный код: /rkadk/examples/rkadk_rtsp_test.c. Быстрый запуск:

1. Start wifi on the board end
2. Run the board end./rkadk_rtsp_test
3. Open VLC on PC -> Media -> Open network streaming -> Enter the network URL: rtsp://board
end ip address/live/main_stream

Параметр

Параметры Описание По умолчанию
-a Включить встроенную функцию ISP. Без аргумента используется значение по умолчанию; аргумент задаёт путь к каталогу с файлом aiq. /etc/iqfiles
-I ID камеры 0
-p Путь к каталогу INI-конфигурации /data/rkadk
-o Путь к файлу OSD /userdata/rkadk_ARGB8888

14.7 rkadk_rtmp_test

Проверка трансляции RTMP. Исходный код: /rkadk/examples/rkadk_rtmp_test.c. Быстрый запуск:

1. Start wifi on the board
2. Run ./rkadk_rtmp_test on the board
3. Open VLC on the PC -> Media -> Open network streaming -> Enter the network URL:
rtmp://The ip address of the board::1935/live/substream

Параметр

Параметры Описание По умолчанию
-a Включить встроенную функцию ISP. Без аргумента используется значение по умолчанию; аргумент задаёт путь к каталогу с файлом aiq. /etc/iqfiles
-I ID камеры 0
-p Путь к каталогу INI-конфигурации /data/rkadk

14.8 rkadk_storage_test

Описание

Проверка модуля хранения. Исходный код: /rkadk/examples/rkadk_storage_test.c. Быстрый запуск:

./rkadk_storage_test

Параметры: отсутствуют

Примечание

Тест создаёт MP4-файл, заполненный нулями, для проверки автоматического удаления, получения списка файлов и других интерфейсов. Файл не содержит реальных медиаданных и не воспроизводится.

14.9 rkadk_disp_test

Проверка локального просмотра. Исходный код: /rkadk/examples/rkadk_disp_test.c. Быстрый запуск:

./rkadk_disp_test

Параметр

Параметры Описание По умолчанию
-a Включить встроенную функцию ISP. Без аргумента используется значение по умолчанию; аргумент задаёт путь к каталогу с файлом aiq. /etc/iqfiles
-I ID камеры 0
-p Путь к каталогу INI-конфигурации /data/rkadk

14.10 rkadk_ui_test

Проверка наложения UI. Исходный код: /rkadk/examples/rkadk_ui_test.c. Быстрый запуск:

./rkadk_ui_test

Параметр

Параметры Описание По умолчанию
-a Включить встроенную функцию ISP. Без аргумента используется значение по умолчанию; аргумент задаёт путь к каталогу с файлом aiq. /etc/iqfiles
-I ID камеры 0
-p Путь к каталогу INI-конфигурации /data/rkadk
-W Ширина области отображения 720
-H Высота области отображения 1280
-f Формат пикселей экрана: 0 - RGB888, 1 - NV12, 2 - RGB565, 3 - RGB444 0

14.11 rkadk_muxer_test

Проверка мультиплексора. Исходный код: /rkadk/examples/rkadk_muxer_test.c. Быстрый запуск:

./rkadk_muxer_test

Параметры

Параметры Описание По умолчанию
-a Включить встроенную функцию ISP. Без аргумента используется значение по умолчанию; аргумент задаёт путь к каталогу с файлом aiq. /etc/iqfiles
-W Ширина видео 1920
-H Высота видео 1080
-f Частота кадров 30
-C Тип кодека: 0 - H264, 1 - H265 H264
-d Узел аудиоустройства hw:0,0
-k Разделение по ключевым кадрам Выключено
-c Число потоков: 1 - основной, 2 - основной и дополнительный 1
-t Обрабатывать сторонний поток Включено
-A Включить звук Включено
-p Длительность предварительной записи, с 0
-I Файл стороннего I-кадра null
-P Файл стороннего P-кадра null
-n Число записываемых потоков -1

Другие статьи по теме → · Учебные маршруты →