Commit graph

1659 commits

Author SHA1 Message Date
Matthew Waters
0d1d42b205 [890/906] x11: add display subclass
GstGLDisplayX11 holds the display connection and name.  Each thread requires
it's own X11 Display connection (initialised from name) due to the fact that
we do not want to call XInitThreads().  Doing so would result in segfaults
when integrating with GUI toolkits Gtk, Qt, etc.

The Display connection is for OpenGL platforms where a constant display is
required in order to share contexts (egl).  In the case of a wrapped context
(added later), we do not have GstGLWindow to retreive the display from so a
'master' connection is used instead.
2014-03-15 18:37:06 +01:00
Matthew Waters
f4036318da [889/906] display: add display type enum 2014-03-15 18:37:06 +01:00
Adrien SCH
08d71feaa4 [888/906] correct error handling in gstgldownload.c 2014-03-15 18:37:06 +01:00
Matthew Waters
cdfa3a03c9 [887/906] mixer: fixup a memory leak of the context in the GLTextureUploadMeta path
gst_structure_get returns a reference to the object and we asked
for another with gst_object_replace.

https://bugzilla.gnome.org/show_bug.cgi?id=724816
2014-03-15 18:37:06 +01:00
Matthew Waters
687ac78290 [886/906] fixup a memory leak of the context in the GLTextureUploadMeta path
gst_structure_get returns a reference to the object and we asked
for another with gst_object_replace.

https://bugzilla.gnome.org/show_bug.cgi?id=724816
2014-03-15 18:37:06 +01:00
Matthew Waters
506e4fc793 [885/906] filter: free our data
plugs some memory leaks

https://bugzilla.gnome.org/show_bug.cgi?id=724816
2014-03-15 18:37:06 +01:00
Matthew Waters
d57403ab98 [884/906] filter: return the pad template caps in transform_caps
We can transform from any input in our caps to any output.
With the following pipeline snippet:

  ... ! vaapidecode ! glcolorscale ! xvimagesink

GstVideoGLTextureUploadMeta was being used on both src and sink
pads causing linking to fail.  This allows the usage of the meta
on either pad without affecting whether the meta is chosen on the
other pad.
2014-03-15 18:37:06 +01:00
Matthew Waters
767a3524ae [883/906] api: provide from_string()
Also s/gst_gl_api_string/gst_gl_api_to_string/g
2014-03-15 18:37:06 +01:00
Matthew Waters
13aa186711 [881/906] upload: restore default values for unpack_length
fixes elements that upload a supplementary texture (glbumber,
gldifferencematte, etc)
2014-03-15 18:37:06 +01:00
Matthew Waters
75825b3626 [879/906] build: don't add X_CFLAGS to CFLAGS
It should already be included if needed inside GL_CFLAGS
2014-03-15 18:37:06 +01:00
Chris Paulson-Ellis
1a53bc22c7 [877/906] x11: Use correct format string for guintptr
https://bugzilla.gnome.org/show_bug.cgi?id=723537
2014-03-15 18:37:06 +01:00
Matthew Waters
cd7bfb92d4 [876/906] glmem: use GstVideoInfo for format configuration
Allows use of strides
2014-03-15 18:37:06 +01:00
Matthew Waters
cba72fbee3 [875/906] upload: support for arbitrary strides
Using GL_UNPACK_ALIGNMENT for GLES2 and GL_UNPACK_ROW_LENGTH for everything else
2014-03-15 18:37:06 +01:00
Matthew Waters
0c1a77ca6c [874/906] filter: implement draw_texture for GLES2
(taken from gleffects)
2014-03-15 18:37:06 +01:00
Matthew Waters
4386cc1c6b [873/906] upload: use GstVideoInfo for choosing the format 2014-03-15 18:37:05 +01:00
Matthew Waters
a2abc0d3b6 [872/906] upload: consolidate data _fill 2014-03-15 18:37:05 +01:00
Matthew Waters
721a5d4c36 [871/906] upload: fix texture scaling for YUY2/UYVY with GLES2
Another artifact from the transition to GL_TEXTURE_2D
2014-03-15 18:37:05 +01:00
Matthew Waters
31eb2f5f0d [870/906] upload: remove superflous g_mutex_init 2014-03-15 18:37:05 +01:00
Matthew Waters
57422186b5 [869/906] tests: add some upload tests 2014-03-15 18:37:05 +01:00
Matthew Waters
53c5245948 [868/906] upload: fix compilation for GLES2 2014-03-15 18:37:05 +01:00
Wang Xin-yu (王昕宇)
30b9bfbf55 [867/906] glupload: Add GRAY8/GRAY16LE/BE upload support to glimagesink
the 16bit data is uploaded as LUMINANCE_ALPHA, then expanded, composed
in shader. value weight is a little complicate, high byte weight is
255*256/65535 (denormalize to [0~255] ,shift to high byte,then normalize
to [0~1]), low byte weight is 255/65535(similar)

https://bugzilla.gnome.org/show_bug.cgi?id=722670
2014-03-15 18:37:05 +01:00
Matthew Waters
83d27b9bc2 [866/906] upload: update some docs 2014-03-15 18:37:05 +01:00
Matthew Waters
49a19fb6b1 [865/906] glmem: report successful copy to the caller 2014-03-15 18:37:05 +01:00
Matthew Waters
7b031f648c [863/906] window: hold a ref to our GstGLDisplay 2014-03-15 18:37:05 +01:00
Matthew Waters
cf7838a0b6 [862/906] window: remove set_need_lock
No-one is using it.  The only code that did was the x11 one which
doesn't need it anymore.
2014-03-15 18:37:05 +01:00
Wang Xin-yu (王昕宇)
48d92cbe88 [861/906] glprototypes: Add missing glScalef declare
https://bugzilla.gnome.org/show_bug.cgi?id=721903
2014-03-15 18:37:05 +01:00
Matthew Waters
cdad19fd43 [860/906] docs: misc updates 2014-03-15 18:37:05 +01:00
Matthew Waters
3049627b87 [859/906] window: provide some documetation 2014-03-15 18:37:05 +01:00
Matthew Waters
aa573cf138 [858/906] glmem: update the docs 2014-03-15 18:37:05 +01:00
Matthew Waters
4d30769b86 [857/906] display: document the new GstContext api 2014-03-15 18:37:05 +01:00
Matthew Waters
4cf2f4ded2 [856/906] context: document it 2014-03-15 18:37:04 +01:00
Matthew Waters
f798d9c9b7 [855/906] upload: add support for GstVideoGLTextureUploadMeta 2014-03-15 18:37:04 +01:00
Matthew Waters
42701927f0 [854/906] use the allocation query to propogate GstGLContext
uses the GstVideoGLTextureUploadMeta api type for the query
2014-03-15 18:37:04 +01:00
Matthew Waters
636d307715 [853/906] display: remove _{set,get}_context
A GstGLDisplay doesn't need a GstGLContext and its use
was cause a reference cycle
2014-03-15 18:37:04 +01:00
Matthew Waters
79260ff8f9 [852/906] use GstContext for GstGLDisplay propogation
implements the hooks required in GstElement::set_context and the context query
2014-03-15 18:37:04 +01:00
Matthew Waters
b0a43c0c65 [850/906] glupload: Remove texture scaling artifacts from the TEXTURE_RECTANGLE -> TEXTURE_2D transition
fixes the funky colours in some of the yuv formats

https://bugzilla.gnome.org/show_bug.cgi?id=721155
2014-03-15 18:37:04 +01:00
Matthew Waters
679309e5a8 [848/906] filter: a little code cleanup 2014-03-15 18:37:04 +01:00
Matthew Waters
afdde267ef [847/906] mixer: unmap the video frames we map
plugs a memory leak
2014-03-15 18:37:04 +01:00
Matthew Waters
5cb409218a [846/906] mixer: handle 0/1 framerate better in caps 2014-03-15 18:37:04 +01:00
Matthew Waters
78a726ebc1 [845/906] filter: handle capsfeatures properly 2014-03-15 18:37:04 +01:00
Matthew Waters
63ccd94d1a [844/906] mixer: give access to the pads at render time
allows us to move the video frame mapping somewhere else
2014-03-15 18:37:04 +01:00
Matthew Waters
4322266b97 [843/906] memory: provide copy_into_texture 2014-03-15 18:37:04 +01:00
Tim-Philipp Müller
43d953905b [842/906] Fix gstglconfig.h-related 'make distcheck' issues
Fix srcdir vs. builddir issue in docs and 'files left after
disclean' issue for gstglconfig.h
2014-03-15 18:37:04 +01:00
Julien Isorce
f506e80686 [841/906] osx: allow x11/glx backend and set default runtime to cocoa/nsgl
https://bugzilla.gnome.org/show_bug.cgi?id=719757
2014-03-15 18:37:04 +01:00
Julien Isorce
7a689108d9 [839/906] cocoa: allow to call set_window_handle before to create glcontext
So that it actually make cocoa videooverlay example work again.

Fixes bug https://bugzilla.gnome.org/show_bug.cgi?id=719758
2014-03-15 18:37:03 +01:00
Matthew Waters
b90d824626 [838/906] gl: Use GL_TEXTURE_2D instead of GL_TEXTURE_RECTANGLE
We create our textures (in Desktop GL) with GL_TEXTURE_RECTANGLE,
vaapi attempts to bind our texture to GL_TEXTURE_2D which throws a
GL_INVALID_OPERATION error and as thus, no video.

Also, by moving exclusively to GL_TEXTURE_2D and the npot extension
we also remove a difference between the Desktop GL and GLES2 code.

https://bugzilla.gnome.org/show_bug.cgi?id=712287
2014-03-15 18:37:03 +01:00
Matthieu Bouron
52a9869596 [837/906] cocoa: resize OpenGL view size each time the window is resized
Fixes glitches that can appear when the OpenGL view has not been resized
after a window resize.

https://bugzilla.gnome.org/show_bug.cgi?id=711672
2014-03-15 18:37:03 +01:00
Matthieu Bouron
fb9684e0f1 [836/906] cocoa: only use GSRegisterCurrentThread with GNUStep environment 2014-03-15 18:37:03 +01:00
Julien Isorce
6fcd8b7206 [835/906] gstglwindow: remove unused fields 2014-03-15 18:37:03 +01:00
Julien Isorce
e5ed59e61c [834/906] gstglwindow: clear mutex 2014-03-15 18:37:03 +01:00