Matthew Waters
ccc17ebe10
glimagesink: don't push a reconfigure event from the GL thread
...
Doing so may cause deadlocks when other elements attempt destroy or created
GL resources.
https://bugzilla.gnome.org/show_bug.cgi?id=760559
2016-02-17 10:34:14 +11:00
Wang Xin-yu (王昕宇)
5b1872e387
glvideomixer: don't leak pad's vertex buffer on release_pad
...
https://bugzilla.gnome.org/show_bug.cgi?id=760873
2016-02-17 10:30:45 +11:00
Matthew Waters
ac690978f2
glmixer: Remove usage of GstGLMixerFrameData
...
Subclasses can just iterate over the list of pads themselves
https://bugzilla.gnome.org/show_bug.cgi?id=760873
2016-02-17 10:30:45 +11:00
Matthew Waters
0d94c9ae7f
glmixer: don't hold the object lock while calling into GL
...
Doing so can deadlock between the GL thread and the object lock e.g.
when performing reconfigure events in glimagesink on a resize event.
https://bugzilla.gnome.org/show_bug.cgi?id=760559
2016-02-17 10:30:45 +11:00
Matthew Waters
1cca847b2a
vkdevice: add the necessary but arbitrary queue priority
...
Silences an error in the validation layers.
2016-02-17 01:13:43 +11:00
Matthew Waters
49430569da
vkswapper: add the necessary call to check if the physical device supports the surface
...
Silences an error in the validation layers.
2016-02-17 01:13:43 +11:00
Matthew Waters
4ca3fdb955
vulkan: update to SDK 1.0.3.1
2016-02-17 01:13:43 +11:00
Matthew Waters
a3aa0d11ec
vkswapper: iterate over the device queue's using the new iteration API
2016-02-17 01:13:43 +11:00
Matthew Waters
ca8f2b0826
vkdevice: add callback iteration over the device queue's
2016-02-17 01:13:43 +11:00
Matthew Waters
eb4419b49b
vkqueue: add context helpers
2016-02-17 01:13:43 +11:00
Matthew Waters
5617b0904b
vkutils: move object-specific context queries to their respective files
...
vkutils now just contains some utility functions to further simplify retrieving
multiple objects.
2016-02-17 01:13:43 +11:00
Matthew Waters
d1d8a365a2
vkdevice: remove unneeded error parameter from get_queue()
2016-02-17 01:13:43 +11:00
Matthew Waters
53f99ac804
vkupload: implement an uploader abstraction
2016-02-17 01:13:43 +11:00
Matthew Waters
57bd62f85f
vkdisplay: unref the instance
...
fixes memory leak
2016-02-17 01:13:43 +11:00
Matthew Waters
7118f1f7e2
vulkan: chain up in finalize
...
They were missing in some cases
2016-02-17 01:13:43 +11:00
Matthew Waters
22172df413
vksink: only unref if the pointers are non-NULL
2016-02-17 01:13:43 +11:00
Matthew Waters
b5dce08d8f
vkimagememory: free the managing struct on _free
...
fixes a memory leak
2016-02-17 01:13:43 +11:00
Matthew Waters
68b1e18123
vkdevice: perform a waitIdle before destroying the device
2016-02-17 01:13:43 +11:00
Matthew Waters
1c2aae08c5
Revert "vulkan: remove views from the memory objects."
...
This reverts commit 1ea817298ee4d5ef9b00f888f8ebe16a888b1150.
2016-02-17 01:13:43 +11:00
Matthew Waters
3c2710dc0f
vulkanmemory: remove bind variants
2016-02-17 01:13:43 +11:00
Matthew Waters
4c0a169af9
vulkan: remove views from the memory objects.
...
They are not used and it's not possible to create the view before binding the
VkDeviceMemory object to them.
2016-02-17 01:13:43 +11:00
Matthew Waters
0309c9fbc7
vkswapper: alpha flags are now supported by LunarG's driver
2016-02-17 01:13:43 +11:00
Matthew Waters
0dd1154b73
vulkan: add a vulkanbuffer bufferpool
2016-02-17 01:13:43 +11:00
Matthew Waters
86e18d6b8f
vulkan: add upload element
2016-02-17 01:13:43 +11:00
Matthew Waters
980213ee97
vkutils: fix assert inversion
2016-02-17 01:13:43 +11:00
Matthew Waters
43afa15fac
vulkan: add caps feature names for the buffer and image memories
2016-02-17 01:13:43 +11:00
Matthew Waters
7871910bc6
vulkan: add device to handle_context_query
2016-02-17 01:13:43 +11:00
Matthew Waters
bfab93dabe
vulkan: move instance_open into the utility ensure_element_data
...
So callers don't have to perform it themselves.
2016-02-17 01:13:43 +11:00
Matthew Waters
0bcb3cdd29
vkinstance: add signal for overriding device creation
2016-02-17 01:13:43 +11:00
Matthew Waters
300f4e03b2
vulkan: separate allocation and binding of memory
2016-02-17 01:13:43 +11:00
Matthew Waters
914c1a5193
vkbuffermemory: follow the rest of the struct macros
2016-02-17 01:13:43 +11:00
Matthew Waters
16510e2cbc
vkswapper: use buffer memory to upload video frames to the GPU
2016-02-17 01:13:43 +11:00
Matthew Waters
bd41cc4557
vulkan: add a buffer memory allocator
...
Wraps the VkBuffer in a GstMemory subclass.
2016-02-17 01:13:43 +11:00
Matthew Waters
eb3f6eebce
vkmemory: align struct members in the header
2016-02-17 01:13:43 +11:00
Matthew Waters
a2ad5d9eac
vkmacros: use specific _INIT macros to initialize structures
2016-02-17 01:13:43 +11:00
Matthew Waters
6731fad9af
vkimagememory: add get_{width,height) functions
2016-02-17 01:13:43 +11:00
Matthew Waters
08fd5c2ae5
vulkan: update to release 1.0.1.1
2016-02-17 01:13:43 +11:00
Matthew Waters
700eb16af8
vulkan/xcb: flush after mapping the window
...
Otherwise the map may not reach the server and not appear.
2016-02-17 01:13:43 +11:00
Matthew Waters
28ad97059d
vkswapper: fix semaphore usage
2016-02-17 01:13:43 +11:00
Matthew Waters
0ee8fe193e
vulkan: add some debugging about the supported extensions
2016-02-17 01:13:43 +11:00
Matthew Waters
72e956fe5e
vkswapper: get the function pointers from the correct object
...
GetPhysicalDevice* functions are instance functions rather than device
functions.
2016-02-17 01:13:43 +11:00
Matthew Waters
d067ed8a9e
vkinstance: add the necessary winsys extension
2016-02-17 01:13:43 +11:00
Matthew Waters
3ed50f36ed
vkdisplay: forward declare GstVulkanDisplayType
2016-02-17 01:13:43 +11:00
Matthew Waters
f0fb45dd76
vkapi: remove unneeded headers
...
vkapi is for accessing the vulkan headers with the correct defines applied so
doesn't need any interal headers.
2016-02-17 01:13:43 +11:00
Matthew Waters
873e0d6340
vkimagememory: fix the memory barrier access masks
...
silences the following warnings from the validation layer
AccessMask xxx must have required access bit xxx and may have optional bits 0
when layout is VK_IMAGE_LAYOUT_TRANSFER_{SRC,DST}_OPTIMAL
2016-02-17 01:13:43 +11:00
Matthew Waters
9a0f415e79
vkswapper: only wait on the semaphore once
...
It's invalid usage and we may deadlock
2016-02-17 01:13:43 +11:00
Matthew Waters
2f11fc029d
vkimagememory: initialize flags and don't crash on errors
2016-02-17 01:13:43 +11:00
Matthew Waters
b38362e75f
vulkan: update error db for 0.10.2
2016-02-17 01:13:43 +11:00
Matthew Waters
6fe59754df
vulkan: update to SDK 0.10.2
2016-02-17 01:13:43 +11:00
Matthew Waters
996200ffc0
vulkan: implement GstContext helpers
...
Based off libgstgl's implementation
2016-02-17 01:13:43 +11:00
Matthew Waters
75aaf184bb
vkdevice: remove gst_vulkan_device_close()
...
When sharing the device between multiple elements/application, we need
to use th erefcount to know when to close the device.
2016-02-17 01:13:43 +11:00
Matthew Waters
5dd530daec
vkinstance: remove gst_vulkan_instance_close
...
Sharing the instance across multiple elements/application will require
using the refcount instead to know when to close and destroy the instance.
2016-02-17 01:13:43 +11:00
Matthew Waters
203c6fa55c
vkswapper: remove outdated comment
2016-02-17 01:13:43 +11:00
Matthew Waters
8819319ad1
vkswapper: always match lock/unlock of the render lock
...
If a draw event comes from the winsys before we've rendered a buffer we were
deadlocking.
2016-02-17 01:13:43 +11:00
Matthew Waters
a4e82bcef7
vkmemory: debug output the memory properties requested
2016-02-17 01:13:43 +11:00
Matthew Waters
87a35f679d
vkimagememory: don't leak GstMapInfo in failure cases on _map()
2016-02-17 01:13:43 +11:00
Matthew Waters
074cb047ef
vulkan: de-C99 struct declarations
2016-02-17 01:13:43 +11:00
Matthew Waters
a4476fa24b
vkwindow/swapper: implement redraw handling
...
only xcb has been implemented
2016-02-17 01:13:43 +11:00
Matthew Waters
216a321319
vulkan: implement quitting and resizing the window
...
As before, only xcb has been implemented.
2016-02-17 01:13:43 +11:00
Matthew Waters
5de6dd9f40
new vulkan based video sink
...
Currently xcb is the only winsys that is implemented and there's no redraws et
al
2016-02-17 01:13:43 +11:00
Tim-Philipp Müller
08d8aefcda
mpg123: move plugin from -bad to -ugly
...
https://bugzilla.gnome.org/show_bug.cgi?id=719849
2016-02-16 11:00:55 +00:00
Matthew Waters
057aca2cda
gtk(gl)sink: remove the signal handlers on finalize
...
It's possible that the sink element will be freed before the widget is
destroyed. When the widget was eventually destroyed, it was attempting to
access member variables of the freed sink struct which resulted in undefined
behaviour.
Fix by disconnecting our signal on finalize.
https://bugzilla.gnome.org/show_bug.cgi?id=762098
2016-02-16 20:09:08 +11:00
Alessandro Decina
effe132310
glvideoflip: don't ignore method changes when caps aren't set (yet)
2016-02-16 13:06:20 +11:00
Florin Apostol
88e21e6089
dashdemux: gst_dash_demux_get_live_seek_range returns positive values
...
https://bugzilla.gnome.org/show_bug.cgi?id=752374
2016-02-10 14:34:48 -03:00
Julien MOUTTE
2b457a46a0
rtpmsink: Implement setcaps that uses streamheader
...
This allow adding rtmpsink after the flv streaming have started. Otherwise,
FLV streamheader is never sent to the server, which cannot figure-out
what is this stream about. It should also help in certain renegotiation
figures. The sink will no longer work without an streamheader in caps,
though there is no known implementation of flvdemux that does not
support this.
https://bugzilla.gnome.org/show_bug.cgi?id=760242
2016-02-09 19:35:22 -05:00
Luis de Bethencourt
8d445ee758
mssdemux: remove unnecessary check
...
stream->current_fragment has the value of g_list_previous (iter) which has
just been checked. No need to check it again.
Just to be safe, use a g_assert() to check fragment before dereferencing.
CID #1352041
2016-02-09 21:41:33 +00:00
Thiago Santos
632111ae14
dashdemux: plug mpd client leak
...
On parsing error, free the mpd client object
https://bugzilla.gnome.org/show_bug.cgi?id=760120
2016-02-09 17:30:14 -03:00
Florin Apostol
3191051828
dashdemux: fix memory leak in gst_dash_demux_update_manifest_data
...
new_client local variable was not freed in case of errors.
Also, the buffer is not unmapped.
https://bugzilla.gnome.org/show_bug.cgi?id=760120
2016-02-09 17:05:13 -03:00
Florin Apostol
9ccd541980
mpdparser: renamed gst_mpd_client_get_next_segment_availability_end_time to gst_mpd_client_get_next_segment_availability_start_time
...
The function actually returns the segment availability start time (as defined by the standard).
That is at the end of the segment, but it is called availability start time.
Availability end time is something else (the time when the segment is no longer
available on the server). The function name was misleading.
https://bugzilla.gnome.org/show_bug.cgi?id=757655
2016-02-09 16:49:37 -03:00
Florin Apostol
b96ea72b4f
mpdparser: corrected getting segment availability
...
https://bugzilla.gnome.org/show_bug.cgi?id=757655
2016-02-09 16:35:44 -03:00
Matthew Waters
cd4a93da3b
glsyncmeta: separate out gpu/cpu waits.
...
CPU waits are more expensive and are only required if the CPU is ever going to
access the data. GPU waits perform inter-context synchronisation and are cheaper
as they don't require CPU intervention.
2016-02-09 12:30:25 +11:00
Luis de Bethencourt
ae96e6bd51
resindvd: remove commented out include
...
Commit 211828979b
removed rsnaudiomunge,
no need for this commented out include for a file that doesn't exist
anymore.
2016-02-08 15:00:45 +00:00
Luis de Bethencourt
e4467618f4
Revert "resindvd: get rid of _stdint.h include"
...
This reverts commit 0eff6e1991
.
Breaks the build when linking with dvdnav.h
2016-02-08 14:26:46 +00:00
Luis de Bethencourt
bca503a2c4
x265enc: get rid of _stdint.h include
...
It was never needed since it doesn't use any standard integer fixed width
types. Only the Glib types.
2016-02-08 13:43:24 +00:00
Luis de Bethencourt
0eff6e1991
resindvd: get rid of _stdint.h include
2016-02-08 13:38:29 +00:00
Matthew Waters
4d8a8b3925
gleffects: identity: add the shader to the hash table
...
So that we don't recreate it every frame and leak memory.
https://bugzilla.gnome.org/show_bug.cgi?id=761578
2016-02-08 12:24:32 +11:00
Thiago Santos
ac2734f5cb
mssdemux: implement snap seeking
...
Implement snap seek flags handling in stream_seek to allow the
parent class to handle it for us
https://bugzilla.gnome.org/show_bug.cgi?id=759158
2016-02-04 14:20:16 -03:00
Thiago Santos
c01d266238
mssdemux: use correct seek position on reverse seeks
...
Otherwise it was always using the 'start' value, leading to wrong
behavior
2016-02-04 14:20:16 -03:00
Thiago Santos
1b12d7f8a3
mssdemux: only update download position if the seek requests to
...
Some seeks are only updating the stop position, there is no need
to change the current downloading position.
2016-02-04 14:20:16 -03:00
Thiago Santos
86fb14f5ed
mssdemux: do not assert on fragment reloads for non-live
...
It can be used as a resource to verify if the server has updated
something in the Manifest when downloads are failing
2016-02-04 14:20:16 -03:00
Thiago Santos
40faf9e09b
dashdemux: implement snap seek handling
...
Handle snap seeking at the stream_seek method and let superclass
do the rest to support snap seeking
https://bugzilla.gnome.org/show_bug.cgi?id=759158
2016-02-04 14:09:35 -03:00
Thiago Santos
731ab94cc3
adaptivedemux: handle snap seeks
...
Adaptive demuxers need to start downloading from specific positions
(fragments) for every stream, this means that all streams can snap-seek
to a different position when requested. Snap seeking in this case will
be done in 2 steps:
1) do the snap seeking on the pad that received the seek event and
get the final position
2) use this position to do a regular seek on the other streams to
make sure they all start from the same position
More arguments were added to the stream_seek function, allowing better control
of how seeking is done. Knowing the flags and the playback direction allows
subclasses to handle snap-seeking.
And also adds a new return parameter to inform of the final
selected seeking position that is used to align the other streams.
https://bugzilla.gnome.org/show_bug.cgi?id=759158
2016-02-04 14:05:08 -03:00
Vincent Penquerc'h
730d92ea8d
opus: fix FEC
...
FEC may only be used when PLC is enabled on the audio decoder,
as it relies on empty buffers to generate audio from the next
buffer. Hooking to the gap events doesn't work as the audio
decoder does not like more buffers output than it sends.
The length of data to generate using FEC from the next packet
is determined by rounding the gap duration to nearest. This
ensures that duration imprecision does not cause quantization
to 2.5 milliseconds less than available. Doing so causes the
Opus API to fail decoding. Such duration imprecision is common
in live cases.
The buffer to consider when determining the length of audio
to be decoded is the previous buffer when using FEC, and the
new buffer otherwise. In the FEC case, this means we determine
the amount of audio from the previous buffer, whether it was
missing or not (and get the data either from this buffer, or
the current one if the previous one was missing).
2016-02-03 16:36:10 +00:00
Matthew Waters
81692a99f3
gltransformation: reconfigure the src when changing to/from passthrough
...
Otherwise it's very possible that any GL resources have not been created yet.
2016-02-03 17:16:39 +11:00
Matthew Waters
189ece1dc2
glvideoflip: correctly update the output caps on method changes
...
When changing methods we may need different output caps.
2016-02-03 12:22:08 +11:00
Vincent Penquerc'h
36125a844d
opusdec: fix wrong buffer being checked for missing data
...
This caused a decoding error if the resulting (wrong) buffer size
was passed to the Opus decoding API.
https://bugzilla.gnome.org/show_bug.cgi?id=758158
2016-02-02 15:22:55 +00:00
Thiago Santos
d4b4069041
dashdemux: only update current reading position when needed
...
If the seek doesn't set the start/stop position, no need to
reposition the download index.
2016-02-01 14:36:48 -03:00
Thiago Santos
fc72e48a48
dashdemux: respect seeking parameter
...
Instead of using the segment values, use the parameter
requested in the seeking argument
2016-02-01 14:36:48 -03:00
Alessandro Decina
bc2ffa26fa
gldownload: allow video/x-raw as input
...
...and just passthrough. This is useful for pipelines where downstream must be
non-GL but upstream can optionally be GL.
2016-02-01 15:13:03 +11:00
Wang Xin-yu (王昕宇)
7287564f20
glvideomixer: fix checker vbo leak
...
https://bugzilla.gnome.org/show_bug.cgi?id=760925
2016-02-01 13:55:05 +11:00
Tim-Philipp Müller
8d9ab6cfc2
Remove dead snapshot plugin
...
Was never ported and doesn't look like
we want it or need it in this form, can
do the same with the libgstvideo sample
conversion utility API now, but better
and in a more flexible way.
2016-02-01 01:01:10 +00:00
Tim-Philipp Müller
1d4f136ac9
rsvg: bump requirement to 2.36.2
...
Which allows us to simplify the configure check and
some special-casing in the code, and is plenty old
in any case.
2016-02-01 00:50:46 +00:00
Tim-Philipp Müller
cf0bec6385
Remove dead libfame plugin
...
Was never even ported to 0.10, and the lib
has been unmaintained for ever and doesn't
even seem to be packaged any more.
2016-02-01 00:32:50 +00:00
Tim-Philipp Müller
0b4a3a4dbd
Remove dead audiofile plugin
...
This was never even ported to 0.10.
2016-01-31 19:09:57 +00:00
Tim-Philipp Müller
914291808a
Remove gsettings plugin which was never ported
...
Don't think we need this any longer or want to
support it, and clearly no one has been missing
it all these years either, so let's just get rid
of it.
2016-01-31 19:07:46 +00:00
Tim-Philipp Müller
be03c0a7ed
smoothstreaming: remove unused dependency on uridownloader
2016-01-31 16:02:33 +00:00
Tim-Philipp Müller
861ca5ab7b
faad: simplify configure check and require faad >= 2.7
...
Just check whether LATM is defined which is only available
in 2.7 and later. Allows us to simplify the configure check
a little and we can get rid of some hackish workarounds for
problems with earlier version headers.
2016-01-31 14:42:21 +00:00
Haihua Hu
f3653a5e9c
gleffects: fix gleffects fisheye shader compile error
...
On some embedded systems, sqrt() is not supported in the shader,
use the actual value of sqrt(2) instead.
Signed-off-by: Haihua Hu <b55597@freescale.com>
Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=761271
2016-01-29 14:25:21 +11:00
Matthew Waters
5d304e6a14
glvideomixer: par may not exist in the caps
...
Fixes a critical in the gst-validate tests:
gst_structure_fixate_field_nearest_fraction: assertion 'gst_structure_has_field
(structure, field_name)
2016-01-29 14:03:26 +11:00
Matthew Waters
87031b14cb
videoaggregator: don't do caps processing that is not overridable
...
Allows the subclass to completely override the chosen src caps.
This is needed as videoaggregator generally has no idea exactly
what operation is being performed.
- Adds a fixate_caps vfunc for fixation
- Merges gst_video_aggregator_update_converters() into
gst_videoaggregator_update_src_caps() as we need some of its info
for proper caps handling.
- Pass the downstream caps to the update_caps vfunc
https://bugzilla.gnome.org/show_bug.cgi?id=756207
2016-01-27 20:36:25 +11:00