On Tue, May 2, 2017 at 9:32 AM, Emil Velikov <emil.l.veli...@gmail.com> wrote: > From: Emil Velikov <emil.veli...@collabora.com> > > Makes the code shorter and more explicit. > > Cc: Carlos Rafael Giani <d...@pseudoterminal.org> > Signed-off-by: Emil Velikov <emil.veli...@collabora.com> > --- > Worth moving the plane[i] bits as well? > > The loop guard for the close() looks a big funky. > > Carlos, care to throw a comment why it's using nmem and not something > else - say is_dmabuf_mem? > --- > gst-decoder.c | 31 +++++++++++-------------------- > 1 file changed, 11 insertions(+), 20 deletions(-) > > diff --git a/gst-decoder.c b/gst-decoder.c > index deffad5..dd2a6fa 100644 > --- a/gst-decoder.c > +++ b/gst-decoder.c > @@ -368,22 +368,6 @@ buffer_to_image(struct decoder *dec, GstBuffer *buf) > GstMemory *mem; > int dmabuf_fd = -1; > > - static const EGLint egl_dmabuf_plane_fd_attr[MAX_NUM_PLANES] = { > - EGL_DMA_BUF_PLANE0_FD_EXT, > - EGL_DMA_BUF_PLANE1_FD_EXT, > - EGL_DMA_BUF_PLANE2_FD_EXT, > - }; > - static const EGLint egl_dmabuf_plane_offset_attr[MAX_NUM_PLANES] = { > - EGL_DMA_BUF_PLANE0_OFFSET_EXT, > - EGL_DMA_BUF_PLANE1_OFFSET_EXT, > - EGL_DMA_BUF_PLANE2_OFFSET_EXT, > - }; > - static const EGLint egl_dmabuf_plane_pitch_attr[MAX_NUM_PLANES] = { > - EGL_DMA_BUF_PLANE0_PITCH_EXT, > - EGL_DMA_BUF_PLANE1_PITCH_EXT, > - EGL_DMA_BUF_PLANE2_PITCH_EXT, > - }; > - > /* Query gst_is_dmabuf_memory() here, since the gstmemory > * block might get merged below by gst_buffer_map(), meaning > * that the mem pointer would become invalid */ > @@ -464,18 +448,25 @@ buffer_to_image(struct decoder *dec, GstBuffer *buf) > { > /* Initialize the first 6 attributes with values that are > * plane invariant (width, height, format) */ > - EGLint attr[6 + 6*(MAX_NUM_PLANES) + 1] = { > + EGLint attr[] = { > EGL_WIDTH, width, > EGL_HEIGHT, height, > EGL_LINUX_DRM_FOURCC_EXT, dec->format > + EGL_DMA_BUF_PLANE0_FD_EXT, -1, > + EGL_DMA_BUF_PLANE0_OFFSET_EXT, -1, > + EGL_DMA_BUF_PLANE0_PITCH_EXT, -1, > + EGL_DMA_BUF_PLANE1_FD_EXT, -1, > + EGL_DMA_BUF_PLANE1_OFFSET_EXT, -1, > + EGL_DMA_BUF_PLANE1_PITCH_EXT, -1, > + EGL_DMA_BUF_PLANE2_FD_EXT, -1, > + EGL_DMA_BUF_PLANE2_OFFSET_EXT, -1, > + EGL_DMA_BUF_PLANE2_PITCH_EXT, -1, > + EGL_NONE,
hmm, I guess this works because we still patch in EGL_NONE below.. but it is funny looking considering that it is an error to specify EGL_DMA_BUF_PLANE{1,2}_* with a single plane fourcc. (But spec doesn't appear to specify what happens if you give EGL_DMA_BUF_PLANE2_* with a dual-plane format.. it's kinda funny that way) BR, -R > }; > > for (i = 0; i < nplanes; i++) { > - attr[6 + 6*i + 0] = egl_dmabuf_plane_fd_attr[i]; > attr[6 + 6*i + 1] = planes[i].fd; > - attr[6 + 6*i + 2] = egl_dmabuf_plane_offset_attr[i]; > attr[6 + 6*i + 3] = planes[i].offset; > - attr[6 + 6*i + 4] = egl_dmabuf_plane_pitch_attr[i]; > attr[6 + 6*i + 5] = planes[i].stride; > } > > -- > 2.12.2 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev