Better configure sinks
This commit is contained in:
parent
f4e133b191
commit
582f08ba16
@ -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) {
|
||||
|
@ -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) {
|
||||
|
@ -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) {
|
||||
|
@ -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;
|
||||
do_mmap = true;
|
||||
|
||||
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.");
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user