On 2 May 2017 at 14:58, Rob Clark <robdcl...@gmail.com> wrote: > 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) > One will either use the whole [3 plane] information set or trim [via EGL_NONE] as applicable. Not sure how any of that reads funny ... guess I'm just special ;-)
-Emil _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev