Rockchip · AI & Linux Hub

Display und Audio

Rockchip RKADK: Handbuch zur Anwendungsentwicklung

Rockchip RKADK: Handbuch zur Anwendungsentwicklung — V2.3.2

· ArmSoM Editorial · Rockchip source documentation · 122 Min. Lesezeit

Grundlage sind die chinesischen und englischen Rockchip-RKADK-Dokumente V2.3.2. Alle 14 technischen Kapitel, APIs, Typdefinitionen und Beispiele bleiben erhalten. Für ArmSoM konkrete Platine, SoC, SDK/BSP, Kernel und Peripherie prüfen; die Unterstützung aller ArmSoM-Platinen wird nicht zugesichert. Die Beispiele stammen aus den Quellen. Es wurden keine Befehle oder Hardwaretests ausgeführt.

In Kapitel 3 nummeriert Chinesisch Überblick, API und Datentypen als 3.1, 3.2 und 3.3. Englisch lässt den Überblick unnummeriert und verwendet 3.1/3.2 für API/Typen. Die jeweilige Quellnummerierung bleibt erhalten. Die chinesische Überschrift 3.3.6 lautet RKADK_MUXER_MANUAL_SPLIT_ATTR_S, die englische 3.2.6 RKADK_REC_MANUAL_SPLIT_ATTR_S; den Typ an den SDK-Headern prüfen. Die englische Deklaration von RKADK_RECORD_Single_Stop schreibt RKADK_STREAM_TYPE_EenStrmType zusammen; die Quellschreibweise bleibt erhalten, die Trennung von Typ und Parameter ist am SDK zu prüfen.

Beide Quellen sind auf 2025-08-04 datiert. Die Struktur für manuelles Aufteilen endet mit dem typedef-Namen MUXER_MANUAL_SPLIT_ATTR_S; die folgende Typaufzählung endet entgegen ihrer Überschrift mit RKADK_MUXER_MANUAL_SPLIT_ATTR_S. Diese Quelldefinitionen bleiben erhalten und sind keine geprüften kompilierbaren SDK-Header. Auch RKADK_MUXER_Disbale, librokadk.so, RGBA9888 und RV1103/RV1103 in der Player-Plattformliste sind Quellschreibweisen; am SDK prüfen. Leerzeichen an umgebrochenen Deklarationszeilen wurden wiederhergestellt, ohne Parameter, Zeiger oder Bezeichner zu ändern.

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

1. Systemübersicht

RKADK stellt grundlegende Komponenten für Videoaufzeichnung, Fotoaufnahme, Wiedergabe und Vorschau bereit und vereinfacht damit die schnelle Entwicklung von Audio-/Videoaufzeichnungsanwendungen. Der Baustein unterstützt nur einen Prozess; mehrere gleichzeitig arbeitende Prozesse werden, sofern nicht anders angegeben, nicht unterstützt.

1.1 Versionen

Version 1.x.x: zusätzliche Kapselung von rkmedia und rockit, Repository master. Version 2.x.x: zusätzliche Kapselung von rockit, Repository develop.

2. Aufzeichnung

2.1 Überblick

Grundlegende Videoaufzeichnung mit Erstellen und Zerstören sowie Starten und Stoppen von Aufgaben, manuellem Aufteilen von Dateien, Zeitraffer, Voraufzeichnung und Bild-in-Bild (PiP). Eine Aufgabe liest Video- und Audiodaten aus dem Parametermodul, startet und stoppt VENC und AENC und erstellt über den Muxer Dateien, in die sie Frames schreibt. Zu jeder Aufgabe gehören eine oder mehrere Dateien. Jede Datei benötigt einen Videokodierungskanal; für Ton kommt ein Audiokodierungskanal hinzu. Dateien derselben Aufgabe haben denselben Aufzeichnungstyp und dieselben Aufteilungsbedingungen, bei Zeitraffer auch dasselbe Intervall. Unterschiedliche Aufzeichnungsdauern sind möglich.

Post AI ISP: RV1106/RV1126/RV1109 unterstützen Rauschunterdrückung bei schwachem Licht und intelligente Verbesserung der VI-Ausgabebilder durch AI ISP. Dadurch entstehen auch bei wenig Licht klarere Bilder mit geringem Rauschen und ohne Nachzieheffekte.

2.2 API-Referenz

2.2.1 RKADK_RECORD_Create

Beschreibung

Videoaufzeichnungsaufgabe erstellen.

Syntax

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

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pstRecAttr Attribute der Aufzeichnungsaufgabe Eingabe
ppRecorder Zeiger auf die erstellte Aufzeichnungsaufgabe Ausgabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_record.h. Bibliothek: librkadk.so.

Hinweis

Eine Aufgabe unterstützt höchstens zwei gleichzeitige Aufzeichnungsdateien. Jede Datei enthält mindestens einen Videostream und höchstens einen Video- und einen Audiostream. Wiederholtes Erstellen derselben Aufgabe wird nicht unterstützt. Nach dem Erstellen startet RKADK_RECORD_Start die Aufnahme. PiP muss beim Aufruf von RKADK_RECORD_Create über stPipAttr aktiviert werden; dadurch wird der PiP-Pfad erzeugt.

Beispiel

rkadk_record_test.

Siehe auch

RKADK_RECORD_Destroy.

2.2.2 RKADK_RECORD_Destroy

Beschreibung

Videoaufzeichnungsaufgaben zerstören.

Syntax

RKADK_S32 RKADK_RECORD_Destroy(RKADK_MW_PTR pRecorder);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pRecorder Zeiger auf die Aufzeichnungsaufgabe Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_record.h. Bibliothek: librkadk.so.

Hinweis

RKADK_RECORD_Destroy darf erst nach dem Erstellen einer Aufgabe aufgerufen werden. Nur erstellte Aufgaben können zerstört werden; wiederholtes Zerstören derselben Aufgabe wird nicht unterstützt.

Beispiel

rkadk_record_test.

Siehe auch

RKADK_RECORD_Create

2.2.3 RKADK_RECORD_Start

Beschreibung

Aufzeichnungsaufgabe starten.

Syntax

RKADK_S32 RKADK_RECORD_Start(RKADK_MW_PTR pRecorder);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pRecorder Zeiger auf die Aufzeichnungsaufgabe Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_record.h. Bibliothek: librkadk.so.

Hinweis

RKADK_RECORD_Start darf erst nach dem Erstellen der Aufgabe aufgerufen werden. Eine gestoppte Aufgabe kann erneut gestartet werden.

Beispiel

rkadk_record_test.

Siehe auch

RKADK_RECORD_Stop

2.2.4 RKADK_RECORD_Stop

Beschreibung

Aufzeichnungsaufgabe stoppen.

Syntax

RKADK_S32 RKADK_RECORD_Stop(RKADK_MW_PTR pRecorder);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pRecorder Zeiger auf die Aufzeichnungsaufgabe Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_record.h. Bibliothek: librkadk.so.

Hinweis

RKADK_RECORD_Stop darf erst nach dem Erstellen der Aufgabe aufgerufen werden. Wiederholtes Stoppen derselben Aufgabe wird nicht unterstützt.

Beispiel

rkadk_record_test.

Siehe auch

RKADK_RECORD_Start

2.2.5 RKADK_RECORD_Single_Start

Beschreibung

Aufzeichnung des angegebenen Streams starten.

Syntax

RKADK_S32 RKADK_RECORD_Single_Start(RKADK_MW_PTR pRecorder, RKADK_STREAM_TYPE_E enStrmType);

Parameter

Parametername Beschreibung Input/Output
pRecorder Zeiger auf die Aufzeichnungsaufgabe Eingabe
enStrmType Streamtyp Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_record.h. Bibliothek: librkadk.so.

Hinweise

RKADK_RECORD_Single_Start darf erst nach dem Erstellen der Aufgabe aufgerufen werden und wird zusammen mit RKADK_RECORD_Single_Stop verwendet. Nach dem Stoppen ist ein erneuter Start möglich.

Beispiel

rkadk_record_test.

Verwandte Themen

RKADK_RECORD_Single_Stop.

2.2.6 RKADK_RECORD_Single_Stop

Beschreibung

Aufzeichnung des angegebenen Streams stoppen.

Syntax

RKADK_S32 RKADK_RECORD_Single_Stop(RKADK_MW_PTR pRecorder, RKADK_STREAM_TYPE_EenStrmType);

Parameter

Parametername Beschreibung Input/Output
pRecorder Zeiger auf die Aufzeichnungsaufgabe Eingabe
enStrmType Streamtyp Eingabe

Rückgabewerte

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_record.h. Bibliothek: librkadk.so.

Hinweise

RKADK_RECORD_Stop darf erst nach dem Erstellen der Aufgabe aufgerufen werden und wird zusammen mit RKADK_RECORD_Single_Start verwendet. Wiederholtes Stoppen derselben Aufgabe wird nicht unterstützt.

Beispiel

rkadk_record_test.

Verwandte Themen

RKADK_RECORD_Single_Start

2.2.7 RKADK_RECORD_Reset

Beschreibung

Aufzeichnungsaufgabe neu konfigurieren.

Syntax

RKADK_S32 RKADK_RECORD_Reset(RKADK_MW_PTR *ppRecorder);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
ppRecorder Zeiger auf die Aufzeichnungsaufgabe Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_record.h. Bibliothek: librkadk.so.

Hinweis

RKADK_RECORD_Reset darf erst nach dem Erstellen der Aufgabe aufgerufen werden. Bei Änderung von Auflösung, Framerate, Bitrate, Kodierungs- oder Aufzeichnungstyp die Record-Parameter in der ini-Datei über RKADK_PARAM_SetCamParam anpassen. RV1126/RV1109 und RK3576 unterstützen keinen dynamischen Wechsel von Auflösung und Kodierungstyp.

Zuerst RKADK_RECORD_Destroy aufrufen, dann die neue Auflösung oder den Kodierungstyp einstellen und anschließend erneut RKADK_RECORD_Create aufrufen. Teilen sich Record und andere Module den VI-Kanal, müssen ihre Auflösungen gleichzeitig umgestellt werden, damit VI und VENC übereinstimmen.

Beispiel

rkadk_record_test.

Siehe auch

Keine

2.2.8 RKADK_RECORD_ManualSplit

Beschreibung

Videodateien manuell aufteilen.

Syntax

RKADK_S32 RKADK_RECORD_ManualSplit(RKADK_MW_PTR pRecorder, RKADK_REC_MANUAL_SPLIT_ATTR_S *pstSplitAttr);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pRecorder Zeiger auf die Aufzeichnungsaufgabe Eingabe
pstSplitAttr Attribute der manuellen Aufteilung Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_record.h. Bibliothek: librkadk.so.

Hinweis

RKADK_RECORD_ManualSplit darf erst nach dem Erstellen der Aufgabe aufgerufen werden. Erneutes manuelles Aufteilen ist auch vor Abschluss der vorherigen Aufteilung möglich.

Beispiel

rkadk_record_test.

Siehe auch

Nein

2.2.9 RKADK_RECORD_GetAencChn

Beschreibung

ID des AENC-Kanals für die Aufzeichnung abrufen.

Syntax

RKADK_S32 RKADK_RECORD_GetAencChn();

Rückgabewert

ID des für die Aufzeichnung verwendeten AENC-Kanals.

Voraussetzungen

Headerdatei: rkadk_record.h. Bibliothek: librkadk.so.

2.2.10 RKADK_GetThmInMp4

Beschreibung

Vorschaubilddaten aus MP4-Dateien abrufen.

Syntax

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

Parameter

Parametername Beschreibung Eingabe/Ausgabe
u32CamId Kamera-ID Eingabe
pszFileName MP4-Dateipfad Eingabe
pu8Buf Eingabe: Zeiger auf Vorschaubildspeicher; Ausgabe: tatsächliche Vorschaubilddaten Input/Output
pu32Size Eingabe: Länge von pu8Buf; Ausgabe: tatsächliche Länge der Vorschaubilddaten Input/Output

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_thumb.h. Bibliothek: librkadk.so.

Beispiel

rkadk_thumb_test

Siehe auch

Keine

2.2.11 RKADK_GetThmInMp4Ex

Beschreibung

Die erweiterte Schnittstelle zum Abrufen von MP4-Vorschaubildern unterstützt die Angabe von Typ und Auflösung des Ausgabebildes. Zusammen mit RKADK_ThmBufFree verwenden.

Syntax

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

Parameter

Parametername Beschreibung Eingabe/Ausgabe
u32CamId Kamera-ID Eingabe
pszFileName MP4-Dateipfad Eingabe
pstThumbAttr Zeiger auf die Vorschaubild-Attributstruktur Eingabe/Ausgabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_thumb.h. Bibliothek: librkadk.so.

Beispiel

rkadk_thumb_test

Siehe auch

RKADK_ThmBufFree

2.2.12 RKADK_ThmBufFree

Beschreibung

Von RKADK_GetThmInMp4Ex angeforderten Speicher freigeben. Zusammen mit RKADK_GetThmInMp4Ex verwenden.

Syntax

RKADK_S32 RKADK_ThmBufFree(RKADK_THUMB_ATTR_S *pstThumbAttr);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pstThumbAttr Zeiger auf die Vorschaubild-Attributstruktur Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_thumb.h. Bibliothek: librkadk.so.

Beispiel

rkadk_thumb_test

Siehe auch

RKADK_GetThmInMp4Ex

2.2.13 RKADK_RECORD_SetRotation

Beschreibung

Drehung der Aufnahme einstellen.

Syntax

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

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pRecorder Zeiger auf die Aufzeichnungsaufgabe Eingabe
enRotation Drehwinkel Eingabe
enStreamType Streamtyp Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_record.h. Bibliothek: librkadk.so.

Beispiel

rkadk_record_test

2.2.14 RKADK_RECORD_ToggleMirror

Beschreibung

Spiegelung der Aufnahme einstellen.

Syntax

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

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pRecorder Zeiger auf die Aufzeichnungsaufgabe Eingabe
enStreamType Streamtyp Eingabe
mirror Spiegelung aktivieren Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_record.h. Bibliothek: librkadk.so.

2.2.15 RKADK_RECORD_ToggleFlip

Beschreibung

Vertikales Spiegeln der Aufnahme einstellen.

Syntax

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

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pRecorder Zeiger auf die Aufzeichnungsaufgabe Eingabe
enStreamType Streamtyp Eingabe
flip Vertikales Spiegeln aktivieren Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_record.h. Bibliothek: librkadk.so.

2.2.16 RKADK_RECORD_FileCacheInit

Beschreibung

Die Initialisierung von File Cache glättet Dateischreibvorgänge. Bei aktiviertem File Cache werden Dateien über DirectIO auf das Speichermedium geschrieben; der Cache des Kernels ist dabei unwirksam.

Syntax

RKADK_S32 RKADK_RECORD_FileCacheInit(FILE_CACHE_ARG *pstFileCacheAttr)

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pstFileCacheAttr Zeiger auf File-Cache-Attribute Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_record.h. Bibliothek: librkadk.so.

Hinweis

File Cache ist standardmäßig deaktiviert. Zum Aktivieren die Umgebungsvariable file_cache_env setzen.

export file_cache_env=1

Bei aktiviertem File Cache diese Schnittstelle einmal vor RKADK_RECORD_Create aufrufen; andernfalls ist kein Aufruf erforderlich. File Cache benötigt zusätzlichen Speicher entsprechend u32TotalCache. Paarweise mit RKADK_RECORD_FileCacheDeInit verwenden.

Beispiel

rkadk_record_test

2.2.17 RKADK_RECORD_FileCacheDeInit

Beschreibung

File Cache deinitialisieren

Syntax

RKADK_S32 RKADK_RECORD_FileCacheDeInit();

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_record.h. Bibliothek: librkadk.so.

Hinweis

Zusammen mit RKADK_RECORD_FileCacheInit verwenden. Bei aktiviertem File Cache nach RKADK_RECORD_Destroy aufrufen; andernfalls ist kein Aufruf nötig. rkadk_record_test.

2.2.18 RKADK_RECORD_FileCacheSetMode

Beschreibung

Aufzeichnungstyp für File Cache einstellen.

Syntax

void RKADK_RECORD_FileCacheSetMode(RKADK_REC_TYPE_E enRecType);

Parameter

Parametername Beschreibung Input/Output
enRecType Aufzeichnungstyp Eingabe

Voraussetzungen

Headerdatei: rkadk_record.h. Bibliothek: librkadk.so.

Hinweise

Bei aktiviertem File Cache muss beim Wechsel des Aufzeichnungstyps dessen neuer Typ über diese API gesetzt werden. rkadk_aov_record_test.

2.2.19 RKADK_MEDIA_EnablePostIsp

Beschreibung

Post AI ISP aktivieren. Zusätzlich zur Schnittstelle lässt sich Post AI ISP über post_aiisp in der Sensor-ini aktivieren.

Syntax

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

Parameter

Parametername Beschreibung Eingabe/Ausgabe
u32CamId Kamera-ID Eingabe
enStrmType Streamtyp Eingabe
pstPostIspAttr Zeiger auf Post-AI-ISP-Attribute Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_media_comm.h. Bibliothek: librkadk.so.

2.2.20 RKADK_MEDIA_SetPostIspAttr

Beschreibung

Post-AI-ISP-Attribute dynamisch einstellen.

Syntax

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

Parameter

Parametername Beschreibung Eingabe/Ausgabe
u32CamId Kamera-ID Eingabe
enStrmType Streamtyp Eingabe
bEnable Post-AI-ISP-Schalter, dynamisches Attribut Eingabe
pstPostIspAttr Zeiger auf Post-AI-ISP-Attribute Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_media_comm.h. Bibliothek: librkadk.so.

2.2.21 RKADK_RECORD_SetPipAttr

Beschreibung

Bild-in-Bild-Attribute (PiP) dynamisch einstellen.

Syntax

RKADK_S32 RKADK_RECORD_SetPipAttr(RKADK_MW_PTR pRecorder, RKADK_PIP_ATTR_S *pstPipAttr);

Parameter

Parametername Beschreibung Input/Output
pRecorder Zeiger auf die Aufzeichnungsaufgabe Eingabe
pstPipAttr Bild-in-Bild-Attribute Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_record.h.

Bibliothek: librkadk.so. Hinweis: PiP beim Aufruf von RKADK_RECORD_Create über stPipAttr aktivieren; dadurch wird der PiP-Pfad erstellt.

2.3 Datentypen

Wichtige Datentypen des Aufzeichnungsmoduls: RKADK_MW_PTR - Aufgabenzeiger; RECORD_FILE_NUM_MAX - maximale Anzahl gleichzeitig aufgezeichneter Dateien einer Aufgabe; RKADK_REC_EVENT_CALLBACK_FN - Ereignis-Callback; RKADK_REC_TYPE_E - Aufzeichnungstypen; RKADK_REC_REQUEST_FILE_NAMES_FN - Funktion zum Anfordern von Dateinamen; RKADK_REC_PTS_CALLBACK_FN - Callback für Videoframe-Zeitstempel; RKADK_RECORD_ATTR_S - Aufgabenattribute; RKADK_REC_MANUAL_SPLIT_ATTR_S - manuelle Aufteilung; FILE_CACHE_ARG - File-Cache-Attribute; RKADK_POST_ISP_ATTR_S - Post-AI-ISP-Attribute; RKADK_MOUNT_SDCARD_FN - SD-Mount-Funktion; RKADK_AOV_ATTR_S - AOV-Attribute; RKADK_PIP_ATTR_S - PiP-Attribute.

2.3.1 Allgemeine Datentypen

Beschreibung

Definition der grundlegenden Datentypen.

Definition

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

Beschreibung

Aufgabenzeiger definieren

Definition

typedef RKADK_VOID *RKADK_MW_PTR;

2.3.3 RKADK_MAX_SENSOR_CNT

Beschreibung

Maximale unterstützte Sensoranzahl; an die konkrete Konfiguration anpassbar

Definition

#define RKADK_MAX_SENSOR_CNT 8

2.3.4 RECORD_FILE_NUM_MAX

Beschreibung

Maximale Anzahl gleichzeitig von einer Aufgabe aufgezeichneter Dateien.

Definition

#define RECORD_FILE_NUM_MAX 2

2.3.5 RKADK_REC_EVENT_CALLBACK_FN

Beschreibung

Zeiger auf den Aufzeichnungsereignis-Callback.

Definition

typedef RKADK_MUXER_EVENT_CALLBACK_FN RKADK_REC_EVENT_CALLBACK_FN;

Verwandte Datentypen und Schnittstellen

RKADK_MUXER_EVENT_CALLBACK_FN

2.3.6 RKADK_REC_TYPE_E

Beschreibung

Aufzählung der Aufzeichnungstypen.

Definition

typedef RKADK_MUXER_REC_TYPE_E RKADK_REC_TYPE_E;

Verwandte Datentypen und Schnittstellen

RKADK_MUXER_REC_TYPE_E

2.3.7 RKADK_REC_REQUEST_FILE_NAMES_FN

Beschreibung

Zeiger auf die Funktion zum Anfordern eines Videodateinamens.

Definition

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

Member

Membername Beschreibung
pRecorder Zeiger auf die Aufzeichnungsaufgabe
u32FileCnt Anzahl angeforderter Dateinamen
paszFilename Puffer für Dateinamen

Verwandte Datentypen und Schnittstellen

RKADK_MW_PTR RKADK_RECORD_ATTR_S

2.3.8 RKADK_REC_PTS_CALLBACK_FN

Beschreibung

Zeiger auf den Callback für Videoframe-Zeitstempel.

Definition

typedef RKADK_MUXER_PTS_CALLBACK_FN RKADK_REC_PTS_CALLBACK_FN;

Verwandte Datentypen und Schnittstellen

RKADK_MUXER_PTS_CALLBACK_FN RKADK_RECORD_ATTR_S

2.3.9 RKADK_MOUNT_SDCARD_FN

Beschreibung

Zeiger auf die Funktion zum Einhängen der SD-Karte.

Definition

typedef int (*RKADK_MOUNT_SDCARD_FN)(void);

Verwandte Datentypen und Schnittstellen

RKADK_RECORD_ATTR_S

2.3.10 RKADK_RECORD_ATTR_S

Beschreibung

Attributstruktur der Aufzeichnungsaufgabe.

Definition

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;

Member

Membername Beschreibung
s32CamID Kamera-ID
u32FragKeyFrame Videodatei an I-Frames aufteilen
pfnRequestFileNames Zeiger auf die Dateinamenanforderungsfunktion
pfnEventCallback Zeiger auf den Aufzeichnungsereignis-Callback
stAovAttr AOV-Attribute (Always On Video)
pstPostIspAttr Post-AI-ISP-Attribute
pfnMountSdcard Zeiger auf die SD-Mount-Funktion
stPipAttr Bild-in-Bild-Attribute
u32GetThumbTime Verzögerung beim Abrufen des Vorschaubildes mit aktiviertem File Cache, ms
pstThirdMuxerAttr Zeiger auf Attribute eines Drittanbieter-Muxers

Verwandte Datentypen und Schnittstellen

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

Beschreibung

Attributstruktur der manuellen Aufteilung.

Definition

typedef MUXER_MANUAL_SPLIT_ATTR_S RKADK_REC_MANUAL_SPLIT_ATTR_S;

Verwandte Datentypen und Schnittstellen

MUXER_MANUAL_SPLIT_ATTR_S RKADK_RECORD_ManualSplit

2.3.12 FILE_CACHE_ARG

Beschreibung

Attributstruktur von File Cache.

Definition

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;

Member

Membername Beschreibung
sdcard_path Mount-Pfad der SD-Karte
write_cache Cache-Größe pro geschriebener Datei
total_cache Gesamte Cache-Größe
write_thread_arg Attribute des Schreibthreads
sdcard_arg SD-Karten-Attribute

Verwandte Datentypen und Schnittstellen

RKADK_RECORD_FileCacheInit FILE_WRITE_THREAD_ARG FILE_SDCARD_ARG

2.3.13 FILE_WRITE_THREAD_ARG

Beschreibung

Attributstruktur des Schreibthreads.

Definition

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;

Member

Membername Beschreibung
sched_policy Thread-Scheduling-Strategie
priority Thread-Priorität

Verwandte Datentypen und Schnittstellen

RKADK_RECORD_FileCacheInit

FILE_CACHE_ARG

2.3.14 FILE_SDCARD_ARG

Beschreibung

Attributstruktur der SD-Karte.

Definition

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;

Member

Membername Beschreibung
lock Sperrfunktion für SD-Kartenoperationen
unlock Entsperrfunktion für SD-Kartenoperationen
mount_sdcard SD-Mount-Funktion
umount_sdcard SD-Unmount-Funktion

Verwandte Datentypen und Schnittstellen

FILE_CACHE_ARG

2.3.15 RKADK_POST_ISP_ATTR_S

Beschreibung

Attributstruktur von Post AI ISP.

Definition

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;

Member

Membername Beschreibung
stAiIspCallback Callback zum Aktualisieren der AI-NR-Parameter
pModelFilePath Pfad zur Post-AI-ISP-Modelldatei
u32FrameBufCnt Anzahl der Framepuffer, standardmäßig 1

Verwandte Datentypen und Schnittstellen

RKADK_MEDIA_EnablePostIsp RKADK_MEDIA_SetPostIspAttr

2.3.16 RKADK_AOV_ATTR_S

Beschreibung

Attributstruktur von AOV.

Definition

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

Member

Membername Beschreibung
pfnSingleFrame Funktionszeiger für den Einzelbildmodus
pfnMultiFrame Funktionszeiger für den Mehrbildmodus

Verwandte Datentypen und Schnittstellen

RKADK_RECORD_Create

2.3.17 RKADK_PIP_ATTR_S

Beschreibung

Attributstruktur für Bild-in-Bild.

Definition

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;

Member

Membername Beschreibung
bEnablePip Bild-in-Bild aktivieren
u32AvsGrpId AVS-Gruppen-ID für Bild-in-Bild
u32AvsBufCnt Maximale Anzahl der AVS-Zielbildpuffer
u32SubCamId Kamera-ID des Unterfensters
enSubStreamType Streamtyp des Unterfensters
stSubRect Anzeigebereich des Unterfensters im Hauptfenster

Verwandte Datentypen und Schnittstellen

RKADK_RECORD_Create RKADK_RECORD_SetPipAttr

3. Muxer

Das Modul bietet Erstellen, Zerstören, Starten und Stoppen von Muxern sowie manuelle Dateiaufteilung. Jeder Muxer verpackt gleichzeitig bis zu zwei Dateien. Jede Datei enthält mindestens einen Videostream und höchstens einen Video- und einen Audiostream. Mehrere Muxer können gleichzeitig erstellt werden. Streams von Drittanbietern werden unterstützt.

3.1 API-Referenz

3.1.1 RKADK_MUXER_Create

Beschreibung

Muxer erstellen.

Syntax

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

Parameter

Parametername Beschreibung Input/Output
pstMuxerAttr Muxer-Attribute Eingabe
ppHandle Zeiger auf den erstellten Muxer Ausgabe

Rückgabewerte

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_muxer.h. Bibliothek: librkadk.so.

Hinweise

Wiederholtes Erstellen desselben Muxers wird nicht unterstützt. Nach dem Erstellen zunächst RKADK_MUXER_Enable zum Aktivieren, dann RKADK_MUXER_Start zum Starten aufrufen.

Beispiel

rkadk_muxer_test.

Verwandte Themen

RKADK_MUXER_Destroy.

3.1.2 RKADK_MUXER_Destroy

Beschreibung

Muxer zerstören.

Syntax

RKADK_S32 RKADK_MUXER_Destroy(RKADK_MW_PTR pHandle);

Parameter

Parametername Beschreibung Input/Output
pHandle Muxer-Zeiger Eingabe

Rückgabewerte

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_muxer.h. Bibliothek: librkadk.so.

Hinweise

Nur erstellte Muxer können zerstört werden; wiederholtes Zerstören wird nicht unterstützt. Vorher mit RKADK_MUXER_Stop stoppen und anschließend mit RKADK_MUXER_Disable deaktivieren.

Beispiel

rkadk_muxer_test.

Verwandte Themen

RKADK_MUXER_Create

3.1.3 RKADK_MUXER_Enable

Beschreibung

Muxer aktivieren.

Syntax

RKADK_S32 RKADK_MUXER_Enable(RKADK_MUXER_ATTR_S *pstMuxerAttr, RKADK_MW_PTR pHandle);

Parameter

Parametername Beschreibung Input/Output
pstMuxerAttr Muxer-Attribute Eingabe
pHandle Muxer-Zeiger Eingabe

Rückgabewerte

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_muxer.h. Bibliothek: librkadk.so.

Hinweise

Zusammen mit RKADK_MUXER_Disable verwenden.

Beispiel

rkadk_muxer_test.

Verwandte Themen

RKADK_MUXER_Disable.

3.1.4 RKADK_MUXER_Disable

Beschreibung

Muxer deaktivieren.

Syntax

RKADK_S32 RKADK_MUXER_Disable(RKADK_MW_PTR pHandle);

Parameter

Parametername Beschreibung Input/Output
pHandle Muxer-Zeiger Eingabe

Rückgabewerte

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_muxer.h. Bibliothek: librkadk.so.

Hinweise

Zusammen mit RKADK_MUXER_Enable verwenden.

Beispiel

rkadk_muxer_test.

Verwandte Themen

RKADK_MUXER_Enable

3.1.5 RKADK_MUXER_Start

Beschreibung

Muxer initialisieren.

Syntax

RKADK_S32 RKADK_MUXER_Start(RKADK_MW_PTR pHandle);

Parameter

Parametername Beschreibung Input/Output
pHandle Muxer-Zeiger Eingabe

Rückgabewerte

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_muxer.h. Bibliothek: librkadk.so.

Hinweise

Ein gestoppter Muxer kann erneut gestartet werden.

Beispiel

rkadk_muxer_test.

Verwandte Themen

RKADK_MUXER_Stop

3.1.6 RKADK_MUXER_Stop

Beschreibung

Muxer stoppen.

Syntax

RKADK_S32 RKADK_MUXER_Stop(RKADK_MW_PTR pHandle);

Parameter

Parametername Beschreibung Input/Output
pHandle Muxer-Zeiger Eingabe

Rückgabewerte

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_muxer.h. Bibliothek: librkadk.so.

Hinweise

Wiederholtes Stoppen desselben Muxers wird nicht unterstützt.

Beispiel

rkadk_muxer_test.

Verwandte Themen

RKADK_MUXER_Start

3.1.7 RKADK_MUXER_Single_Start

Beschreibung

Muxer des angegebenen Streams starten.

Syntax

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

Parameter

Parametername Beschreibung Input/Output
pHandle Muxer-Zeiger Eingabe
s32MuxerId Muxer-ID Eingabe
s32VencChn VENC-Kanal; für einen Drittanbieter-Stream muss s32VencChn auf -1 gesetzt werden Eingabe

Rückgabewerte

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_muxer.h. Bibliothek: librkadk.so.

Hinweise

Zusammen mit RKADK_MUXER_Single_Stop verwenden. Ein erneuter Start nach dem Stoppen wird unterstützt.

Beispiel

rkadk_muxer_test.

Verwandte Themen

RKADK_MUXER_Single_Stop

3.1.8 RKADK_MUXER_Single_Stop

Beschreibung

Muxer des angegebenen Streams stoppen.

Syntax

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

Parameter

Parametername Beschreibung Input/Output
pHandle Muxer-Zeiger Eingabe
s32MuxerId Muxer-ID Eingabe
s32VencChn VENC-Kanal; beim Verpacken eines Drittanbieter-Streams muss s32VencChn auf -1 gesetzt werden Eingabe

Rückgabewerte

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_muxer.h. Bibliothek: librkadk.so.

Hinweise

Zusammen mit RKADK_MUXER_Single_Start verwenden. Wiederholtes Stoppen desselben Muxers wird nicht unterstützt.

Beispiel

rkadk_muxer_test.

Verwandte Themen

RKADK_MUXER_Single_Start

3.1.9 RKADK_MUXER_ManualSplit

Beschreibung

Dateien manuell aufteilen.

Syntax

RKADK_S32 RKADK_MUXER_ManualSplit(RKADK_MW_PTR pHandle, RKADK_MUXER_MANUAL_SPLIT_ATTR_S *pstSplitAttr);

Parameter

Parametername Beschreibung Input/Output
pRecorder Muxer-Zeiger Eingabe
pstSplitAttr Attribute der manuellen Aufteilung Eingabe

Rückgabewerte

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_muxer.h. Bibliothek: librkadk.so.

Hinweise

Erneutes manuelles Aufteilen vor Abschluss der vorherigen Aufteilung wird unterstützt.

Beispiel

rkadk_muxer_test

3.1.10 RKADK_MUXER_Reset

Beschreibung

Muxer zurücksetzen.

Syntax

RKADK_S32 RKADK_MUXER_Reset(RKADK_MW_PTR pHandle);

Parameter

Parametername Beschreibung Input/Output
pHandle Muxer-Zeiger Eingabe

Rückgabewerte

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_muxer.h. Bibliothek: librokadk.so.

Hinweise

Vor RKADK_MUXER_Reset den Muxer mit RKADK_MUXER_SetResetState in den Reset-Zustand versetzen. Danach mit RKADK_MUXER_ResetParam die Parameter neu konfigurieren und anschließend mit RKADK_MUXER_SetResetState den Reset-Zustand wieder verlassen.

Beispiel

rkadk_muxer_test.

Verwandte Themen

RKADK_MUXER_ResetParam RKADK_MUXER_SetResetState

3.1.11 RKADK_MUXER_ResetParam

Beschreibung

Muxer-Parameter neu konfigurieren.

Syntax

RKADK_S32 RKADK_MUXER_ResetParam(RKADK_MUXER_ATTR_S *pstMuxerAttr, RKADK_MW_PTR pHandle);

Parameter

Parametername Beschreibung Input/Output
pstMuxerAttr Muxer-Attribute Eingabe
pHandle Muxer-Zeiger Eingabe

Rückgabewerte

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_muxer.h. Bibliothek: librkadk.so.

Beispiel

rkadk_muxer_test.

Verwandte Themen

RKADK_MUXER_Reset RKADK_MUXER_SetResetState

3.1.12 RKADK_MUXER_SetResetState

Beschreibung

Reset-Zustand des Muxers setzen.

Syntax

void RKADK_MUXER_SetResetState(RKADK_MW_PTR pHandle, bool state);

Parameter

Parametername Beschreibung Input/Output
pHandle Muxer-Zeiger Eingabe
state Reset-Zustand: True vor dem Reset, False danach Eingabe

Voraussetzungen

Headerdatei: rkadk_muxer.h. Bibliothek: librkadk.so.

Beispiel

rkadk_muxer_test.

Verwandte Themen

RKADK_MUXER_Reset RKADK_MUXER_ResetParam

3.1.13 RKADK_MUXER_BuildInThumb

Beschreibung

Vorschaubilder in Dateien einbetten.

Syntax

RKADK_S32 RKADK_MUXER_BuildInThumb(RKADK_MW_PTR pHandle, RKADK_MUXER_THUMB_INFO_S stThumbInfo);

Parameter

Parametername Beschreibung Input/Output
pHandle Encoder-Zeiger Eingabe
stThumbInfo Vorschaubildinformationen Eingabe

Voraussetzungen

Headerdatei: rkadk_muxer.h. Bibliothek: librkadk.so.

Hinweise

Zum Einbetten von Vorschaubildern bei RKADK_MUXER_Create deren Auflösung korrekt einstellen, damit Speicherplatz reserviert wird. Nur MP4-Dateien unterstützen eingebettete Vorschaubilder.

Beispiel

rkadk_muxer_test.

3.1.14 RKADK_MUXER_WriteVideoFrame

Beschreibung

Videostreamdaten schreiben.

Syntax

int RKADK_MUXER_WriteVideoFrame(RKADK_MUXER_DATA_S stData, void *handle);

Parameter

Parametername Beschreibung Input/Output
handle Muxer-Zeiger Eingabe
stData Videostreamdaten Eingabe

Rückgabewerte

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_muxer.h. Bibliothek: librkadk.so.

Beispiel

rkadk_muxer_test.

3.1.15 RKADK_MUXER_WriteAudioFrame

Beschreibung

Audiostreamdaten schreiben.

Syntax

int RKADK_MUXER_WriteAudioFrame(RKADK_MUXER_DATA_S stData, void *handle);

Parameter

Parametername Beschreibung Input/Output
handle Muxer-Zeiger Eingabe
stData Audiostreamdaten Eingabe

Rückgabewerte

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_muxer.h. Bibliothek: librkadk.so.

Beispiel

rkadk_muxer_test.

3.2 Datentypen

Wichtige Muxer-Datentypen: RKADK_MUXER_FILE_TYPE_E - Dateitypen; RKADK_MUXER_EVENT_E - Ereignisse; RKADK_MUXER_FILE_EVENT_INFO_S - Dateiereignisinformationen; RKADK_MUXER_EVENT_INFO_S - Muxer-Ereignisinformationen; RKADK_MUXER_EVENT_CALLBACK_FN - Ereignis-Callback; RKADK_MUXER_MANUAL_SPLIT_ATTR_S - Attribute der manuellen Aufteilung; RKADK_MUXER_MANUAL_SPLIT_TYPE_E - Arten der manuellen Aufteilung; RKADK_MUXER_ATTR_S - Muxer-Attribute; RKADK_MUXER_REC_TYPE_E - Aufzeichnungstypen; RKADK_MUXER_TYPE_E - Muxer-Typen; RKADK_MUXER_REQUEST_FILE_NAME_CB - Dateinamenanforderung; RKADK_MUXER_STREAM_ATTR_S - Streamattribute; RKADK_MUXER_PRE_RECORD_ATTR_S - Voraufzeichnungsattribute; RKADK_MUXER_PRE_RECORD_MODE_E - Voraufzeichnungsmodi; RKADK_MUXER_PTS_CALLBACK_FN - Zeitstempel-Callback; RKADK_MUXER_PTS_INFO_S - Zeitstempelinformationen; RKADK_MUXER_DATA_S - Verpackungsdaten; RKADK_MUXER_THUMB_INFO_S - Vorschaubildinformationen; RKADK_THIRD_MUXER_ATTR_S - Attribute eines Drittanbieter-Muxers.

3.2.1 RKADK_MUXER_FILE_TYPE_E

Beschreibung

Aufzählung der Muxer-Dateitypen.

Definition

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;

Member

Membername Beschreibung
RKADK_MUXER_TYPE_MP4 MP4
RKADK_MUXER_TYPE_MPEGTS TS
RKADK_MUXER_TYPE_FLV FLV

Hinweise

Nur MP4-Dateien unterstützen eingebettete Vorschaubilder.

3.2.2 RKADK_MUXER_EVENT_E

Beschreibung

Aufzählung der Muxer-Ereignisse.

Definition

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;

Member

Membername Beschreibung
RKADK_MUXER_EVENT_STREAM_START Aufzeichnung starten
RKADK_MUXER_EVENT_STREAM_STOP Aufzeichnung stoppen
RKADK_MUXER_EVENT_FILE_BEGIN Aufzeichnung einer neuen Datei starten
RKADK_MUXER_EVENT_FILE_END Dateiaufzeichnung beendet
RKADK_MUXER_EVENT_MANUAL_SPLIT_END Aufzeichnung der manuell aufgeteilten Datei beendet
RKADK_MUXER_EVENT_ERR_GET_FILENAME Dateiname konnte nicht abgerufen werden
RKADK_MUXER_EVENT_ERR_CREATE_FILE_FAIL Reserviert
RKADK_MUXER_EVENT_ERR_WRITE_FILE_FAIL Dateischreiben fehlgeschlagen
RKADK_MUXER_EVENT_FILE_WRITING_SLOW Langsames Dateischreiben
RKADK_MUXER_EVENT_ERR_CARD_NONEXIST SD-Karte nicht vorhanden

Verwandte Datentypen und Schnittstellen

RKADK_MUXER_EVENT_INFO_S

3.2.3 RKADK_MUXER_FILE_EVENT_INFO_S

Beschreibung

Struktur der Dateiereignisinformationen.

Definition

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

Member

Membername Beschreibung
asFileName Dateiname
u32Duration Tatsächliche Dauer der aufgezeichneten Datei

Verwandte Datentypen und Schnittstellen

RKADK_MUXER_EVENT_INFO_S

3.2.4 RKADK_MUXER_EVENT_INFO_S

Beschreibung

Struktur der Muxer-Ereignisinformationen.

Definition

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;

Member

Membername Beschreibung
enEvent Typ des Aufzeichnungsereignisses
stFileInfo Dateiereignisinformationen
stErrorInfo Fehlerereignisinformationen (reserviert)

Verwandte Datentypen und Schnittstellen

RKADK_MUXER_EVENT_E RKADK_MUXER_FILE_EVENT_INFO_S

3.2.5 RKADK_MUXER_EVENT_CALLBACK_FN

Beschreibung

Zeiger auf den Muxer-Ereignis-Callback.

Definition

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

Verwandte Datentypen und Schnittstellen

RKADK_MUXER_EVENT_INFO_S

3.2.6 RKADK_REC_MANUAL_SPLIT_ATTR_S

Beschreibung

Attributstruktur der manuellen Aufteilung.

Definition

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;

Member

Membername Beschreibung
enManualType Art der manuellen Aufteilung
u32DurationSec Videodauer bei manueller Aufteilung

Verwandte Datentypen und Schnittstellen

RKADK_MUXER_MANUAL_SPLIT_TYPE_E RKADK_MUXER_ManualSplit

3.2.7 RKADK_MUXER_MANUAL_SPLIT_TYPE_E

Beschreibung

Art der manuellen Aufteilung.

Definition

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

Member

Membername Beschreibung
MUXER_PRE_MANUAL_SPLIT Videodateien manuell aufteilen und voraufzeichnen
MUXER_NORMAL_MANUAL_SPLIT Videodateien manuell aufteilen

Verwandte Datentypen und Schnittstellen

RKADK_REC_MANUAL_SPLIT_ATTR_S

3.2.8 RKADK_THIRD_MUXER_ATTR_S

Beschreibung

Attributstruktur eines Drittanbieter-Muxers.

Definition

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;

Member

Membername Beschreibung
pfnMuxerInit Zeiger auf die Initialisierungsfunktion des Drittanbieter-Muxers
pfnMuxerDeinit Zeiger auf die Deinitialisierungsfunktion des Drittanbieter-Muxers
pfnWriteVideo Zeiger auf die Videoframe-Schreibfunktion des Drittanbieter-Muxers
pfnWriteAudio Zeiger auf die Audioframe-Schreibfunktion des Drittanbieter-Muxers
pfnGetThumbPos Zeiger zum Ermitteln der Vorschaubild-Schreibposition des Drittanbieter-Muxers

Hinweise

Bei aktiviertem Drittanbieter-Muxer wird das Abrufen von Videovorschaubildern über RKADK_GetthmInMp4 und RKADK_GetthmInMp4Ex nicht unterstützt.

Verwandte Datentypen und Schnittstellen

RKADK_MUXER_ATTR_S

3.2.9 RKADK_MUXER_ATTR_S

Beschreibung

Attributstruktur des Muxers.

Definition

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;

Member

Membername Beschreibung
u32CamId Kamerakennung
enRecType Aufzeichnungstyp; Drittanbieter-Streams unterstützen keinen AOV-Zeitraffer
enMuxerType Muxer-Typ
u32StreamCnt Anzahl der Muxer-Streams
u32FragKeyFrame Datei an I-Frames aufteilen
astStreamAttr Muxer-Streamattribute
stPreRecordAttr Voraufzeichnungsattribute
pcbRequestFileNames Zeiger auf die Dateinamenanforderungsfunktion
pfnEventCallback Zeiger auf den Ereignis-Callback
pfnPtsCallback Zeiger auf den Zeitstempel-Callback des aktuellen Videoframes
stAovAttr AOV-Attribute (Always On Video); Drittanbieter-Streams werden nicht unterstützt
pfnMountSdcard Zeiger auf die SD-Mount-Funktion; im AOV-Zeitraffermodus erforderlich
bEnableAiisp Aiisp aktivieren
pstThirdMuxerAttr Zeiger auf Attribute eines Drittanbieter-Muxers

Verwandte Datentypen und Schnittstellen

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

Beschreibung

Aufzählung der Muxer-Aufzeichnungstypen.

Definition

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;

Member

Membername Beschreibung
RKADK_REC_TYPE_NORMAL Normale Aufzeichnung
RKADK_REC_TYPE_LAPSE Zeitraffervideo
RKADK_REC_TYPE_AOV_LAPSE Zeitrafferaufzeichnung mit geringer Leistungsaufnahme

Verwandte Datentypen und Schnittstellen

Keine. Hinweis: Nur RV1126, RV1106 und RV1126B unterstützen AOV-Zeitrafferaufzeichnung.

3.2.11 RKADK_MUXER_TYPE_E

Beschreibung

Aufzählung der Muxer-Typen.

Definition

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

Member

Membername Beschreibung
RKADK_MUXER_TYPE_RECORD Muxer für lokale Aufzeichnung
RKADK_MUXER_TYPE_THIRD_STREAM Muxer für Drittanbieter-Streams

Verwandte Datentypen und Schnittstellen

RKADK_MUXER_ATTR_S

3.2.12 RKADK_MUXER_REQUEST_FILE_NAME_CB

Beschreibung

Zeiger auf den Callback zur Dateinamenanforderung.

Definition

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

Member

Membername Beschreibung
pHandle Encoder-Zeiger
pcFileName Dateinamenzeiger
u32MuxerId Muxer-ID

Verwandte Datentypen und Schnittstellen

RKADK_MUXER_ATTR_S

3.2.13 RKADK_MUXER_PTS_CALLBACK_FN

Beschreibung

Zeiger auf den Callback für Videoframe-Zeitstempel.

Definition

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

Member

Membername Beschreibung
pstPtsInfo Zeiger auf Videoframe-Zeitstempelinformationen

Verwandte Datentypen und Schnittstellen

RKADK_MUXER_PTS_INFO_S RKADK_MUXER_ATTR_S

3.2.14 RKADK_MUXER_PTS_INFO_S

Beschreibung

Struktur der Zeitstempelinformationen.

Definition

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;

Member

Membername Beschreibung
u32CamId Kamera-ID
s32MuxerId Muxer-ID
u32ChnId VENC-Kanal
u64PTS Frame-Zeitstempel
u32Seq Frame-Sequenznummer
pFileName Dateiname

Verwandte Datentypen und Schnittstellen

RKADK_MUXER_PTS_CALLBACK_FN

3.2.15 RKADK_MUXER_STREAM_ATTR_S

Beschreibung

Attributstruktur des Muxer-Streams.

Definition

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;

Member

Membername Beschreibung
s32MuxerId Muxer-ID
s32ViChn VI-Kanal; für Drittanbieter-Streams auf -1 setzen
s32VencChn VENC-Kanal; für Drittanbieter-Streams auf -1 setzen
s32ThumbVencChn VENC-Kanal für Vorschaubilder; für Drittanbieter-Streams auf -1 setzen
bUseVpss VPSS verwenden; für Drittanbieter-Streams auf False setzen
u32TimeLenSec Dateiname
stPipAttr PiP-Attribute; für Drittanbieter-Streams unwirksam
u32GetThumbTime Zeitpunkt der Vorschaubildeinbettung, standardmäßig 3000 ms
u32TrackCnt Anzahl der Streams
aHTrackSrcHandle Streamattribute
enType Dateityp

Verwandte Datentypen und Schnittstellen

RKADK_MUXER_TRACK_SOURCE_S RKADK_MUXER_FILE_TYPE_E

3.2.16 RKADK_MUXER_TRACK_SOURCE_S

Beschreibung

Attributstruktur des Muxer-Streams.

Definition

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;

Member

Membername Beschreibung
enTrackType Streamtyp
stVideoInfo Videostreamattribute
stAudioInfo Audiostreamattribute

Verwandte Datentypen und Schnittstellen

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

Beschreibung

Aufzählung der Muxer-Streamspurtypen.

Definition

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

Member

Membername Beschreibung
RKADK_TRACK_SOURCE_TYPE_VIDEO Videostream
RKADK_TRACK_SOURCE_TYPE_AUDIO Audiostream

3.2.18 RKADK_TRACK_VIDEO_SOURCE_INFO_S

Beschreibung

Attributstruktur des Muxer-Videostreams.

Definition

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;

Member

Membername Beschreibung
enCodecType Kodierungstyp
cPixFmt Pixelformat
u32Width Bildbreite
u32Height Bildhöhe
u32BitRate Bitrate
u32FrameRate Framerate
u32Gop GOP
u16Profile Kodierungsprofil
u16Level Kodierungslevel
u32ThumbWidth Vorschaubildbreite
u32ThumbHeight Vorschaubildhöhe

3.2.19 RKADK_TRACK_AUDIO_SOURCE_INFO_S

Beschreibung

Attributstruktur des Muxer-Audiostreams.

Definition

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;

Member

Membername Beschreibung
enCodecType Codec-Typ
u32BitWidth Bitbreite
u32ChnCnt Kanalanzahl
u32SampleRate Abtastrate
u32SamplesPerFrame Samples pro Frame
u32Bitrate Bitrate

3.2.20 RKADK_MUXER_PRE_RECORD_ATTR_S

Beschreibung

Attributstruktur der Voraufzeichnung.

Definition

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;

Member

Membername Beschreibung
u32PreRecTimeSec Voraufzeichnungsdauer
u32PreRecCacheTime Cache-Dauer der Voraufzeichnung
enPreRecordMode Voraufzeichnungsmodus

Verwandte Datentypen und Schnittstellen

RKADK_MUXER_PRE_RECORD_MODE_E RKADK_MUXER_ATTR_S

Hinweise

u32PreRecCacheTime muss mindestens u32PreRecTimeSec betragen und eine vollständige GoP enthalten, damit der I-Frame korrekt abgerufen werden kann.

3.2.21 RKADK_MUXER_PRE_RECORD_MODE_E

Beschreibung

Aufzählung der Voraufzeichnungsmodi.

Definition

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;

Member

Membername Beschreibung
RKADK_MUXER_PRE_RECORD_NONE Keine Voraufzeichnung
RKADK_MUXER_PRE_RECORD_MANUAL_SPLIT Voraufzeichnung bei manueller Dateiaufteilung
RKADK_MUXER_PRE_RECORD_SINGLE Voraufzeichnung der ersten Datei

3.2.22 RKADK_MUXER_DATA_S

Beschreibung

Datenstruktur des Muxers.

Definition

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;

Member

Membername Beschreibung
s32MuxerId Muxer-ID
s32VencChn VENC-Kanal; für Drittanbieter-Streams auf -1 setzen
isKeyFrame Kennzeichnung als Schlüsselframe
u64Pts Frame-Zeitstempel
u32Seq Frame-Sequenznummer
u32Len Länge der Framedaten
pMbBlk Zeiger auf den Framepufferblock

Verwandte Datentypen und Schnittstellen

RKADK_MUXER_WriteVideoFrame RKADK_MUXER_WriteAudioFrame

3.2.23 RKADK_MUXER_THUMB_INFO_S

Beschreibung

Struktur der Vorschaubildinformationen.

Definition

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

Member

Membername Beschreibung
s32MuxerId Muxer-ID
pBuf Zeiger auf Vorschaubilddaten
u32Len Länge der Vorschaubilddaten

Verwandte Datentypen und Schnittstellen

RKADK_MUXER_BuildInThumb

4. AOV (kontinuierliche Videoaufzeichnung)

4.1 Überblick

AOV (Always On Video) zeichnet durch Schlaf-/Aufwachzyklen kontinuierlich mit niedriger Framerate auf. Ereignisse wie KI-Erkennung, PIR-Auslösung oder WLAN-Aufwecken können zur normalen Framerate zurückschalten. File Cache wird empfohlen; siehe RKADK_RECORD_FileCacheInit und RKADK_RECORD_FileCacheDeInit im Aufzeichnungskapitel. Um im AOV-Zeitraffermodus Energie zu sparen, wird die SD-Karte im Schlaf stromlos geschaltet; die Anwendung muss sie zuvor aushängen. Bei aktiviertem File Cache versucht dieser beim Schreiben die Karte einzuhängen und schützt den Schreibvorgang vor einem zwischenzeitlichen Aushängen. Der AOV-Ablauf ist unten dargestellt.

AOV

4.2 API-Referenz

4.2.1 RKADK_AOV_Init

Beschreibung

AOV initialisieren.

Syntax

int RKADK_AOV_Init(RKADK_AOV_ARG_S *pstAovAttr);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pstAovAttr Zeiger auf AOV-Attribute Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_aov.h. Bibliothek: librkadk.so.

Hinweis

Zusammen mit RKADK_AOV_DeInit verwenden. Wiederholte Initialisierung wird nicht unterstützt.

Beispiel

rkadk_aov_record_test

Verwandtes Thema

RKADK_AOV_DeInit

4.2.2 RKADK_AOV_DeInit

Beschreibung

AOV deinitialisieren.

Syntax

int RKADK_AOV_DeInit();

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_aov.h. Bibliothek: librkadk.so.

Hinweis

Zusammen mit RKADK_AOV_Init verwenden. Wiederholte Deinitialisierung wird nicht unterstützt.

Beispiel

rkadk_aov_record_test

Verwandtes Thema

RKADK_AOV_Init

4.2.3 RKADK_AOV_SetSuspendTime

Beschreibung

Geplante AOV-Schlafdauer in ms einstellen.

Syntax

int RKADK_AOV_SetSuspendTime(int u32WakeupSuspendTime);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
u32WakeupSuspendTime Schlafdauer Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_aov.h. Bibliothek: librkadk.so.

Beispiel

rkadk_aov_record_test

4.2.4 RKADK_AOV_EnterSleep

Beschreibung

In AOV wechseln.

Syntax

int RKADK_AOV_EnterSleep();

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_aov.h. Bibliothek: librkadk.so.

Beispiel

rkadk_aov_record_test

4.2.5 RKADK_AOV_WakeupLock

Beschreibung

AOV-Operationen sperren.

Syntax

void RKADK_AOV_WakeupLock();

Voraussetzungen

Headerdatei: rkadk_aov.h. Bibliothek: librkadk.so.

Hinweis

Zusammen mit RKADK_AOV_WakeupUnlock verwenden.

Beispiel

rkadk_aov_record_test

Verwandtes Thema

RKADK_AOV_WakeupUnlock

4.2.6 RKADK_AOV_WakeupUnlock

Beschreibung

AOV-Operationen entsperren.

Syntax

void RKADK_AOV_WakeupUnlock();

Voraussetzungen

Headerdatei: rkadk_aov.h. Bibliothek: librkadk.so.

Hinweis

Zusammen mit RKADK_AOV_WakeupLock verwenden.

Beispiel

rkadk_aov_record_test

Verwandtes Thema

RKADK_AOV_WakeupLock

4.3 Datentypen

Wichtige AOV-Datentypen: RKADK_AOV_ARG_S - AOV-Attributstruktur; RKADK_AOV_NOTIFY_CALLBACK - Zeiger auf den AOV-Benachrichtigungs-Callback.

4.3.1 RKADK_AOV_ARG_S

Definition

Attributstruktur von AOV.

Definition

typedef struct {
   RKADK_AOV_NOTIFY_CALLBACK pfnNotifyCallback;
} RKADK_AOV_ARG_S;

Member

Membername Beschreibung
pfnNotifyCallback Zeiger auf den AOV-Benachrichtigungs-Callback

Verwandte Datentypen und Schnittstellen: RKADK_AOV_Init, RKADK_AOV_NOTIFY_CALLBACK

4.3.2 RKADK_AOV_NOTIFY_CALLBACK

Definition

Zeiger auf den AOV-Benachrichtigungs-Callback.

Definition

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

Member

Membername Beschreibung
enEvent Aufzählung der AOV-Benachrichtigungsereignisse
msg Reserviert

Verwandte Datentypen und Schnittstellen: RKADK_AOV_ARG_S, RKADK_AOV_EVENT_E

4.3.3 RKADK_AOV_EVENT_E

Definition

Aufzählung der AOV-Benachrichtigungsereignisse.

Definition

typedef enum {
   RKADK_AOV_ENTER_SLEEP = 0,
   RKADK_AOV_EVENT_BUTT
} RKADK_AOV_EVENT_E;

Member

Membername Beschreibung
RKADK_AOV_ENTER_SLEEP AOV-Schlafmodus betreten

Verwandte Datentypen und Schnittstellen

RKADK_AOV_NOTIFY_CALLBACK

5. Fotoaufnahme

5.1 Überblick

Grundlegende Fotoaufnahme mit JPEG-Kapselung: Einzelaufnahmen, Serienaufnahmen und JPEG Slice. JPEG Slice kodiert VI-Daten abschnittsweise in JPEG und spart Speicher. Beim Vergrößern werden die VI-Daten abschnittsweise interpoliert und anschließend abschnittsweise in JPEG kodiert. Die Segmenthöhe muss auf 16 Pixel ausgerichtet sein. Für gute Zusammensetzung sollte das Seitenverhältnis der Segmente möglichst dem Originalbild entsprechen. Mehr Segmente sparen Speicher, verlängern aber die Bilderzeugung; weniger Segmente benötigen mehr Speicher, beschleunigen jedoch die Verarbeitung. Die Segmentanzahl richtet sich nach dem konkreten Einsatz.

5.2 API-Referenz

5.2.1 RKADK_PHOTO_Init

Beschreibung

Fotoaufnahmeaufgabe initialisieren.

Syntax

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

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pstPhotoAttr Zeiger auf Attribute der Fotoaufgabe Eingabe
ppHandle Zeiger auf die erstellte Fotoaufgabe Ausgabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_photo.h. Bibliothek: librkadk.so.

Hinweis

Wiederholte Initialisierung wird nicht unterstützt.

Beispiel

rkadk_photo_test

Siehe auch

RKADK_PHOTO_DeInit

5.2.2 RKADK_PHOTO_DeInit

Beschreibung

Fotoaufnahmeaufgabe deinitialisieren.

Syntax

RKADK_S32 RKADK_PHOTO_DeInit(RKADK_MW_PTR pHandle);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
PHandle Zeiger auf die Fotoaufnahmeaufgabe Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_photo.h. Bibliothek: librkadk.so.

Hinweis

Wiederholte Deinitialisierung wird nicht unterstützt.

Beispiel

rkadk_photo_test

Siehe auch

RKADK_PHOTO_DeInit

5.2.3 RKADK_PHOTO_TakePhoto

Beschreibung

Fotos aufnehmen.

Syntax

RKADK_S32 RKADK_PHOTO_TakePhoto(RKADK_MW_PTR pHandle, RKADK_TAKE_PHOTO_ATTR_S *pstAttr);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
PHandle Zeiger auf die Fotoaufnahmeaufgabe Eingabe
pstAttr Fotoattribute Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_photo.h. Bibliothek: librkadk.so.

Hinweis

RKADK_PHOTO_TakePhoto darf erst nach Initialisierung der Aufzeichnungsaufgabe verwendet werden (Wortlaut der Quelle).

Beispiel

rkadk_photo_test

Siehe auch

Nein

5.2.4 RKADK_PHOTO_Reset

Beschreibung

Fotoaufnahmeaufgabe neu konfigurieren.

Syntax

RKADK_S32 RKADK_PHOTO_Reset(RKADK_MW_PTR *ppHandle);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
ppHandle Zeiger auf die Fotoaufnahmeaufgabe Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_photo.h. Bibliothek: librkadk.so.

Hinweis

RKADK_PHOTO_Reset darf erst nach Initialisierung der Aufzeichnungsaufgabe verwendet werden (Quellbezeichnung). Beim Auflösungswechsel die Photo-Auflösung in der ini über RKADK_PARAM_SetCamParam ändern. RV1126/RV1109 und RK3576 unterstützen keinen dynamischen Auflösungswechsel: zuerst RKADK_PHOTO_DeInit, dann neue Auflösung einstellen und RKADK_PHOTO_Init aufrufen. Bei gemeinsam genutztem VI-Kanal die Auflösungen von Photo und den anderen Modulen gleichzeitig umstellen, damit VI und VENC übereinstimmen.

Beispiel

rkadk_photo_test

Siehe auch

5.2.5 RKADK_PHOTO_GetThmInJpg

Beschreibung

Vorschaubilddaten aus einer JPG-Datei abrufen.

Syntax

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

Parameter

Parametername Beschreibung Eingabe/Ausgabe
u32CamId Kamera-ID Eingabe
pszFileName JPG-Dateipfad Eingabe
eThmType Vorschaubildtyp Eingabe
pu8Buf Eingabe: Zeiger auf Vorschaubildspeicher; Ausgabe: tatsächliche Vorschaubilddaten Input/Output
pu32Size Eingabe: Länge von pu8Buf; Ausgabe: tatsächliche Länge der Vorschaubilddaten Input/Output

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_photo.h. Bibliothek: librkadk.so.

Beispiel

rkadk_thumb_test

Siehe auch

No.

5.2.6 RKADK_PHOTO_GetThmInJpgEx

Beschreibung

Die erweiterte Schnittstelle zum Abrufen von JPG-Vorschaubildern unterstützt die Angabe von Typ und Auflösung. Zusammen mit RKADK_PHOTO_ThumbBufFree verwenden.

Syntax

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

Parameter

Parametername Beschreibung Eingabe/Ausgabe
u32CamId Kamera-ID Eingabe
pszFileName JPG-Dateipfad Eingabe
eThmType Vorschaubildtyp Eingabe
pstThumbAttr Zeiger auf die Vorschaubild-Attributstruktur Eingabe/Ausgabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_photo.h. Bibliothek: librkadk.so.

Beispiel

rkadk_thumb_test

Siehe auch

RKADK_PHOTO_ThumbBufFree

5.2.7 RKADK_PHOTO_ThumbBufFree

Beschreibung

Von RKADK_PHOTO_GetThmInJpgEx angeforderten Speicher freigeben. Zusammen mit RKADK_PHOTO_GetThmInJpgEx verwenden.

Syntax

RKADK_S32 RKADK_PHOTO_ThumbBufFree(RKADK_THUMB_ATTR_S *pstThumbAttr);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pstThumbAttr Zeiger auf die Vorschaubild-Attributstruktur Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_photo.h. Bibliothek: librkadk.so.

Beispiel

rkadk_thumb_test

Siehe auch

RKADK_PHOTO_GetThmInJpgEx

5.2.8 RKADK_MEDIA_SetVencRotation

Beschreibung

Drehung des VENC-Kanals einstellen.

Syntax

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

Parameter

Parametername Beschreibung Eingabe/Ausgabe
u32CamId Kamera-ID Eingabe
enRotation Drehwinkel Eingabe
enStreamType Streamtyp Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_media_comm.h. Bibliothek: librkadk.so.

5.2.9 RKADK_MEDIA_ToggleVencMirror

Beschreibung

Spiegelung des VENC-Kanals einstellen.

Syntax

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

Parameter

Parametername Beschreibung Eingabe/Ausgabe
u32CamId Kamera-ID Eingabe
enStreamType Streamtyp Eingabe
mirror Spiegelung aktivieren Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_media_comm.h. Bibliothek: librkadk.so.

5.2.10 RKADK_MEDIA_ToggleVencFlip

Beschreibung

Vertikales Spiegeln des VENC-Kanals einstellen.

Syntax

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

Parameter

Parametername Beschreibung Eingabe/Ausgabe
u32CamId Kamera-ID Eingabe
enStreamType Streamtyp Eingabe
flip Vertikales Spiegeln aktivieren Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_media_comm.h. Bibliothek: librkadk.so.

5.3 Datentypen

Wichtige Foto-Datentypen: RKADK_PHOTO_TYPE_E - Aufnahmetypen; RKADK_PHOTO_SINGLE_ATTR_S - Einzelaufnahmeattribute; RKADK_PHOTO_MULTIPLE_ATTR_S - Serienaufnahmeattribute; RKADK_PHOTO_RECV_DATA_S - Fotodaten; RKADK_PHOTO_DATA_RECV_FN_PTR - Datenempfangsfunktion; RKADK_TAKE_PHOTO_ATTR_S - Aufnahmeattribute; RKADK_PHOTO_ATTR_S - Aufgabenattribute; RKADK_JPG_THUMB_TYPE_E - JPG-Vorschaubildtypen; RKADK_THUMB_TYPE_E - Ausgabevorschaubildtypen; RKADK_THUMB_ATTR_S - Vorschaubildattribute; ROTATION_E - Drehungstypen; RKADK_PHOTO_FMT_CHANGE_S - Parameter zur FBC0/NV16-Konvertierung.

5.3.1 RKADK_PHOTO_TYPE_E

Beschreibung

Aufzählung der Fotoaufnahmetypen.

Definition

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

Member

Membername Beschreibung
RKADK_PHOTO_TYPE_SINGLE Einzelaufnahmemodus
RKADK_PHOTO_TYPE_MULTIPLE Serienaufnahmemodus
RKADK_PHOTO_TYPE_LAPSE Zeitrafferfotografie (reserviert)

Verwandte Datentypen und Schnittstellen

RKADK_TAKE_PHOTO_ATTR_S

5.3.2 RKADK_PHOTO_SINGLE_ATTR_S

Beschreibung

Attributstruktur der Einzelaufnahme.

Definition

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

Member

Membername Beschreibung
s32Time_sec Reserviert

Verwandte Datentypen und Schnittstellen

RKADK_TAKE_PHOTO_ATTR_S

5.3.3 RKADK_PHOTO_MULTIPLE_ATTR_S

Beschreibung

Attributstruktur der Serienaufnahme.

Definition

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

Member

Membername Beschreibung
s32Count Anzahl aufeinanderfolgender Fotos; -1 bedeutet kontinuierliche Aufnahme bis RKADK_PHOTO_DeInit

Verwandte Datentypen und Schnittstellen

RKADK_TAKE_PHOTO_ATTR_SS

5.3.4 RKADK_PHOTO_THUMB_ATTR_S

Beschreibung

Parameterstruktur des Vorschaubildes.

Definition

#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;

Member

Membername Beschreibung
bSupportDCF DCF-Vorschaubilder mit fester Auflösung 160*120 erzeugen
stMPFAttr MPF-Vorschaubildparameter

Verwandte Datentypen und Schnittstellen

RKADK_PHOTO_ATTR_S

5.3.5 RKADK_PHOTO_RECV_DATA_S

Beschreibung

Struktur der Fotodaten.

Definition

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

Member

Membername Beschreibung
pu8DataBuf Datenzeiger
u32DataLen Datenlänge
u32CamId Kamera-ID
bStreamEnd Ende des Datenstroms; hauptsächlich für JPEG Slice
userdata Zeiger auf Benutzerdaten

Verwandte Datentypen und Schnittstellen

RKADK_PHOTO_DATA_RECV_FN_PTR

5.3.6 RKADK_PHOTO_DATA_RECV_FN_PTR

Beschreibung

Zeiger auf die Fotodaten-Empfangsfunktion.

Definition

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

Member

Membername Beschreibung
pstData Datenzeiger

Verwandte Datentypen und Schnittstellen

RKADK_PHOTO_RECV_DATA_S RKADK_PHOTO_ATTR_S

5.3.7 RKADK_TAKE_PHOTO_ATTR_S

Beschreibung

Attributstruktur der Fotoaufnahme.

Definition

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;

Member

Membername Beschreibung
enPhotoType Fotoaufnahmetyp
stSingleAttr Einzelaufnahmeparameter
stMultipleAttr Serienaufnahmeparameter
stLapseAttr Zeitrafferfotoparameter (reserviert)

Verwandte Datentypen und Schnittstellen

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

Beschreibung

Parameterstruktur für die FBC0/NV16-Formatkonvertierung

Definition

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;

Member

Membername Beschreibung
u32VencChn VENC-Kanal-ID für die Formatkonvertierung
u32VdecChn VDEC-Kanal-ID für die Formatkonvertierung
u32BitRate Kodierungsbitrate, standardmäßig 4M
u32Profile Kodierungslevel, standardmäßig 77

Verwandte Datentypen und Schnittstellen

RKADK_PHOTO_ATTR_S RKADK_PHOTO_Init

5.3.9 RKADK_PHOTO_ATTR_S

Beschreibung

Attributstruktur der Fotoaufnahmeaufgabe.

Definition

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;

Member

Membername Beschreibung
u32CamId Kamera-ID
stThumbAttr Vorschaubildparameter
pfnPhotoDataProc Zeiger auf den Callback zum Empfang von Fotodaten
userdata Zeiger auf Benutzerdaten
pstPostIspAttr Post-AI-ISP-Attribute
stFmtChange Parameter für die FBC0/NV16-Formatkonvertierung

Verwandte Datentypen und Schnittstellen

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

Beschreibung

Aufzählung der JPG-Vorschaubildtypen.

Definition

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;

Member

Membername Beschreibung
RKADK_JPG_THUMB_TYPE_DCF DCF-Vorschaubild
RKADK_JPG_THUMB_TYPE_MFP1 MPF1-Vorschaubild
RKADK_JPG_THUMB_TYPE_MFP2 MPF2-Vorschaubild

Verwandte Datentypen und Schnittstellen

RKADK_PHOTO_GetThmInJpg RKADK_PHOTO_GetThmInJpgEx

5.3.11 RKADK_THUMB_TYPE_E

Beschreibung

Aufzählung der Ausgabevorschaubildtypen.

Definition

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;

Member

Membername Beschreibung
RKADK_THUMB_TYPE_NV12 Vorschaubildausgabe in NV12
RKADK_THUMB_TYPE_JPEG Vorschaubildausgabe in JPG
RKADK_THUMB_TYPE_RGB565 Vorschaubildausgabe in RGB565
RKADK_THUMB_TYPE_RGBA8888 Vorschaubildausgabe in RGBA9888
RKADK_THUMB_TYPE_BGRA8888 Vorschaubildausgabe in BGRA8888

Verwandte Datentypen und Schnittstellen

RKADK_THUMB_ATTR_S RKADK_GetThmInMp4Ex RKADK_PHOTO_GetThmInJpgEx

5.3.12 RKADK_THUMB_ATTR_S

Beschreibung

Attributstruktur des Vorschaubildes.

Definition

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;

Member

Membername Beschreibung
enType Gewünschter Vorschaubildtyp
u32Width Eingabe: gewünschte Vorschaubildbreite; Ausgabe: tatsächliche Breite
u32Height Eingabe: gewünschte Vorschaubildhöhe; Ausgabe: tatsächliche Höhe
u32VirWidth Eingabe: gewünschte virtuelle Vorschaubildbreite; Ausgabe: tatsächliche virtuelle Breite
u32VirHeight Eingabe: gewünschte virtuelle Vorschaubildhöhe; Ausgabe: tatsächliche virtuelle Höhe
pu8Buf Zeiger auf Vorschaubilddaten
u32BufSize Länge der Vorschaubilddaten

Verwandte Datentypen und Schnittstellen

RKADK_THUMB_TYPE_E

RKADK_GetThmInMp4Ex RKADK_PHOTO_GetThmInJpgEx

5.3.13 ROTATION_E

Beschreibung

Aufzählung der Drehungstypen.

Definition

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

Verwandte Datentypen und Schnittstellen

RKADK_MEDIA_SetVencRotation

6. Remote-Vorschau

6.1 Überblick

Callback-Schnittstellen für die Vorschau ermöglichen das Abrufen von Video-/Audioinformationen, Starten und Stoppen von VENC/AENC sowie Registrieren von Verarbeitungsfunktionen für Audio- und Videoframes.

6.2 API-Referenz

6.2.1 RKADK_STREAM_VideoInit

Beschreibung

Videomodule VI und VENC initialisieren.

Syntax

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

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pstVideoAttr Zeiger auf Videoattribute Eingabe
ppHandle Zeiger auf die erstellte Videoaufgabe Ausgabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_stream.h. Bibliothek: librkadk.so.

Hinweis

Wiederholte Initialisierung des Videomoduls wird nicht unterstützt.

Beispiel

rkadk_stream_test

Siehe auch

RKADK_STREAM_VideoDeInit

6.2.2 RKADK_STREAM_VideoDeInit

Beschreibung

Videomodule VI und VENC deinitialisieren.

Syntax

RKADK_S32 RKADK_STREAM_VideoDeInit(RKADK_MW_PTR pHandle);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
PHandle Zeiger auf die Videoaufgabe Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_stream.h. Bibliothek: librkadk.so.

Hinweis

Wiederholte Deinitialisierung wird nicht unterstützt.

Beispiel

rkadk_stream_test

Siehe auch

RKADK_STREAM_VideoInit

6.2.3 RKADK_STREAM_VencStart

Beschreibung

VENC aktivieren.

Syntax

RKADK_S32 RKADK_STREAM_VencStart(RKADK_MW_PTR pHandle, RKADK_S32 s32FrameCnt);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
PHandle Zeiger auf die Videoaufgabe Eingabe
s32FrameCnt Anzahl zu empfangender Frames; -1 bedeutet unbegrenzten Empfang bis VencStop Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_stream.h. Bibliothek: librkadk.so.

Hinweis

RKADK_STREAM_VencStart darf erst nach Initialisierung des Videomoduls aufgerufen werden. Der Aufruf löst den VENC-Daten-Callback zum Start des Empfangs aus.

Beispiel

rkadk_stream_test

Siehe auch

RKADK_STREAM_VencStop

6.2.4 RKADK_STREAM_VencStop

Beschreibung

VENC deaktivieren.

Syntax

RKADK_S32 RKADK_STREAM_VencStop(RKADK_MW_PTR pHandle);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
PHandle Zeiger auf die Videoaufgabe Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_stream.h. Bibliothek: librkadk.so.

Hinweis

Keine

Beispiel

rkadk_stream_test

Siehe auch

RKADK_STREAM_VencStart

6.2.5 RKADK_STREAM_VideoReset

Beschreibung

Videostream neu konfigurieren.

Syntax

RKADK_S32 RKADK_STREAM_VideoReset(RKADK_MW_PTR pHandle);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
PHandle Zeiger auf die Videoaufgabe Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_stream.h. Bibliothek: librkadk.so.

Hinweis

RKADK_STREAM_VideoReset darf erst nach RKADK_STREAM_VideoInit aufgerufen werden. Bei Änderung von Auflösung, Framerate, Bitrate, Kodierungs- oder Aufzeichnungstyp die Preview-Parameter in der ini über RKADK_PARAM_SetCamParam anpassen. RV1126/RV1109 und RK3576 unterstützen keinen dynamischen Wechsel von Auflösung und Kodierungstyp: zuerst RKADK_STREAM_VideoDeInit, dann neue Parameter und RKADK_STREAM_VideoInit. Bei gemeinsam genutztem VI-Kanal alle betroffenen Auflösungen gleichzeitig umstellen, damit VI und VENC übereinstimmen.

Beispiel

rkadk_stream_test

6.2.6 RKADK_STREAM_GetVideoInfo

Beschreibung

Videoinformationen abrufen.

Syntax

RKADK_S32 RKADK_STREAM_GetVideoInfo(RKADK_U32 u32CamId, RKADK_VIDEO_INFO_S *pstVideoInfo);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
u32CamId Kamera-ID Eingabe
pstVideoInfo Zeiger auf die Videoinformationsstruktur Ausgabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_stream.h. Bibliothek: librkadk.so.

Hinweis

Keine

Beispiel

rkadk_stream_test

Siehe auch

Keine

6.2.7 RKADK_STREAM_AudioInit

Beschreibung

Audiomodule AI und AENC initialisieren.

Syntax

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

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pstAudioAttr Zeiger auf Audioattribute Eingabe
ppHandle Zeiger auf die erstellte Audioaufgabe Ausgabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_stream.h. Bibliothek: librkadk.so.

Hinweis

Wiederholte Initialisierung des Audiomoduls wird nicht unterstützt.

Beispiel

rkadk_stream_test

Siehe auch

RKADK_STREAM_AudioDeInit

6.2.8 RKADK_STREAM_AudioDeInit

Beschreibung

Audiomodule AI und AENC deinitialisieren.

Syntax

RKADK_S32 RKADK_STREAM_AudioDeInit(RKADK_MW_PTR pHandle);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
PHandle Zeiger auf die Audioaufgabe Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_stream.h. Bibliothek: librkadk.so.

Hinweis

Keine

Beispiel

rkadk_stream_test

Siehe auch

RKADK_STREAM_AudioInit

6.2.9 RKADK_STREAM_AencStart

Beschreibung

AENC aktivieren.

Syntax

RKADK_S32 RKADK_STREAM_AencStart(RKADK_MW_PTR *pHandle);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
PHandle Zeiger auf die Audioaufgabe Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_stream.h. Bibliothek: librkadk.so.

Hinweis

RKADK_STREAM_AencStart darf erst nach Initialisierung des Audiomoduls aufgerufen werden. Der Aufruf löst den AENC-Daten-Callback zum Start des Empfangs aus.

Beispiel

rkadk_stream_test

Siehe auch

RKADK_STREAM_AencStop

6.2.10 RKADK_STREAM_AencStop

Beschreibung

AENC deaktivieren.

Syntax

RKADK_S32 RKADK_STREAM_AencStop(RKADK_MW_PTR *pHandle);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
PHandle Zeiger auf die Audioaufgabe Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_stream.h. Bibliothek: librkadk.so.

Hinweis

Keine

Beispiel

rkadk_stream_test

Siehe auch

RKADK_STREAM_AencStart

6.2.11 RKADK_STREAM_GetAudioInfo

Beschreibung

Audioinformationen abrufen.

Syntax

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

Parameter

Parametername Beschreibung Eingabe/Ausgabe
PHandle Zeiger auf die Audioaufgabe Eingabe
pstAudioInfo Zeiger auf die Audioinformationsstruktur Ausgabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_stream.h. Bibliothek: librkadk.so.

Hinweis

Keine

Beispiel

rkadk_stream_test

Siehe auch

Keine

6.3 Datentypen

Die Quelle nennt folgende Typen des Wiedergabemoduls: RKADK_CODEC_TYPE_E - Kodierungsformate; RKADK_VENC_DATA_PROC_FUNC - VENC-Daten-Callback; RKADK_VIDEO_STREAM_S - Videostream; RKADK_VENC_DATA_PACK_S - VENC-Paket; RKADK_VENC_DATA_TYPE_S - VENC-Pakettyp; RKADK_VIDEO_INFO_S - Videoinformationen; RKADK_STREAM_VIDEO_ATTR_S - Videoaufgabenattribute; RKADK_AUDIO_DATA_PROC_FUNC - Audiodaten-Callback; RKADK_AUDIO_STREAM_S - Audiodaten; RKADK_AUDIO_INFO_S - Audioinformationen; RKADK_STREAM_AUDIO_ATTR_S - Audioaufgabenattribute.

6.3.1 RKADK_CODEC_TYPE_E

Beschreibung

Aufzählung der Kodierungsformate. AAC-Audiokodierung wird standardmäßig nicht unterstützt.

Definition

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

Beschreibung

Zeiger auf den VENC-Daten-Callback.

Definition

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

Verwandte Datentypen und Schnittstellen

RKADK_VIDEO_STREAM_S

6.3.3 RKADK_VIDEO_STREAM_S

Beschreibung

Struktur des Videostreams.

Definition

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;

Member

Membername Beschreibung
astPack Paketstruktur
u32Seq Paket-Sequenz-ID
bEndOfStream Reserviert
u32CamId Kamera-ID

Verwandte Datentypen und Schnittstellen

RKADK_VENC_DATA_PACK_S RKADK_VENC_DATA_PROC_FUNC

6.3.4 RKADK_VENC_DATA_PACK_S

Beschreibung

Struktur des VENC-Pakets.

Definition

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;

Member

Membername Beschreibung
apu8Addr Datenzeiger
au32Len Datenlänge
u64PTS Zeitstempel
stDataType Datentyp

Verwandte Datentypen und Schnittstellen

RKADK_VENC_DATA_TYPE_S RKADK_VIDEO_STREAM_S

6.3.5 RKADK_VENC_DATA_TYPE_S

Beschreibung

VENC-Pakettyp.

Definition

/* 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;

Member

Membername Beschreibung
enPayloadType Kodierungstyp
enH264EType H264-Pakettyp
enH265EType H265-Pakettyp
enJPEGEType Reserviert

Verwandte Datentypen und Schnittstellen

RKADK_CODEC_TYPE_E RKADK_VENC_DATA_PACK_S

6.3.6 RKADK_VIDEO_INFO_S

Beschreibung

Struktur der Videoinformationen.

Definition

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;

Member

Membername Beschreibung
enPayloadType Kodierungstyp
u32Width Bildbreite
u32Height Bildhöhe
u32BitRate Bitrate
u32FrameRate Framerate
u32Gop I-Frame-Intervall

Verwandte Datentypen und Schnittstellen

RKADK_CODEC_TYPE_E RKADK_STREAM_GetVideoInfo

6.3.7 RKADK_STREAM_VIDEO_ATTR_S

Beschreibung

Attributstruktur der Videoaufgabe.

Definition

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

Member

Membername Beschreibung
u32CamId Kamera-ID
pfnDataCB Callback für die Videodatenausgabe

Verwandte Datentypen und Schnittstellen

RKADK_VENC_DATA_PROC_FUNC RKADK_STREAM_VideoInit

6.3.8 RKADK_AUDIO_DATA_PROC_FUNC

Beschreibung

Zeiger auf den AENC-Daten-Callback.

Definition

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

Verwandte Datentypen und Schnittstellen

RKADK_AUDIO_STREAM_S

6.3.9 RKADK_AUDIO_STREAM_S

Beschreibung

Struktur des Audiodatenstroms.

Definition

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;

Member

Membername Beschreibung
pStream Datenzeiger
u32Len Datenlänge
u64TimeStamp Zeitstempel
u32Seq Sequenznummer
enType Kodierungstyp der Audiodaten

Verwandte Datentypen und Schnittstellen

RKADK_AUDIO_DATA_PROC_FUNC

6.3.10 RKADK_AUDIO_INFO_S

Beschreibung

Struktur der Audioinformationen.

Definition

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;

Member

Membername Beschreibung
enPayloadType Kodierungstyp
u32ChnCntt Kanalanzahl
u32SampleRate Abtastrate
u32AvgBytesPerSec Byterate
u32SamplesPerFrame Anzahl Samples pro Frame
u16SampleBitWidth Bits pro Sample

Verwandte Datentypen und Schnittstellen

RKADK_CODEC_TYPE_E RKADK_STREAM_GetAudioInfo

6.3.11 RKADK_STREAM_AUDIO_ATTR_S

Beschreibung

Attributstruktur der Audioaufgabe.

Definition

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;

Member

Membername Beschreibung
u32CamId Kamera-ID
enCodecType Kodierungstyp
pfnPcmDataCB Callback für die PCM-Datenausgabe
pfnAencDataCB Callback für die Ausgabe kodierter Audiodaten

Verwandte Datentypen und Schnittstellen

RKADK_AUDIO_DATA_PROC_FUNC RKADK_STREAM_AudioInit

7. Player

7.1 Überblick

Wiedergabe lokaler Audio-/Videodateien und von RTSP-Netzwerkstreams mit Wiedergabe, Pause, Suche und Bildschirmaufnahme. Player ist mit RV1109/RV1126, RV1103/RV1103, RK3308 und RK3506 kompatibel (Quellliste unverändert). RV1109/RV1126 verwenden Hardwaredekodierung, die anderen Plattformen Softwaredekodierung.

7.2 API-Referenz

7.2.1 RKADK_PLAYER_Create

Beschreibung

Player erstellen.

Syntax

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

Parameter

Parametername Beschreibung Eingabe/Ausgabe
ppPlayer Zeiger auf den erstellten Player Ausgabe
pstPlayCfg Player-Eigenschaften Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_player.h. Bibliothek: librkadk.so.

Hinweis

Wiederholtes Erstellen desselben Players wird nicht unterstützt.

Beispiel

rkadk_player_test

Siehe auch

RKADK_PLAYER_Destroy

7.2.2 RKADK_PLAYER_Destroy

Beschreibung

Player zerstören.

Syntax

RKADK_S32 RKADK_PLAYER_Destroy(RKADK_MW_PTR pPlayer);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pPlayer Zeiger auf den Player Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_player.h. Bibliothek: librkadk.so.

Hinweis

Das wiederholte Zerstören desselben Players wird nicht unterstützt.

Beispiel

rkadk_player_test

Siehe auch

RKADK_PLAYER_Create

7.2.3 RKADK_PLAYER_SetDataSource

Beschreibung

Pfad der wiederzugebenden Datei festlegen. Bei aktivierter externer Demuxer-Bibliothek in Player ist RKADK_PLAYER_SetDataParam zu verwenden.

Syntax

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

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pPlayer Zeiger auf den Player Eingabe
pszfilePath Pfad der wiederzugebenden Datei Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_player.h. Bibliothek: librkadk.so.

Hinweis

RKADK_PLAYER_SetDataSource darf erst nach dem Erstellen des Players aufgerufen werden.

Beispiel

rkadk_player_test

Siehe auch

Keine

7.2.4 RKADK_PLAYER_SetDataParam

Beschreibung

Audio- und Videoparameter der wiederzugebenden Datei festlegen. Diese Schnittstelle bei aktivierter externer Demuxer-Bibliothek verwenden, andernfalls RKADK_PLAYER_SetDataSource.

Syntax

RKADK_S32 RKADK_PLAYER_SetDataParam(RKADK_MW_PTR pPlayer, RKADK_PLAYER_DATA_PARAM_S *pstDataParam);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pPlayer Zeiger auf den Player Eingabe
pstDataParam Audio- und Videoparameter der wiederzugebenden Datei Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_player.h. Bibliothek: librkadk.so.

Hinweis

RKADK_PLAYER_SetDataParam darf erst nach dem Erstellen des Players aufgerufen werden.

Beispiel

rkadk_player_test

Siehe auch

RKADK_PLAYER_SendAudioPacket RKADK_PLAYER_SendVideoPacket

7.2.5 RKADK_PLAYER_Prepare

Beschreibung

Wiedergabe vorbereiten.

Syntax

RKADK_S32 RKADK_PLAYER_Prepare(RKADK_MW_PTR pPlayer);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pPlayer Zeiger auf den Player Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_player.h. Bibliothek: librkadk.so.

Hinweis

RKADK_PLAYER_Prepare darf erst nach dem Erstellen des Players und dem Festlegen des Wiedergabepfads aufgerufen werden.

Beispiel

rkadk_player_test

Siehe auch

Keine

7.2.6 RKADK_PLAYER_GetCurrentPosition

Beschreibung

Aktuelle Wiedergabeposition abrufen.

Syntax

RKADK_S64 RKADK_PLAYER_GetCurrentPosition(RKADK_MW_PTR pPlayer);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pPlayer Zeiger auf den Player Eingabe

Rückgabewert

Rückgabewert Beschreibung
Wiedergabeposition in ms Erfolg
-1 Fehler

Voraussetzungen

Header-Datei: rkadk_player.h

Bibliothek: librkadk.so

Hinweis

Keine

Beispiel

rkadk_player_test

Siehe auch

Keine

7.2.7 RKADK_PLAYER_Play

Beschreibung

Wiedergabe starten.

Syntax

RKADK_S32 RKADK_PLAYER_Play(RKADK_MW_PTR pPlayer);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pPlayer Zeiger auf den Player Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_player.h. Bibliothek: librkadk.so.

Hinweis

RKADK_PLAYER_Play darf erst nach RKADK_PLAYER_Prepare aufgerufen werden.

Beispiel

rkadk_player_test

Siehe auch

RKADK_PLAYER_Stop

7.2.8 RKADK_PLAYER_Stop

Beschreibung

Wiedergabe stoppen und Ressourcen freigeben.

Syntax

RKADK_S32 RKADK_PLAYER_Stop(RKADK_MW_PTR pPlayer);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pPlayer Zeiger auf den Player Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_player.h. Bibliothek: librkadk.so.

Hinweis

Keine

Beispiel

rkadk_player_test

Siehe auch

RKADK_PLAYER_Play

7.2.9 RKADK_PLAYER_Pause

Beschreibung

Wiedergabe pausieren.

Syntax

RKADK_S32 RKADK_PLAYER_Pause(RKADK_MW_PTR pPlayer);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pPlayer Zeiger auf den Player Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_player.h. Bibliothek: librkadk.so.

Hinweis

Keine

Beispiel

rkadk_player_test

Siehe auch

RKADK_PLAYER_Play

7.2.10 RKADK_PLAYER_Seek

Beschreibung

Seek.

Syntax

RKADK_S32 RKADK_PLAYER_Seek(RKADK_MW_PTR pPlayer, RKADK_S64 s64TimeInMs);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pPlayer Zeiger auf den Player Eingabe
s64TimeInMs Zeitposition für den Suchlauf Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_player.h. Bibliothek: librkadk.so.

Hinweis

RKADK_PLAYER_Seek darf erst nach RKADK_PLAYER_Play aufgerufen werden.

Beispiel

rkadk_player_test

Siehe auch

RKADK_PLAYER_Play

7.2.11 RKADK_PLAYER_GetPlayStatus

Beschreibung

Aktuellen Wiedergabestatus abrufen.

Syntax

RKADK_S32 RKADK_PLAYER_GetPlayStatus(RKADK_MW_PTR pPlayer, RKADK_PLAYER_STATE_E *penState);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pPlayer Zeiger auf den Player Eingabe
penState Aktueller Wiedergabestatus Ausgabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_player.h. Bibliothek: librkadk.so.

Hinweis

Keine

Beispiel

rkadk_player_test

Siehe auch

Keine

7.2.12 RKADK_PLAYER_GetDuration

Beschreibung

Dauer der aktuell wiedergegebenen Datei abrufen.

Syntax

RKADK_S32 RKADK_PLAYER_GetDuration(RKADK_MW_PTR pPlayer, RKADK_U32 *pDuration);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pPlayer Zeiger auf den Player Eingabe
pDuration Dauer der aktuell wiedergegebenen Datei in ms Ausgabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_player.h. Bibliothek: librkadk.so.

Hinweis

Keine

Beispiel

rkadk_player_test

Siehe auch

Keine

7.2.13 RKADK_PLAYER_Snapshot

Beschreibung

Player-Schnappschuss: Die Schnittstelle kodiert das aktuell angezeigte Bild als JPEG. Die Anwendung erhält die erzeugten JPEG-Daten über den registrierten Callback RKADK_PPLAYER_SNAPSHOT_RECV_FN.

Syntax

RKADK_S32 RKADK_PLAYER_Snapshot(RKADK_MW_PTR pPlayer);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pPlayer Zeiger auf den Player Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_player.h. Bibliothek: librkadk.so.

Beispiel

rkadk_player_test

Siehe auch

Keine

7.2.14 RKADK_PLAYER_SendAudioPacket

Beschreibung

Bei aktivierter externer Demuxer-Bibliothek übergibt diese Schnittstelle demultiplexte Audiodaten an Player zur Dekodierung und Wiedergabe.

Syntax

RKADK_S32 RKADK_PLAYER_SendAudioPacket(RKADK_MW_PTR pPlayer, RKADK_PLAYER_PACKET *pstPacket);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pPlayer Zeiger auf den Player Eingabe
pstPacket Zu sendendes Paket Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_player.h. Bibliothek: librkadk.so.

Hinweis

Vor Verwendung dieser Schnittstelle RKADK_PLAYER_SetDataParam aufrufen, um die Audio- und Videoparameter festzulegen.

Beispiel

rkadk_player_test

Siehe auch

RKADK_PLAYER_SendVideoPacket RKADK_PLAYER_SetDataParam

7.2.15 RKADK_PLAYER_SendVideoPacket

Beschreibung

Bei aktivierter externer Demuxer-Bibliothek übergibt diese Schnittstelle demultiplexte Videodaten an Player zur Dekodierung und Wiedergabe.

Syntax

RKADK_S32 RKADK_PLAYER_SendVideoPacket(RKADK_MW_PTR pPlayer, RKADK_PLAYER_PACKET *pstPacket);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pPlayer Zeiger auf den Player Eingabe
pstPacket Zu sendendes Paket Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_player.h. Bibliothek: librkadk.so.

Hinweis

Vor Verwendung dieser Schnittstelle RKADK_PLAYER_SetDataParam aufrufen, um die Audio- und Videoparameter festzulegen.

Beispiel

rkadk_player_test

Siehe auch

RKADK_PLAYER_SendAudioPacket RKADK_PLAYER_SetDataParam

7.2.16 RKADK_PLAYER_GetSendFrameNum

Beschreibung

Anzahl erfolgreich dekodierter Frames abrufen.

Syntax

RKADK_S32 RKADK_PLAYER_GetSendFrameNum(RKADK_MW_PTR pPlayer);

Parameter

Parametername Beschreibung Input/Output
pPlayer Zeiger auf den Player Eingabe

Rückgabewert

Rückgabewert Beschreibung
Frame-Anzahl Erfolg
-1 Fehler

Voraussetzungen

Header-Datei: rkadk_player.h

Bibliothek: librkadk.so. Hinweis: Nach Pause/Stop wird der Zähler zurückgesetzt.

Beispiel

rkadk_player_test

Verwandte Themen

Keine

7.2.17 RKADK_PLAYER_SetVdecWaterline

Beschreibung

VDEC-Pufferfüllstandsschwelle festlegen.

Syntax

RKADK_S32 RKADK_PLAYER_SetVdecWaterline(RKADK_MW_PTR pPlayer, RKADK_U32 u32VdecWaterline);

Parameter

Parametername Beschreibung Input/Output
pPlayer Zeiger auf den Player Eingabe
u32VdecWaterline Wert der Pufferfüllstandsschwelle Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_player.h. Bibliothek: librkadk.so. Hinweis: Nach dem Einstellen der VDEC-Füllstandsschwelle beginnt die Wiedergabe erst, wenn der VDEC-Puffer diesen Füllstand erreicht.

Beispiel

rkadk_player_test

Verwandte Themen

Keine

7.2.18 RKADK_PLAYER_SetAoVolume

Beschreibung

Wiedergabelautstärke festlegen.

Syntax

RKADK_S32 RKADK_PLAYER_SetAoVolume(RKADK_MW_PTR pPlayer, RKADK_S32 s32Volume);

Parameter

Parametername Beschreibung Input/Output
pPlayer Zeiger auf den Player Ausgabe
s32Volume Lautstärkewert Eingabe

Rückgabewerte

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Headerdatei: rkadk_player.h. Bibliothek: librkadk.so.

Hinweise

Keine

Beispiel

rkadk_player_test

Verwandte Themen

Keine

7.3 Datentypen

Das Wiedergabemodul stellt hauptsächlich folgende Datentypen bereit: RKADK_PLAYER_EVENT_E: Aufzählung der Wiedergabeereignisse; RKADK_PLAYER_EVENT_FN: Funktionszeiger auf den Callback für Wiedergabeereignisse.

RKADK_PLAYER_CFG_S: Player-Attributstruktur; RKADK_VO_FORMAT_E: Aufzählung der Pixelformate; RKADK_VO_INTF_TYPE_E: Aufzählung der Display-Schnittstellen; RKADK_PLAYER_FRAME_INFO_S: Bildinformationsstruktur; RKADK_PLAYER_STATE_E: Aufzählung der Wiedergabezustände; RKADK_PLAYER_DATA_PARAM_S: Audio-/Videoparameterstruktur; RKADK_PLAYER_PACKET: Player-Datenpaket; RKADK_PLAYER_RTSP_CFG_S: RTSP-Attributstruktur; RKADK_PLAYER_VDEC_CFG_S: VDEC-Attributstruktur; RKADK_PLAYER_SNAPSHOT_CFG_S: Schnappschuss-Attributstruktur; RKADK_PLAYER_SNAPSHOT_S: Schnappschuss-Datenstruktur; RKADK_PPLAYER_SNAPSHOT_RECV_FN: Funktionszeiger auf den Schnappschuss-Daten-Callback.

7.3.1 RKADK_PLAYER_EVENT_E

Beschreibung

Definiert die Aufzählung der Wiedergabeereignisse.

Definition

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;

Member

Membername Beschreibung
RKADK_PLAYER_EVENT_STATE_CHANGED Statusänderung (reserviert)
RKADK_PLAYER_EVENT_PREPARED Vorbereitung Prepared abgeschlossen
RKADK_PLAYER_EVENT_PLAY Wiedergabe starten
RKADK_PLAYER_EVENT_PAUSED Wiedergabe pausieren (reserviert)
RKADK_PLAYER_EVENT_STOPPED Wiedergabe stoppen
RKADK_PLAYER_EVENT_EOF Ende der Wiedergabe
RKADK_PLAYER_EVENT_SOF Reserviert
RKADK_PLAYER_EVENT_SEEK_END Suchlauf Seek abgeschlossen (reserviert)

Verwandte Datentypen und Schnittstellen

RKADK_PLAYER_EVENT_FN

7.3.2 RKADK_PLAYER_EVENT_FN

Beschreibung

Funktionszeiger auf den Wiedergabeereignis-Callback definieren.

Definition

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

Member

Membername Beschreibung
pPlayer Zeiger auf den Player
enEvent Ereignistyp
pData Ereignisbezogene Parameter

Verwandte Datentypen und Schnittstellen

RKADK_PLAYER_EVENT_E RKADK_PLAYER_CFG_S

7.3.3 RKADK_PLAYER_CFG_S

Beschreibung

Player-Attributstruktur definieren.

Definition

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;

Member

Membername Beschreibung
bEnableVideo Videowiedergabe aktivieren
bEnableAudio Audiowiedergabe aktivieren
bEnableThirdDemuxer Externe Demuxer-Bibliothek aktivieren
pfnPlayerCallback Funktionszeiger auf den Player-Ereignis-Callback
stFrmInfo Bildinformationen definieren
stRtspCfg RTSP-Attribut
stVdecCfg VDEC-Attribut
stSnapshotCfg Schnappschuss-Attribut
bEnableBlackBackground Ob der Bildschirm nach der Wiedergabe schwarz wird

Verwandte Datentypen und Schnittstellen

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

Beschreibung

Definiert die Aufzählung der Bildpixelformate.

Definition

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;

Verwandte Datentypen und Schnittstellen

RKADK_PLAYER_FRAME_INFO_S

7.3.5 RKADK_VO_INTF_TYPE_E

Beschreibung

Definiert die Aufzählung der Display-Schnittstellen.

Definition

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;

Member

Membername Beschreibung
DISPLAY_TYPE_HDMI Display-Schnittstelle HDMI
DISPLAY_TYPE_EDP Display-Schnittstelle EDP
DISPLAY_TYPE_VGA Display-Schnittstelle VGA
DISPLAY_TYPE_MIPI Display-Schnittstelle MIPI
DISPLAY_TYPE_DP Display-Schnittstelle DP
DISPLAY_TYPE_HDMI_EDP Display-Schnittstelle HDMI | EDP
DISPLAY_TYPE_DEFAULT Interne Erkennung; die Display-Schnittstelle entspricht der tatsächlich angeschlossenen Hardware

Verwandte Datentypen und Schnittstellen

RKADK_PLAYER_FRAME_INFO_S

7.3.6 RKADK_VO_SPLICE_MODE_E

Beschreibung

Definiert die Aufzählung der Methoden zum Zusammenfügen von Ebenen.

Definition

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

Member

Membername Beschreibung
SPLICE_MODE_RGA Zusammenfügen mit RGA
SPLICE_MODE_GPU Zusammenfügen mit GPU
SPLICE_MODE_BYPASS BYPASS, kein Zusammenfügen

Verwandte Datentypen und Schnittstellen

RKADK_PLAYER_FRAME_INFO_S

7.3.7 RKADK_PLAYER_FRAME_INFO_S

Beschreibung

Bildinformationsstruktur definieren.

Definition

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;

Member

Membername Beschreibung
u32FrmInfoX x-Koordinate des Anzeigebereichs der Ebene
u32FrmInfoY y-Koordinate des Anzeigebereichs der Ebene
u32DispWidth Breite des Anzeigebereichs der Ebene
u32DispHeight Höhe des Anzeigebereichs der Ebene
u32ImgWidth Bildbreite der Ebene
u32ImgHeight Bildhöhe der Ebene
u32VoLay Nummer der Videoausgabeebene
u32VoDev Nummer des Anzeigeausgabegeräts
u32VoChn Nummer des Videoausgabekanals, Wertebereich: [0, VO_MAX_CHN_NUM(128)]
u32BorderColor Rahmenattribut des Videoausgabekanals: Farbe (reserviert)
u32BorderTopWidth Rahmenattribut des Videoausgabekanals: Breite oben (reserviert)
u32BorderBottomWidth Rahmenattribut des Videoausgabekanals: Breite unten (reserviert)
u32BorderLeftWidth Rahmenattribut des Videoausgabekanals: Breite links (reserviert)
u32BorderRightWidth Rahmenattribut des Videoausgabekanals: Breite rechts (reserviert)
bMirror Spiegelung aktivieren
bFlip Umklappen aktivieren
u32Rotation Drehung, Werte: [0: 0, 1: 90, 2: 180, 3: 270]
u32VoFormat Bildpixelformat definieren
u32EnIntfType Typ der Display-Schnittstelle
enIntfSync Synchronisationsmodus der Bildschirmschnittstelle
stSyncInfo Bildschirm-Attributstruktur
enVoSpliceMode Modus zum Zusammenfügen von Ebenen

Hinweis

Details zu Videoausgabeattributen stehen im VO-Kapitel des Rockit-Dokuments Rockchip_Developer_Guide_MPI.pdf.

Verwandte Datentypen und Schnittstellen

RKADK_VO_FORMAT_E RKADK_VO_INTF_TYPE_E RKADK_VO_SPLICE_MODE_E

RKADK_PLAYER_Create

7.3.8 RKADK_PLAYER_STATE_E

Beschreibung

Definiert die Aufzählung der Wiedergabezustände.

Definition

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;

Verwandte Datentypen und Schnittstellen

RKADK_PLAYER_GetPlayStatus

7.3.9 RKADK_PLAYER_SNAPSHOT_S

Beschreibung

Schnappschuss-Datenstruktur definieren.

Definition

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

Member

Membername Beschreibung
u32Width Breite des Schnappschusses
u32Height Höhe des Schnappschusses
u32DataLen Datenlänge des Schnappschusses
pu8DataBuf Datenzeiger des Schnappschusses

Verwandte Datentypen und Schnittstellen

RKADK_PPLAYER_SNAPSHOT_RECV_FN

7.3.10 RKADK_PPLAYER_SNAPSHOT_RECV_FN

Beschreibung

Definiert den Funktionszeiger auf den Schnappschuss-Daten-Callback.

Definition

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

Member

Membername Beschreibung
pstData Datenzeiger des Schnappschusses

Verwandte Datentypen und Schnittstellen

RKADK_PLAYER_SNAPSHOT_S RKADK_PLAYER_SNAPSHOT_CFG_S

7.3.11 RKADK_PLAYER_SNAPSHOT_CFG_S

Beschreibung

Schnappschuss-Attributstruktur definieren.

Definition

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;

Member

Membername Beschreibung
u32VencChn JPEG-Kodierungskanal
u32MaxWidth Maximale Schnappschussbreite, standardmäßig 4096
u32MaxHeight Maximale Schnappschusshöhe, standardmäßig 4096
pfnDataCallback Zeiger auf den Schnappschuss-Daten-Callback

Verwandte Datentypen und Schnittstellen

RKADK_PPLAYER_SNAPSHOT_RECV_FN RKADK_PLAYER_CFG_S

7.3.12 RKADK_PLAYER_VDEC_CFG_S

Beschreibung

VDEC-Attributstruktur definieren.

Definition

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;

Member

Membername Beschreibung
u32FrameBufCnt Anzahl der Ausgabepuffer, standardmäßig 3
u32StreamBufCnt Anzahl der Eingabepuffer, standardmäßig 3

Verwandte Datentypen und Schnittstellen

RKADK_PLAYER_CFG_S

7.3.13 RKADK_PLAYER_RTSP_CFG_S

Beschreibung

RTSP-Attributstruktur definieren.

Definition

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;

Member

Membername Beschreibung
transport Transportprotokoll, standardmäßig UDP
u32ITimeout Zeitlimit für Socket-E/A in ms; standardmäßig kein Zeitlimit

Verwandte Datentypen und Schnittstellen

RKADK_PLAYER_CFG_S

7.3.14 RKADK_PLAYER_PACKET

Beschreibung

Datenpaketstruktur für die Nutzung der externen Demuxer-Bibliothek definieren.

Definition

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;

Member

Membername Beschreibung
bEofFlag Ob es sich um den letzten Datenframe handelt
s8PacketData Datenzeiger
s32PacketSize Datenlänge
u32Seq Sequenznummer
s64Pts Zeitstempel
bBypass Datenübertragung: true bedeutet direkte Weitergabe, false bedeutet zusätzliche Kopie
pFreeCB Funktionszeiger zum Freigeben von s8PacketData; bei bBypass=true erforderlich

Verwandte Datentypen und Schnittstellen

RKADK_PLAYER_SendAudioPacket RKADK_PLAYER_SendVideoPacket

7.3.15 RKADK_PLAYER_DATA_PARAM_S

Beschreibung

Audio-/Videoparameterstruktur zur Verwendung mit aktivierter externer Demuxer-Bibliothek definieren.

Definition

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;

Member

Membername Beschreibung
pFilePath Pfad der wiederzugebenden Datei
bIsRtsp Ob es sich um einen RTSP-Netzwerkstream handelt
bVideoExist Ob die wiederzugebende Datei einen Videostream enthält
bAudioExist Ob die wiederzugebende Datei einen Audiostream enthält
enVCodecType Dekodierungsformat des Videostreams
u32Width Breite des Videostreams
u32Height Höhe des Videostreams
u32FrameRate Bildrate des Videostreams
enACodecType Dekodierungsformat des Audiostreams
u32BitWidth Bitbreite des Audiostreams
u32SampleRate Abtastrate des Audiostreams
u32Channel Anzahl der Audiostream-Kanäle

Verwandte Datentypen und Schnittstellen

RKADK_PLAYER_SetDataParam

8. Live-Streaming

8.1 Überblick

Stellt grundlegende Dienste für standardmäßiges RTSP-Live-Streaming sowie RTMP-Live-Streaming bereit. RTSP und RTMP können nicht gleichzeitig gestartet werden.

8.2 API-Referenz

8.2.1 RTSP

8.2.1.1 RKADK_RTSP_Init

Beschreibung

RTSP-Modul initialisieren.

Syntax

RKADK_S32 RKADK_RTSP_Init(RKADK_U32 u32CamId, RKADK_U32 port, const char *path, RKADK_MW_PTR *ppHandle);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
u32CamId Kamera-ID Eingabe
port Portnummer Eingabe
path RTSP-Adresse Eingabe
ppHandle Erzeugtes RTSP-Handle Ausgabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_rtsp.h

Bibliothek: librkadk.so

Hinweis

Nach RKADK_RTSP_Init RKADK_RTSP_Start aufrufen, um das RTSP-Live-Streaming zu starten.

Beispiel

rkadk_rtsp_test

Siehe auch

RKADK_RTSP_DeInit

8.2.1.2 RKADK_RTSP_DeInit

Beschreibung

RTSP-Modul deinitialisieren.

Syntax

RKADK_S32 RKADK_RTSP_DeInit(RKADK_MW_PTR pHandle);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
PHandle Erzeugtes RTSP-Handle Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_rtsp.h. Bibliothek: librkadk.so

Beispiel

rkadk_rtsp_test

Siehe auch

RKADK_RTSP_Init

8.2.1.3 RKADK_RTSP_Start

Beschreibung

RTSP-Live-Streaming starten.

Syntax

RKADK_S32 RKADK_RTSP_Start(RKADK_MW_PTR pHandle);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
PHandle Erzeugtes RTSP-Handle Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_rtsp.h. Bibliothek: librkadk.so

Hinweis

Diese Schnittstelle nach RKADK_RTSP_Init aufrufen.

Beispiel

rkadk_rtsp_test

Siehe auch

RKADK_RTSP_Stop

8.2.1.4 RKADK_RTSP_Stop

Beschreibung

RTSP-Live-Streaming stoppen.

Syntax

RKADK_S32 RKADK_RTSP_Stop(RKADK_MW_PTR pHandle);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
PHandle Erzeugtes RTSP-Handle Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_rtsp.h. Bibliothek: librkadk.so

Beispiel

rkadk_rtsp_test

Siehe auch

RKADK_RTSP_Start

8.2.1.5 RKADK_RTSP_VideoReset

Beschreibung

RTSP-Live-Streaming neu konfigurieren.

Syntax

RKADK_S32 RKADK_RTSP_VideoReset(RKADK_MW_PTR pHandle);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
PHandle Erzeugtes RTSP-Handle Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_rtsp.h

Bibliothek: librkadk.so

Hinweis

RKADK_RTSP_VideoReset ist erst nach RKADK_RTSP_Init verwendbar. Beim Ändern von Auflösung, Bildrate, Bitrate, Kodierungs- oder Aufzeichnungstyp die Live-Parameter in der ini-Datei über RKADK_PARAM_SetCamParam neu setzen. RV1126/RV1109 und RK3576 unterstützen keinen dynamischen Wechsel von Auflösung und Kodierungstyp: zuerst RKADK_RTSP_DeInit aufrufen, die neue Auflösung bzw. den Kodierungstyp einstellen und danach erneut RKADK_RTSP_Init aufrufen. Teilen Live und andere Module den VI-Kanal, müssen ihre Auflösungen gleichzeitig umgestellt werden, damit VI- und VENC-Auflösung übereinstimmen.

8.2.2 RTMP

8.2.2.1 RKADK_RTMP_Init

Beschreibung

RTMP-Modul initialisieren.

Syntax

RKADK_S32 RKADK_RTMP_Init(RKADK_U32 u32CamId, const char *path, RKADK_MW_PTR *ppHandle);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
u32CamId Kamera-ID Eingabe
path RTMP-Adresse Eingabe
ppHandle Erzeugtes RTMP-Handle Ausgabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_rtmp.h. Bibliothek: librkadk.so

Beispiel

rkadk_rtmp_test

Siehe auch

RKADK_RTMP_DeInit

8.2.2.2 RKADK_RTMP_DeInit

Beschreibung

RTMP-Modul deinitialisieren.

Syntax

RKADK_S32 RKADK_RTMP_DeInit(RKADK_MW_PTR pHandle);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
PHandle Erzeugtes RTMP-Handle Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_rtmp.h. Bibliothek: librkadk.so

Beispiel

rkadk_rtmp_test

Siehe auch

RKADK_RTMP_Init

8.2.2.3 RKADK_RTSP_VideoReset

Beschreibung

RTSP-Live-Streaming neu konfigurieren.

Syntax

RKADK_S32 RKADK_RTSP_VideoReset(RKADK_MW_PTR pHandle);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
PHandle Erzeugtes RTSP-Handle Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_rtsp.h. Bibliothek: librkadk.so

Hinweis

RKADK_RTMP_VideoReset ist erst nach RKADK_RTMP_Init verwendbar. Beim Ändern von Auflösung, Bildrate, Bitrate, Kodierungs- oder Aufzeichnungstyp die Live-Parameter in der ini-Datei über RKADK_PARAM_SetCamParam neu setzen. RV1126/RV1109 und RK3576 unterstützen keinen dynamischen Wechsel von Auflösung und Kodierungstyp: zuerst RKADK_RTMP_DeInit aufrufen, die neue Auflösung bzw. den Kodierungstyp einstellen und danach erneut RKADK_RTMP_Init aufrufen. Teilen Live und andere Module den VI-Kanal, müssen ihre Auflösungen gleichzeitig umgestellt werden, damit VI- und VENC-Auflösung übereinstimmen.

9. Speicherung

9.1 Überblick

Stellt grundlegende Speicherfunktionen bereit: Dateien erkennen, speichern, abrufen und verwalten; Gerätekapazität und -status abfragen; Dateien automatisch löschen; formatieren.

9.2 API-Referenz

9.2.1 RKADK_STORAGE_Init

Beschreibung

Speichermodul initialisieren.

Syntax

RKADK_S32 RKADK_STORAGE_Init(RKADK_MW_PTR *ppHandle, RKADK_STR_DEV_ATTR *pstDevAttr);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
ppHandle Erzeugtes Handle des Speichermoduls Ausgabe
pstDevAttr Zeiger auf die Attribute des eingehängten Geräts Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_storage.h. Bibliothek: librkadk.so

Hinweis

Eine wiederholte Initialisierung wird nicht unterstützt. Wird RKADK_STR_DEV_ATTR als NULL übergeben, gelten die Standardattribute: zwei Ordner video_front und video_back, Sortierung nach Dateiname, automatische Löschschwelle 500~1000M, keine Begrenzung der Dateianzahl und ein Anteil von 50%.

Beispiel

rkadk_storage_test

Siehe auch

RKADK_STORAGE_Deinit

9.2.2 RKADK_STORAGE_Deinit

Beschreibung

Speichermodul deinitialisieren.

Syntax

RKADK_S32 RKADK_STORAGE_Deinit(RKADK_MW_PTR pHandle);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
PHandle Zeiger auf das Handle des Speichermoduls Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_storage.h. Bibliothek: librkadk.so

Hinweis

Wiederholte Deinitialisierung wird nicht unterstützt.

Beispiel

rkadk_storage_test

Siehe auch

RKADK_STORAGE_Init

9.2.3 RKADK_STORAGE_GetDevAttr

Beschreibung

Attribute des eingehängten Geräts abrufen.

Syntax

RKADK_STR_DEV_ATTR RKADK_STORAGE_GetDevAttr(RKADK_MW_PTR pHandle);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
PHandle Zeiger auf das Handle des Speichermoduls Eingabe

Rückgabewert

Rückgabewert Beschreibung
RKADK_STR_DEV_ATTR Attributstruktur des eingehängten Geräts

Voraussetzungen

Header-Datei: rkadk_storage.h. Bibliothek: librkadk.so

Hinweis

RKADK_STORAGE_GetDevAttr ist erst nach der Initialisierung des Speichermoduls verwendbar.

Beispiel

Keine

Siehe auch

Keine

9.2.4 RKADK_STORAGE_GetMountStatus

Beschreibung

Einbindestatus des Geräts abrufen.

Syntax

RKADK_MOUNT_STATUS RKADK_STORAGE_GetMountStatus(RKADK_MW_PTR pHandle);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
PHandle Zeiger auf das Handle des Speichermoduls Eingabe

Rückgabewert

Rückgabewert Beschreibung
RKADK_MOUNT_STATUS Aufzählung der Einbindestatuswerte

Voraussetzungen

Header-Datei: rkadk_storage.h

Bibliothek: librkadk.so

Beispiel

rkadk_storage_test

Siehe auch

Keine

9.2.5 RKADK_STORAGE_GetCapacity

Beschreibung

Gerätekapazität abrufen.

Syntax

RKADK_S32 RKADK_STORAGE_GetCapacity(RKADK_MW_PTR *ppHandle, RKADK_S32 *totalSize, RKADK_S32 *freeSize);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
ppHandle Erzeugtes Handle des Speichermoduls Input/Output
totalSize Zeiger auf die Gesamtkapazität des Geräts Ausgabe
freeSize Zeiger auf die verbleibende Gerätekapazität Ausgabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_storage.h. Bibliothek: librkadk.so

Beispiel

rkadk_storage_test

Siehe auch

Keine

9.2.6 RKADK_STORAGE_GetFileList

Beschreibung

Dateiliste abrufen.

Syntax

RKADK_S32 RKADK_STORAGE_GetFileList(RKADK_FILE_LIST *list, RKADK_MW_PTR pHandle, RKADK_SORT_TYPE sort);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
list Zeiger auf die Dateilistenstruktur Eingabe/Ausgabe
PHandle Zeiger auf das Handle des Speichermoduls Eingabe
sort Sortiertyp Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_storage.h. Bibliothek: librkadk.so

Hinweis

Muss zusammen mit RKADK_STORAGE_FreeFileList verwendet werden.

Beispiel

rkadk_storage_test

Siehe auch

RKADK_STORAGE_FreeFileList

9.2.7 RKADK_STORAGE_FreeFileList

Beschreibung

Dateiliste freigeben.

Syntax

RKADK_S32 RKADK_STORAGE_FreeFileList(RKADK_FILE_LIST *list);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
list Zeiger auf die Dateilistenstruktur Eingabe/Ausgabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_storage.h. Bibliothek: librkadk.so

Hinweis

Muss zusammen mit RKADK_STORAGE_GetFileList verwendet werden.

Beispiel

rkadk_storage_test

Siehe auch

RKADK_STORAGE_GetFileList

9.2.8 RKADK_STORAGE_GetFileNum

Beschreibung

Anzahl der Dateien abrufen.

Syntax

RKADK_S32 RKADK_STORAGE_GetFileNum(RKADK_CHAR *fileListPath, RKADK_MW_PTR pHandle);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
fileListPath Zeiger auf den Dateilistenpfad Eingabe
PHandle Zeiger auf das Handle des Speichermoduls Eingabe

Rückgabewert

Rückgabewert Beschreibung
non-negative Anzahl der Dateien
-1 Fehler

Voraussetzungen

Header-Datei: rkadk_storage.h. Bibliothek: librkadk.so

Beispiel

Keine

Siehe auch

Keine

9.2.9 RKADK_STORAGE_GetDevPath

Beschreibung

Pfad des eingehängten Geräts abrufen.

Syntax

RKADK_CHAR *RKADK_STORAGE_GetDevPath(RKADK_MW_PTR pHandle);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
PHandle Zeiger auf das Handle des Speichermoduls Eingabe

Rückgabewert

Rückgabewert Beschreibung
RKADK_CHAR * Zeiger auf den Pfad des eingehängten Geräts

Voraussetzungen

Header-Datei: rkadk_storage.h. Bibliothek: librkadk.so

Hinweis

RKADK_STORAGE_GetDevPath ist erst nach der Initialisierung des Speichermoduls verwendbar.

Beispiel

rkadk_storage_test

Siehe auch

Keine

9.2.10 RKADK_STORAGE_Format

Beschreibung

Gerät formatieren.

Syntax

RKADK_S32 RKADK_STORAGE_Format(RKADK_MW_PTR pHandle, RKADK_CHAR *cFormat);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
PHandle Zeiger auf das Handle des Speichermoduls Eingabe
cFormat Dateisystemtyp Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_storage.h. Bibliothek: librkadk.so

Beispiel

Keine

Siehe auch

Keine

9.3 Datentypen

Das Speichermodul stellt hauptsächlich diese Datentypen bereit: RKADK_MOUNT_STATUS: Aufzählung der Einbindestatuswerte; RKADK_SORT_TYPE: Aufzählung der Sortiertypen; RKADK_SORT_CONDITION: Aufzählung der Sortierbedingungen.

RKADK_STR_FOLDER_ATTR: Ordner-Attributstruktur; RKADK_STR_DEV_ATTR: Geräte-Attributstruktur; RKADK_FILE_INFO: Dateiinformationsstruktur; RKADK_FILE_LIST: Dateilistenstruktur; RKADK_FILE_LIST_ARRAY: Struktur einer Gruppe von Dateilisten.

9.3.1 RKADK_MOUNT_STATUS

Beschreibung

Definiert die Aufzählung der Einbindestatuswerte.

Definition

typedef enum {
  DISK_UNMOUNTED = 0,
  DISK_NOT_FORMATTED,
  DISK_FORMAT_ERR,
  DISK_SCANNING,
  DISK_MOUNTED,
  DISK_MOUNT_BUTT,
} RKADK_MOUNT_STATUS;

Member

Membername Beschreibung
DISK_UNMOUNTED Datenträger nicht eingehängt
DISK_NOT_FORMATTED Datenträger nicht formatiert
DISK_FORMAT_ERR Datenträgerformatfehler
DISK_SCANNING Datenträger wird durchsucht
DISK_MOUNTED Datenträger eingehängt

Verwandte Datentypen und Schnittstellen

RKADK_STORAGE_GetMountStatus

9.3.2 RKADK_SORT_TYPE

Beschreibung

Definiert die Aufzählung der Sortiertypen.

Definition

typedef enum {
  LIST_ASCENDING = 0,
  LIST_DESCENDING,
  LIST_BUTT,
} RKADK_SORT_TYPE;

Member

Membername Beschreibung
LIST_ASCENDING Liste aufsteigend sortieren
LIST_DESCENDING Liste absteigend sortieren

Verwandte Datentypen und Schnittstellen

RKADK_STORAGE_GetFileList

9.3.3 RKADK_SORT_CONDITION

Beschreibung

Definiert die Aufzählung der Sortierbedingungen.

Definition

typedef enum {
  SORT_MODIFY_TIME = 0,
  SORT_FILE_NAME,
  SORT_BUTT,
} RKADK_SORT_CONDITION;

Member

Membername Beschreibung
SORT_MODIFY_TIME Liste nach Dateiänderungszeit sortieren
SORT_FILE_NAME Liste nach Dateiname sortieren

Verwandte Datentypen und Schnittstellen

RKADK_STR_FOLDER_ATTR

9.3.4 RKADK_STR_FOLDER_ATTR

Beschreibung

Ordner-Attributstruktur definieren.

Definition

typedef struct {
  RKADK_CHAR cFolderPath[RKADK_MAX_FILE_PATH_LEN];
  RKADK_SORT_CONDITION s32SortCond;
  RKADK_BOOL bNumLimit;
  RKADK_S32 s32Limit;
} RKADK_STR_FOLDER_ATTR;

Member

Membername Beschreibung
cFolderPath Ordnerpfad
s32SortCond Sortierbedingungen
bNumLimit Option: Obergrenze anhand der Dateianzahl festlegen
s32Limit Maximale Ordnerkapazität (Anteil/Anzahl)

Verwandte Datentypen und Schnittstellen

RKADK_SORT_CONDITION RKADK_STR_DEV_ATTR

9.3.5 RKADK_STR_DEV_ATTR

Beschreibung

Geräte-Attributstruktur definieren.

Definition

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;

Member

Membername Beschreibung
cDevPath Gerätename (Gerätepfad)
cMountPath Einhängepfad des Geräts
s32FreeSizeDelMin Untere Schwelle für automatisches Löschen
s32FreeSizeDelMax Obere Schwelle für automatisches Löschen
s32AutoDel Option für automatisches Löschen
s32FolderNum Anzahl der Ordner
cFormatId Format-ID
cVolume Datenträgerbezeichnung
s32CheckFormatId Übereinstimmung der Format-ID prüfen
pstFolderAttr Zeiger auf die Ordner-Attributstruktur

Verwandte Datentypen und Schnittstellen

RKADK_STR_FOLDER_ATTR RKADK_STORAGE_Init RKADK_STORAGE_GetDevAttr

9.3.6 RKADK_FILE_INFO

Beschreibung

Dateiinformationsstruktur definieren.

Definition

typedef struct {
  RKADK_CHAR filename[RKADK_MAX_FILE_PATH_LEN];
  off_t stSize;
  time_t stTime;
  void *thumb;
} RKADK_FILE_INFO;

Member

Membername Beschreibung
filename Dateiname
stSize Dateigröße
stTime Dateiänderungszeit
thumb Zeiger auf das Vorschaubild

Verwandte Datentypen und Schnittstellen

RKADK_FILE_LIST

9.3.7 RKADK_FILE_LIST

Beschreibung

Dateilistenstruktur definieren.

Definition

typedef struct {
  RKADK_CHAR path[RKADK_MAX_FILE_PATH_LEN];
  RKADK_S32 s32FileNum;
  RKADK_FILE_INFO *file;
} RKADK_FILE_LIST;

Member

Membername Beschreibung
path Pfad der Dateiliste (des Ordners)
s32FileNum Anzahl der Dateien
file Zeiger auf die Dateiinformationsstruktur

Verwandte Datentypen und Schnittstellen

RKADK_FILE_INFO RKADK_FILE_LIST_ARRAY

9.3.8 RKADK_FILE_LIST_ARRAY

Beschreibung

Struktur einer Gruppe von Dateilisten definieren.

Definition

typedef struct {
  RKADK_S32 s32ListNum;
  RKADK_FILE_LIST *list;
} RKADK_FILE_LIST_ARRAY;

Member

Membername Beschreibung
s32ListNum Anzahl der Dateilisten (Ordner)
list Zeiger auf die Dateilistenstruktur

Verwandte Datentypen und Schnittstellen

RKADK_FILE_LIST

10. Anzeige

10.1 Überblick

Bietet lokale Vorschau sowie die Anzeige zweier horizontal oder vertikal zusammengefügter Streams. Unterstützt Bild-in-Bild mit mehreren Kamerastreams und dem Austausch des Inhalts zwischen Hauptbild und PIP-Bereich. Auch lokale Vorschau und externe H264/H265-Streams können gemeinsam mit umschaltbaren Bildbereichen als Bild-in-Bild angezeigt werden. Bis zu zwei PIP-Streamkanäle werden unterstützt.

10.2 API-Referenz

10.2.1 RKADK_DISP_Init

Beschreibung

Modul für lokale Vorschau initialisieren.

Syntax

RKADK_S32 RKADK_DISP_Init(RKADK_U32 u32CamId);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
u32CamId Kamera-ID Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_disp.h. Bibliothek: librkadk.so

Beispiel

rkadk_disp_test

Siehe auch

RKADK_DISP_DeInit

10.2.2 RKADK_DISP_DeInit

Beschreibung

Modul für lokale Vorschau deinitialisieren.

Syntax

RKADK_S32 RKADK_DISP_DeInit(RKADK_U32 u32CamId);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
u32CamId Kamera-ID Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_disp.h

Bibliothek: librkadk.so

Beispiel

rkadk_disp_test

Siehe auch

RKADK_DISP_Init

10.2.3 RKADK_DISP_SetAttr

Beschreibung

Vorschauattribute festlegen.

Syntax

RKADK_S32 RKADK_DISP_SetAttr(RKADK_U32 u32CamId, RKADK_DISP_ATTR_S *pstAttr);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
u32CamId Kamera-ID Eingabe
pstAttr Vorschauattribute Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_disp.h. Bibliothek: librkadk.so

10.2.4 RKADK_DISP_InitEx

Beschreibung

Lokale Vorschau und Nebenstream initialisieren.

Syntax

RKADK_S32 RKADK_DISP_InitEx(RKADK_DISP_CFG_S *pstAttr, RKADK_MW_PTR *ppHandle) ;

Parameter

Parametername Beschreibung Input/Output
pstAttr Zeiger auf die Konfigurationsparameter für Vorschau und Nebenstream Eingabe
ppHandle Zeiger auf die erzeugte Vorschauaufgabe Ausgabe

Rückgabewerte

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Hinweise

Beim Nebenstream-Typ RKADK_STREAM_TYPE_DISP werden die Initialisierungsparameter aus der ini-Datei gelesen.

Voraussetzungen

Header-Datei: rkadk_disp.h. Bibliothek: librkadk.so

Beispiel

rkadk_disp_test

Verwandte Themen

RKADK_DISP_DeInitEx

10.2.5 RKADK_DISP_DeInitEx

Beschreibung

Lokale Vorschau und Nebenstream deinitialisieren.

Syntax

RKADK_S32 RKADK_DISP_DeInitEx(RKADK_MW_PTR pHandle) ;

Parameter

Parametername Beschreibung Input/Output
pHandle Zeiger auf die Vorschauaufgabe Eingabe

Rückgabewerte

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_disp.h. Bibliothek: librkadk.so

Beispiel

rkadk_disp_test

Verwandte Themen

RKADK_DISP_InitEx

10.2.6 RKADK_DISP_SetAttrEx

Beschreibung

Attribute für Vorschau und Nebenstream festlegen.

Syntax

RKADK_S32 RKADK_DISP_SetAttrEx(RKADK_DISP_ATTR_S *pstAttr, RKADK_MW_PTR pHandle);

Parameter

Parametername Beschreibung Input/Output
pstAttr Attribute für Vorschau und Nebenstream Eingabe
pHandle Zeiger auf die Vorschauaufgabe Eingabe

Rückgabewerte

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_disp.h. Bibliothek: librkadk.so

10.2.7 RKADK_DISP_SendVideoStream

Beschreibung

Bei aktivierter Nebenstream-Anzeige übergibt diese Schnittstelle die Nebenstream-Daten an VDEC.

Syntax

RKADK_S32 RKADK_DISP_SendVideoStream(RKADK_MW_PTR pHandle, RKADK_U32 u32VdecChn, RKADK_DISP_DATA_S *pstData);

Parameter

Parametername Beschreibung Input/Output
pHandle Zeiger auf die Vorschauaufgabe Eingabe
u32VdecChn VDEC-Kanal Eingabe
pstData Zeiger auf die Nebenstream-Daten Eingabe

Rückgabewerte

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_disp.h. Bibliothek: librkadk.so

10.3 Datentypen

Das Anzeigemodul stellt hauptsächlich folgende Datentypen bereit: RKADK_DISP_SUB_STREAM_NUM: Anzahl der Nebenstreams; RKADK_DISP_CFG_S: Konfigurationsstruktur für Vorschau und Nebenstreams; RKADK_DISP_STREAM_CFG_S: Konfigurationsstruktur für Nebenstream-Parameter; RKADK_DISP_VDEC_CFG_S: Konfigurationsstruktur für VDEC-Parameter des Nebenstreams; RKADK_DISP_VO_CFG_S: Konfigurationsstruktur für VO-Parameter des Nebenstreams; RKADK_DISP_ATTR_S: Attributstruktur für Vorschau und Nebenstreams; RKADK_DISP_STREAM_ATTR_S: Nebenstream-Attributstruktur; RKADK_DISP_VDEC_ATTR_S: VDEC-Attributstruktur des Nebenstreams.

RKADK_DISP_DATA_S: Datenstruktur des Nebenstreams

10.3.1 RKADK_DISP_SUB_STREAM_NUM

Beschreibung

Anzahl der Nebenstreams.

Definition

#define RKADK_DISP_SUB_STREAM_NUM 2

10.3.2 RKADK_DISP_CFG_S

Beschreibung

Definiert die Konfigurationsstruktur für Vorschau und Nebenstream.

Definition

typedef struct {
  RKADK_U32 u32CamId;
  RKADK_DISP_STREAM_CFG_S stSubStream[RKADK_DISP_SUB_STREAM_NUM];
} RKADK_DISP_CFG_S;

Member

Membername Beschreibung
u32CamId Kamera-ID
stSubStream Nebenstream-Parameter

10.3.3 RKADK_DISP_STREAM_CFG_S

Beschreibung

Definiert die Konfigurationsstruktur für Nebenstream-Parameter.

Definition

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;

Member

Membername Beschreibung
bEnable Ob der Nebenstream aktiviert werden soll
s32CamId Kamera-ID des Nebenstreams; bei externem Stream auf -1 setzen
enStreamType Nebenstream-Typ
stVoCfg VO-Konfigurationsparameter des Nebenstreams; beim Typ RKADK_STREAM_TYPE_DISP aus der ini-Datei gelesen
stVdecCfg VDEC-Konfigurationsparameter des Nebenstreams; beim Typ RKADK_STREAM_TYPE_THIRD_STREAM erforderlich

10.3.4 RKADK_DISP_VDEC_CFG_S

Beschreibung

Definiert die Konfigurationsstruktur für VDEC-Parameter des Nebenstreams.

Definition

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;

Member

Membername Beschreibung
u32VdecChn VDEC-Kanal
u32SrcWidth Breite des Nebenstreams
u32SrcHeight Höhe des Nebenstreams
enCodecType Kodierungstyp des Nebenstreams (H264/H265)
u32StreamBufCnt Anzahl der VDEC-Eingabepuffer, standardmäßig 8
u32FrameBufCnt Anzahl der VDEC-Ausgabepuffer, standardmäßig 3
u32FrameBufSize VDEC-Puffergröße; bei 0 intern von VDEC berechnet
u32DecodeMode Methode der Stream-Übergabe
enOutputOrder Dekodierausgabereihenfolge: bei Streams mit B-Frames Anzeigereihenfolge einstellen, sonst Dekodierreihenfolge

10.3.5 RKADK_DISP_VO_CFG_S

Beschreibung

Definiert die Konfigurationsstruktur für VO-Parameter des Nebenstreams.

Definition

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;

Member

Membername Beschreibung
u32VoChn VO-Kanal
stVoRect Ausgabeanzeigebereich des Nebenstreams
rotation Drehung des Nebenstreams

10.3.6 RKADK_DISP_ATTR_S

Beschreibung

Attributstruktur für Vorschau und Nebenstream definieren.

Definition

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;

Member

Membername Beschreibung
stVpssCropRect Eingabeanzeigebereich
stVoRect Ausgabeanzeigebereich
s32Priority Priorität des Vo-Kanals: höherer Wert bedeutet höhere Priorität; -1 bedeutet nicht setzen (Standardpriorität verwenden)
stSubStreamAttr Nebenstream-Attribute

10.3.7 RKADK_DISP_STREAM_ATTR_S

Beschreibung

Definiert die Attributstruktur des Nebenstreams.

Definition

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;

Member

Membername Beschreibung
stVpssCropRect Eingabeanzeigebereich des Nebenstreams; nur beim Typ RKADK_STREAM_TYPE_DISP wirksam
stVoRect Ausgabeanzeigebereich des Nebenstreams
s32Priority Priorität des vo-Kanals: höherer Wert bedeutet höhere Priorität; -1 bedeutet nicht setzen (Standardpriorität verwenden)
stVdecAttr VDEC-Attribute des Nebenstreams; nur beim Typ RKADK_STREAM_TYPE_THIRD_STREAM wirksam

10.3.8 RKADK_DISP_VDEC_ATTR_S

Beschreibung

Definiert die VDEC-Attributstruktur des Nebenstreams.

Definition

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;

Member

Membername Beschreibung
u32SrcWidth Breite des Nebenstreams
u32SrcHeight Höhe des Nebenstreams
enCodecType Kodierungstyp des Nebenstreams (H264/H265)

10.3.9 RKADK_DISP_DATA_S

Beschreibung

Definiert die Datenstruktur des Nebenstreams.

Definition

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;

Member

Membername Beschreibung
bEofFlag Gibt an, ob dies der letzte Datenframe ist
data Datenzeiger
u32Len Datenlänge
u32Seq Sequenznummer
u64Pts Zeitstempel
bBypass Datenübertragung: true bedeutet Bypass, false bedeutet Kopieren
pFreeCB Zeiger auf die Datenfreigabefunktion; bei bBypass=true erforderlich

11. OSD

11.1 Überblick

Das OSD-Modul bietet grundlegende Wasserzeichenfunktionen

11.2 API-Referenz

11.2.1 RKADK_OSD_Init

Beschreibung

Wasserzeichenaufgabe initialisieren.

Syntax

RKADK_S32 RKADK_OSD_Init(RKADK_U32 u32OsdId, RKADK_OSD_ATTR_S *pstOsdAttr);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
u32OsdId Wasserzeichen-ID Eingabe
pstOsdAttr Zeiger auf die Attribute der Wasserzeichenaufgabe Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_osd.h. Bibliothek: librkadk.so

Hinweis

Wiederholte Initialisierung wird nicht unterstützt.

11.2.2 RKADK_OSD_Deinit

Beschreibung

Wasserzeichenaufgabe deinitialisieren.

Syntax

RKADK_S32 RKADK_OSD_Deinit(RKADK_U32 u32OsdId);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
u32OsdId Wasserzeichen-ID Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_osd.h. Bibliothek: librkadk.so

Hinweis

Wiederholte Deinitialisierung wird nicht unterstützt.

11.2.3 RKADK_OSD_UpdateBitMap

Beschreibung

Wasserzeicheninhalt aktualisieren.

Syntax

RKADK_S32 RKADK_OSD_UpdateBitMap(RKADK_U32 u32OsdId, RKADK_OSD_ATTR_S *pstOsdAttr);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
u32OsdId Wasserzeichen-ID Eingabe
pstOsdAttr Zeiger auf die Attribute der Wasserzeichenaufgabe Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_osd.h. Bibliothek: librkadk.so

Hinweis

Muss nach Abschluss der Deinitialisierungsaufgabe verwendet werden.

11.2.4 RKADK_OSD_AttachToStream

Beschreibung

Wasserzeichen dem Zielstream zuordnen.

Syntax

RKADK_S32 RKADK_OSD_AttachToStream(RKADK_U32 u32OsdId, RKADK_U32 u32CamId, RKADK_STREAM_TYPE_E enStrmType, RKADK_OSD_STREAM_ATTR_S *pstOsdStreamAttr);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
u32OsdId Wasserzeichen-ID Eingabe
u32CamId Kamera-ID Eingabe
enStrmType Typ des Zielstreams Eingabe
pstOsdStreamAttr Zeiger auf die Positionsinformationen des Wasserzeichens Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_osd.h. Bibliothek: librkadk.so

Hinweis

Dasselbe Wasserzeichen kann demselben Streamtyp nicht mehrfach zugeordnet werden.

11.2.5 RKADK_OSD_DettachFromStream

Beschreibung

Wasserzeichen vom Zielstream entfernen.

Syntax

RKADK_S32 RKADK_OSD_DettachFromStream(RKADK_U32 u32OsdId, RKADK_U32 u32CamId, RKADK_STREAM_TYPE_E enStrmType);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
u32OsdId Wasserzeichen-ID Eingabe
u32CamId Kamera-ID Eingabe
enStrmType Typ des Zielstreams Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_osd.h. Bibliothek: librkadk.so

11.2.6 RKADK_OSD_UpdateOsdSize

Beschreibung

Wasserzeichengröße aktualisieren.

Syntax

RKADK_S32 RKADK_OSD_UpdateOsdSize(RKADK_U32 u32OsdId, RKADK_OSD_ATTR_S *pstOsdAttr);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
u32OsdId Wasserzeichen-ID Eingabe
pstOsdAttr Zeiger auf die Attribute der Wasserzeichenaufgabe Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_osd.h. Bibliothek: librkadk.so

11.2.7 RKADK_OSD_UpdateDisplayAttr

Beschreibung

Anzeigebereich des Wasserzeichens aktualisieren.

Syntax

RKADK_S32 RKADK_OSD_UpdateDisplayAttr(RKADK_U32 u32OsdId, RKADK_U32 u32CamId, RKADK_STREAM_TYPE_E enStrmType, RKADK_OSD_STREAM_ATTR_S *pstOsdStreamAttr);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
u32OsdId Wasserzeichen-ID Eingabe
u32CamId Kamera-ID Eingabe
enStrmType Streamtyp Eingabe
pstOsdStreamAttr Positionsinformationen des Wasserzeichens Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_osd.h. Bibliothek: librkadk.so

11.3 Datentypen

Das Wasserzeichenmodul stellt hauptsächlich folgende Datentypen bereit: RKADK_OSD_ATTR_S: Wasserzeichen-Attributstruktur; RKADK_OSD_STREAM_ATTR_S: Struktur der Positionsinformationen; RKADK_OSD_TYPE_E: Wasserzeichen-Überlagerungstyp.

11.3.1 RKADK_OSD_ATTR_S

Beschreibung

Wasserzeichenattribute definieren.

Definition

typedef struct {
  RKADK_U32 Width;
  RKADK_U32 Height;
  RKADK_VOID *pData;
  RKADK_FORMAT_E Format;
  RKADK_OSD_TYPE_E enOsdType;
} RKADK_OSD_ATTR_S;

Member

Membername Beschreibung
Breite Wasserzeichenbreite
Höhe Wasserzeichenhöhe
pData Wasserzeicheninhalt
Format Wasserzeichenformat
enOsdType Wasserzeichen-Überlagerungstyp

Verwandte Datentypen und Schnittstellen

RKADK_OSD_ATTR_S RKADK_OSD_TYPE_E

11.3.2 RKADK_OSD_STREAM_ATTR_S

Beschreibung

Positionsinformationen des Wasserzeichens definieren.

Definition

typedef struct {
  RKADK_BOOL bEnableShow;
  RKADK_U32 Origin_X;
  RKADK_U32 Origin_Y;
} RKADK_OSD_STREAM_ATTR_S;

Member

Membername Beschreibung
Origin_X X-Versatz der Wasserzeichen-Startposition
Origin_Y Y-Versatz der Wasserzeichen-Startposition
bEnableShow Ob das Wasserzeichen angezeigt werden soll

Verwandte Datentypen und Schnittstellen

RKADK_OSD_STREAM_ATTR_S

11.4 RKADK_OSD_TYPE_E

Beschreibung

Wasserzeichen-Überlagerungstyp definieren.

Definition

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;

Member

Membername Beschreibung
RKADK_OSD_TYPE_NORMAL OSD-Überlagerung im Encoder
RKADK_OSD_TYPE_EXTRA Überlagerung mit RGA

Hinweis

Die JPEG-Kodierung auf RV1109/RV1126 unterstützt keine Wasserzeichenüberlagerung über das Encoder-OSD; RKADK_OSD_TYPE_EXTRA muss eingestellt werden.

12. UI-Überlagerung

12.1 Überblick

Bietet die Überlagerung von UI und Videobild auf Plattformen mit einschichtigem VOP wie RV1103/RV1106.

12.2 API-Referenz

12.2.1 RKADK_UI_Create

Beschreibung

UI-Überlagerungsmodul initialisieren

Syntax

RKADK_S32 RKADK_UI_Create(RKADK_UI_ATTR_S *pstUiAttr, RKADK_MW_PTR *ppUi);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pstUiAttr UI-Attribute Eingabe
ppUi Zeiger auf die erzeugte UI-Aufgabe Ausgabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_ui.h. Bibliothek: librkadk.so

Beispiel

rkadk_ui_test

Siehe auch

RKADK_UI_Destroy

12.2.2 RKADK_UI_Destroy

Beschreibung

UI-Überlagerungsmodul deinitialisieren

Syntax

RKADK_S32 RKADK_UI_Destroy(RKADK_MW_PTR pUi);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pUi Zeiger auf die UI-Aufgabe Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_ui.h. Bibliothek: librkadk.so

Beispiel

rkadk_ui_test

Siehe auch

RKADK_UI_Create

12.2.3 RKADK_UI_Update

Beschreibung

UI-Daten aktualisieren.

Syntax

RKADK_S32 RKADK_UI_Update(RKADK_MW_PTR pUi, RKADK_UI_FRAME_INFO *pstUiFrameInfo);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
pUi Zeiger auf die UI-Aufgabe Eingabe
pstUiFrameInfo Zeiger auf die UI-Daten Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_ui.h. Bibliothek: librkadk.so

Beispiel

rkadk_ui_test

12.3 Datentypen

RKADK_UI_ATTR_S: UI-Attributstruktur; RKADK_UI_FRAME_INFO: UI-Datenstruktur

12.3.1 RKADK_UI_ATTR_S

Beschreibung

UI-Attributstruktur definieren.

Definition

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;

Member

Membername Beschreibung
u32DispX x-Koordinate des Anzeigebereichs der Ebene
u32DispY y-Koordinate des Anzeigebereichs der Ebene
u32DispWidth Breite des Anzeigebereichs der Ebene
u32DispHeight Höhe des Anzeigebereichs der Ebene
u32ImgWidth Bildbreite der Ebene
u32ImgHeight Bildhöhe der Ebene
u32DispFrmRt Bildwiederholrate
u32VoLay Nummer der Videoausgabeebene
u32VoDev Nummer des Anzeigeausgabegeräts
u32VoChn Nummer des Videoausgabekanals, Wertebereich: [0, VO_MAX_CHN_NUM(128)]
u32Rotation Drehung, Werte: [0: 0, 1: 90, 2: 180, 3: 270]
bMirror Spiegelung aktivieren
bFlip Umklappen aktivieren
enUiVoFormat Bildpixelformat
enUiVoIntfTye Typ der Display-Schnittstelle
enVoSpliceMode Ebenen-Kompositionsmodus

Verwandte Datentypen und Schnittstellen

RKADK_VO_FORMAT_E RKADK_VO_INTF_TYPE_E RKADK_VO_SPLICE_MODE_E RKADK_UI_Create

12.3.2 RKADK_UI_FRAME_INFO

Beschreibung

UI-Dateninformationen definieren.

Definition

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;

Member

Membername Beschreibung
u32Width Breite der UI-Daten
u32Height Höhe der UI-Daten
Format Format der UI-Daten
pMblk Zeiger auf die UI-Daten
s32MilliSec Zeitlimit für UI-Aktualisierung, standardmäßig 1000ms; -1 bedeutet blockierend

Verwandte Datentypen und Schnittstellen

RKADK_FORMAT_E RKADK_UI_Update

12.3.3 RKADK_FORMAT_E

Beschreibung

Pixelformat definieren.

Definition

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;

Verwandte Datentypen und Schnittstellen

RKADK_UI_FRAME_INFO

13. Parametereinstellungen

13.1 Überblick

Das Parametermodul ist eng an die Produktform gekoppelt. Durch Kombination allgemeiner Komponenten-Datenstrukturen entsteht eine zur Produktform passende Struktur. Das Modul unterstützt das Abrufen und Speichern bestimmter Parameter sowie das Wiederherstellen der Standardwerte. Zur einfacheren Bearbeitung werden Parameter als ini-Dateien gespeichert. Der Standard-ini-Pfad lässt sich über die Umgebungsvariable rkadk_default_ini_path festlegen; standardmäßig ist dies /oem/usr/etc.

export rkadk_default_ini_path=/oem/usr/etc

13.2 API-Referenz

13.2.1 RKADK_PARAM_Init

Beschreibung

Parametermodul initialisieren

Syntax

RKADK_S32 RKADK_PARAM_Init(char *globalSetting, char **sesnorSettingArrary);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
globalSetting Pfad der globalen ini-Konfigurationsdatei Eingabe
sesnorSettingArrary Pfad der Sensor-ini-Konfigurationsdatei Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_param.h. Bibliothek: librkadk.so

Hinweis

Vor dem Start eines Moduls zunächst das Parametermodul mit RKADK_PARAM_Init initialisieren. Ist globalSetting nicht gesetzt, wird RKADK_PARAM_PATH verwendet. Ist sesnorSettingArrary nicht gesetzt, gilt RKADK_PARAM_PATH_SENSOR_PREFIX. Das Standardnamensmuster der Sensorkonfiguration lautet rkadk_setting_sensor_n.ini; _n steht für die Kamera-ID des Sensors, beginnend bei 0.

Beispiel

rkadk_record_test

Siehe auch

Keine

13.2.2 RKADK_PARAM_GetCamParam

Beschreibung

Kamerabezogene Parameter abrufen.

Syntax

RKADK_S32 RKADK_PARAM_GetCamParam(RKADK_S32 s32CamID, RKADK_PARAM_TYPE_E enParamType, RKADK_VOID *pvParam);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
s32CamID Kamera-ID Eingabe
enParamType Parametertyp Eingabe
pvParam Zeiger auf den abgerufenen Parameter Ausgabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_param.h. Bibliothek: librkadk.so

Hinweis

Diese Schnittstelle darf erst nach der Initialisierung des Parametermoduls durch RKADK_PARAM_Init aufgerufen werden.

Beispiel

rkadk_record_test

Siehe auch

RKADK_PARAM_SetCamParam

13.2.3 RKADK_PARAM_SetCamParam

Beschreibung

Kamerabezogene Parameter festlegen.

Syntax

RKADK_S32 RKADK_PARAM_SetCamParam(RKADK_S32 s32CamID, RKADK_PARAM_TYPE_E enParamType, const RKADK_VOID *pvParam);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
s32CamID Kamera-ID Eingabe
enParamType Parametertyp Eingabe
pvParam Zeiger auf den zu setzenden Parameter Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_param.h. Bibliothek: librkadk.so

Hinweis

Diese Schnittstelle darf erst nach der Initialisierung des Parametermoduls durch RKADK_PARAM_Init aufgerufen werden.

Beispiel

rkadk_record_test

Siehe auch

RKADK_PARAM_GetCamParam

13.2.4 RKADK_PARAM_GetCommParam

Beschreibung

Allgemeine Parameter abrufen.

Syntax

RKADK_S32 RKADK_PARAM_GetCommParam(RKADK_PARAM_TYPE_E enParamType, RKADK_VOID *pvParam);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
enParamType Parametertyp Eingabe
pvParam Zeiger auf den abgerufenen Parameter Ausgabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_param.h

Bibliothek: librkadk.so

Hinweis

Diese Schnittstelle darf erst nach der Initialisierung des Parametermoduls durch RKADK_PARAM_Init aufgerufen werden.

Beispiel

rkadk_record_test

Siehe auch

RKADK_PARAM_SetCommParam

13.2.5 RKADK_PARAM_SetCommParam

Beschreibung

Allgemeine Parameter festlegen.

Syntax

RKADK_S32 RKADK_PARAM_SetCommParam(RKADK_PARAM_TYPE_E enParamType, const RKADK_VOID *pvParam);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
enParamType Parametertyp Eingabe
pvParam Zeiger auf den zu setzenden Parameter Eingabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_param.h. Bibliothek: librkadk.so

Hinweis

Diese Schnittstelle darf erst nach der Initialisierung des Parametermoduls durch RKADK_PARAM_Init aufgerufen werden.

Beispiel

rkadk_record_test

Siehe auch

RKADK_PARAM_GetCommParam

13.2.6 RKADK_PARAM_SetDefault

Beschreibung

Standardkonfiguration wiederherstellen.

Syntax

RKADK_S32 RKADK_PARAM_SetDefault(RKADK_VOID);

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_param.h. Bibliothek: librkadk.so

13.2.7 RKADK_PARAM_GetResolution

Beschreibung

RKADK_PARAM_RES_E in eine konkrete Auflösung umwandeln.

Syntax

RKADK_S32 RKADK_PARAM_GetResolution(RKADK_PARAM_RES_E type, RKADK_U32 *width, RKADK_U32 *height);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
type Auflösungstyp Eingabe
width Breite der umgewandelten Auflösung Ausgabe
height Höhe der umgewandelten Auflösung Ausgabe

Rückgabewert

Rückgabewert Beschreibung
0 Erfolg
Anderer Wert Fehler

Voraussetzungen

Header-Datei: rkadk_param.h. Bibliothek: librkadk.so

Hinweis

Diese Schnittstelle darf erst nach der Initialisierung des Parametermoduls durch RKADK_PARAM_Init aufgerufen werden.

Beispiel

Keine

Siehe auch

RKADK_PARAM_GetResType

13.2.8 RKADK_PARAM_GetResType

Beschreibung

Auflösung in RKADK_PARAM_RES_E umwandeln.

Syntax

RKADK_PARAM_RES_E RKADK_PARAM_GetResType(RKADK_U32 width, RKADK_U32 height);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
width Bildbreite Eingabe
height Bildhöhe Eingabe

Rückgabewert

Rückgabewert Beschreibung
Entsprechender Wert von RKADK_PARAM_RES_E Erfolg
RKADK_RES_BUTT Fehler

Voraussetzungen

Header-Datei: rkadk_param.h. Bibliothek: librkadk.so

Hinweis

Diese Schnittstelle darf erst nach der Initialisierung des Parametermoduls durch RKADK_PARAM_Init aufgerufen werden.

Beispiel

Keine

Siehe auch

RKADK_PARAM_GetResolution

13.2.9 RKADK_PARAM_GetVencChnId

Beschreibung

Die Record, Photo und Stream zugeordnete VENC-Kanalnummer abrufen.

Syntax

RKADK_S32 RKADK_PARAM_GetVencChnId(RKADK_U32 u32CamId, RKADK_STREAM_TYPE_E enStrmType);

Parameter

Parametername Beschreibung Eingabe/Ausgabe
u32CamId Kamera-ID Eingabe
enStrmType Streamtyp Eingabe

Rückgabewert

Rückgabewert Beschreibung
Entsprechende VENC-Kanalnummer Erfolg
-1 Fehler

Voraussetzungen

Header-Datei: rkadk_param.h. Bibliothek: librkadk.so

Hinweis

Diese Schnittstelle darf erst nach der Initialisierung des Parametermoduls durch RKADK_PARAM_Init aufgerufen werden.

Beispiel

Keine

Siehe auch

Keine

13.3 Datentypen

Das Parametermodul stellt hauptsächlich folgende Datentypen bereit: RKADK_DEFPARAM_PATH: Standardpfad der globalen ini-Datei; RKADK_DEFPARAM_PATH_SENSOR_PREFIX: Standardpfad der Sensor-ini-Datei; RKADK_PARAM_PATH: globaler ini-Pfad; RKADK_PARAM_PATH_SENSOR_PREFIX: Sensor-ini-Pfad; RKADK_PARAM_TYPE_E: Aufzählung der Parametertypen; RKADK_PARAM_RES_E: Aufzählung der Auflösungstypen; RKADK_STREAM_TYPE_E: Aufzählung der Datenstreamtypen; RKADK_PARAM_CODEC_CFG_S: Konfigurationsstruktur für Kodierungstypen; RKADK_PARAM_BITRATE_S: Bitratenkonfigurationsstruktur; RKADK_PARAM_REC_TIME_S: Konfigurationsstruktur der Aufnahmedauer; RKADK_PARAM_GOP_S: VENC-GOP-Konfigurationsstruktur; RKADK_VQE_MODE_E: Aufzählung der Klangverbesserungsmodi für den Audioeingang; RKADK_MIC_TYPE_E: Aufzählung der Audiogerät-Kanalmodi.

13.3.1 RKADK_DEFPARAM_PATH

Beschreibung

Standardpfad der globalen ini-Datei: Sie speichert die gemeinsame Konfiguration aller Sensoren und dient zum Wiederherstellen der Standardkonfiguration.

Definition

#define RKADK_DEFPARAM_PATH "/oem/usr/etc/rkadk_defsetting.ini"

13.3.2 RKADK_DEFPARAM_PATH_SENSOR_PREFIX

Beschreibung

Standardpfad der Sensor-ini-Datei: Sie speichert die individuelle Konfiguration jedes Sensors und dient zum Wiederherstellen der Standardkonfiguration.

Definition

#define RKADK_DEFPARAM_PATH_SENSOR_PREFIX "/oem/usr/etc/rkadk_defsetting_sensor"

Hinweis

Das Standardnamensmuster der Sensorkonfigurationsdatei ist rkadk_defsetting_sensor_n.ini; _n ist die Kamera-ID des Sensors, beginnend bei 0.

13.3.3 RKADK_PARAM_PATH

Beschreibung

Pfad der globalen ini-Datei mit den gemeinsamen Konfigurationen aller Sensoren.

Definition

#define RKADK_PARAM_PATH "/data/rkadk/rkadk_setting.ini"

13.3.4 RKADK_PARAM_PATH_SENSOR_PREFIX

Beschreibung

Pfad der Sensor-ini-Datei mit der individuellen Konfiguration jedes Sensors. Speichert neue Einstellungen beim Wechsel der Aufnahmeauflösung, des Codec-Typs und bei anderen Vorgängen.

Definition

#define RKADK_PARAM_PATH_SENSOR_PREFIX "/data/rkadk/rkadk_setting_sensor"

Hinweis

Das Standardnamensmuster der Sensorkonfigurationsdatei ist rkadk_setting_sensor_n.ini; _n ist die Kamera-ID des Sensors, beginnend bei 0.

13.3.5 RKADK_PARAM_TYPE_E

Beschreibung

Aufzählung der Parametertypen definieren.

Definition

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;

Member

Membername Beschreibung
RKADK_PARAM_TYPE_FPS Framerate
RKADK_PARAM_TYPE_GOP I-Frame-Intervall, RKADK_PARAM_GOP_S
RKADK_PARAM_TYPE_RES Videoauflösung, RKADK_PARAM_RES_E
RKADK_PARAM_TYPE_PHOTO_RES Fotoauflösung, RKADK_PARAM_RES_E
RKADK_PARAM_TYPE_STREAM_RES Legt die Auflösung des durch RKADK_STREAM_TYPE_E angegebenen Streams fest
RKADK_PARAM_TYPE_CODEC_TYPE Videokodierungstyp, RKADK_PARAM_CODEC_CFG_S
RKADK_PARAM_TYPE_BITRATE Bitrate, RKADK_PARAM_BITRATE_S
RKADK_PARAM_TYPE_FLIP Vertikal umklappen
RKADK_PARAM_TYPE_MIRROR Horizontal spiegeln
RKADK_PARAM_TYPE_LDC Verzeichnungskorrektur [0,255]
RKADK_PARAM_TYPE_ANTIFOG Dunstentfernung [0,10]
RKADK_PARAM_TYPE_WDR Großer Dynamikumfang [0,10]
RKADK_PARAM_TYPE_HDR HDR-Bildgebung [0,10]
RKADK_PARAM_TYPE_RECORD_TYPE Aufzeichnungstyp, RKADK_REC_TYPE_E
RKADK_PARAM_TYPE_RECORD_TIME Aufzeichnungsdauer; Haupt- und Substream können unterschiedliche Dauern haben, RKADK_PARAM_REC_TIME_S
RKADK_PARAM_TYPE_PRE_RECORD_TIME Voraufzeichnungsdauer
RKADK_PARAM_TYPE_PRE_RECORD_MODE Voraufzeichnungsmodus: 0 - aus, 1 - bei manueller Aufteilung, 2 - erste Datei, 3 - alle Dateien
RKADK_PARAM_TYPE_SPLITTIME Aufzeichnungsdauer bei manueller Aufteilung; Haupt- und Substream können unterschiedliche Dauern haben, RKADK_PARAM_REC_TIME_S
RKADK_PARAM_TYPE_FILE_CNT Anzahl gleichzeitig aufgezeichneter Dateien, höchstens 2
RKADK_PARAM_TYPE_LAPSE_INTERVAL Zeitrafferaufzeichnungsdauer; Haupt- und Substream können unterschiedliche Dauern haben, RKADK_PARAM_REC_TIME_S
RKADK_PARAM_TYPE_LAPSE_MULTIPLE Zeitverhältnis zwischen Wiedergabedauer der Zeitrafferdatei und tatsächlicher Dauer des aufgenommenen Inhalts
Membername Beschreibung
RKADK_PARAM_TYPE_JPEG_SLICE JPEG Slice aktivieren
RKADK_PARAM_TYPE_SLICE_HEIGHT Höhe des JPEG-Slice-Segments
RKADK_PARAM_TYPE_INPUT_FMT VI-Eingabeformat
RKADK_PARAM_TYPE_INPUT_BUFCNT Anzahl der VI-Puffer
RKADK_PARAM_TYPE_ENABLE_AUDIO Audioaufzeichnungskanal des angegebenen Sensors aktivieren
RKADK_PARAM_TYPE_MUTE Aufzeichnung des angegebenen Sensors stummschalten
RKADK_PARAM_TYPE_REC_MUTE Alle Aufzeichnungen stummschalten
RKADK_PARAM_TYPE_VOLUME Lautsprecherlautstärke [0,100]
RKADK_PARAM_TYPE_MIC_VOLUME Mikrofonlautstärke [0,100]

Hinweis

Für kamerabezogene Hardwareeinstellungen wie Dunstentfernung, WDR und HDR reicht das Ändern der ini über RKADK_PARAM_SetCamParam nicht aus; zusätzlich die entsprechende ISP-Schnittstelle aufrufen, damit die Einstellung wirksam wird. RKADK_PARAM_TYPE_LAPSE_MULTIPLE: Das Verhältnis zwischen Wiedergabedauer und realer Dauer hängt von der Framerate ab. Bei normaler Aufnahme mit 30 fps und Zeitraffer mit 1 fps beträgt der Faktor beispielsweise 30. Beim Auflösungswechsel auf RV1126/RV1109 muss die Fotoauflösung der Auflösung des Record-Hauptstreams entsprechen, sofern nicht die maximale Sensorauflösung verwendet wird. RKADK_PARAM_TYPE_REC_MUTE zusammen mit RKADK_RECORD_GetAencChn und RK_MPI_AENC_SetMute verwenden.

Verwandte Datentypen und Schnittstellen

RKADK_PARAM_GetCamParam RKADK_PARAM_SetCamParam RKADK_PARAM_GetCommParam RKADK_PARAM_SetCommParam

13.3.6 RKADK_PARAM_RES_E

Beschreibung

Definiert die Aufzählung der Wiedergabeereignisse.

Definition

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;

Verwandte Datentypen und Schnittstellen

RKADK_PARAM_GetResolution RKADK_PARAM_GetResType

13.3.7 RKADK_STREAM_TYPE_E

Beschreibung

Aufzählung der Streamtypen.

Definition

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;

Member

Membername Beschreibung
RKADK_STREAM_TYPE_VIDEO_MAIN Video-Hauptstream
RKADK_STREAM_TYPE_VIDEO_SUB Video-Substream
RKADK_STREAM_TYPE_SNAP Fotoaufnahme
RKADK_STREAM_TYPE_PREVIEW Remote-Vorschau
RKADK_STREAM_TYPE_LIVE Liveübertragung
RKADK_STREAM_TYPE_DISP Lokale Vorschau
RKADK_STREAM_TYPE_SENSOR Sensor

Verwandte Datentypen und Schnittstellen

RKADK_PARAM_GetVencChnId

13.3.8 RKADK_PARAM_CODEC_CFG_S

Beschreibung

Konfigurationsstruktur des Kodierungstyps.

Definition

typedef struct {
  RKADK_STREAM_TYPE_E enStreamType;
  RKADK_CODEC_TYPE_E enCodecType;
} RKADK_PARAM_CODEC_CFG_S;

Member

Membername Beschreibung
enStreamType Streamtyp
enCodecType Kodierungstyp

Verwandte Datentypen und Schnittstellen

RKADK_CODEC_TYPE_E RKADK_STREAM_TYPE_E

13.3.9 RKADK_PARAM_BITRATE_S

Beschreibung

Konfigurationsstruktur der Bitrate.

Definition

typedef struct {
  RKADK_STREAM_TYPE_E enStreamType;
  RKADK_U32 u32Bitrate;
} RKADK_PARAM_BITRATE_S;

Member

Membername Beschreibung
enStreamType Streamtyp
u32Bitrate Bitrate

Verwandte Datentypen und Schnittstellen

RKADK_STREAM_TYPE_E

13.3.10 RKADK_PARAM_REC_TIME_S

Beschreibung

Konfigurationsstruktur der Aufzeichnungsdauer.

Definition

typedef struct {
  RKADK_STREAM_TYPE_E enStreamType;
  RKADK_U32 time;
} RKADK_PARAM_REC_TIME_S;

Member

Membername Beschreibung
enStreamType Streamtyp
time Aufzeichnungsdauer

Verwandte Datentypen und Schnittstellen

RKADK_STREAM_TYPE_E

13.3.11 RKADK_PARAM_GOP_S

Beschreibung

Konfigurationsstruktur des VENC-I-Frame-Intervalls.

Definition

typedef struct {
  RKADK_STREAM_TYPE_E enStreamType;
  RKADK_U32 u32Gop;
} RKADK_PARAM_GOP_S;

Member

Membername Beschreibung
enStreamType Streamtyp
u32Gop I-Frame-Intervall

Verwandte Datentypen und Schnittstellen

RKADK_STREAM_TYPE_E

13.3.12 RKADK_VQE_MODE_E

Beschreibung

Aufzählung der Klangverbesserungen für den Audioeingang

Definition

typedef enum {
  RKADK_VQE_MODE_AI_TALK = 0,
  RKADK_VQE_MODE_AI_RECORD,
  RKADK_VQE_MODE_BUTT
} RKADK_VQE_MODE_E;

Member

Membername Beschreibung
RKADK_VQE_MODE_AI_TALK AEC, ANR und AGC aktivieren
RKADK_VQE_MODE_AI_RECORD ANR aktivieren

13.3.13 RKADK_MIC_TYPE_E

Beschreibung

Kanalmodus des Audiogeräts

Definition

typedef enum {
  RKADK_MIC_TYPE_LEFT = 0,
  RKADK_MIC_TYPE_RIGHT,
  RKADK_MIC_TYPE_BOTH,
  RKADK_MIC_TYPE_BUTT
} RKADK_MIC_TYPE_E;

Member

Membername Beschreibung
RKADK_MIC_TYPE_LEFT Ton des linken Kanals
RKADK_MIC_TYPE_RIGHT Ton des rechten Kanals
RKADK_MIC_TYPE_BOTH Dual-channel

13.4 Einführung in INI-Dateien

13.4.1 Globale INI-Konfigurationsdatei

[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-Konfigurationsdateien der Sensoren

[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 Hinweise zur INI-Konfiguration

Den Standardpfad der INI-Dateien über eine Umgebungsvariable setzen, beispielsweise: export rkadk_default_ini_path=/oem/usr/etc. Der Pfad lässt sich auch über RKADK_PARAM_Init setzen. Die Versionen in rkadk_defsetting.ini und rkadk_setting.ini müssen übereinstimmen; andernfalls schlägt die Versionsprüfung fehl und die Standard-INI wird verwendet. Bei SDK-Updates kann sich der Parametersatz ändern. sensor_count bezeichnet die tatsächlich verwendete Sensoranzahl und darf RKADK_MAX_SENSOR_CNT nicht überschreiten; die Quelle berichtet von drei bereits erprobten Sensoren. Mit ISP used_isp=TRUE setzen: Skalierung über die Auflösung des ISP-Knotens, kein VPSS-Kanal nötig, vpss_grp und vpss_chn jeweils 0. Ohne ISP used_isp=FALSE und passende vpss_grp/vpss_chn einstellen; intern übernimmt VPSS die Skalierung. Bei gleicher Auflösung für Aufnahme, Remote-Vorschau und Liveübertragung VENC mit identischen Parametern gemeinsam nutzen, um Speicher und Speicherbandbreite zu sparen. Bei gemeinsam genutztem VENC oder gleicher VENC-Auflösung auch VPSS-Kanäle gemeinsam nutzen. gop sollte framerate entsprechen, damit jede Sekunde ein I-Frame entsteht.

14. Beispiele

Die folgenden Funktionsbeispiele setzen voraus, dass keine andere Anwendung wie mediaserver oder ispserver die benötigten Geräteknoten belegt. Die Standardparameter sind auf RK-EVBs abgestimmt. Bei anderer Hardware passende Befehlsparameter angeben oder den Code anpassen.

14.1 rkadk_record_test

Beschreibung

Aufzeichnungstest. Quellcode: rkadk/examples/rkadk_record_test.c. Schnellstart:

./rkadk_record_test

Option

Optionen Beschreibung Standard
-a Integrierte ISP-Funktion aktivieren. Ohne Argument gilt der Standardwert; das Argument ist der Pfad zum Ordner mit der aiq-Datei. /etc/iqfiles
-I Kamera-ID 0
-m Test mit zwei Sensoren: 0 - ISP-Sensor, 1 - alle ISP-Sensoren, 2 - ISP+AHD-Sensoren 0
-p Verzeichnispfad der INI-Konfiguration /data/rkadk
-k Videodatei an I-Frames aufteilen Nicht aufgeteilt
-P Bild-in-Bild-Aufzeichnung aktivieren Deaktiviert
-c Anzahl der AVS-Puffer 2
-t Verzögerung beim Abrufen des Vorschaubildes mit aktiviertem File Cache, ms 3000ms
-e EIS aktivieren Deaktiviert

14.2 rkadk_photo_test

Beschreibung

Fotoaufnahmetest. Quellcode: /rkadk/examples/rkadk_photo_test.c. Schnellstart:

./rkadk_photo_test

Option

Optionen Beschreibung Standard
-a Integrierte ISP-Funktion aktivieren. Ohne Argument gilt der Standardwert; das Argument ist der Pfad zum Ordner mit der aiq-Datei. /etc/iqfiles
-I Kamera-ID 0
-p Verzeichnispfad der INI-Konfiguration /data/rkadk
-t Datentyp des erhaltenen JPG-Bildes NV12
-m Test mit zwei Sensoren: 0 - ISP-Sensor, 1 - alle ISP-Sensoren, 2 - ISP+AHD-Sensoren 0
-o OSD-Dateipfad NULL
-W OSD-Breite 0
-H OSD-Höhe 0

14.3 rkadk_stream_test

Beschreibung

Audiostream erfassen, kodieren und in eine Datei schreiben; Videostream erfassen, kodieren und in eine Datei schreiben. Quellcode: /rkadk/examples/rkadk_stream_test.c. Schnellstart:

./rkadk_stream_test

Option

Optionen Beschreibung Standard
-a Integrierte ISP-Funktion aktivieren. Ohne Argument gilt der Standardwert; das Argument ist der Pfad zum Ordner mit der aiq-Datei. /etc/iqfiles
-I Kamera-ID 0
-M Testmodus: audio, video audio
-e Kodierungstyp pcm
-o Ausgabedateipfad /tmp/ai.pcm
-p Verzeichnispfad der INI-Konfiguration /data/rkadk
-m Test mit zwei Sensoren: 0 - ISP-Sensor, 1 - alle ISP-Sensoren, 2 - ISP+AHD-Sensoren 0

14.4 rkadk_player_test

Beschreibung

Test der lokalen Dateiwiedergabe. Quellcode: /rkadk/examples/rkadk_player_test.c. Schnellstart:

./rkadk_player_test

Option

Optionen Beschreibung Standard
-i Pfad der Wiedergabedatei /etc/bsa_file/8k8bpsMono.wav
-x X-Startkoordinate der Videoanzeige 0
-y Y-Startkoordinate der Videoanzeige 0
-W Breite der Videoanzeige Physische Bildschirmbreite
-H Höhe der Videoanzeige Physische Bildschirmhöhe
-r Videodrehwinkel: 0, 90, 180, 270 0
-p Verzeichnispfad der INI-Konfiguration /data/rkadk
-m Videospiegelung Deaktiviert (disable)
-f Vertikales Spiegeln des Videos Deaktiviert (disable)
-a Audiowiedergabe: 0 - aus, 1 - ein 1
-v Videowiedergabe aktivieren Deaktiviert (disable)
-s Layer-Komposition: 0 - RGA, 1 - GPU, 2 - ByPass 0
-P Bildschirmpixelformat: 0 - RGB888, 1 - NV12, 2 - RGB565 0
-I Displayschnittstelle: 0 - DEFAILT, 1 - MIPI, 2 - LCD 1106: 0; andere Plattformen: 1
-F Bildwiederholrate 30
-t RTSP-Übertragungsprotokoll: 0 - udp, 1 - tcp 0
-b Schwarzes Bild nach der Wiedergabe aktivieren Deaktiviert (disable)
-T Timeout für RTSP-Socket-E/A in ms Blockierend, ohne Timeout
-l VO-Layer-ID 0
-O Anzahl der VDEC-Ausgabepuffer 3 [1, 8]
-D Externe Demuxer-Bibliothek aktivieren Deaktiviert (disable)

Hinweis

Bei Videodateien ist -v zum Aktivieren der Videowiedergabe erforderlich. Spiegelung/vertikales Spiegeln lassen sich nicht gleichzeitig mit Drehung einstellen.

14.5 rkadk_thumb_test

Test zum Abrufen von Dateivorschaubildern. Quellcode: /rkadk/examples/rkadk_thumb_test.c. Schnellstart:

Get MP4 thumbnail: ./rkadk_thumb_test -i test_file.mp4
Get JPG thumbnail: ./rkadk_thumb_test -i test_file.jpg -f jpg -t MPF1

Option

Optionen Beschreibung Standard
-i Testdateipfad Keine
-f Dateiformat: mp4, jpg mp4
-t JPG-Vorschaubildtypen: DCF, MPF1, MPF2 DCF
-T Ausgabevorschaubildtyp: JPG, NV12, RGB565, RGB888 JPG
-W Vorschaubildbreite Aus ini übernehmen
-H Vorschaubildhöhe Aus ini übernehmen

14.6 rkadk_rtsp_test

RTSP-Livetest. Quellcode: /rkadk/examples/rkadk_rtsp_test.c. Schnellstart:

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

Option

Optionen Beschreibung Standard
-a Integrierte ISP-Funktion aktivieren. Ohne Argument gilt der Standardwert; das Argument ist der Pfad zum Ordner mit der aiq-Datei. /etc/iqfiles
-I Kamera-ID 0
-p Verzeichnispfad der INI-Konfiguration /data/rkadk
-o OSD-Dateipfad /userdata/rkadk_ARGB8888

14.7 rkadk_rtmp_test

RTMP-Livetest. Quellcode: /rkadk/examples/rkadk_rtmp_test.c. Schnellstart:

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

Option

Optionen Beschreibung Standard
-a Integrierte ISP-Funktion aktivieren. Ohne Argument gilt der Standardwert; das Argument ist der Pfad zum Ordner mit der aiq-Datei. /etc/iqfiles
-I Kamera-ID 0
-p Verzeichnispfad der INI-Konfiguration /data/rkadk

14.8 rkadk_storage_test

Beschreibung

Test des Speichermoduls. Quellcode: /rkadk/examples/rkadk_storage_test.c. Schnellstart:

./rkadk_storage_test

Optionen: keine

Hinweis

Der Test erzeugt eine mit Nullen gefüllte MP4-Datei zum Prüfen von automatischem Löschen, Dateilistenabruf und weiteren Schnittstellen. Die Datei enthält keine tatsächlichen Mediendaten und ist nicht abspielbar.

14.9 rkadk_disp_test

Test der lokalen Vorschau. Quellcode: /rkadk/examples/rkadk_disp_test.c. Schnellstart:

./rkadk_disp_test

Option

Optionen Beschreibung Standard
-a Integrierte ISP-Funktion aktivieren. Ohne Argument gilt der Standardwert; das Argument ist der Pfad zum Ordner mit der aiq-Datei. /etc/iqfiles
-I Kamera-ID 0
-p Verzeichnispfad der INI-Konfiguration /data/rkadk

14.10 rkadk_ui_test

Test der UI-Überlagerung. Quellcode: /rkadk/examples/rkadk_ui_test.c. Schnellstart:

./rkadk_ui_test

Option

Optionen Beschreibung Standard
-a Integrierte ISP-Funktion aktivieren. Ohne Argument gilt der Standardwert; das Argument ist der Pfad zum Ordner mit der aiq-Datei. /etc/iqfiles
-I Kamera-ID 0
-p Verzeichnispfad der INI-Konfiguration /data/rkadk
-W Breite des Anzeigebereichs 720
-H Höhe des Anzeigebereichs 1280
-f Bildschirmpixelformat: 0 - RGB888, 1 - NV12, 2 - RGB565, 3 - RGB444 0

14.11 rkadk_muxer_test

Muxer-Test. Quellcode: /rkadk/examples/rkadk_muxer_test.c. Schnellstart:

./rkadk_muxer_test

Optionen

Optionen Beschreibung Standard
-a Integrierte ISP-Funktion aktivieren. Ohne Argument gilt der Standardwert; das Argument ist der Pfad zum Ordner mit der aiq-Datei. /etc/iqfiles
-W Videobreite 1920
-H Videohöhe 1080
-f Framerate 30
-C Codec-Typ: 0 - H264, 1 - H265 H264
-d Audiogeräteknoten hw:0,0
-k Aufteilung an Schlüsselframes Deaktiviert
-c Streamanzahl: 1 - Hauptstream, 2 - Haupt- und Substream 1
-t Drittanbieter-Stream verarbeiten Aktiviert
-A Audio aktivieren Aktiviert
-p Voraufzeichnungsdauer, s 0
-I Datei eines Drittanbieter-I-Frames null
-P Datei eines Drittanbieter-P-Frames null
-n Anzahl zu schreibender Streams -1

Dieses Thema entdecken → · Lernpfade →