From bf34a794ded5be5f250b74e1767f8222a3698420 Mon Sep 17 00:00:00 2001 From: Ezequiel Garcia <ezequiel@collabora.com> Date: Fri, 22 May 2020 09:17:55 -0300 Subject: [PATCH] Use querybuf ioctl to remove the offset hack Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com> --- libv4l-rockchip_v2/libv4l-encplugin-rockchip.c | 3 +++ libv4l-rockchip_v2/libvepu/h264e/h264e.c | 5 ++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/libv4l-rockchip_v2/libv4l-encplugin-rockchip.c b/libv4l-rockchip_v2/libv4l-encplugin-rockchip.c index e4ac8e7..ddfd49c 100644 --- a/libv4l-rockchip_v2/libv4l-encplugin-rockchip.c +++ b/libv4l-rockchip_v2/libv4l-encplugin-rockchip.c @@ -435,6 +435,9 @@ static int ioctl_dqbuf_locked(struct encoder_context *ctx, int fd, if (ret) return ret; + ret = SYS_IOCTL(fd, VIDIOC_QUERYBUF, buffer); + if (ret) + return ret; /* Get the encoder configuration and update the library. * Because we dequeue a null frame to indicate flush is finished, do not * update the config with this frame. */ diff --git a/libv4l-rockchip_v2/libvepu/h264e/h264e.c b/libv4l-rockchip_v2/libvepu/h264e/h264e.c index dc321ce..afc30c8 100644 --- a/libv4l-rockchip_v2/libvepu/h264e/h264e.c +++ b/libv4l-rockchip_v2/libvepu/h264e/h264e.c @@ -667,15 +667,14 @@ static int h264e_assemble_bitstream(struct rk_venc *ictx, int fd, buffer->length = 1; -#define DST_QUEUE_OFF_BASE (1 << 30) buf = mmap(NULL, buffer->m.planes[0].length, PROT_READ | PROT_WRITE, MAP_SHARED, fd, - buffer->m.planes[0].m.mem_offset + DST_QUEUE_OFF_BASE); + buffer->m.planes[0].m.mem_offset); if (buf == MAP_FAILED) { fprintf(stderr, "mmap failure! mem_offset %x\n", - buffer->m.planes[0].m.mem_offset + DST_QUEUE_OFF_BASE); + buffer->m.planes[0].m.mem_offset); return -1; } -- GitLab