Commit graph

16300 commits

Author SHA1 Message Date
Sebastian Dröge cad1bb32c8 gl: Try harder to load symbols from the correct place
This commit makes the loading of the GModules threadsafe, and
always first tries to load the symbol for the GL library that
is selected for the current context. Only then it falls back
to looking into the current module (NULL), and only as a last
resort the context specific function (e.g. eglGetProcAddress())
is called.

Also add configure parameters to select the names of the library
modules instead of using the defaults, and let the defaults be
independent of the G_MODULE_SUFFIX.

https://bugzilla.gnome.org/show_bug.cgi?id=728753
2014-05-01 14:36:54 +02:00
Matthew Waters 5681f78362 glcolorscale: fix operation with dual GL, GLES2 libgstgl 2014-05-01 14:11:00 +10: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
Matthew Waters 29ff67a60a gl/mem: pad the public struct 2014-05-01 14:00:04 +10:00
Nicolas Dufresne 441ac82d7f gl: no need to provide full lib path to load symbols
- Make gstgl work on Mali
- Keep it work on RPI
- fallback to NULL name module if fails with usual lib name

https://bugzilla.gnome.org/show_bug.cgi?id=728753
2014-04-30 15:16:06 -04:00
Vincent Penquerc'h d8fb89e4e6 kate: avoid read buffer overflow in crafted stream
Coverity 1208777
2014-04-30 18:16:11 +01:00
Julien Isorce 56cca649d4 glcolorscale: use a shader on GLESv2
Otherwise you only see black frames

Fix https://bugzilla.gnome.org/show_bug.cgi?id=728947
2014-04-30 17:33:14 +01:00
Julien Isorce a20f17e29c glimagesink: use new helper function to avoid duplicating default shader text 2014-04-30 15:35:49 +01:00
Julien Isorce f4626ef619 gleffects: use new helper functions to avoid duplicating the same vertex shader text
And also use the default fragment shader text for the identity effect
2014-04-30 15:35:49 +01:00
Julien Isorce 64e5b5a203 gl: add convenient functions to setup default vertex and fragment shaders
Most of our 2D filters use the same simple vertex shader.
Also define the default fragment shader as the identity.

Avoid duplicating the same vertex and fragment shader text.
2014-04-30 15:35:49 +01:00
Sebastian Dröge fc38c22f1b hlsdemux: Only unref pending buffer if there is one 2014-04-30 10:14:12 +02:00
Thiago Santos 940576244c hlsdemux: Do not push last buffer after error
In decryption scenario, a buffer is always stored to be sent later
to wait for more data or EOS to be able to strip the final bytes
if requested. In case an error hapenned this buffer can be ignored
and not pushed downstream.
2014-04-29 18:49:15 -03:00
Thiago Santos bb8887baa7 hlsdemux: flush the adapter in the end of a fragment
In case of error there might be some data left in the
adapter when EOS is received. Clear the adapter to be
able to restart again later if requested.
2014-04-29 18:49:15 -03:00
Thiago Santos 4ab1d9f21f hlsdemux: handle more error cases
Handle some more error cases:

1) When the source element fails to go to ready
2) When decryption fails
3) When there is no source to handle a specific URI
4) When the URI is invalid
2014-04-29 18:49:15 -03:00
Thiago Santos 4431388cab hlsdemux: handle errors from internal source
Set up a message handling function to catch errors from the internal
source and store the last return code to identify error situations
when returning from a fragment download.

Also moves the duration increase to after the download when we
know if it was successful or not
2014-04-29 18:49:15 -03:00
Thiago Santos f16560c520 hlsdemux: Improve pad switching conditions
When using the internal source, hlsdemux doesn't know the caps of
the input before adding the pad, so remove the arguments that would
use that as it is always NULL.

And use an specific flag to signal when a pad switch is required.
Using the discont flag is a bad idea now because when a fragment
download fails it will lead to exposing a pad group without any
data, causing decodebin to abort.
2014-04-29 18:49:15 -03:00
Thiago Santos 587851ba10 hlsdemux: properly flush decryption status on seeks
Avoids mixing decryption of different fragments when seeking happens
and leading to broken stream output.
2014-04-29 18:49:15 -03:00
Thiago Santos ff395a7565 hlsdemux: Track fragments duration
When receving EOS from the internal src, increase the current positon
by the fragment duration to allow correct restoring of download position
if the bitrate changes
2014-04-29 18:49:15 -03:00
Thiago Santos 2b73e86881 hlsdemux: properly stop tasks by stopping fragment download
Issue a signal to the fragment download cond to stop
the task earlier
2014-04-29 18:49:15 -03:00
Thiago Santos 60eec1443a hlsdemux: decrypt before typefinding
Make sure typefinding gets the decrypted content instead of
trying to typefind the encrypted data.
2014-04-29 18:49:15 -03:00
Thiago Santos cc262b0923 hlsdemux: fix decryption function return
Correctly return the decrypted buffer when it succeeds and
return NULL otherwise
2014-04-29 18:49:15 -03:00
Thiago Santos f6b0cae8b6 hlsdemux: keep connection alive between downloads
Use the same properties as uridownloader to keep connections alive
between consecutive fragments downloads.

1) set keep-alive property to true
2) keep the element in READY instead of in NULL
2014-04-29 18:17:07 -03:00
Thiago Santos 4b9d91d497 hlsdemux: create sources from uri
Instead of using always an http source, create it dynamically from
uri when needed. If not needed just replace the URI on the current
element
2014-04-29 18:17:07 -03:00
Thiago Santos 671f8c0e35 hlsdemux: do not try to run typefind again if caps is the same
Always reset the do_typefind flag if hls did typefind because
trying it on non-zero offsets doesn't make sense and will cause
assertions
2014-04-29 18:17:07 -03:00
Thiago Santos cc033c7ca0 hlsdemux: enable download bitrate measure
Measure the download bitrate to be able to select
the best playlist.

As the buffers are directly pushed downstream and it
might block. The time is only measured from the download
until the pad push and it is started again after the push
returns.
2014-04-29 18:17:07 -03:00
Thiago Santos c93c222786 hlsdemux: re-enable decryption after uridownloader removal
Now the decryption is done buffer by buffer instead of on the
whole fragment at once. As it expects multiples of 16 bytes a
GstAdapter was added to properly chunk the buffers.

Also the last buffer must be resized depending on the value of the
last byte of the fragment, so hlsdemux always keeps a pending buffer
as it doesn't know if it is the last one yet
2014-04-29 18:17:07 -03:00
Thiago Santos 3611759557 hlsdemux: replace uridownloader with a GstElement
The GstElement is directly linked into a ghost pad and
its buffers are pushed as received downstream. This way the
buffers are small enough and not a whole fragment that usually
causes extra latency and makes buffering harder
2014-04-29 18:17:07 -03:00
Philippe Normand eee4f95a1f gl: add missing G_BEGIN/END_DECLS in utils header 2014-04-29 19:24:08 +01:00
Thiago Santos df52eb3198 examples: gl: add missing entry to cflags to find gst/gl/gl.h
Otherwise build fails
2014-04-29 13:23:26 -03:00
Stefan Sauer f3cb98d512 tests: drop direct include
It is only allowed to include gdk/gdkx.h and that will bring all the x11 things.
2014-04-29 18:20:30 +02:00
Stefan Sauer 6bb08d1267 sndfile: send a toc for the segments in the audio file 2014-04-29 18:20:30 +02:00
Haakon Sporsheim (ieei) 36a2acae45 h264parse: unref/replace force_key_unit_event in gst_h264_parse_reset
https://bugzilla.gnome.org/show_bug.cgi?id=729200
2014-04-29 12:17:51 -03:00
Jan Schmidt 692e7b4e11 gl/sdl example: Fix uninstalled build 2014-04-29 22:19:37 +10:00
Jan Schmidt 4296dc12f7 gl: Reduce noisy Info level output to LOG 2014-04-29 22:19:37 +10:00
Matthew Waters 8ddb19e595 gl/examples/sdl: update for the latest gstgl changes 2014-04-29 18:32:22 +10:00
Matthew Waters 294da02a2f gl/examples: move to -bad
- fix all the compiler errors
- give them their own gl directory
2014-04-29 16:40:08 +10:00
Julien Isorce 967982a0b5 egl: remove pc files
Forgot to do that in 09116bf10d515d50bdd1e9a20278be816cb762aa:
"egl/eglglessink: remove since EGLImage and iOS support have been added in glimagesink"
2014-04-28 15:59:06 +01:00
Julien Isorce 1be75c2b3d gl: append GL_LIB and GL_CFLAGS in pc files 2014-04-28 15:59:06 +01:00
Julien Isorce 88f92fd749 gl: append EGL_LIB to GL_LIB 2014-04-28 15:59:06 +01:00
Julien Isorce 1525fa8bad gl: use gst_gl_platform_from_string because we support gl shareList on all platforms 2014-04-28 15:59:06 +01:00
Julien Isorce 6a18a1346b glfilter: only warn when other_context attribute is set
Fix false positive
2014-04-28 15:59:06 +01:00
Julien Isorce 9cb3f93b4a gl: fix string literal warning
warning: format not a string literal, argument types not checked [-Wformat-nonliteral]
2014-04-28 15:59:06 +01:00
Sebastian Dröge dede842409 uridownloader: Unset referer if none was specified later on 2014-04-28 10:12:52 +02:00
Sebastian Dröge b47c92df82 hlsdemux: Set Referer in requests to the playlist URI 2014-04-28 10:04:28 +02:00
Sebastian Dröge fbbe73a62e uridownloader: Add API to specify the referer of a request 2014-04-28 10:04:25 +02:00
Gwenole Beauchesne a66f2dca60 codecparsers: h264: fix parsing of slice groups for map type = 2.
When parsing slice groups information for slice_group_map_type = 2, we
should only be reading up to num_slice_groups_minus1 groups since there
is always a "leftover" slice group and as many "foreground" slice groups
as needed.

This fixes parsing for SVCBMT-5 and SVCBMT-12 whereby the base layer would
have incorrectly been parsed to have up to 38 reference frames in list0,
which is not possible.

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2014-04-27 23:41:19 +02:00
Nicolas Dufresne 4e9036690c decklink: Don't fail if HW does not have all interfaces
This patch completes 1c1cc73a3b. These
changes where accidentally pushed as a separate patch with wrong commit
message.

https://bugzilla.gnome.org/show_bug.cgi?id=7273
2014-04-27 09:34:39 -04:00
Tim-Philipp Müller d5a0ace347 Revert "y4mdec: check for VIDEO meta instead of CROP meta"
This reverts commit 68309bd215.

Commit message and files changed do not match.
2014-04-27 13:11:03 +01:00
Tim-Philipp Müller dbe6fdd6bf docs: remove outdated and pointless 'Last reviewed' lines from docs
They are very confusing for people, and more often than not
also just not very accurate. Seeing 'last reviewed: 2005' in
your docs is not very confidence-inspiring. Let's just remove
those comments.
2014-04-27 00:36:32 +01:00
Gwenole Beauchesne 1b9e8a25a0 codecparsers: h264: fix derivation of default scaling lists.
When useDefaultScalingMatrixFlag is computed to be 1 while parsing
scaling_list(), then the scaling list shall be inferred to be equal
to the default list (7.4.2.1.1.1). That default list is really one
of Default_4x4_{Intra,Inter} or Default_8x8_{Intra,Inter} and not
one from fall-back rule sets A or B.

This fixes parsing for FRExt1_Panasonic_D, FRExt2_Panasonic_C,
FRExt3_Panasonic_E and FRExt4_Panasonic_B.

https://bugzilla.gnome.org/show_bug.cgi?id=724518

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2014-04-26 22:24:45 +02:00