Matthew Waters
f14e5ea027
gl/upload: update the video info on mapping a video frame
...
The buffer should contain the most specific data on how the data is
formatted. We should use this information.
https://bugzilla.gnome.org/show_bug.cgi?id=729896
2014-05-12 22:13:19 +10:00
Matthew Waters
a4f0fbe4c3
gl/upload: avoid performing color conversion when there is no need
...
One such example is when the buffer contains GstGLMemory in the
RGBA format
https://bugzilla.gnome.org/show_bug.cgi?id=729278
2014-05-12 22:09:32 +10:00
Matthew Waters
0c92f185c4
gl/upload: update the respective state when we cache textures/data
2014-05-11 10:45:34 +10:00
Matthew Waters
ecae7a1a41
gl/upload: cache the textures that we are using
2014-05-10 23:54:34 +10:00
Matthew Waters
c6e3f51ca5
gl/upload: avoid recreating the GLMemory struct for output textures
2014-05-10 23:05:03 +10:00
Nicolas Dufresne
afea9c6fe1
gl: Fix some of the error handling
2014-05-09 18:59:46 -04:00
Nicolas Dufresne
803f2c3dc0
glupload: Update GstVideoInfo after the buffer is mapped
...
gst_video_frame_map() will store an updated video info base
on the video meta. In order to have the right stride and offset
we should update that video info accordingly.
2014-05-09 17:59:43 -04:00
Matthew Waters
34b55f33f2
gl/colorconvert: implement lazy init
2014-05-09 22:32:11 +10:00
Julien Isorce
dff8abd57a
gl/upload: set initted to TRUE when _init_upload succeeded
2014-05-09 13:07:16 +01:00
Matthew Waters
ffe2c1f3c1
gl/upload: fix compilation on OS X
2014-05-08 17:28:11 +10:00
Matthew Waters
b0b630c69c
gl/upload: fail propoerly if init fails
2014-05-08 15:40:33 +10:00
Matthew Waters
c247be334a
gl: make all GObjects inherit from GstObject
...
Aids memory leak debugging with GST_TRACE=mem-live
2014-05-08 15:33:43 +10:00
Matthew Waters
a49a371710
gl/upload: implement lazy init
...
Rename init_format to set_format
2014-05-08 15:33:43 +10:00
Matthew Waters
5405273b0a
gl/upload: add get_format method
...
Simply retreives the format set by init_format
2014-05-08 14:03:57 +10:00
Julien Isorce
d4fe519c2e
gl: do not allocate the target texture of an EGLImage
...
The target texture of an EGLImage is the texture bind just
before calling glEGLImageTargetTexture2D.
As we currently only support a gl texture as the source of an EGLImage
the gl texture is actually already allocated when creating the eglimage.
I also see some cases where it fails to upload an eglimage when
glTexImage2D is called on the target.
2014-05-06 15:39:12 +01:00
Julien Isorce
dd8929a272
gl: delete texture used with GstVideoGLTextureUploadMeta
2014-05-06 15:39:12 +01:00
Matthew Waters
598a79a5e2
gl/mem: implement texture copying between formats with strides properly
...
Previously, we used the width to determine the amount of data to be
copied using pbos. This, makes it allocate enough data for the
the strides as well.
2014-05-01 14:00:04 +10:00
Julien Isorce
1ced9b1005
gl: fix declaration-definition mismatch for _init_upload
2014-04-23 21:10:07 +01:00
Matthew Waters
a05d62d5ca
gl/color: pass large value by reference
...
Coverity 1199700
2014-04-12 18:18:08 +10:00
Matthew Waters
15d0c04933
gl/mem: allocate the memory per plane
...
This patch provides the basic infrastructure required for this.
Upload and Download has been ported to this.
Has the nice effect of allowing GstGLMemory to be our
refcounted texture object for any texture type (not just RGBA).
Should not lose any features/video formats.
2014-04-11 10:37:06 +10:00
Matthew Waters
95abfda139
gl: add colorconvert object that converts between color spaces/formats
...
Currently used by both upload and download objects separately.
2014-04-11 10:37:05 +10:00
Matthew Waters
e01e2cce9f
gl: pass video info's by reference
2014-04-02 23:05:47 +11:00
Matthew Waters
6d452f60ee
gl/upload: add support for the bt709 color matrix
2014-03-25 00:34:13 +11:00
Matthew Waters
f55b299826
gl/upload: remove the legacy GL 1.x upload path
...
uploading requires shaders and fbos available in GL2.
2014-03-24 23:19:02 +11:00
Matthew Waters
870503dc6b
gl: silence all the compiler warnings
2014-03-16 15:17:44 +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
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
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
f798d9c9b7
[855/906] upload: add support for GstVideoGLTextureUploadMeta
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
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
Matthew Waters
de31f9eb70
[826/906] upload: free our mutex
2014-03-15 18:37:03 +01:00
Matthew Waters
9b22b0e0ba
[812/906] move the GL vtable from GstGLDisplay to GstGLContext
...
Conflicts:
tests/check/libs/gstglcontext.c
2014-03-15 18:37:02 +01:00
Tonu Jaansoo
e45dfb2f93
[787/906] gl: The GLSL rectangle resampler does not always work with int tex coords
...
Use floats instead.
2014-03-15 18:37:00 +01:00
Matthew Waters
01a4472b7f
[778/906] upload: remove _thread variants of the API
2014-03-15 18:37:00 +01:00
Matthew Waters
a4445ea016
[777/906] upload: overhaul and addition of new video formats
...
use the shaders from eglglessink (adapted for Desktop GL)
error out properly
2014-03-15 18:37:00 +01:00
Sebastian Dröge
60aefacd32
[750/906] glupload: Add support for RGB reordering when using GLES2
2014-03-15 18:36:58 +01:00
Sebastian Dröge
f36efba6da
[747/906] gl: Constify YUV conversion shaders
2014-03-15 18:36:58 +01:00
Sebastian Dröge
01ce41f684
[745/906] gl: Simplify and optimize YUV conversion shaders a bit
2014-03-15 18:36:58 +01:00
Julien Isorce
dd7e054e2c
[732/906] build: fix repeated typedefs
...
Write forward declarations in another way to avoid
repeated typedefs "error: redefinition of typedef".
Raised when using i686-apple-darwin11-llvm-gcc-4.2
It seems that C apple compiler does not support
C11 feature.
https://bugzilla.gnome.org/show_bug.cgi?id=703885
2014-03-15 18:36:57 +01:00
Matthew Waters
13067b104c
[704/906] Use gst_object_[un]ref so we can get refcounts in the log
2014-03-15 18:36:56 +01:00
Matthew Waters
dbeb6a911b
[701/906] display: move context creation into window
2014-03-15 18:36:55 +01:00
Matthew Waters
5841abc5e4
[700/906] display: move most of the code into utils for sorting later
...
This contains a hack that essentially requires one GstGLDisplay
per process.
2014-03-15 18:36:55 +01:00
Matthew Waters
96114e62cb
[699/906] display: remove list of upload and download objects
...
and only create an up/download object when needed.
2014-03-15 18:36:55 +01:00
Matthew Waters
7f69a236b9
[675/906] upload: provide nicer debugging
2014-03-15 18:36:54 +01:00
Matthew Waters
6bee1ffdd3
[651/906] up/download: fix some typos when removing GLEW
2014-03-15 18:36:52 +01:00
Matthew Waters
7b03a572d9
[647/906] remove dependecy on glew
2014-03-15 18:36:52 +01:00
Matthew Waters
fa3c3b8434
[642/906] add gstglconfig.h for apps to find out what our capabilites are
...
ie libgstgl can be compiled with any combination of opengl/gles2
2014-03-15 18:36:52 +01:00
Matthew Waters
cc8e54541b
[624/906] OPENGL_ES2 => HAVE_GLES2 and add HAVE_OPENGL
...
use GstGLAPI to determine which code paths to execute.
perform some cleanups
2014-03-15 18:36:51 +01:00
Matthew Waters
93f7e993ad
[603/906] update FSF address
2014-03-15 18:36:50 +01:00
Matthew Waters
d01755fcc5
[601/906] fix typo causing shader compilation failure for uploading I420
2014-03-15 18:36:49 +01:00
Matthew Waters
12bf1cfa27
[600/906] docs: add docs for new objects and expand on some existing ones
2014-03-15 18:36:49 +01:00
Matthew Waters
11508f6f7a
[599/906] GL|ES2: fix typos from recent changes and make downloading RGB formats work again
2014-03-15 18:36:49 +01:00
Matthew Waters
4716682c55
[590/906] up/download: fix scaling on transfer
...
i.e. uploading from a 10x10 video frame to a 20x20 texture into another 30x30 videoframe
2014-03-15 18:36:49 +01:00
Matthew Waters
5aa048e53b
[578/906] {up,down}load: add variants that can be called in the gl thread
2014-03-15 18:36:48 +01:00
Matthew Waters
88cb7e3060
[573/906] add upload and download library objects
...
allows multiple upload pipelines that previously wasn't possible
(i.e. upload RGB and I420 and ... on the same GstGLDisplay)
2014-03-15 18:36:48 +01:00