Matthew Waters
27e724df8f
gl: add a base memory object
...
It handles the following
- GstAllocationParams -> gst_memory_init transformation
- Makes sure that map/unmap/create/destroy happen on the GL thread with
a GL context current.
- Holds a possible sysmem accessible data pointer with alignment.
- Holds the need upload/download transfer state
2015-12-14 13:55:16 +11:00
Matthew Waters
51636b451c
gl: add convenience function for the start of a video frame
...
Get's the start of the video frame based on a GstVideoInfo and
GstVideoAlignment.
2015-12-14 13:55:16 +11:00
Matthew Waters
3591c6bfa0
gluploadmeta; remove convenience helper API
...
It was not really useful as if one knows about libgstgl, one can just use
GLMemory objects directly.
2015-12-14 13:55:16 +11:00
Matthew Waters
50337e601e
gldownload: remove helper api from the library
...
It was never used by anyone and is not needed anymore with the element
and GstGLMemory's transparent support for downloading textures.
2015-12-14 13:55:16 +11:00
Alessandro Decina
1d862db9c1
libgstgl: gstglcontext_cocoa: kCGLPFAStereo has been deprecated in 10.11
...
Also since the version scheme has changed (to include the micro number) since
10.10, use the MAC_OS_X_VERSION_* macro to avoid confusion.
2015-12-10 14:46:27 +11:00
Alessandro Decina
11ca761c5d
glbufferpool: relax check for multiple texture targets
...
Only complain about multiple texture targets when _different_ texture targets
are configured.
2015-12-10 14:46:27 +11:00
Alessandro Decina
5cd0601dd5
glmemory: take subsampling into account for rectangle textures
...
Rectangle textures don't use normalized coordinates so subsampling needs to be
factored in explicitly.
Fixes YUV => RGB conversion for rectangle textures.
2015-12-10 14:46:27 +11:00
Thiago Santos
2fdd5dca14
adaptivedemux: avoid pushing events with manifest lock
...
It can be an easy source of deadlocks. Reproducible with very
fast connections (local server).
2015-12-08 16:12:37 -03:00
Matthew Waters
44c5985edd
glproto: include function definitions for GL_APPLE_sync
...
Provides a performance improvement on iOS where we were falling back to glFinish
on settting sync points.
2015-12-08 18:08:28 +11:00
Nicolas Dufresne
d84d1708b7
glupload: Only offer custom allocator with caps features
...
To use GLMemory and EGLImage allocators, one need to know the
libgstgl API. This is only expected if the associated caps features
have been negotiated. Generic element that otherwise receive those
allocators may fail, resulting in broken pieline. We don't want to
force all generic element to check if the allocator is a custom
allocator or a normal allocator (which implement the _alloc method).
https://bugzilla.gnome.org/show_bug.cgi?id=758877
2015-12-04 17:08:46 -05:00
Sebastian Dröge
280de75d89
adaptivedemux: Log PTS of buffers that are pushed downstream
2015-12-03 10:08:53 +02:00
Matthew Waters
c8099e6e71
glcolorconvert: improve the YUY2/UYVY->RGBA conversion shader
...
Don't offset the y-axis. We only need to offset on the x-axis.
Removes a sawtooth pattern on horizontal and vertical edges.
https://bugzilla.gnome.org/show_bug.cgi?id=755486
2015-12-02 22:52:20 +11:00
Matthew Waters
0b11eba96a
glcolorconvert: improve RGBA->YUY2/UYVY conversion shader
...
We should only average the chroma samples not the luma sample.
https://bugzilla.gnome.org/show_bug.cgi?id=758904
2015-12-02 22:52:20 +11:00
Jan Schmidt
08544a459b
adaptivedemux: Send the bitrate of the stream as a tag
...
If we know or can measure the nominal bitrate of a stream,
send that info as a tag downstream
2015-12-02 22:29:38 +11:00
Reynaldo H. Verdejo Pinochet
c564a043d1
Drop usage of deprecated g-ir-scanner --strip-prefix flag
2015-12-02 00:20:01 -08:00
Tim-Philipp Müller
64adb1998d
hlsdemux: fix crash when decryption key can't be downloaded
...
Happened with
http://sslhls.m6tv.cdn.sfr.net/hls-live/livepkgr/_definst_/m6_hls_aes/m6_hls_aes_856.m3u8
if glib-networking was not installed (since key has https uri).
2015-12-01 18:01:36 +00:00
Reynaldo H. Verdejo Pinochet
86ec812429
Remove unnecessary NULL checks before g_free()
...
g_free() is NULL-safe
2015-11-18 16:05:42 -08:00
Sebastian Dröge
74ab40470c
glviewconvert: String literals are const
...
gstglviewconvert.c: In function '_mangle_extensions':
gstglviewconvert.c:1511:13: error: assignment discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers]
ext_str = "#extension GL_OES_EGL_image_external : require\n";
^
2015-11-17 17:09:51 +02:00
Sebastian Dröge
e2ea7843f9
glsyncmeta: Actually return the newly created meta from gst_buffer_add_gl_sync_meta()
...
gstglsyncmeta.c -fPIC -DPIC -o .libs/libgstgl_1.0_la-gstglsyncmeta.o
gstglsyncmeta.c: In function 'gst_buffer_add_gl_sync_meta':
gstglsyncmeta.c:131:1: error: control reaches end of non-void function [-Werror=return-type]
}
^
2015-11-17 17:08:14 +02:00
Matthew Waters
67327615df
glsyncmeta: add vfuncs for all operations
...
there could be other ways/requirements for synchronising two GPU command
streams (whether GL or platform specific).
e.g. glfencesync/eglwaitnative/cond/etc
2015-11-17 15:27:26 +11:00
Matthew Waters
79f4efb02a
glviewconvert: add support rectangle/external-oes textures
...
https://bugzilla.gnome.org/show_bug.cgi?id=757285
2015-11-17 15:27:26 +11:00
Tim-Philipp Müller
1491d02c4e
adaptivedemux: remove now-defunct "num-lookback-fragments" property
...
This no longer does anything, and it was marked as CONSTRUCT_ONLY
which means someone would really have to go out of their way to
be able to set this, which would only be done in very custom
scenarios, if ever, and those will likely target a specific
version of GStreamer then, so probably not much point keeping
it deprecated for a while before removing it.
2015-11-14 20:28:34 +00:00
Vineeth TM
6eae0c7e18
glsl: fix possible string overrun in gst_glsl_version_profile_from_string
...
given a NULL-terminated string, s.
s[i] = '\0';
i++;
does not guarentee that s[i] is NULL terminated and thus string operations
could read off the end of the array.
https://bugzilla.gnome.org/show_bug.cgi?id=758039
2015-11-13 17:00:46 +11:00
Matthew Waters
babd066b89
glshader: don't read invalid list pointers (use after free)
...
gst_gl_shader_detach_unlocked already removes the list entry so attempting to
use the element to iterate to the next stage could read invalid data.
Based on patch by Vineeth TM <vineeth.tm@samsung.com>
https://bugzilla.gnome.org/show_bug.cgi?id=758039
2015-11-13 17:00:46 +11:00
Vineeth TM
4c9ac5e474
glsl: free str while returning error
...
https://bugzilla.gnome.org/show_bug.cgi?id=758039
2015-11-13 17:00:46 +11:00
Vineeth TM
550ecade4d
glslstage: Fix vertex_sources memory leak
...
vertex_sources is being allocated but not freed resulting in leak
https://bugzilla.gnome.org/show_bug.cgi?id=757974
2015-11-12 21:23:21 +11:00
Vineeth TM
591401f9e8
glcolorconvert: remove unnecessary free
...
version_str is already being freed. So no need to call again
https://bugzilla.gnome.org/show_bug.cgi?id=757974
2015-11-12 21:23:21 +11:00
Vineeth TM
ba4802e1e5
glcolorconvert: Fix string leak
...
String got using gst_glsl_version_profile_to_string, is allocated
memory and should be freed
https://bugzilla.gnome.org/show_bug.cgi?id=757974
2015-11-12 21:23:21 +11:00
Vineeth TM
b8adc98ddc
glcolorconvert: Fix frag_prog and frag_body memory leak
...
https://bugzilla.gnome.org/show_bug.cgi?id=757974
2015-11-12 21:23:21 +11:00
Florin Apostol
4994f068d5
adaptivedemux: fixed handling errors emitted by uri handler
...
https://bugzilla.gnome.org/show_bug.cgi?id=757947
2015-11-11 17:56:19 +01:00
Matthew Waters
aada44cc09
glcolorconvert: mangle gl_FragColor for GL3
...
Some drivers don't provide the compatibility definition and we need to provide
our own 'out vec4' variable to put the results of the fragment shader into.
https://bugzilla.gnome.org/show_bug.cgi?id=757938
2015-11-11 23:42:02 +11:00
Matthew Waters
50b59150fd
glviewconvert: remove set_format
...
We need the caps to be able to
1. check the caps features
2. get the requested texture-target on input/output
2015-11-11 15:16:37 +11:00
Matthew Waters
f24e768cc3
glshader: properly unref the stages on failure
...
When failing in the varargs functions, all the stage objects not handled need to
be unreffed to prevent a leak.
2015-11-11 14:41:38 +11:00
Matthew Waters
8d8063060e
glslstage: properly return an error when we could not create the shader stage
...
While it was erroring out correctly later, there were GLib warnings about
setting a GError over the top of another GError.
2015-11-11 11:29:35 +11:00
Matthew Waters
21bd8ee536
glshaderstrings: fixup the external-oes fragment shader
...
The wrong sampler type was used
s/sampler2DExternalOES/samplerExternalOES/
2015-11-11 01:27:21 +11:00
Matthew Waters
87137e3353
glcolorconvert: try to keep the same texture-target if possible
...
Fixes issues attempting to passthrough external-oes textures
2015-11-10 23:41:24 +11:00
Matthew Waters
6c97be6dfa
glcolorconvert: fix rendering rectangular textures with GL3
...
Rectangular textures are unavailable in unextended
GLES2 #version 100 shaders.
Fixes
texture-target=rectangle ! glcolorconvert ! texture-target=2D
There's a couple of differences between GL3 and GLES2/GL
- varying -> in or out depending on the stage (vertex/fragment)
- attribute -> in
- filtered texture access is a single function, texture()
2015-11-10 22:47:42 +11:00
Matthew Waters
149a92f250
glcolorconvert: properly use the other texture-target on fixation
2015-11-10 22:47:42 +11:00
Matthew Waters
3d5ed23a72
glslstage: add debug as to why _set_strings() failed
2015-11-10 22:47:42 +11:00
Matthew Waters
776ccf87b5
glsl: fix check for glsl version against GL context inversion
...
Any GLSL version that was less than the provided GL version would fail
2015-11-10 22:47:42 +11:00
Vineeth TM
d624ba0c61
adaptivedemux: Fix pad memory leak.
...
The static pads got from queue and uri_handler are not being freed
resulting in memory leaks.
https://bugzilla.gnome.org/show_bug.cgi?id=757859
2015-11-10 07:06:17 -03:00
Matthew Waters
ec318cf36d
gl: forward declare some enums
...
Specifically the GstGLTextureTarget enum
2015-11-10 15:42:35 +11:00
Matthew Waters
8acafe6f9f
glslstage: expose the default shader strings as public
...
Add some other simple strings for external-oes textures or transforming
the texture coordinates with a transformation matrix
2015-11-10 15:42:35 +11:00
Matthew Waters
8ae7cc4ee6
glcolorconvert: wait on the sync meta for input buffers
2015-11-10 15:42:35 +11:00
Matthew Waters
df69943726
glcolorconvert: use the correct oes target string in the template caps
2015-11-10 15:42:35 +11:00
Philippe Normand
ccff3be3ab
adaptivedemux: improved bitrate estimations
...
Bitrate estimation is now handled through a queue2 element added after
the source element used to download fragments.
Original hlsdemux patch by Duncan Palmer <dpalmer@digisoft.tv>
https://bugzilla.gnome.org/show_bug.cgi?id=733959
2015-11-06 12:34:36 -03:00
Tim-Philipp Müller
edab4deb3a
glshader, tsdemux: simplify code
...
Jus use _delete_link() instead of _remove_link() + _free1()
2015-11-06 13:00:55 +00:00
Luis de Bethencourt
ba8b8e4677
aggregator: use GST_STIME_FORMAT for GstClockTimeDiff
...
No need to manually handle negative value of deadline, GST_STIME_FORMAT does
exactly this.
2015-11-05 12:36:55 +00:00
Stefan Sauer
c1fa51953c
aggregator: don't compare templ instance pointers
...
One can pass the PadTemplate from the element_class or the one from the factory.
While they have the same content, the addresses are different.
2015-11-03 19:11:28 -08:00
Olivier Crête
41344e0315
aggregator: Set to running in a single place
...
Only set to running when the thread is actually started.
2015-11-03 14:42:52 -05:00