Disable or control ISP

I’d like to my tx2 work with a camera with mipi but witout ISP.
So how can I get video data and how to disable or control ISP.
My platform is Tx2 Jetpack3.3 R28.2

hello chay1991,

may I know what’s your use-case, could you please also share more details.

Jetson-TX2 did not support controls to disable ISP functionality, but you can bypass the ISP process by going through v4l2src.
please refer to Camera Architecture Stack for details.

in addition, please also contact Jetson Preferred Partners for camera solutions.
thanks

Hi JerryChang,
I will use a hardware carrier board made by our company a camera will connet to the carrier and FPGA will get the data by LVDS then FGPA convert it to MIPI.I just do not know how to get the data in my program.
I know how to receive the data on official development board use opencv.
Can I get the data in the same way? the data format is RGB888 so I want to disable ISP in official development borad and try whther I can I get the data or not

hello chay1991,

you should make sure the FPGA device convert the MIPI signaling following the CSI-2 specification.
in addition, you should also check Topic 1018510 and Topic 1036742 for reference.
thanks

hi,
I’d like to get the video by opencv with gsteramer,the source code is as following:

#include <opencv2/opencv.hpp>

std::string get_tegra_pipeline(int width, int height, int fps) {
    return "nvcamerasrc ! video/x-raw(memory:NVMM), width=(int)" + std::to_string(width) + ", height=(int)" +
            std::to_string(height) + ", format=(string)I420, framerate=(fraction)" + std::to_string(fps) +
            "/1 ! nvvidconv flip-method=2 ! video/x-raw, format=(string)BGRx ! videoconvert ! video/x-raw, format=(string)BGR ! appsink";
}

int main() {
    // Options
    int  WIDTH = 1920;
    int  HEIGHT = 1080;
    int FPS = 30;

    // Define the gstream pipeline
    std::string pipeline = get_tegra_pipeline(WIDTH, HEIGHT, FPS);
    std::cout << "Using pipeline: \n\t" << pipeline << "\n";

    // Create OpenCV capture object, ensure it works.
    cv::VideoCapture cap(pipeline, cv::CAP_GSTREAMER);
    if (!cap.isOpened()) {
        std::cout << "Connection failed";
        return -1;
    }

    // View video
    cv::Mat frame;
    while (1) {
        cap >> frame;  // Get a new frame from camera

        // Display frame
        imshow("Display window", frame);
        cv::waitKey(1); //needed to show frame
    }
}

I can successfully get image with these code on the official development board but when change to my own board and camera it can not get the image data.

My use-case is as the attached picture.
FGPA interface output the data as RGB888 ,I am wondering how to get the data stream in my application.I used to get the mipi interface data with opencv as the above showd.But it failed to apply to the platform of our own.
Could you give me some instructions? Thanks.

hello chay1991,

  1. as my comments in #4, you should have some kernel implementation.
  2. also, you cannot use nvcamerasrc plugin since you would like to bypass the ISP process.
std::string get_tegra_pipeline(int width, int height, int fps) {
    return "nvcamerasrc ! video/x-raw(memory:NVMM), width=(int)" + std::to_string(width) + ", height=(int)" +

Now that,how can I get the camera data ?