🌐 한국어

    카메라 장치 API#

    헤더 파일#

    OasisMedia.h

    함수#

    int32_t configCameras ( key_value_map_t & parameters )
    OasisMedia.h
    카메라 장치들을 등록합니다.
    매개변수
    parameters  카메라 장치 등록에 필요한 key-value map 입니다.
    리턴값
    • 0: 성공
    • -1: 실패

    oasis::configCameras 함수의 매개변수로 전달할 수 있는 key-value map은 아래와 같습니다.

    기본값
    필수
    설명
    source-count
    등록할 카메라 장치 개수를 지정합니다.

    각 카메라 장치별 설정할 키값은 source<N>-<키 이름> 와 같은 형식으로 지정합니다. <N>은 1번부터 시작하여 1씩 증가합니다.

    각 카메라 장치별 key-value map은 아래와 같습니다.

    기본값
    필수
    설명
    source<N>-camera-id
    카메라 장치의 ID를 지정합니다. 0번부터 지정할 수 있으며, camera id가 필요한 API에서 매개변수로 사용됩니다. /dev/videoN 을 지원하는 기기인 경우, N 값을 ID로 사용할 수 있습니다.
    source<N>-capture-format
    YUV420
    카메라 이미지 센서가 지원하는 캡춰 포맷을 지정합니다.
    source<N>-capture-buffers
    3
    카메라 이미지 센서 캡춰 버퍼 개수를 지정합니다.
    source<N>-fps
    30
    카메라 이미지 센서 FPS를 지정합니다. 장치에 따라 지원안 될 수도 있습니다.
    source<N>-loc
    front
     
    카메라 장치가 부착된 위치를 지정합니다. front, rear, left, right, center, any 중 하나 값으로 지정할 수 있습니다.
    source<N>-capture-resolution
    1080p
    카메라 장치 이미지 센서 캡춰 크기를 지정합니다. 2160p, 1440p, 1080p, 720p, 720i, 480p, 480i 중 하나 값으로 지정할 수 있습니다.
    source<N>-capture-width
     
    카메라 장치 이미지 센서 캡춰 너비를 지정합니다. capture-resolution 대신 사용할 수 있습니다.
    source<N>-capture-height
     
    카메라 장치 이미지 센서 캡춰 높이를 지정합니다. capture-resolution 대신 사용할 수 있습니다.
    source<N>-subchannel-width
     
    카메라 장치가 부가 이미지 생성을 지원할 경우, 부가 이미지 너비를 지정합니다.
    source<N>-subchannel-height
     
    카메라 장치가 부가 이미지 생성을 지원할 경우, 부가 이미지 높이를 지정합니다.
    source<N>-subchannel-rotation
    0
     
    카메라 장치가 부가 이미지 생성을 지원할 경우, 회전 각도를 지정합니다. 장치에 따라 지원안 될 수도 있습니다. 0, 90, 180, 270 중 하나 값으로 지정할 수 있습니다.

    Note

    caputre-resolution 이나 capture-width, capture-height 중 하나는 지정해야 합니다. 같이 지정할 경우, capture-resolution 값을 사용합니다.

    V4L2_PIX_FMT 에 대응되는 capture format 값은 아래와 같습니다.

    V4L2_PIX_FMT 값 source-capture-format
    V4L2_PIX_FMT_YUYV YUYV
    V4L2_PIX_FMT_YVYU YVYU
    V4L2_PIX_FMT_UYVY UYVY
    V4L2_PIX_FMT_VYUY VYUY
    V4L2_PIX_FMT_NV16 NV16
    V4L2_PIX_FMT_NV12 NV12
    V4L2_PIX_FMT_NV12M NV12M
    V4L2_PIX_FMT_NV21 NV21
    V4L2_PIX_FMT_P010 P010
    V4L2_PIX_FMT_P010M P010M
    V4L2_PIX_FMT_YVU420 YVU420
    V4L2_PIX_FMT_YUV420 YUV420
    V4L2_PIX_FMT_YVU420M YVU420M
    V4L2_PIX_FMT_YUV420M YUV420M
    V4L2_PIX_FMT_YUV422M YUV422M
    V4L2_PIX_FMT_YUV444M YUV444M
    V4L2_PIX_FMT_ABGR32 ABGR32
    V4L2_PIX_FMT_BGR32 BGR4
    V4L2_PIX_FMT_RGB32 RGB4
    V4L2_PIX_FMT_XBGR32 XBGR32
    V4L2_PIX_FMT_ARGB32 ARGB32
    V4L2_PIX_FMT_XRGB32 XRGB32
    V4L2_PIX_FMT_GREY GREY
    V4L2_PIX_FMT_MJPEG MJPEG
    V4L2_PIX_FMT_H264 H264
    V4L2_PIX_FMT_H265 H265
    V4L2_PIX_FMT_VP8 VP8
    V4L2_PIX_FMT_VP9 VP9
    V4L2_PIX_FMT_SBGGR8 SBGGR8
    V4L2_PIX_FMT_SGBRG8 SGBRG8
    V4L2_PIX_FMT_SGRBG8 SGRBG8
    V4L2_PIX_FMT_SRGGB8 SRGGB8
    V4L2_PIX_FMT_SBGGR10 SBGGR10
    V4L2_PIX_FMT_SGBRG10 SGBRG10
    V4L2_PIX_FMT_SGRBG10 SGRBG10
    V4L2_PIX_FMT_SRGGB10 SRGGB10
    V4L2_PIX_FMT_SBGGR10P SBGGR10P
    V4L2_PIX_FMT_SGBRG10P SGBRG10P
    V4L2_PIX_FMT_SGRBG10P SGRBG10P
    V4L2_PIX_FMT_SRGGB10P SRGGB10P
    V4L2_PIX_FMT_SBGGR12 SBGGR12
    V4L2_PIX_FMT_SGBRG12 SGBRG12
    V4L2_PIX_FMT_SGRBG12 SGRBG12
    V4L2_PIX_FMT_SRGGB12 SRGGB12
    V4L2_PIX_FMT_SBGGR12P SBGGR12P
    V4L2_PIX_FMT_SGBRG12P SGBRG12P
    V4L2_PIX_FMT_SGRBG12P SGRBG12P
    V4L2_PIX_FMT_SRGGB12P SRGGB12P
    V4L2_PIX_FMT_SBGGR16 SBGGR16
    V4L2_PIX_FMT_SGBRG16 SGBRG16
    V4L2_PIX_FMT_SGRBG16 SGRBG16
    V4L2_PIX_FMT_SRGGB16 SRGGB16

    AllWinner 칩셋에 추가로 적용되는 key-value map은 아래와 같습니다.

    기본값
    필수
    설명
    source<N>-isp-id
    -1
     
    카메라 장치에 바인딩할 ISP 장치 ID를 지정합니다.
    source<N>-isp-wdr-mode
    0
     
    ISP Wide Dynamic Range(WDR;광역 역광 보정) 모드를 지정합니다. "0" Normal, "1" DOL, "2" Companding 중 하나의 값을 지정합니다.

    KL730 칩셋에 추가로 적용되는 key-value map은 아래와 같습니다.

    기본값
    필수
    설명
    source<N>-sensor-config
    카메라 장치의 sensor config 폴더 경로입니다.
    source<N>-autoscene-config
    카메라 장치의 autoscene config 폴더 경로입니다.
    source<N>-resource-dir
    카메라 장치의 resource 폴더 경로입니다.

    RasberryPi 칩셋에 추가로 적용되는 key-value map은 아래와 같습니다.

    기본값
    필수
    설명
    source<N>-hflip
    0
     
    카메라 장치 영상의 수평 flip을 적용합니다.
    source<N>-vflip
    0
     
    카메라 장치 영상의 수직 flip을 적용합니다.

    예제#

    아래는 KL730 칩셋에서 oasis::initialize 호출 후에 카메라 장치를 등록하는 예입니다.

    oasis::key_value_map_t parameters;
    
    parameters["source-count"] = "1";
    
    parameters["source1-camera-id"] = "0";
    parameters["source1-isp-id"] = "0";
    parameters["source1-isp-wdr-mode"] = "0";
    parameters["source1-capture-format"] = "YUV420";
    parameters["source1-capture-buffers"] = "5";
    parameters["source1-fps"] = "30";
    parameters["source1-subchannel-rotation"] = "0";
    parameters["source1-loc"] = "front";
    parameters["source1-capture-resolution"] = "1080p";
    parameters["source1-sensor-config"] = "./Resource_tp2863/VIC/0/tp2863_1920x1080_ch0.cfg";
    parameters["source1-autoscene-config"] = "./Resource_tp2863/AutoScene/autoscene_conf.cfg";
    parameters["source1-resource-dir"] = "./Resource_tp2863/";
    
    oasis::configCameras(parameters);
    

    아래는 AllWinner 칩셋에서 oasis::initialize 호출 후에 카메라 장치를 등록하는 예입니다.

    oasis::key_value_map_t parameters;
    
    parameters["source-count"] = "1";
    
    parameters["source1-camera-id"] = "0";
    parameters["source1-isp-id"] = "0";
    parameters["source1-isp-wdr-mode"] = "1";
    parameters["source1-capture-buffers"] = "5";
    parameters["source1-fps"] = "30";
    parameters["source1-subchannel-rotation"] = "0";
    parameters["source1-loc"] = "front";
    parameters["source1-capture-resolution"] = "2160p";
    
    oasis::configCameras(parameters);