George Kiagiadakis
de15c21413
waylandsink: fix crash in case there is no pool because of a caps negotiation error
2014-06-17 13:51:25 +02:00
George Kiagiadakis
162dbd412c
waylandsink: set an empty input region on the video surface
2014-06-17 13:51:25 +02:00
George Kiagiadakis
94d02288d0
waylandsink/wlwindow: reuse code between the two constructors
2014-06-17 13:51:25 +02:00
George Kiagiadakis
a98f589aef
waylandsink: increase debug messages
2014-06-17 13:51:25 +02:00
George Kiagiadakis
5bb889a3df
waylandsink: Use a boolean in combination with render_cond to comply with GCond's usage documentation
2014-06-17 13:51:25 +02:00
George Kiagiadakis
66f8c1389b
waylandsink: Implement expose() and handle resizing properly in non-PLAYING states
2014-06-17 13:51:25 +02:00
George Kiagiadakis
086ac4ee81
waylandsink: Use wl_scaler/wl_viewport to scale the surface in the compositor/hardware
2014-06-17 13:51:25 +02:00
George Kiagiadakis
1cbfba5034
waylandsink: Build bindings for the unstable wl_scaler spec
2014-06-17 13:51:24 +02:00
George Kiagiadakis
12444ec84e
waylandsink: Set external surfaces and their child objects to use our own event queue
...
This fixes weird freezes because of frame_redraw_callback() not being
called from the main thread when it should with weston's toy toolkit.
It's also safer to know that frame_redraw_callback() will always be
called from our display thread... Otherwise it could be called after
the sink has been destroyed for example.
2014-06-17 13:51:24 +02:00
George Kiagiadakis
fabc5305be
waylandsink: Wait for the frame_cb to redraw and drop frames meanwhile
...
We are not supposed to redraw until we receive a frame callback and this
is especially useful to avoid allocating too many buffers while the
window is not visible, because the compositor may not call wl_buffer.release
until the window becomes visible (ok, this is a wayland bug, but...).
2014-06-17 13:51:24 +02:00
George Kiagiadakis
51a2c694ad
waylandsink: Handle wl_buffer::release and don't reuse buffers that are not released
...
This is achieved by adding an extra reference on the buffers, which does
not allow them to return to the pool. When they are released, this reference
is dropped.
The rest complexity of this patch (hash table, mutex, flag, explicit release calls)
merely exists to allow a safe, guaranteed and deadlock-free destruction sequence.
See the added comment on gstwaylandsink.c for details.
2014-06-17 13:51:24 +02:00
George Kiagiadakis
4b2d76873d
waylandsink/waylandpool: remove useless munmap call
...
This data pointer is part of a bigger mmap'ed region,
it has not been returned from mmap itself.
2014-06-17 13:51:24 +02:00
George Kiagiadakis
bf2232c999
waylandsink/waylandpool: call the start/stop methods of the parent class
...
start() makes sure that the minimum ammount of buffers requested is allocated.
stop() makes sure that buffers are actually destroyed and prevents
filling the file system when resizing the surface a lot, because the
wayland-shm-* files will stay on the file system as long as the wl_buffers
created out of them are alive.
2014-06-17 13:51:24 +02:00
George Kiagiadakis
bf19d792d0
waylandsink/waylandpool: unlink mmaped shm files so that they don't remain on the file system
2014-06-17 13:51:24 +02:00
George Kiagiadakis
e56f305274
waylandsink: implement the GstVideoOverlay & GstWaylandVideo interfaces
...
This is the initial implementation, without the GstVideoOverlay.expose()
method. It only implements using an external (sub)surface and resizing
it with GstWaylandVideo.
2014-06-17 13:51:24 +02:00
George Kiagiadakis
68133361ec
waylandsink: implement with stubs the GstWaylandVideo & GstVideoOverlay interfaces
2014-06-17 13:51:23 +02:00
George Kiagiadakis
26ce7f2344
waylandsink: handle the list of supported formats properly
...
enum wl_shm_format is not a flags enum, as it may have been in the past,
so multiple formats cannot be stored in a bitfield. Use an array instead.
2014-06-17 13:51:23 +02:00
George Kiagiadakis
873671f2b6
waylandsink/wlvideoformat: add mappings for many common formats
2014-06-17 13:51:23 +02:00
George Kiagiadakis
f800e2b4fa
waylandsink: unref the buffer pool
2014-06-17 13:51:23 +02:00
George Kiagiadakis
a67b08cdd0
waylandsink/waylandpool: ref the display instead of the sink to avoid cyclic references
...
The reference to the sink is not really needed anyway in waylandpool,
what matters basically is that the display is active as long as the
pool is active, so we really want to reference the display object
instead of the sink.
2014-06-17 13:51:23 +02:00
George Kiagiadakis
253eafd4ef
waylandsink: make the display property useful
...
Let the display property control the name of the display,
like in x(v)imagesink.
2014-06-17 13:51:23 +02:00
George Kiagiadakis
e7650117af
waylandsink: access sink->pool in a more atomic fashion
2014-06-17 13:51:22 +02:00
George Kiagiadakis
58a4d247b3
waylandsink: remove the useless wayland_lock
2014-06-17 13:51:22 +02:00
George Kiagiadakis
350d919719
waylandsink: apply the same debug category to all the subobjects
2014-06-17 13:51:22 +02:00
George Kiagiadakis
ac9503ed65
waylandsink: cleanup header includes
2014-06-17 13:51:22 +02:00
George Kiagiadakis
ae6aebd9d5
waylandsink: split window-related code out to a new GstWlWindow class
...
GstWlWindow also has API ready to support subsurfaces.
2014-06-17 13:51:22 +02:00
George Kiagiadakis
05f0842572
waylandsink: remove callback and redraw_pending variables from the window structure
2014-06-17 13:51:22 +02:00
George Kiagiadakis
a7eb053708
waylandsink/waylandpool: improve debug message
2014-06-17 13:51:22 +02:00
George Kiagiadakis
0bec75a30f
waylandsink/waylandpool: find the video format from the GstVideoInfo instead of accessing the sink
...
For the sake of isolation only. The format should be the same.
2014-06-17 13:51:21 +02:00
George Kiagiadakis
d1480124a7
waylandsink/waylandpool: refactor code
...
* make use of GstBufferPool::start/stop functions to allocate/deallocate memory
* get rid of struct shm_pool and do all operations cleanly inside WaylandBufferPool
* store a GstVideoInfo during configuration instead of the width & height
and use the stride from the video info instead of hardcoding its value
2014-06-17 13:51:21 +02:00
George Kiagiadakis
f6e72c8725
waylandsink: split video format related functions out to a separate file
2014-06-17 13:51:21 +02:00
George Kiagiadakis
0ee558f4c6
waylandsink/waylandpool: move code around for better readability
2014-06-17 13:51:21 +02:00
George Kiagiadakis
1e45b1480c
waylandsink: move struct shm_pool and its related functions to waylandpool.c
...
And also make the instance of this struct to be owned by the buffer
pool instead of the element, for the sake of isolation
2014-06-17 13:51:21 +02:00
George Kiagiadakis
549bdb4a09
waylandsink: Use XDG_RUNTIME_DIR instead of /tmp for the shm file
2014-06-17 13:51:21 +02:00
George Kiagiadakis
4208ae6203
waylandsink: remove unused variables
2014-06-17 13:51:21 +02:00
George Kiagiadakis
e600a323b7
waylandsink: process display events in a separate thread
...
This also moves the display-related code into a new GstWlDisplay class,
which takes care of the new thread
2014-06-17 13:51:20 +02:00
George Kiagiadakis
eb8ab3732e
waylandsink: tidy up the header files
2014-06-17 13:51:20 +02:00
Matthew Waters
e00815a586
glvideomixer: silence incorrect number of arguments in format warning
2014-06-15 15:18:46 +10:00
Matthew Waters
d01d259024
glvideomixer: wire up the alpha pad property
2014-06-15 13:59:07 +10:00
Matthew Waters
b7f1015359
glvideomixer: support input frame scaling
2014-06-15 13:44:04 +10:00
Matthew Waters
5a6bef5c59
glvideomixer: add positioning of input streams
...
https://bugzilla.gnome.org/show_bug.cgi?id=729798
2014-06-15 12:28:45 +10:00
Matthew Waters
bb0fec7c80
glfilterapp: actually emit the client-draw signal
2014-06-12 23:17:05 +10:00
Tim-Philipp Müller
309395ed4d
hls: fix build with GLib 2.32
...
Provide internal copy of g_list_copy_deep() until we
bump the GLib requirement.
https://bugzilla.gnome.org/show_bug.cgi?id=731555
2014-06-12 10:17:10 +01:00
Matthew Waters
d7f8cc9a78
glfilterapp: remove the reshape/draw properties
...
The reshape property was never used.
Replace the draw property with a signal.
Based on patch by Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
https://bugzilla.gnome.org/show_bug.cgi?id=704507
2014-06-12 12:49:42 +10:00
Matthew Waters
2ed84ac40f
glimagesink: replace pointer properties with signals
...
Based on patch by Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
https://bugzilla.gnome.org/show_bug.cgi?id=704507
2014-06-12 12:18:23 +10:00
Damian Ziobro
be28578942
hlsdemux: Improve parsing quoted key URIs and apply it for I-frame-based stream URI
...
https://bugzilla.gnome.org/show_bug.cgi?id=730830
2014-06-06 13:13:56 +03:00
Sebastian Dröge
37ffe063f6
hlsdemux: Don't store the current key in the playlist
...
It's per fragment and applying to all following fragments
until the next key is specified.
2014-06-06 13:08:04 +03:00
Sebastian Dröge
008edeadae
hlsdemux: Fix compiler warnings
2014-06-06 13:04:04 +03:00
Thomas Bluemel
babd8969f2
hlsdemux: Reload the variant playlist if refreshing a playlist or downloading a fragment fails
...
This can happen if the playlists have moved due to the variant playlist
now being redirected to another target. This currently only works as long
as the referenced playlists don't change in relation to the variant
playlist, and the new location is purely due to a new path triggered by a
new redirection target of the variant playlist, or a new redirection
target of the playlist itself.
https://bugzilla.gnome.org/show_bug.cgi?id=731164
2014-06-06 13:02:47 +03:00
Olivier Crête
e259557c5a
schroenc: Use an arbitrary framerate if none if given
...
The schro encoder always requires a framerate, but some source material,
such as RTP doesn't have a fixed one, so just fake it.
https://bugzilla.gnome.org/show_bug.cgi?id=729054
2014-06-05 16:46:22 -04:00
Edward Hervey
5300e59f09
rtmp: proxy logging from librtmp
...
Helps with debugging various librtmp issues
2014-06-05 09:41:31 +02:00
Edward Hervey
3cb5bc8868
rtmpsrc: Fix position querying
...
It's the position we're querying, not the duration :)
2014-06-05 09:41:31 +02:00
Aleix Conchillo Flaqué
da30669589
srtp: add support for rollover counters and replay protection window size
...
We add a new signal, get-rollover-counter, to the SRTP encoder. Given a
ssrc the signal will return the currently internal SRTP rollover counter
for the given stream.
For the SRTP decoder we have a new SRTP caps parameter "roc" that needs
to be set when a new SRTP stream is created for a given SSRC.
https://bugzilla.gnome.org/show_bug.cgi?id=726861
2014-06-03 16:18:25 -04:00
Matthieu Bouron
dac4816823
glimagesink: improve state change debug message
2014-06-03 14:08:34 +10:00
Tim-Philipp Müller
0eed275a51
mpeg2enc: increase max. allowed value for bitrate property
...
For DVD the limit is around 10Mbit/s, but for e.g. ATSC
it could be much higher.
2014-06-01 10:47:17 +01:00
Nicola Murino
845d33098a
motioncells: improve logging
...
https://bugzilla.gnome.org/show_bug.cgi?id=730141
2014-05-30 16:58:59 -03:00
Nicola Murino
f48358636b
motioncells: make framedrop work at 30 fps too
...
https://bugzilla.gnome.org/show_bug.cgi?id=730141
2014-05-30 16:58:59 -03:00
Nicola Murino
b5cefffb9f
motioncells: use standard macro for boolean
...
https://bugzilla.gnome.org/show_bug.cgi?id=730141
2014-05-30 16:58:59 -03:00
Matthew Waters
5eb4934750
glimagesink: unref the old buffer outside the lock
...
it could very well deadlock
https://bugzilla.gnome.org/show_bug.cgi?id=723529
2014-05-30 11:46:00 +10:00
Matthew Waters
1cb7e22b98
Revert "[880/906] glimagesink: remove unused stored_buffer field"
...
This reverts commit af3a68db7d
.
Conflicts:
ext/gl/gstglimagesink.c
https://bugzilla.gnome.org/show_bug.cgi?id=723529
2014-05-30 11:35:04 +10:00
Matthew Waters
da35876537
glfeature: remove GST_GL_API_GLES3
...
instead check the gl version using gst_gl_context_check_gl_version()
2014-05-30 10:29:37 +10:00
Sebastian Dröge
546feaef5c
mssdemux: Always use the redirect target to resolve relative URIs
...
But redownload the playlists from the original URI if it's not
a permanent redirect.
2014-05-28 12:56:24 +02:00
Sebastian Dröge
ae679506b1
dashdemux: Always use the redirect target to resolve relative URIs
...
But redownload the playlists from the original URI if it's not
a permanent redirect.
2014-05-28 12:47:51 +02:00
Sebastian Dröge
9cb3d745db
hlsdemux: Don't set base URI if there was no redirect
2014-05-28 12:47:22 +02:00
Damian Ziobro
5ca7684b7d
hlsdemux: Make parsing of "-quoted key URIs more resilient
...
https://bugzilla.gnome.org/show_bug.cgi?id=730830
2014-05-28 10:58:21 +02:00
Sebastian Dröge
2f39a3d711
hlsdemux: Always use the redirect target to resolve relative URIs
...
But redownload the playlists from the original URI if it's not
a permanent redirect.
2014-05-28 10:19:40 +02:00
Matthew Waters
6ce3b82efe
gl/upload: add GstGLUploadMeta object
...
That simply deals with the provider aspect of GstVideoGLTextureUploadMeta.
2014-05-28 14:41:35 +10:00
Julien Isorce
6c92286c6e
glimagesink: make it actually honor show-preroll-frame property
...
https://bugzilla.gnome.org/show_bug.cgi?id=730802
2014-05-27 11:28:27 +01:00
Miguel París Díaz
93ba600ba9
opusenc: Use aux vars to minimize critical region
...
This avoid dead lock between gst_audio_encoder_finish_frame() and
gst_opus_enc_get_property().
Also, now bytes var is set into protected section.
https://bugzilla.gnome.org/show_bug.cgi?id=729882
2014-05-26 09:23:42 +02:00
Damian Ziobro
5b547a553d
hlsdemux: Fix storing of the IV based on the media sequence number
...
https://bugzilla.gnome.org/show_bug.cgi?id=730574
2014-05-22 13:27:37 +02:00
L. Sorin
5edf0add57
curlsshsink: post error on bus in element, not transfer thread
...
Looks like this file was missed in Bug 728960:
https://bugzilla.gnome.org/show_bug.cgi?id=728960
https://bugzilla.gnome.org/show_bug.cgi?id=730459
2014-05-21 08:36:51 +02:00
Matthew Waters
37c08c58c5
gl/eglimage: add eglimage context feature
...
Allows us to selectively use EGLImages only when available
https://bugzilla.gnome.org/show_bug.cgi?id=728234
2014-05-20 23:37:52 +10:00
L. Sorin
9c1e66302d
curlsftpsink: authenticate remote host via public key fingerprint
...
Expose one more libcurl option: CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.
This allows authenticating the server by the MD5 fingerprint of
the server's public key.
https://bugzilla.gnome.org/show_bug.cgi?id=723167
2014-05-20 08:58:08 +02:00
Sebastian Dröge
8070b4e043
glimagesink: Check if context creation failed before trying to use it
...
Otherwise we will cause assertions everywhere by passing NULL to functions
and eventually crash when dereferencing a NULL pointer.
https://bugzilla.gnome.org/show_bug.cgi?id=730069
2014-05-19 12:25:51 +02:00
Sebastian Dröge
cbc37f389f
rsvgdec: Unref handle and output state on error paths
...
CID 1214604
2014-05-19 09:12:14 +02:00
Nicola Murino
bd34e62872
motioncells: fix memleak
...
Check gst_buffer_map return and remember to unmap and free memory before
returning
https://bugzilla.gnome.org/show_bug.cgi?id=730133
2014-05-14 20:15:05 -03:00
Matthew Waters
ce561913de
gl/download: update to be similar to the glupload semantics
2014-05-14 11:38:01 +10:00
Thiago Santos
a99175a31a
hlssink: do not leak playlist object
...
In finalize, also release the playlist
2014-05-13 16:29:46 -03:00
Thiago Santos
16d969b945
dashdemux: mpdparser: properly unref gstdatetime
...
Avoid leaking the GstDateTime instances when summing dates
CID #1212143
2014-05-13 11:22:58 -03:00
Thiago Santos
288e8d5c0e
dashdemux: mpdparser: avoid double free of segment timeline node
...
The parsing function already frees the old value (if any), avoid a double
free by not freeing it before calling the function without setting the
pointer to NULL
Coverity ID: 1212178
2014-05-13 10:45:29 -03:00
Thiago Santos
64bea0252b
dashdemux: mpdparser: avoid double free
...
The _parse_url function already frees the previous pointer, avoid
freeing it before without setting to null or we have a double free.
Coverity ID: 1212181
Coverity ID: 1212180
Coverity ID: 1212179
2014-05-13 10:13:37 -03:00
Edward Hervey
8299c5b5b4
schrodec: Use pool configuration
...
It was leaking the config, but also not using it...
CID #1212155
2014-05-13 14:21:15 +02:00
Edward Hervey
adecec882a
rsvg: Don't leak GstVideoCodecState
...
And avoid useless call to _get_output_state (set_output_state() already
returns it).
CID #1212160
CID #1212161
2014-05-13 14:15:24 +02:00
Edward Hervey
651a4ae2e7
dash: Don't leak GstActiveStream
...
CID #1212142
2014-05-13 13:52:48 +02:00
Thiago Santos
ce7319c62d
mssdemux: avoid deadlocking when erroring
...
It might get stuck when posting the message while
a reconfigure event is being pushed upstream
2014-05-12 18:28:45 -03:00
Thiago Santos
a1f87d0b4f
mssdemux: fix caps leak
2014-05-12 18:08:12 -03:00
Thiago Santos
6b8448c245
mssdemux: handle error messages from internal source
...
set up a bin message handler to get notified of error messages from
the internal source element
2014-05-12 18:08:12 -03:00
Thiago Santos
b627d7df83
mssdemux: Always accept the latency configure event
...
Upstream or internal elements are irrelevant and we should
always succeed.
2014-05-12 16:27:37 -03:00
Thiago Santos
b54367e211
mssdemux: reenable segment tracking for streams
...
Store the latest pushed timestamp so that mssdemux streams know
where they are in time
2014-05-12 16:27:37 -03:00
Thiago Santos
45d5859131
mssdemux: deprecate unused max-queue-size-buffers
...
There is no internal storage of buffers anymore
2014-05-12 16:27:37 -03:00
Thiago Santos
99a2e425de
mssdemux: measure bitrate similarly to hlsdemux
...
new bitrate = (old bitrate + (last fragment bitrate * 3)) / 4
2014-05-12 16:27:37 -03:00
Thiago Santos
90577c3ae7
mssdemux: remove uridownloader in favor of internal source
...
Refactor mssdemux to remove uridownloader to use an internal
source element which reduces startup latency and provides smaller
buffers for better buffering management downstream
2014-05-12 16:27:37 -03:00
Thiago Santos
4c59f7df4c
dashdemux: initialize the mutex and cond for fragment download
2014-05-12 16:27:37 -03:00
Thiago Santos
21b1d37023
dashdemux: remove unused stream uridownloader
...
The uridownloader for the stream fragments isn't used anymore.
2014-05-11 15:26:45 -03:00
Sebastian Dröge
d578cbf7d7
assrender: Do not try to add a feature to a caps features ANY
...
It does not makes sense and asserts
Based on 7f9aac386f
from gst-plugins-base.
2014-05-11 07:56:50 +02:00
Tim-Philipp Müller
ab783acd7f
rtmpsrc: error out if we get EOS immediately without any data
...
It's not really right to just go EOS as if nothing was wrong.
2014-05-10 12:57:29 +01:00
Sebastian Dröge
951bb53057
hls: Remove invalid free
...
data does not have to be freed at all here, it's a pointer to
an arbitrary position inside the current line. Also don't reuse
the data variable for anything else, that will cause crashes
in playlists that have the I-frame playlist URI followed by
other attributes.
CID 1212127
2014-05-09 15:30:00 +02:00
Julien Isorce
9a917fb8a9
gleffects: use gl_vtable
2014-05-08 16:08:08 +01: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
a27589629d
gl: advertise GstGLMemory usage in the caps as capsfeatures
...
https://bugzilla.gnome.org/show_bug.cgi?id=729658
2014-05-07 21:48:57 +10:00