Better configure sinks

This commit is contained in:
Kamil Trzcinski 2022-04-05 14:02:14 +02:00
parent f4e133b191
commit 582f08ba16
5 changed files with 13 additions and 3 deletions

View File

@ -17,9 +17,9 @@ int camera_configure_direct(camera_t *camera)
buffer_list_t *src = camera->camera->capture_list;
camera->codec_jpeg = device_open("JPEG", "/dev/video31");
camera->codec_jpeg->allow_dma = false;
camera->codec_jpeg->buf_sink = true;
camera->codec_h264 = device_open("H264", "/dev/video11");
camera->codec_h264->allow_dma = false;
camera->codec_h264->buf_sink = true;
if (device_open_buffer_list(camera->codec_jpeg, false, src->fmt_width, src->fmt_height, src->fmt_format, src->fmt_bytesperline, camera->nbufs) < 0 ||
device_open_buffer_list(camera->codec_jpeg, true, src->fmt_width, src->fmt_height, V4L2_PIX_FMT_JPEG, 0, camera->nbufs) < 0) {

View File

@ -22,7 +22,9 @@ int camera_configure_isp(camera_t *camera, float high_div, float low_div)
camera->isp.isp_yuuv = device_open("ISP-YUUV", "/dev/video14");
camera->isp.isp_yuuv->output_device = camera->isp.isp_srgb;
camera->codec_jpeg = device_open("JPEG", "/dev/video31");
camera->codec_jpeg->buf_sink = true;
camera->codec_h264 = device_open("H264", "/dev/video11");
camera->codec_h264->buf_sink = true;
if (device_open_buffer_list(camera->isp.isp_srgb, false, src->fmt_width, src->fmt_height, src->fmt_format, src->fmt_bytesperline, camera->nbufs) < 0 ||
device_open_buffer_list(camera->isp.isp_yuuv, true, src->fmt_width / high_div, src->fmt_height / high_div, V4L2_PIX_FMT_YUYV, 0, camera->nbufs) < 0) {

View File

@ -30,7 +30,9 @@ int camera_configure_legacy_isp(camera_t *camera, float div)
camera->legacy_isp.isp = device_open("ISP", "/dev/video12");
camera->codec_jpeg = device_open("JPEG", "/dev/video31");
camera->codec_jpeg->buf_sink = true;
camera->codec_h264 = device_open("H264", "/dev/video11");
camera->codec_h264->buf_sink = true;
if (device_open_buffer_list(camera->legacy_isp.isp, false, src->fmt_width, src->fmt_height, src->fmt_format, src->fmt_bytesperline, camera->nbufs) < 0 ||
device_open_buffer_list(camera->legacy_isp.isp, true, src->fmt_width / div, src->fmt_height / div, V4L2_PIX_FMT_YUYV, 0, camera->nbufs) < 0) {

View File

@ -62,7 +62,12 @@ int device_open_buffer_list(device_t *dev, bool do_capture, unsigned width, unsi
if (do_capture) {
buf_list = &dev->capture_list;
if (dev->buf_sink) {
do_mmap = true;
} else {
do_mmap = dev->allow_dma;
}
if (dev->capture_list) {
E_LOG_ERROR(dev, "The capture_list is already created.");

View File

@ -8,6 +8,7 @@ typedef struct device_s {
int fd;
struct v4l2_capability v4l2_cap;
bool allow_dma;
bool buf_sink;
struct buffer_list_s *capture_list;
struct buffer_list_s *output_list;