From 562c0c1bb2ef74ccbfda1bae4f84a61828119674 Mon Sep 17 00:00:00 2001 From: Damian Hobson-Garcia Date: Mon, 8 May 2017 12:43:02 +0900 Subject: Add gst-recorder implementation Adapted from the Gen2 implementation to work on Gen3. Bug-AGL: SPEC-559 Change-Id: I8ec71354b0dee04277c6bf74c62956280b84b4fb Signed-off-by: Damian Hobson-Garcia Signed-off-by: Harunobu Kurokawa --- ...Specify-bytesused-and-length-of-VSP-input.patch | 61 ++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 recipes-graphics/wayland/weston/0004-gst-record-Specify-bytesused-and-length-of-VSP-input.patch (limited to 'recipes-graphics/wayland/weston/0004-gst-record-Specify-bytesused-and-length-of-VSP-input.patch') diff --git a/recipes-graphics/wayland/weston/0004-gst-record-Specify-bytesused-and-length-of-VSP-input.patch b/recipes-graphics/wayland/weston/0004-gst-record-Specify-bytesused-and-length-of-VSP-input.patch new file mode 100644 index 00000000..925d3a43 --- /dev/null +++ b/recipes-graphics/wayland/weston/0004-gst-record-Specify-bytesused-and-length-of-VSP-input.patch @@ -0,0 +1,61 @@ +From 28a72656562930d27ef8117a489f8299537bdfb8 Mon Sep 17 00:00:00 2001 +From: Damian Hobson-Garcia +Date: Tue, 9 May 2017 18:07:52 +0900 +Subject: [PATCH] gst-record: Specify bytesused and length of VSP input buffer + +The bytesused=0 setting has been deprecated in newer kernels. + +--- + src/gst-recorder.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/src/gst-recorder.c b/src/gst-recorder.c +index f6d12f8..de74250 100644 +--- a/src/gst-recorder.c ++++ b/src/gst-recorder.c +@@ -487,7 +487,7 @@ vsp_request_buffers(vsp_data_t *vsp, vsp_port_n port, unsigned int num) + + /* ...enqueue dmafd buffer */ + static int +-vsp_input_buffer_queue_dmafd(vsp_data_t *vsp, int i, int dmafd) ++vsp_input_buffer_queue_dmafd(vsp_data_t *vsp, int i, int dmafd, int bytesused) + { + vsp_media_pad_t *pad = &vsp->input; + struct v4l2_buffer buf; +@@ -502,6 +502,8 @@ vsp_input_buffer_queue_dmafd(vsp_data_t *vsp, int i, int dmafd) + buf.m.planes = planes; + buf.length = 1; + buf.m.planes[0].m.fd = dmafd; ++ buf.m.planes[0].bytesused = bytesused; ++ buf.m.planes[0].length = bytesused; + + /* ...submit buffer */ + if (ioctl(pad->fd, VIDIOC_QBUF, &buf) < 0) { +@@ -1098,6 +1100,7 @@ gst_recorder_process_dmafd(struct gst_recorder *r, int fd, int stride) + GstMapInfo info; + int ysize; + int csize; ++ int rgbsize; + + /* get GST buffer */ + if (gst_recorder_omx_buffer_acquire(r, &buf, &info) < 0) { +@@ -1111,6 +1114,7 @@ gst_recorder_process_dmafd(struct gst_recorder *r, int fd, int stride) + #else + csize = ysize / 2; + #endif ++ rgbsize = stride * r->set->height; + + pthread_mutex_lock(&r->vsp->mutex); + /* setup vsp */ +@@ -1139,7 +1143,7 @@ gst_recorder_process_dmafd(struct gst_recorder *r, int fd, int stride) + } + + /* queue input vsp buffer */ +- if (vsp_input_buffer_queue_dmafd(r->vsp, 0, fd) < 0) { ++ if (vsp_input_buffer_queue_dmafd(r->vsp, 0, fd, rgbsize) < 0) { + weston_log("VSP: failed to queue input buffer\n"); + goto err_vsp; + } +-- +1.9.1 + -- cgit 1.2.3-korg