|
|
中文 / EN
|
1、Install ISP Lib:
sudo dnf install librockchip_isp
2、Compiling And linking:
LDDFLAGS: = -lcam_engine_cifisp -lcam_ia
3、Include Header Files:
#include <rockchip/rockchip_isp.h>
rkisp_start: Create ISP engine instance
int rkisp_start(void* &engine, int vidFd, const char* ispNode, const char* tuningFile);
Parameter Description:
1)、Engine:The ISP engine instance address, which returns the instance address after rkisp_start creates the engine instance.
2)、vidFd:Video stream fd,The video node handle that the user uses when capturing an image.
3)、ispNode:ISP node name,for example: ”/dev/video1”,This node is different from the node where the user captured the image.
4)、tuningFile:IQ xml file. for example:”/etc/cam_iq_ov9750.xml”,It records the parameters required for camera 3A (auto white balance, auto exposure, auto focus) operation.
5)、Return value: Return 0 on success and Engine is not NULL.
Attention:
1、For the built-in camera, n cameras will enumerate 4 video nodes。
video(4*(n-1)+2)node is the video node that captures the image operation for the user,such as video2,video6。
video(4*(n-1)+1)node is the video node that performs 3A operations for the ISP library,such as video1,video5。
2、After use, you must use rkisp_stop to stop the ISP engine and free up the occupied resources.
3、You must select tuningFile that matches the camera, or your ISP engine won't work.
4、Image format currently captured by ISP cameras is: V4L2_PIX_FMT_NV12
rkisp_stop:Stop and destroy the ISP engine instance, freeing up resources
int rkisp_stop(void* &engine)
Parameters Description:
engine: ISP engine instance address,create by rkisp_start
Return value: Return 0 on success
rkisp_setFocusMode:Set the focus mode
int rkisp_setFocusMode(void* &engine, enum HAL_AF_MODE fcMode);
Parameters Description:
1)engine: ISP engine instance address,create by rkisp_start
2)fcMode:Focus mode Settings
HAL_AF_MODE_NOT_SET:Turn off the focus function
HAL_AF_MODE_CONTINUOUS_VIDE:Set the continuous focus
Return value: Returns 0 on success
Attention:OV9750 can't support Autofocus ,and setting focus mode is not allowed (should turn off by default),otherwise an error will occur.
1、Install MPP Lib:
sudo dnf install librockchip_mpp-devel
2、Compiling And linking:
LDDFLAGS: = -lrockchip_mpp
3、Include Header Files:
#include <rockchip/rockchip_mpp.h>
1、Create an instance of the MPP decoder:MppDecoderCreate, if create sucessfully,it returns the MPP structure pointer .
MppDecoder *dec = MppDecoderCreate(DECODE_TYPE_H264);
2、Destroy the MPP instance:MppDecoderDestroy
MppDecoderDestroy(dec);
3、Decoding image enqueue operation:enqueue
dec->ops->enqueue(dec, data, size)
Parameters Description:
1)data:Store H264 image data
2)size:Image size
4、Decoding image dequeue operation:dequeue;Block until the MPP decodes successfully, and the function returns.
DecFrame *frame = dec->ops->dequeue(dec);
DecFrame structural members Description:
1)v4l2Format:The decoded image format,Only support V4L2_FIX_FMT_NV12 currently
2)width:Image width
3)height:Image height
5、free DecFrame Pointer:freeFrame;After successfully decoding and processing the image, you must call this function to free memory.
dec->ops->freeFrame(frame);
1、Install RGA Lib:
sudo dnf install librockchip_rga-devel
2、Compiling And linking:
LDDFLAGS: = -lrockchip_rga -ldrm
3、Include Header Files:
extern “c” {#include <rockchip/rockchip_rga.h>}
1、RgaCreate:Create an instance of the RGA, if create sucessfully,it returns the RGA structure pointer .
RockchipRga *rga = rgaCreate();
2、RgaDestory:Destroy the RGA instance
RgaDestory(rga);
3、initCtx:Clear the RGA context.
rga->ops->initCtx(rga);
attention:If the context is not cleared, the image parameters are set as before for the next RGA operation.
4、setRotate: Set the selected rotation Angle
rga->ops->setRotate(rga, rotate);
Parameters Description:
1)rotate: Rotation Angle
RGA_ROTATE_NONE:Not rotating
RGA_ROTATE_90:Rotate 90 degrees counterclockwise
RGA_ROTATE_180:Rotate 180 degrees counterclockwise
RGA_ROTATE_270:Rotate 270 degrees counterclockwise
RGA_ROTATE_VFLIP:Mirror Vertically
RGA_ROTATE_HFLIP:Mirror Horizontally
5、setFillColor:Set color fill
rga->ops->setFillColor(rga, color);
Parameters Description:
Color:Color value
Blue:0xffff0000
Green:0xff00ff00
Red:0xff0000ff
6、setCrops:Set clipping window
Set the source image clipping window:
rga->ops->setSrcCrop(rga, cropX, cropY, cropW, cropH);
Set the target image clipping window:
rga->ops->setSrcCrop(rga, cropX, cropY, cropW, cropH);
Parameters Description:
1)、cropX:Origin abscissa
2)、cropY:Origin ordinate
3)、cropW:Window width
4)、cropH:Window height
7、 setFormat:Set Image format
Set the format of the source image:
rga->ops->setSrcFormat(rga, v4l2Format, width, height);
Set the format of the target image:
rga->ops->setDstFormat(rga, v4l2Format, width, height);
Parameters Description:
1)、V4l2Format:v4l2 image format,you can find the support format in /usr/include/rockchip/rockchip_rga.h
2)、Width:image width
3)、Height:image height
8、setBuffer:set image Buffer
Set the file descriptor of the source image's Buffer (DMA memory fd):
rga->ops->setSrcBufferFd(rga, fd);
Set the source image Buffer pointer (user-space memory pointer):
rga->ops->setSrcBufferPtr(rga, ptr);
Set the file descriptor of the target image's Buffer (DMA memory fd):
rga->ops->setDstBufferFd(rga, fd);
Set the target image Buffer pointer (user-space memory pointer):
rga->ops->setDstBufferPtr(rga, ptr);
9、Perform image processing operations
Perform operations:
rga->ops->go(rga);
1、Install RTSP Lib:
sudo dnf install librockchip_rtsp-devel crul-devel
2、Compiling And linking:
LDDFLAGS: = -lrockchip_rtsp
3、 Include Header Files:
#include <rockchip/rockchip_rtsp.h>
1、Constructor Function:
RtspClient(std::string url, std::string username = "", std::string password = "");
Rtsplcient client(“rtsp://xxx.xxx.xxx.xxx/xxx”, “username”, “password”);
Parameters Description:
1)、Url:RTSP network address of IPC camera
2)、Username:The username of the IPC camera , blank by default
3)、Password:The password of the IPC camera , blank by default
2、Set the callback function:
setDataCallback(FRtspCallBack callBack);
client.setDataCallback(std::bind(&priv_class::onRstpHandle, priv_point,std::placeholders::_1, std::placeholders:_2));
Parameters Description:
1)、priv_class callback function:void onRtspHandle(unsigned char *buf, size_t len)
explain:The Rtspclient callback to this function every time when it receives a frame;
And buf stores H264 image data and len is the size of the image.
2)、priv_point:Pointer to the class.
3)、 _1&&_2:placeholder
3、Start fetching the RTSP stream:
enable();
client.enable();
4、Stop fetching the RTSP stream:
disable();
client.disable();