[Bug 706054] move GstEGLImageBufferPool and allocator from eglglessink to gstegl lib
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Fri Aug 23 09:09:09 PDT 2013
https://bugzilla.gnome.org/show_bug.cgi?id=706054
GStreamer | gst-plugins-bad | git
--- Comment #4 from Julien Isorce <julien.isorce at gmail.com> 2013-08-23 16:09:05 UTC ---
(In reply to comment #3)
> Review of attachment 251699 [details]:
>
> Just looked at the header API for now. Could you do the refactoring in-place
> first so it's easier to see the diff? And then move files around in a second
> step?
>
> ::: gst-libs/gst/egl/Makefile.am
> @@ +20,3 @@
> $(GST_LIBS) \
> + $(EGL_LIBS) \
> + $(EGLGLES_LIBS)
>
> This now makes the egl library depend on GL or GLES, that's not how it was
> intended
Yes sure but how to deal with glGenTextures/glBindTexture/glTexImage2D calls
before the eglCreateImageKHR call then ?
>
> ::: gst-libs/gst/egl/egl.h
> @@ +37,3 @@
> +typedef struct _GstEGLContext GstEGLContext;
> +
> +GST_DEBUG_CATEGORY_EXTERN (egl_debug);
>
> Why is it in the header? I don't think it should
>
> @@ +42,3 @@
> +
> +gboolean gst_gl_got_error (const char *wtf);
> +gboolean gst_egl_got_error (const char *wtf);
>
> These should not be public
why ? if we want to use it in eglglessink as well
>
> @@ +90,3 @@
> +EGLint gst_egl_display_get_major (GstEGLDisplay * display);
> +EGLint gst_egl_display_get_minor (GstEGLDisplay * display);
> +void gst_egl_display_set_version (GstEGLDisplay * display, EGLint major,
> EGLint minor);
>
> Shouldn't the display get the version from itself, instead of having the user
> supply it?
ok so I should move the call to eglInitialise to gstegl lib:
So it's like replacing gst_egl_display_set_version by:
gboolean gst_egl_display_initialize (GstEGLDisplay * display)
{
...
res = eglInitialize (display->display, &egl_major, &egl_minor)
...
if (res) display->egl_major = egl_major;
...
return res;
}
?
Actually every call to egl should go progressively to gstegl lib.
>
> @@ +112,3 @@
> +/* EGLImageBufferPool */
> +
> +typedef GstBuffer* (*GstEGLImageBufferPoolSendBlockingAllocate) (GstBufferPool
> *pool, GstObject * object);
>
> This is a callback that is supposed to block and defer the allocation of the
> EGLImage in a different thread?
>
> @@ +114,3 @@
> +typedef GstBuffer* (*GstEGLImageBufferPoolSendBlockingAllocate) (GstBufferPool
> *pool, GstObject * object);
> +
> +typedef struct _GstEGLImageBufferPool GstEGLImageBufferPool;
>
> For making g-i and gtk-doc happy you should have all the GObject boilerplate
> stuff here and also the structs public
>
> @@ +121,3 @@
> +
> +GstBufferPool *gst_egl_image_buffer_pool_new (GstEGLDisplay * display,
> + GstObject * blocking_allocate_data,
>
> Why a GstObject? Why not just a gpointer and a GDestroyNotify?
You right I'll change that too.
--
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list