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
Thiago Santos
a5b3ba09b8
dashdemux: deprecate max-buffering-time property
...
It is not used as dashdemux doesn't have a internal buffer
for fragments anymore
2014-05-07 01:00:50 -03:00
Thiago Santos
e9638fe3fd
dashdemux: removing old unused code
...
The 'catch up mode' isn't needed anymore since dashdemux
is downloading and pushing from the same thread
2014-05-07 01:00:49 -03:00
Thiago Santos
5df2edf80c
dashdemux: remember to set starting fragment to new fragments
2014-05-07 01:00:49 -03:00
Thiago Santos
733c7c0f16
dashdemux: handle a few more error cases
...
related to missing plugins, bad URI and a lockup on dealing with
errors from the source.
2014-05-07 01:00:49 -03:00
Thiago Santos
173c353716
dashdemux: Only set timestamp to the first buffer of fragments
...
Setting it to the other parts of the fragment is slightly wrong
and misleading as it isn't accurate enough.
2014-05-07 01:00:49 -03:00
Thiago Santos
f09dd7e7a5
dashdemux: handle error messages from the sources
...
Set up a message handling function to be able to catch errors
from the source element and signal the cond to allow the download
loop to retry the download.
2014-05-07 01:00:49 -03:00
Thiago Santos
15952dcd8e
dashdemux: check for errors between downloads
...
To abort earlier in case of failures
2014-05-07 01:00:49 -03:00
Thiago Santos
b5998a4c3b
dashdemux: Always accept the latency configure event
...
Upstream or internal elements are irrelevant and we should
always succeed.
2014-05-07 01:00:49 -03:00
Thiago Santos
d6671e73a6
dashdemux: measure download rate just like hlsdemux
...
new bitrate = (old bitrate + (last fragment bitrate * 3)) / 4
2014-05-07 01:00:49 -03:00
Thiago Santos
bed3d66605
dashdemux: remove uridownloader from fragments download
...
Instead, use a source element linked to a ghostpad to provide
smaller buffers and more granular control for downstream
buffering elements while also reducing startup latency
2014-05-07 01:00:49 -03:00
Matthew Waters
6f4fd70867
gl/sink: make sure we always initialize the upload object
...
https://bugzilla.gnome.org/show_bug.cgi?id=729542
2014-05-07 09:12:23 +10:00
Thiago Santos
7dfd308e8c
hlsdemux: fix internal source event leaks
2014-05-06 19:24:55 -03:00
Olivier Crête
0566be384d
srtpdec: Don't reset stream if the key hasn't changed
2014-05-06 00:49:59 -04:00
Olivier Crête
b2a6490626
srtpdec: Add "remove-key" action signal to remove a single key
...
Removing all the keys can be a problem as it also resets the various
counters, so instead add an option to remove a single key.
2014-05-06 00:49:59 -04:00
Olivier Crête
53a4e05261
srtpenc: Use %u in templates to match rtpbin
2014-05-06 00:49:22 -04:00
Olivier Crête
8c9b1ade36
srtpdec: Remove unused field
2014-05-06 00:49:15 -04:00
Thiago Santos
b891bd04d5
hlsdemux: Only set the segment position if there is a timestamp
...
Only the first buffer of a fragment has its timestamp set, so only
update the segment.position when pushing those buffers to avoid
having GST_CLOCK_TIME_NONE set to the position
https://bugzilla.gnome.org/show_bug.cgi?id=729364
2014-05-05 11:35:35 -03:00
Sebastian Dröge
0ce2b0632e
hlsdemux: Set Cache-Control header according to the caching requirements of the playlist
2014-05-05 09:46:06 +02:00
Sebastian Dröge
3c2fe80ab6
mssdemux: Update for uri downloader API changes
2014-05-05 09:41:51 +02:00
Sebastian Dröge
bb8227e279
dashdemux: Update for uri downloader API changes
2014-05-05 09:41:51 +02:00
Sebastian Dröge
816000f726
hls: Store allowcache playlist field in a boolean
2014-05-05 09:41:51 +02:00
Olivier Crête
5d3ce2c611
srtpenc: Add config for the replay window size
2014-05-02 17:27:56 -04:00
Olivier Crête
b51344651e
srtpenc: Remove unused object members
2014-05-02 17:25:35 -04:00
Olivier Crête
820200e20e
srtpenc: Remove useless structure
...
Remove now useless structure
2014-05-02 17:19:51 -04:00
Olivier Crête
2906fae146
srtpenc: Remove ssrc parsing from stream
...
It's no longer used
2014-05-02 17:19:51 -04:00
Olivier Crête
98f8bf46df
srtpenc: Remove SSRC from signal, it's meaningless
2014-05-02 17:19:51 -04:00
Olivier Crête
5a38ae5a83
srtpenc: Set the SRTP key as a shared key for all SSRCs
...
This is already how it was used.
2014-05-02 17:19:51 -04:00
Sebastian Dröge
1aacd0a963
hlsdemux: Update for URI downloader API changes
...
And make sure to set refresh=TRUE when updating the playlist.
2014-05-02 10:44:41 +02:00
Sebastian Dröge
5d34b071d9
mssdemux: Update for URI downloader API changes
...
And include the manifest file as referer in requests, and make sure
to set refresh=TRUE when updating the manifest.
2014-05-02 10:43:06 +02:00
Sebastian Dröge
f910ffb637
dashdemux: Update for URI downloader API changes
...
And include the MPD file as referer in requests, and make sure
to set refresh=TRUE when updating the MPD.
2014-05-02 10:39:22 +02:00
Matthew Waters
dfc6745143
gl: use the bufferpool's upload when available
...
Avoids duplicating GL resources
https://bugzilla.gnome.org/show_bug.cgi?id=728872
2014-05-02 15:59:28 +10:00
Olivier Crête
775e998dab
srtpdec: Only clear streams if they have been created
2014-05-01 19:16:35 -04:00
Olivier Crête
494b8e110d
srtpdec: Use object debug
2014-05-01 19:10:43 -04:00
Sebastian Dröge
9c7da93b9d
hlsdemux: Always succeed the LATENCY event
...
Upstream and our internal source is irrelevant for the latency
and we don't want the LATENCY event to ever fail.
2014-05-01 16:18:37 +02:00
Sebastian Dröge
126891e9a5
hlsdemux: Reset the last flow return before restarting the internal source
...
Otherwise we will never recover from previous errors, and especially
will never start again after a flushing seek if downstream returned
GST_FLOW_FLUSHING to us.
2014-05-01 16:18:37 +02:00
Sebastian Dröge
0d5dcba778
hlsdemux: Only set PTS on the first buffer of a fragment instead of setting the same on all of them
2014-05-01 16:18:37 +02:00
Thiago Santos
aea14053d1
hlsdemux: Always flush the internal proxy pads before downloading
...
hlsdemux can't rely on the source to push flushes on a seek on ready
as that might not make sense. So always resort to flushing the
internal proxy pads by pushing flush events from the source's src pad.
Also as the seeking is not required anymore, only seek if there is
really a byte range to be used. And store a ref to the source's
src pad to avoid doing get_static_pad for every fragment.
2014-05-01 16:18:16 +02:00
Matthew Waters
5681f78362
glcolorscale: fix operation with dual GL, GLES2 libgstgl
2014-05-01 14:11:00 +10: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
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
Stefan Sauer
6bb08d1267
sndfile: send a toc for the segments in the audio file
2014-04-29 18:20:30 +02: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
Sebastian Dröge
b47c92df82
hlsdemux: Set Referer in requests to the playlist URI
2014-04-28 10:04:28 +02: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
Sebastian Rasmussen
241c3acad5
curl*sink: report errors from curl when setting options
...
https://bugzilla.gnome.org/show_bug.cgi?id=728960
2014-04-26 10:24:24 +02:00
Sebastian Rasmussen
c75c7a9a53
curl*sink: post error on bus in element, not transfer thread
...
https://bugzilla.gnome.org/show_bug.cgi?id=728960
2014-04-26 10:23:24 +02:00
Sebastian Rasmussen
13f87a1db1
curlhttpsink: allow for unconditionally disabling proxying
...
Previously if the proxy server hostname was the empty string
curlhttpsink would never even set the libcurl option. For libcurl
however, having a proxy server hostname be the empty string means that
proxying should be disabled even if environment variables might be set.
Now with the restriction lifted, doing this is allowed.
https://bugzilla.gnome.org/show_bug.cgi?id=728960
2014-04-26 10:21:56 +02:00
Sebastian Rasmussen
da987a3219
curl*sink: fix typos
...
https://bugzilla.gnome.org/show_bug.cgi?id=728960
2014-04-26 10:20:33 +02:00
Sebastian Rasmussen
bdd2676a67
curl*sink: fix some gst-indent problems
...
https://bugzilla.gnome.org/show_bug.cgi?id=728960
2014-04-26 10:20:11 +02:00
Julien Isorce
3db1e3e1ed
gl: fails glimagesink when shader compilation went wrong
...
Those shaders are fixed and very simple so it should not fail
but it's worth to handle a such case.
2014-04-24 16:57:01 +01:00
Julien Isorce
673b813ab3
gl: call glClearColor before glClear
2014-04-24 16:57:01 +01:00
Sebastian Dröge
e50f264411
glimagesink: Use the pixel-aspect-ratio adjusted width/height when centering the frame in the display area
...
Makes sure we actually keep the display aspect ratio
2014-04-23 11:10:28 +02:00
Sebastian Dröge
ebab5b0a43
glimagesink: By default keep the display aspect ratio
...
Also the default for the pixel-aspect-ratio should be 1/1, not 0/1.
2014-04-23 10:58:12 +02:00
Sebastian Dröge
0662248347
gltestsrc: Unref context when creation failed and guard against that in fill()
2014-04-23 10:27:23 +02:00
Sebastian Dröge
89d2bb75d6
glimagesink: Call gst_object_unref() on the GstGL GObjects again
...
While they're plain GObjects it does not hurt to call gst_object_unref()
on them and potentially allows to debug reference leaks a bit easier.
2014-04-23 10:24:55 +02:00
Sebastian Dröge
38ebfb2da8
glimagesink: If creating a context or upload failed, destroy it
...
Fixes deadlocks in error cases when later code assumes the broken
context is actually usable.
https://bugzilla.gnome.org/show_bug.cgi?id=728761
2014-04-23 10:00:48 +02:00
Vincent Penquerc'h
467d9267a2
gl: a couple spelling/grammar fixes
2014-04-21 13:23:46 +01:00
Vincent Penquerc'h
7a3e141204
gl: guard against using a NULL window pointer
...
Coverity 1195145
2014-04-21 13:23:46 +01:00
Julien Isorce
09116bf10d
egl/eglglessink: remove since EGLImage and iOS support have been added in glimagesink
...
https://bugzilla.gnome.org/show_bug.cgi?id=703343
2014-04-15 18:29:53 +01:00
Edward Hervey
6a2e39eefa
wayland: Remove dead assignment
...
We set it just after variable declaration
CID #1197709
2014-04-14 07:56:16 +02:00
Matthew Waters
364b01aca9
glimagesink: remove unused texture
2014-04-13 22:16:45 +10:00
Matthew Waters
d4a72b61c0
glimagesink: move upload into _prepare()
2014-04-13 22:14:52 +10:00
Sebastian Dröge
e9dbcb69cd
gl: Set glimagesink rank to SECONDARY
...
This is a full-featured video sink now and especially should be
used instead of osxvideosink on OSX if available.
2014-04-12 22:25:14 +02:00
Sebastian Dröge
0bd53c9ccb
glimagesink: First handle GL window setup, then create the context and its thread
2014-04-12 17:01:09 +02:00
Aleix Conchillo Flaqué
01c15547d4
srtpdec: fix assertion checking ssrc from rtcp packets
...
rtcp_buffer_get_ssrc is called even with RTP buffers. this means we
might end up with an exception and not find any valid RTCP packet type
and thus hit GST_RTCP_TYPE_INVALID. we now take care of this.
https://bugzilla.gnome.org/show_bug.cgi?id=727512
2014-04-12 05:08:20 +02: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
Vincent Penquerc'h
aa2b8f179e
faac: fix faac API error checking
...
Coverity 1139790
2014-04-10 17:55:21 +01:00
Vincent Penquerc'h
2e940ba253
dashdemux: do not ignore failure to register typefinder
...
Coverity 1139629
2014-04-10 17:52:02 +01:00
Vincent Penquerc'h
2dd898793e
dashdemux: fix time leak
...
Coverity 1147016
2014-04-10 17:48:03 +01:00
Vincent Penquerc'h
59654c68ee
dashdemux: remove dead code and variable
...
A recent commit made stream not able to be NULL, ending up with
a flag being always set to FALSE when it matters.
Coverity 1146968, 1147012
2014-04-10 17:46:32 +01:00
Vincent Penquerc'h
bbda6a1ab9
curl: remove unneeded NULL check
...
We just checked for NULL and allocated if it was. And glib aborts
if it can't allocate, I'm told.
Coverity 1139841
2014-04-10 17:37:22 +01:00
Vincent Penquerc'h
feede7ddfa
curl: remove duplicate assignment
...
Coverity 1197708
2014-04-10 17:33:55 +01:00
Sebastian Dröge
f82d9ec4a9
hlsdemux: Also update the sequence position when updating non-live playlists
2014-04-10 16:53:42 +02:00
Sebastian Dröge
a06d4ea408
hlsdemux: Try reloading the playlist first if downloading a fragment fails
...
But only add this for non-live playlists. For live playlists we already
have another thread that is periodically updating playlists.
Reason for this is that sometimes downloading a fragment can fail because
the URIs have changed or expired since last time.
2014-04-10 15:06:53 +02:00
Sebastian Dröge
864399f299
hlsdemux: When updating a non-live playlist make sure to find the current sequence by time
...
Sequence numbers in different playlists are not guaranteed to be the same for the
same position, e.g. fragments could have different durations in different playlists.
In theory we should do exactly the same for live playlists, but unfortunately we can't
because doing this kind of seeking requires the complete playlist since we started
playback. For live playlists the server is however dropping fragments in the beginning
over time and we have no absolute time references.
2014-04-10 15:06:53 +02:00
Vincent Penquerc'h
14f8172d2b
smoothstreaming: avoid using an uninitialized manifest
...
If we did not set the manifest yet, early out in the seeking query.
Coverity 1139737
2014-04-10 09:51:07 +01:00
Vincent Penquerc'h
b3a18a2fcc
hlssink: catch failure to write playlist file
...
Coverity 1139613
2014-04-09 18:44:38 +01:00
Vincent Penquerc'h
e308986807
kate: fix implicit promotion to signed int breaking on largeish inputs
...
Coverity 1139858, 1139857
2014-04-09 18:31:31 +01:00
Vincent Penquerc'h
14dc7839cf
ladspa: remove duplicate assignment
...
Coverity 1139706
2014-04-09 18:16:52 +01:00
Vincent Penquerc'h
0e3c1f6e3a
mimdec: fix open error checking
...
Coverity 206364
2014-04-09 18:12:58 +01:00
Vincent Penquerc'h
956be9a018
schrodec: remove unnecessary check
...
The tag was dereferenced earier. From the libschroedinger code,
it's not obvious to see whether tag and frame would be NULL at
the same time. I think is likely that both will be non NULL
here, but that's not certain. Additional tests may be needed
to avoid dereferencing tag and/or frame, but what to do if
only one is NULL isn't obvious, as the _get_tag function does
transfer ownership so isn't undoable.
Coverity 1139850
2014-04-09 17:53:57 +01:00
Vincent Penquerc'h
88879654df
smoothstreaming: remove unnecessary check
...
The function is static, the only call site passes a non NULL
pointer, and the pointer is dereferenced before anyway.
Coverity 1139839
2014-04-09 17:10:06 +01:00
Vincent Penquerc'h
54704b6f5d
srtp: remove dead assignment
...
Coverity 1197707
2014-04-09 16:55:30 +01:00
Vincent Penquerc'h
612cdeec80
resindvd: avoid crashing in pathological case
...
When we'd see an unknown stream type, then a SDDS stream.
Then we'd get to the end of the switch with a NULL temp stream
pointer, and dereference it.
Coverity 1139708
2014-04-09 14:37:48 +01:00
Vincent Penquerc'h
25d4ca70c9
opus: add missing va_end in variadic function
...
Coverity 1139944
2014-04-09 11:03:17 +01:00
Vincent Penquerc'h
084c4d5dc4
mpeg2enc: remove dead assignment
...
Coverity 1139829
2014-04-09 10:33:10 +01:00
Vincent Penquerc'h
9eab659d1d
gl: pass large structure by const pointer, not value
...
Avoids large pointless memcpy.
Coverity 206236, 206237
2014-04-09 10:31:19 +01:00
Vincent Penquerc'h
fd6a4f7372
flite: fix off by one in channel mask building
...
The first loop would shift 1 by 64, which is either undefined
or implementation defined, instead of clearing the top bit.
Coverity 1197691
2014-04-08 17:35:37 +01:00
Vincent Penquerc'h
a78e516cbf
hls: restore NULL test mistakenly removed
...
Thanks to tpm for point out I'm an idiot.
2014-04-08 17:10:27 +01:00
Vincent Penquerc'h
c319b1cc8f
hls: only set DISCONT flag on a valid buffer
...
Recent refactoring causes this code to be called with either a NULL
fragment, or a non NULL fragment. In the former case, we don't have
a buffer. In the latter case, the original code dealing with DISCONT
assumed the buffer was valid. Testing for a NULL buffer here thus
does not seem to change the intent, and fixes:
Coverity 1195147
2014-04-08 16:56:04 +01:00
Vincent Penquerc'h
45b8225a02
hls: bring NULL test before dereference
...
Coverity 1195168
2014-04-08 16:46:56 +01:00
Vincent Penquerc'h
4b5068f5dd
gl: test for frame NULLness before dereferencing it
...
Coverity 1195172, 1195171
2014-04-08 16:25:51 +01:00
Vincent Penquerc'h
db7934233f
resindvd: guard against overflow in audio subtitle streams
...
Turns out there was the same issue as with subtitles.
There is space for a single audio stream, but up to 255
may be used based on a uint8_t value in a struct, which may
or may not be read from the (untrusted) data.
A comment in ifo_types.h says this value is either 0 or 1, so
we can ensure this here without drawbacks.
Coverity 1139585
2014-04-08 14:24:31 +01:00
Vincent Penquerc'h
380f95ea01
resindvd: guard against overflow in menu subtitle streams
...
There is space for a single subtitle stream, but up to 255
may be used based on a uint8_t value in a struct, which may
or may not be read from the (untrusted) data.
A comment in ifo_types.h says this value is either 0 or 1, so
we can ensure this here without drawbacks.
Coverity 1139586
2014-04-08 14:21:53 +01:00
Vincent Penquerc'h
57a138df86
dtsdec: fix buffer overflows
...
Channels can be up to 7. Also add a guard in case more can be
returned in the future.
Coverity 1139820, 1139821
2014-04-08 12:41:16 +01:00
Edward Hervey
eb0a307e28
soundtouch: Add missing break in switch
...
Whoops, modifying the pitch when modifying the output rate ...
CID #1139749
2014-04-08 11:23:50 +02:00
Edward Hervey
2e808ca1e9
rsvg: Add missing break in switch statement
...
This wasn't fatal before (worst case it would clear an already empty
adapter).
CID #1139758
2014-04-08 11:21:44 +02:00
Edward Hervey
8ca5387b0f
mpeg2enc: Add missing break in switch
...
QUERY_CAPS is fully handled, we don't need to passthrough to the default
handler.
CID #1139756
2014-04-08 11:20:29 +02:00
Edward Hervey
334bcd433b
bz2: Initialize variables
...
There is a small chance that we might end up in the done step without
having any output available.
Furthermore, when going through not_ready, we need to ensure gst_buffer_unmap
has a properly initialized GstMapInfo.
CID #1139923
CID #1139924
CID #1139919
CID #1139920
2014-04-08 09:55:15 +02:00
Sebastian Dröge
82b7c915bb
glimagesink: Create GL context and set up window from the streaming thread
...
gst_gl_context_create() might need to dispatch some operations to the
application's main thread, and calling this in the change_state function
can cause deadlocks.
2014-04-07 11:21:07 +02:00
Wim Taymans
ff5d1a18f3
wildmidi: fix possible uninitialized variables
2014-04-03 11:54:41 +02:00
Wim Taymans
6c014f7e36
mpdparse: only add location when node existed
...
Actually return FALSE when the location node was non-existing
Only add the location node when it existed
2014-04-03 11:48:07 +02:00
Matthew Waters
e01e2cce9f
gl: pass video info's by reference
2014-04-02 23:05:47 +11:00
Matthew Waters
98c486025a
gl: fix array initialization
2014-04-02 23:05:11 +11:00
Matthew Waters
cb8f90e4c3
glbumper: remove redundant check
2014-04-02 22:54:55 +11:00
Matthew Waters
5b0da41038
gl: fix assignment of temporary variables
2014-04-02 22:43:41 +11:00
Matthew Waters
e58cd96b96
gl: avoid adding a NULL pool to propose allocation
2014-04-02 22:42:50 +11:00
Matthieu Bouron
820685409e
dashdemux: use correct print format for gint64
...
https://bugzilla.gnome.org/show_bug.cgi?id=727385
2014-03-31 14:50:17 +02:00
Sebastian Dröge
b86e502a8b
hlsdemux: Handle errors when switching playlists properly
2014-03-30 19:22:25 +02:00
Sebastian Dröge
89ca4535eb
hlsdemux: Go EOS if the end of the segment is reached
2014-03-30 19:22:25 +02:00
Sebastian Dröge
911023eb88
hlsdemux: Store buffer end position in segment.position
2014-03-30 19:22:24 +02:00
Sebastian Dröge
f701755b83
hlsdemux: Don't set the segment offset
...
It's causing wrong running times after seeks or bitrate
switches.
2014-03-29 10:33:45 +01:00
Sebastian Dröge
e11a99e26a
hlsdemux: Set DISCONT flag on all buffers in reverse playback mode
2014-03-29 10:33:45 +01:00
Sebastian Dröge
8109ed8785
hlsdemux: Fix forwards and backwards searching in the files list
2014-03-29 10:33:45 +01:00
Sebastian Dröge
6039734f3e
hlsdemux: Unset DTS of all buffers
...
We won't get a valid DTS from the source.
2014-03-29 10:33:45 +01:00
Sebastian Dröge
cad284e843
hlsdemux: Send flush start event before waiting for the tasks to finish
...
Otherwise we'll wait until buffers are completely processed downstream,
which might take quite some time.
2014-03-29 10:33:45 +01:00
Sebastian Dröge
91ec00a0c0
hlsdemux: Implement trick modes via I-frame variant lists
2014-03-29 10:33:45 +01:00
Sebastian Dröge
77231ab957
hlsdemux: Implement parsing of #EXT-X-I-FRAME-STREAM-INF
...
These are I-frame-only variant lists that can be used
for trick mode playback.
2014-03-29 10:33:45 +01:00
Rico Tzschichholz
d10fcf4d3f
build: Fix make dist
2014-03-28 20:02:40 +00:00
Julien Isorce
7dd3b2fff7
eglglessink: unref last buffer on DRAIN
...
Similar to 093574053f
in gstbasesink
https://bugzilla.gnome.org/show_bug.cgi?id=726107
2014-03-28 11:54:45 +00:00
Reynaldo H. Verdejo Pinochet
2008ec409b
eglglessink: fix wrong doc block for create_window
...
Wrong since 1ad253b9
when prop name was changed from
can_create_window to create_window.
2014-03-27 18:54:27 -03:00
Julien Isorce
75c92dc915
gl: only set CAPS_FEATURE_MEMORY_EGL_IMAGE on egl platform
2014-03-27 07:07:01 +00:00
Julien Isorce
218244a040
gl: let the user includes itself our egl headers if needed
...
Forgot to address this change.
https://bugzilla.gnome.org/show_bug.cgi?id=703343
2014-03-26 19:17:03 +00:00
Julien Isorce
0ae3c984aa
gl: add EGLImage support
...
* picked from old libgstegl:
- GstEGLImageMemory
- GstEGLImageAllocator
- last_buffer management from removed GstEGLImageBufferPool
* add-ons:
- GstEGLImageMemory now old a reference on GstGLContext
so that it can delete the EGLImage and its gltexture source
while having the associated gl context being current.
- add EGLImage support for GstVideoGLTextureUploadMeta which
mainly call EGLImageTargetTexture2D
- GstGLBufferPool now supports GstEGLImageAllocator
- glimagesink / glfilters / etc.. now propose GstEGLImageAllocator
to upstream
https://bugzilla.gnome.org/show_bug.cgi?id=703343
2014-03-26 19:09:13 +00:00
Jan Schmidt
6b784cf808
rtmpsink: Remove URL check for valid playpath.
...
The playpath is an optional component of the URL - don't require it.
2014-03-26 09:05:55 +11:00
Wim Taymans
9adb1734cf
srtpenc: unlock object lock before posting error
...
Posting an error with the object lock will deadlock. Rework the code
a bit to make things more simple.
2014-03-25 17:46:32 +01:00
Gwenole Beauchesne
21b897de2f
gl: fix out-of-source builds.
...
Always use the locally generated <gst/gl/gstglconfig.h> file.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2014-03-24 17:56:13 +01:00
Matthew Waters
faa94a8737
gl: silence a critical if upstream does not provide us with meta params
2014-03-20 07:01:01 +11:00
Julien Isorce
fa4ce072ee
gl: silence warnings building for RPI related to 'vcos_*'
...
Similar than 1190a79b19
2014-03-19 14:43:13 +00:00
Julien Isorce
e870244e39
gl: keep only one occurence of '#include <EGL/egl.h>'
...
To simply maintainance if we need to put specific includes around it.
2014-03-19 14:43:13 +00:00
Thijs Vermeir
1a5560441d
make: whitespace cleanups
2014-03-17 12:00:09 +01:00
Matthew Waters
6b3fe44185
Move gst-plugins-gl to bad
2014-03-16 15:17:59 +01:00
Matthew Waters
870503dc6b
gl: silence all the compiler warnings
2014-03-16 15:17:44 +01:00
Matthew Waters
4bdf5f336a
move gl elements to ext subdirectory
2014-03-16 11:23:16 +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
a5b877fb13
[717/906] remove outdated cmake build files
2014-03-15 18:36:56 +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
c52b138a8d
[604/906] gst_element_class_set_details_simple() => gst_element_class_set_metadata()
2014-03-15 18:36:50 +01:00
Matthew Waters
93f7e993ad
[603/906] update FSF address
2014-03-15 18:36:50 +01:00
Matthew Waters
3affb44884
[544/906] fix memory leaks from not g_free()ing string returned by gst_element_get_name
2014-03-15 18:36:46 +01:00
Matthew Waters
6f2acb94c6
[502/906] Update versioning for gstreamer 1.0
...
Renames GST_MAJORMINOR to GST_API_VERSION in build files
removes -lgstinterfaces from _LDADD flags
2014-03-15 18:36:44 +01:00
Julien Isorce
b88351ad0c
[488/906] libvisual-gl: full compatibility with projectM-libvisual if libprojectM >= 2.0.1
...
Fix bug #310775
2014-03-15 18:36:43 +01:00
Julien Isorce
6f1530c658
[486/906] libvisual-gl: add minimal support to libvisual plugins that uses Framebuffer objects
...
Fix bug #310775
gst-launch audiotestsrc ! libvisual_gl_projectM ! glimagesink is working
but for now you cannot append any other opengl filters between
libvisual_gl_projectM and glimagesink because our FBO is turned OFF.
It would require that libvisual allows to split rendering between
pass1,2,3... and final rendering. In order to unbind our FBO before
the passN, and then rebind it just before the final libvisual rendering.
2014-03-15 18:36:43 +01:00
Julien Isorce
c298f99b5d
[484/906] libvisual_gl: correctly setup depth and blend functions
2014-03-15 18:36:43 +01:00
Jonathan Matthew
a3cc71ae5f
[482/906] ext: Add a libvisual plugin wrapping opengl libvisual
...
Fix bug #202069
2014-03-15 18:36:42 +01:00
Sebastian Dröge
7ddd67baef
hlsdemux: Always calculate the current download rate
...
Also take into account the last download rate when
calculating it.
2014-03-12 12:35:22 +01:00
Aurélien Zanelli
da601be78f
sbcenc: Allow user to set channel-mode
...
Don't return error when channel-mode is already set, just check that it
is coherent with number of channels.
https://bugzilla.gnome.org/show_bug.cgi?id=726098
2014-03-12 09:06:33 +01:00
Sebastian Dröge
bd54a212d3
hlsdemux: Fix comparison in bitrate selection
2014-03-09 20:50:44 +01:00
Sebastian Dröge
c9bb878fe5
m3u8: Fix off-by-one in the download range end
2014-03-07 16:24:19 +01:00
Sebastian Dröge
d2880dce68
hlsdemux: Implement proper segment handling
...
https://bugzilla.gnome.org/show_bug.cgi?id=695846
https://bugzilla.gnome.org/show_bug.cgi?id=723268
2014-03-06 23:16:56 +01:00
Sebastian Dröge
cd02546089
hlsdemux: Implement handling of byte ranges
2014-03-06 16:36:10 +01:00
Zallesov
7ed08a1326
hlsdemux: Fix seeking further than track duration
...
Don't fail the seek but instead send an EOS event from the streaming thread.
2014-03-06 09:39:22 +01:00
Sebastian Dröge
5d5ca5139e
hlsdemux: Switch playlists after pushing the fragment
...
Makes sure we properly set the discont flag for the next buffer,
not the current one.
2014-03-05 20:44:02 +01:00
Matthieu Bouron
4da4dfc4bf
assrender: handle video/x-raw(ANY) if downstream supports the GstVideoOverlayCompositionMeta API
...
https://bugzilla.gnome.org/show_bug.cgi?id=721950
2014-03-05 20:41:20 +01:00
Sebastian Dröge
0a32c5f7a4
hlsdemux: Implement proper handling of discontinuities
...
It's not really correct yet for seeks but better than what
we had before.
See https://bugzilla.gnome.org/show_bug.cgi?id=695846
2014-03-01 17:15:54 +01:00
Aleix Conchillo Flaqué
a04fe75047
srtpenc: unref caps after gst_query_set_caps_result
...
https://bugzilla.gnome.org/show_bug.cgi?id=725412
2014-03-01 16:40:39 +01:00
Alex Ashley
b7ef52c515
hlsdemux: Segfaults if playlist has no media files
...
hlsdemux causes a null pointer dereference if the media playlist
does not contain any media files. The gst_m3u8_client_get_duration
function assumes that demux->client->current->files is valid when
computing duration.
gst_m3u8_client_update needed to be modified to check for the
case of downloading an M3U8 file that doesn't contain any media
files, and returning an error to gsthlsdemux.c
This bug can be reproduced by creating a master m3u8 file that
contains one media playlist that points back to the master m3u8
file. For example create a file called bug725134.m3u8:
#EXTM3U
#EXT-X-VERSION:4
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=1251135, CODECS="avc1.42001f mp4a.40.2", RESOLUTION=640x352
bug725134.m3u8
https://bugzilla.gnome.org/show_bug.cgi?id=725134
2014-03-01 16:34:59 +01:00
Sebastian Dröge
8284f7bc61
openalsrc: Remove unused function to fix compiler warning
2014-02-27 21:45:34 +01:00
Sebastian Dröge
874af7db4e
hlsdemux: Init and clear a mutex
...
GLib initialises automatically for us for some reason... but of course
does not clear the mutex once the demuxer is destroyed.
2014-02-27 15:50:12 +01:00
Sebastian Dröge
5f0a5c3594
hlsdemux: Unref seek events before returning from the seek handler
...
Otherwise we leak them all.
2014-02-27 15:41:30 +01:00
Alex Ashley
161254d7c0
hlsdemux: Fix parsing of CODECS and RESOLUTION
...
hlsdemux does not check for the '"' character in #EXT-X-STREAM-INF
attributes. The CODECS parameter is an example of an attribute
that might use the '"' symbol and might contain a ',' character
inside this quoted string.
For example: CODECS="avc1.77.30, mp4a.40.2"
hlsdemux does not correctly parse the RESOLUTION attribute, it
assumes that an '=' character is used to delineate the width
and height values, but the HLS RFC states that a 'x' character
must be used as the delimiter between width and height.
https://bugzilla.gnome.org/show_bug.cgi?id=725140
2014-02-26 09:23:22 +01:00
Alex Ashley
91775a1abd
hlsdemux: Fix for URLs that contain a '/' in the query parameter
...
If the URL for the master manifest files contains a '/' character
in the query parameter (for example
http://example.net/1054559_h264_1500k.mp4/master.m3u8?acl=/*1054559_h264_1500k.mp4 ),
hlsdemux is incorrectly converting the relative URLs of the media
playlists in to absolute URLs. It is incorrectly using the last '/' it
finds in the URL. According to RFC3986 the '/' character is allowed in
the query part of the URL.
https://bugzilla.gnome.org/show_bug.cgi?id=725137
2014-02-26 09:20:58 +01:00
Julien Isorce
966fb81db0
eglglessink: move GstEGLImageBufferPool to gstegl lib
...
https://bugzilla.gnome.org/show_bug.cgi?id=706054
2014-02-25 17:29:18 +00:00
Sebastian Dröge
b3a7242910
hlsdemux: Keep track of timestamps by adding them up during playback
...
...instead of adding them from the start of playlist every time. This
among other things fixes timestamps for live streams, where the playlist
is some kind of ringbuffer of fragments and thus adding from the beginning
of the playlist will miss the past fragments.
https://bugzilla.gnome.org/show_bug.cgi?id=724983
2014-02-23 15:18:22 +01:00
Sebastian Dröge
090bf91974
hlsdemux: Deprecate fragments-cache property
...
The buffering/caching is handling completely different now and
outside of hlsdemux.
2014-02-23 11:01:57 +01:00
Brendan Long
7f591f9c7e
katedec: Merge new tags with existing tags to prevent overwriting demuxer tags
...
https://bugzilla.gnome.org/show_bug.cgi?id=724699
2014-02-23 10:52:15 +01:00
Sebastian Dröge
b47a4faf5f
ext: Use Codec/Demuxer/Adaptive for the adaptive streaming demuxers
2014-02-23 00:11:04 +01:00
Sebastian Dröge
a51116add3
hlsdemux: Refactor threading and downloading
...
We now download fragments as fast as possible and push them downstream
while another thread is just responsible for updating live playlists
every now and then.
This simplifies the code a lot and together with the new buffering
mode for adaptive streams in multiqueue makes streams start much faster.
Also simplify threading a bit and hopefully make the GstTask usage safer.
2014-02-23 00:10:45 +01:00
Sebastian Dröge
76e74547c7
hlsdemux: Only switch pads if the caps are changing
2014-02-23 00:10:45 +01:00
Chris Bass
6342d225bf
dashdemux: ensure segments aren't fetched before they're available
...
Incorrect time scaling in gst_dash_demux_wait_for_fragment_to_be_available()
means that media segments are fetched before their availablity time. This
patch fixes this.
https://bugzilla.gnome.org/show_bug.cgi?id=724875
2014-02-22 16:29:13 +01:00
Chris Bass
462c04cade
dashdemux: initialise demux->last_manifest_update
...
demux->last_manifest_update is not initialised at startup, with the
effect that live manifests are reloaded immediately after the download
loop begins. This patch fixes this.
https://bugzilla.gnome.org/show_bug.cgi?id=724790
2014-02-20 20:26:25 +01:00
Andoni Morales Alastruey
99feef2d08
hlsdemux: fix update interval with respect of the spec
2014-02-14 13:07:39 +01:00
Sebastian Dröge
e40b72bc9b
hlsdemux: Ignore empty lines in the playlist
...
Based on a patch by Andoni Morales.
2014-02-12 18:50:09 +01:00
Sebastian Dröge
65c1faf553
hlsdemux: Make sure to ignore \r in line endings in every case
2014-02-12 18:47:45 +01:00
Sebastian Dröge
13997abbf9
hlsdemux: Give a proper name to the srcpads and remove it when resetting the element
2014-02-12 18:27:21 +01:00
Sebastian Dröge
adea24cdf8
hlsdemux: Stop leaking GErrors in some error paths
2014-02-12 16:46:31 +01:00
Gil Pedersen
62ddd34807
hlsdemux: don't pause task when it is stopped
...
This fixes a potential dead-lock situation from GstTask
https://bugzilla.gnome.org/show_bug.cgi?id=675869
2014-02-12 16:04:52 +01:00
Sebastian Dröge
281f2f3590
hlsdemux: Wait for the update task to finish when shutting down
2014-02-12 16:01:05 +01:00
Sebastian Dröge
4dcacc1773
hlsdemux: Prevent rounding errors due to division by using gst_util_uint64_scale()
2014-02-12 15:33:06 +01:00
Arnaud Vrac
6e54b8ee53
hlsdemux: schedule next update based on the fragment duration
2014-02-12 15:18:29 +01:00
Sebastian Dröge
05efcbf757
hlsdemux: Properly error out if caps can't be typefind instead of using NULL caps
2014-02-12 15:16:23 +01:00
Arnaud Vrac
63e18bb7bf
hlsdemux: log fragment timestamp
2014-02-12 14:39:15 +01:00
Sebastian Dröge
dc45d236d2
hlsdemux: Use g_ascii_xdigit_value() instead of our own version of it
2014-02-12 14:10:02 +01:00
Sebastian Dröge
a84220a658
hlsdemux: Error out if the key is not 16 bytes large
2014-02-12 13:40:41 +01:00
Sebastian Dröge
8c3ef21a68
hlsdemux: Download playlists with compression, keys and fragments without
2014-02-12 13:13:30 +01:00
Sebastian Dröge
a11c6640bf
mssdemux: Download the manifest with compression, the fragments without
2014-02-12 13:11:38 +01:00
Sebastian Dröge
48ba499ed2
dashdemux: Download MPD with compression, the fragments without
2014-02-12 13:10:50 +01:00
Sebastian Dröge
245a7d94f5
hlsdemux: Don't set the element private data on the srcpads
...
It's not used anyway.
2014-02-12 11:26:04 +01:00
Sebastian Dröge
60f1dadd1c
hlsdemux: Use gst_pad_use_fixed_caps() on the srcpads
2014-02-12 11:25:41 +01:00
Sebastian Dröge
bc42a18f92
hlsdemux: Cache the key fragment instead of downloading it over and over again
2014-02-12 10:59:38 +01:00
Sebastian Dröge
792d1e0109
hlsdemux: Fix cleanup when decryption fails
...
First unmap buffers, then unref them. And also unref the
key fragment.
2014-02-12 10:58:45 +01:00
Lihua Liu
f3464e01bb
curlsmtpsink: Include timezone information in mail header
...
https://bugzilla.gnome.org/show_bug.cgi?id=724125
2014-02-11 21:03:18 +01:00
Sebastian Dröge
5e55bae14b
hlsdemux: Don't try decryption if an unsupported method is found
2014-02-11 18:15:45 +01:00
Sebastian Dröge
56faad51bb
hlsdemux: Properly parse IV from the playlist
...
Without this every fragment's first 16 bytes will be corrupted
if not the fallback IV is used by the playlist.
2014-02-11 18:15:07 +01:00
Sebastian Dröge
591598da48
hlsdemux: Propagate download errors properly and post error messages if they're fatal
2014-02-11 14:57:16 +01:00
Sebastian Dröge
3a5abc233d
ext: Update for GstUriDownloader API changes
2014-02-11 14:18:32 +01:00
Sebastian Dröge
73d9a8b0c9
hlsdemux: Start downloading the next fragment immediately after caching the initial fragments
...
And only afterwards wait until a fragment was played. Otherwise we're keeping
our cache most of the time at "fragments-cache" fragments minus one.
Also allow setting "fragments-cache" to 1 now to start playback even faster.
2014-02-10 18:30:21 +01:00
Sebastian Dröge
4f04f3e68e
hlsdemux: Start fetching new fragments whenever we have less fragments cached than given by the fragments-cache property
...
Waiting until our cache is empty before starting to fetch the next fragment
kind of defeats the purpose of caching multiple fragments.
2014-02-10 18:27:58 +01:00
Sebastian Dröge
89c592ccdd
hlsdemux: Fix bitrate calculation
...
g_get_monotonic_time() returns microseconds, not nanoseconds.
2014-02-10 18:21:38 +01:00
Sebastian Dröge
a4847fd4db
hlsdemux: Actually store doubles as such and don't truncate them to ints
...
Fixes broken duration reporting.
2014-02-10 17:27:10 +01:00
Sebastian Dröge
a5387eb372
hlsdemux: Use locale-independent int/float parsing functions from GLib
2014-02-10 17:27:10 +01:00
Wim Taymans
64367f33a6
fluiddec: add more soundfont search paths
...
Fedora installs the soundfonts in /usr/share/soundfonts/ so make sure we
look there as well.
2014-02-10 14:34:40 +01:00
Руслан Ижбулатов
270b57fc33
Change soundfont file search path for fluiddec
...
Use glib to get a list of system "share" directories, then go through that
list, appending 'sounds/sf2/' to each directory to get a soundfont directory,
and looking for .sf2 files there.
This way fluiddec is able to load sf2 files on W32, because otherwise the
path '/usr/share/sounds/sf2' makes no sense there.
Fixes #724013
2014-02-10 11:34:16 +01:00
Sebastian Dröge
6799e3b879
hlsdemux: Prefer to use nettle for decryption but fall-back to libgcrypt
...
nettle is used by newer versions of gnutls, while older versions of gnutls
used libgcrypt. Support both for now as not every distro has nettle yet.
nettle is preferred as it is more efficient to use and much smaller.
2014-02-09 18:52:24 +01:00
Sebastian Dröge
6abed8da20
hlsdemux: Update to non-deprecated GLib thread API
2014-02-09 18:19:33 +01:00
Sebastian Dröge
e8befb7ce3
hlsdemux: Use libgcrypt directly instead of going through gnutls
...
gnutls is also just wrapping gcrypt, but we don't need any of
the TLS related functionality. We just need to be able to decrypt
AES128-CBC.
2014-02-09 18:09:36 +01:00
Sebastian Dröge
15e0db90e8
srtpdec: Fix comparison compiler warning
...
error: comparison of constant -1 with expression of type
'GstSrtpCipherType' is always false
2014-02-08 19:59:43 +01:00
Sebastian Dröge
43e73bc3e9
motioncells: Remove unused private fields
2014-02-08 19:29:33 +01:00
Sebastian Dröge
50321b1ccd
segmentation: Fix integer underflow check
...
error: comparison of unsigned expression < 0 is
always false [-Werror,-Wtautological-compare]
2014-02-08 19:28:26 +01:00
Sebastian Dröge
78d9134d63
dfbvideosink: Fix unitialized variable compiler warning
2014-02-08 18:58:38 +01:00
Sebastian Dröge
5c22b7f4a3
bz2: Fix typo in header include guards
2014-02-08 18:57:30 +01:00
Carlos Rafael Giani
d12fdf785c
mpg123: improved error report and checks
...
Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
2014-02-04 17:30:13 +01:00
Sebastian Dröge
7548d5f7f9
openexrdec: Don't start scanning for the header from the start again each time
...
This will be incredible slow if the upstream block size is very small. Instead
continue scanning for the header where we previously stopped.
For the standard filesrc block-size this made decoding a file about
3 times faster.
https://bugzilla.gnome.org/show_bug.cgi?id=719890
2014-01-18 13:56:28 +01:00
Sebastian Dröge
1f9c305694
sfdec: This is a decoder, not a demuxer
...
Don't confuse autopluggers!
https://bugzilla.gnome.org/show_bug.cgi?id=722316
2014-01-18 13:34:13 +01:00
Jan Schmidt
9d31536adf
resindvd: Merge changes across from master mpegdemux
...
Merge various changes and fixes from the master mpegdemux
Performance improvement from the way streams are organised,
return flow combining, language tag event generation,
adjustments and fixes in debug output, and things like that.
2014-01-16 20:16:47 +11:00
Tim-Philipp Müller
078b82d6d1
resindvdsrc: fix minor memory leak when creating title info message
2014-01-15 11:52:09 +00:00
Sebastian Dröge
e8d569f54d
faceblur: set maximum feature size to 0x0
...
Previously faces would only be detected if they were at least 30x30 pixels
large and at most 32x32 pixels. We keep the minimum setting (maybe needs
a property as in facedetect) but disable the maximum feature size.
See https://bugzilla.gnome.org/show_bug.cgi?id=722158
2014-01-14 10:38:37 +01:00
Kipp Cannon
b33b1390cc
facedetect: set maximum feature size to 0x0
...
This disables the "max feature size" feature. The current configuration
is totally busted: The max feature size is hard-coded to 2 pixels more
than the user-supplied min feature size which pretty much means you need
to guess the size of the person's face to within a few pixels to get the
code to find it.
https://bugzilla.gnome.org/show_bug.cgi?id=722158
2014-01-14 10:37:41 +01:00
Vincent Penquerc'h
d1877b0b95
schroenc: set buffer offset to buffer timestamp
...
oggmux expects this to order incoming buffers
https://bugzilla.gnome.org/show_bug.cgi?id=722078
2014-01-13 10:02:45 +00:00
Thiago Santos
3d2f3bcf62
dashdemux: remove unnecessary variable
...
Instead of using 2 indexes that were actually the same, use only
one. Saves a variable.
2014-01-09 09:13:48 -03:00
Thiago Santos
cea909b877
dashdemux: fix seeking when the mpd uses a segment template
...
Remove the dashdemux seeking function to use the one implemented
in mpdparser as it is more complete. This also makes dashdemux not
crash when seeking on streams that use segment templates.
2014-01-09 09:11:23 -03:00
Stefan Sauer
c894c2d721
sfdec: skip '\0' strings for metadata
...
libsndfile does not filter empty strings. We get a warning from gstreamer when
setting this as a tag.
2014-01-06 22:17:15 +01:00
Stefan Sauer
a59d2c4817
sfdec: break long method
...
Extract taglist creation into separate funtion.
2014-01-06 22:17:15 +01:00
Stefan Sauer
b1ddd2e682
sfdec: remove left over property-id enum
2014-01-06 15:06:40 +01:00
Stefan Sauer
18ec1c9bd7
sfdec: the read functions already return frames_read
...
Fixes choppy output.
2014-01-05 23:45:34 +01:00
Stefan Sauer
ef2eef0365
sndfile: enable rf64 format
2014-01-05 23:45:34 +01:00
Stefan Sauer
207a184931
sfdec: add date to taglist
2014-01-05 23:45:34 +01:00
Miguel París Díaz
e944195b64
srtpdec: Fix GstCaps memory leak
...
https://bugzilla.gnome.org/show_bug.cgi?id=721382
2014-01-03 10:46:29 +01:00
Stefan Sauer
3149dbb44b
sndfile: emit midi-base-note tag
...
Query instrument data. Use both 'loop_info' and 'instrument' to inform about the
basenote.
2013-12-30 15:54:29 +01:00
Sebastian Dröge
fd803921c9
opusparse: Don't send caps in GstBaseParse::start()
...
This is too early and will confuse the event order. The other
code that sets the caps is at the right position and does it
properly already.
2013-12-28 12:39:25 +01:00
Vincent Penquerc'h
585a6c4add
opusenc: increase max payload size to 4000 bytes
...
1275 is the maximum size of a frame, but the encoder may return
up to 3 frames, and we need a few extra bytes for TOC, etc. We
use 4000, which is a bit more, and suggested in the libopus docs.
2013-12-27 14:29:46 +00:00
Thiago Santos
da329b44a4
dashdemux: remove stream loop thread
...
Download and push from the same task, makes code a lot simpler
to maintain. Also pushing from separate threads avoids deadlocking
when gst_pad_push blocks due to downstream queues being full.
2013-12-24 17:07:52 -03:00
Thiago Santos
d353d229b1
dash: detect EOS when segments are generated by template
...
Use the Period duration do know when to end the stream
2013-12-24 17:07:52 -03:00
Thiago Santos
5b1eda95eb
dashdemux: do not try to access buffer after losing the ref
...
For obvious reasons
2013-12-24 17:07:52 -03:00
Thiago Santos
be54766975
dashdemux: use a separate GstUriDownloader per stream
...
Avoids one download having to wait for another to finish
before starting
2013-12-24 17:07:52 -03:00
Thiago Santos
f33c52377f
dashdemux: store GstActiveStream to avoid getting it every time
...
GstActiveStream is used everywhere to operate on the MPD client,
better store it in the GstDashDemuxStream to avoid getting it
everytime
2013-12-24 17:07:52 -03:00
Thiago Santos
7c6ccda3ec
dashdemux: simplify locking for streams
...
Use a single lock for all streams instead of having separate locks.
This makes maintenance easier and at most points we would need
a single lock before iterating on all streams data. So not much
is gained from individual locks.
2013-12-24 17:07:51 -03:00
Thiago Santos
a2583e54d1
dashdemux: fix multiple period mpd playback
...
Make dash playlists with multiple periods work again by waiting
to switch the periods when all streams have reached the end of
the current period. The stream_loop is responsible for advancing
the period, but the download loops will already start downloading
data for the next period as soon as possible.
2013-12-24 17:07:51 -03:00
Thiago Santos
1483b59c6b
dashdemux: add combine flows function
...
Use a flow combination function to decide the result from the
stream_loop
2013-12-24 17:07:51 -03:00
Thiago Santos
6611d14eed
dashdemux: handle multiple languages
...
Handle multiple languages by using the not-linked return to stop
the download task for that stream. It can be reactivated when
a reconfigure event is received. Stopping the unused streams is
relevant to save network bandwidth
2013-12-24 17:07:51 -03:00
Thiago Santos
31e4ba0094
dashdemux: Use 1 download task per stream
...
Instead of having a single download task for all streams, this
commit makes each stream have its own download loop, allowing
parallel download of fragments.
2013-12-24 17:07:51 -03:00
Thiago Santos
3bd66d17fc
dashdemux: refactor fragment fetching into smaller functions
...
Makes it easier to maintain and extend. This is a first step into
adding multi language support to dashdemux
2013-12-24 17:07:51 -03:00
Thiago Santos
1d2de4a034
dashdemux: run gst-indent
...
Lots of indentation issues making it very annoying to commit
because of the indent hook. Fix this for once.
2013-12-24 17:07:51 -03:00
Thiago Santos
08636f3bab
dashdemux: expose all streams
...
always expose all streams instead of only exposing one of each type.
This is more aligned with gstreamer's way of working. Allows the user
to select the stream that it wants to use by linking its pad and leaving
the unused ones as unlinked.
2013-12-24 17:07:51 -03:00
Sebastian Dröge
7f5422c06d
eglglessink: Properly clean up renderbuffers and EAGL context
2013-12-24 11:51:16 +01:00
Stefan Sauer
0e3917b9c0
modplug: small seeking code reshuffle
...
Put the code that checks stop values together. Don't clamp a cur value of -1 to 0 (should not happen right now).
2013-12-20 20:00:55 +01:00
Stefan Sauer
a18ad22b47
sfdec: make _stop() non fatal when we have an error already
...
Having no open file in _stop() is okay. Just reset state.
2013-12-20 20:00:55 +01:00
Stefan Sauer
0c34d807d4
sfdec: add event function and seeking support
2013-12-20 20:00:55 +01:00
Stefan Sauer
bf956c487f
sfdec: add taglist support
...
Map the metadata strings and a bunch of info-fields to GStreamer tags.
2013-12-20 20:00:55 +01:00
Stefan Sauer
b884eac02c
sfdec: add query implementation for position and duration
2013-12-20 20:00:55 +01:00
Stefan Sauer
5f89bee749
sndfile: rewrite sndfile for 1.0
...
Add a sfdec for a start. Instead of a source plugin, this is a demuxer/decoder combination. This makes it work with auto-plugging.
2013-12-20 20:00:54 +01:00
Thiago Santos
6348113777
mssdemux: updating docs explaining how it works
...
mssdemux changed a lot and the docs were not correct anymore.
Also adds the 'Adaptive' category to its details
2013-12-20 00:40:42 -03:00
Thiago Santos
ff1e88ce93
mssdemux: do not push event holding object lock
...
Can lead to deadlocks as the push might block downstream in
serialized event cases.
2013-12-20 00:40:42 -03:00
Thiago Santos
aa61251371
mssdemux: lock around 'cancelled' flag
...
Prevents race conditions when pipeline is seeking near eos
2013-12-20 00:40:42 -03:00
Sebastian Dröge
d9525c134b
eglglessink: Don't set the EAGLContext of the main thread and don't reuse it either
...
... instead create a new context for every sink instance.
https://bugzilla.gnome.org/show_bug.cgi?id=720421
2013-12-19 21:37:33 +01:00
Jan Schmidt
81ad21d63e
directfb: Add hack to fix compile with broken DirectFB define
...
Compilation breaks because some versions of DirectFB redefine
__no_instrument_function__, which is used in the G_GNUC_NO_INSTRUMENT
macro.
2013-12-19 11:23:23 +11:00
Thiago Santos
628461b4d1
mssdemux: fix segfault when trying to access codec_data
...
Check if codec_data was obtained before trying to use it to
prevent a segfault
2013-12-18 18:52:19 -03:00
Thiago Santos
5948a07324
mssdemux: also generate caps from audiotag attribute
...
Some audio will have its audio format defined by the AudioTag
instead of the Fourcc. Fallback to using AudioTag if Fourcc
isn't available
2013-12-18 18:52:19 -03:00
Thiago Santos
26acbbcca9
mssdemux: make sure streams stop properly on cancelled
...
specially when the gst_task_join is waiting for the task
to go stop and the task itself sets its back to paused, causing
a deadlock on exit.
2013-12-18 18:52:19 -03:00
Thiago Santos
99c8fb7330
mssdemux: track segments per stream
...
As streams now flow independently, the GstSegment needs to be put
on each stream so they can track the position of each one correctly
instead of being mixed in a single segment
2013-12-18 18:52:19 -03:00
Guillaume Desmottes
f44c6ed526
mssdemux: push language code tag
...
https://bugzilla.gnome.org/show_bug.cgi?id=712358
2013-12-18 18:52:19 -03:00
Guillaume Desmottes
d6a9f17d8a
mssmanifest: store the language of the stream
...
https://bugzilla.gnome.org/show_bug.cgi?id=712358
2013-12-18 18:52:19 -03:00
Thiago Santos
67f3190301
mssdemux: remove the stream loop task
...
Download and push from the same task, makes code a lot simpler
to maintain. Also pushing from separate threads avoids deadlocking
when gst_pad_push blocks due to downstream queues being full
2013-12-18 18:52:19 -03:00
Thiago Santos
4e6e1315da
mssdemux: Improve logging
...
Show the stream's pad on log messages to make easier to debug
issues in the multiple threads
2013-12-18 18:52:18 -03:00
Thiago Santos
056420940e
mssdemux: improve flow return handling
...
Handle different flow returns both from the streaming and the
downloading loops
2013-12-18 18:52:18 -03:00
Thiago Santos
e847bea1e1
mssdemux: remove stream locks
...
Simplify the locking by using a single lock instead of having one
lock per stream. This still works and is simpler to maintain.
2013-12-18 18:52:18 -03:00
Thiago Santos
2ce4f6a8e4
mssdemux: avoid downloading not-linked streams
...
When a stream gets a not-linked return, it will be marked as so and
won't download any more new fragments until a reconfigure event
is received. This will make mssdemux expose all pads, but only download
fragments for the streams that are actually being used.
Relying on the pads being linked/unlinked isn't enough in this scenario
as there might be an input-selector downstream that is actually discarding
buffers for a given linked pad.
When streams are switching, the old active stream can be blocked because
input-selector will block not-linked streams. In case the mssdemux's
stream loop is blocked pushing a buffer to a full queue downstream it will
never unblock as the queue will not drain (input-selector is blocking).
In this scenario, stream switching will deadlock as input-selector is
waiting for the newly active stream data and the stream_loop that would
push this data is blocked waiting for input-selector.
To solve this issue, whenever an stream is reactivated on a reconfigure
it will enter into the 'catch up mode', in this mode it can push buffers
from its download thread until it reaches the currrent GstSegment's position.
This works because this timestamp will always be behind or equal to the maximum
timestamp pushed for all streams, after pushing data for this timestamp,
the stream will go back to default and be pushed sequentially from the main
streaming thread. By this time, the input-selector should have already
released the thread.
https://bugzilla.gnome.org/show_bug.cgi?id=711849
2013-12-18 18:52:18 -03:00
Sebastian Dröge
d111f37f74
curl: Fix indention
2013-12-17 12:18:16 +01:00
Haridass Selvaraj
23ab7d8c49
curlftpsink: Optionally create a temporary file during FTP transfer/upload
...
https://bugzilla.gnome.org/show_bug.cgi?id=711620
2013-12-17 12:18:01 +01:00
Aleix Conchillo Flaqué
fefd021ee2
srtp: add 256-bit key support
...
* ext/srtp/gstsrtp.[ch]: added GST_SRTP_CIPHER_AES_256_ICM to
GstSrtpCipherType and new function cipher_key_size.
* ext/srtp/gstsrtpenc.c: maximum key size is now 46 characters (14 for
the salt plus the key). If different ciphers are chosen for RTP and
RTCP the maximum needed key size is expected.
* ext/srtp/gstsrtpdec.c: minor documentation updates.
https://bugzilla.gnome.org/show_bug.cgi?id=720434
2013-12-13 17:51:18 -05:00
Tim-Philipp Müller
b3910cabaf
gsmdec: process all available input frames in one go
...
Instead of parsing, decoding and sending out
lots os little 20ms audio buffers one by one.
2013-12-12 23:34:27 +00:00
Jan Schmidt
8cca2d55f5
soundtouch: Call default event handler for basetransform
...
Make pipeline end properly at EOS and not leak by passing events
to the default event handler.
2013-12-10 23:06:53 +11:00
Jan Schmidt
d56d00cccd
resindvd: Remove racy glib warning.
...
Sometimes, the pad probes can be called twice - for OOB events
travelling downstream. Clear out the pad block id, so it only
gets removed once.
2013-12-10 22:48:47 +11:00
Tim-Philipp Müller
621bf0d22e
gsmdec: fix decoding of audio/ms-gsm variant
...
Alternates between 33 and 32 byte frames, but must start
with a 33 byte frame. This has been broken for ages since
the element was ported to the audio decoder base class.
https://bugzilla.gnome.org/show_bug.cgi?id=709416
2013-12-10 10:57:39 +00:00
Sebastian Dröge
c635cb233f
sbcdec: Require caps to be set before any data processing
2013-12-05 12:05:30 +01:00
Sebastian Dröge
2e80c88129
opusdec: Require caps to be set before any data processing
2013-12-05 12:04:59 +01:00
Sebastian Dröge
f1d863c296
mpg123audiodec: Require caps to be set before any data processing
2013-12-05 12:04:39 +01:00
Sebastian Dröge
f8caef5772
gsmdec: Require caps to be set before any data processing
2013-12-05 12:04:23 +01:00
Sebastian Dröge
0fbe76c4b5
openjpegdec: Use new gst_video_decoder_set_needs_format() API
2013-12-05 11:50:17 +01:00
Sebastian Dröge
23735c703d
daaladec: Use new gst_video_decoder_set_needs_format() API
2013-12-05 11:50:17 +01:00
Sebastian Dröge
a6bf25faa5
openexrdec: Instead of trying to parse the bitstream, just look for the next header
...
This should be more robust and allows us to handle new versions of the
file format if the library supports it.
2013-12-04 22:38:20 +01:00
Sebastian Dröge
26bf14c9fd
openni2src: Check color format
2013-12-03 14:53:24 +01:00
Sebastian Dröge
4b3d2a1b09
openni2src: Add support for the video meta
2013-12-03 14:47:32 +01:00
Sebastian Dröge
dbb64a69f4
openni2src: Use GstVideoFrame API for better handling of strides
...
And do proper stride conversion.
2013-12-03 14:46:25 +01:00
Sebastian Dröge
39c82d0dec
openni2src: Fix buffer handling to actually work and properly timestamp buffers
2013-12-03 14:35:57 +01:00
Sebastian Dröge
7a3eaa8f8a
openni2src: Don't shut down library when finalizing an element instance
2013-12-03 14:35:42 +01:00
Sebastian Dröge
04e8d63597
openni2src: Fix negotiation and creation of a video buffer pool
2013-12-03 14:35:21 +01:00
Sebastian Dröge
034757e936
openni2src: Use debug category properly
2013-12-03 14:34:56 +01:00
Sebastian Dröge
6450d87c63
openni2src: Classification of the element should be Source/Video
2013-12-02 17:03:46 +01:00
Sebastian Dröge
4b7bead2d4
openni2src: Use GstVideoInfo to create caps and don't leak them
2013-12-02 17:02:17 +01:00
Sebastian Dröge
1ba3edf682
openni2src: Some random cleanup and minor fixes
2013-12-02 16:59:14 +01:00
Miguel Casas-Sanchez
64675f0712
openni: Add OpenNNI2 plugin
...
https://bugzilla.gnome.org/show_bug.cgi?id=708914
2013-12-02 11:17:02 +01:00
Tim-Philipp Müller
40c10dc59e
mpeg2enc: avoid list for one single value in template caps
2013-12-01 23:31:25 +00:00
Antonio Ospite
c4fbff50df
mssdemux: fix setting codec_data when using WaveFormatEx
...
When using WaveFormatEx the actual codec private data is at the end of
the wav header structure, after the cbSize field, see for example the
notes at http://wiki.multimedia.cx/index.php?title=WAVEFORMATEX
The previous code was erroneously passing the whole WAVEFORMATEX
structure as codec_data.
The smoothstreaming specifications[1,2,3] always mention WAVEFORMATEX
and never smaller structures like WAVEFORMAT or PCMWAVEFORMAT, so the
buffer can assumed to be at least 18 bytes and always consuming the wav
header gives the (possibly empty) codec private data.
[1] http://web.archive.org/web/20120907004742/http://www.iis.net/community/files/media/smoothspecs/%5BMS-SMTH%5D.pdf
[2] http://download.microsoft.com/download/B/0/B/B0B199DB-41E6-400F-90CD-C350D0C14A53/%5BMS-SSTR%5D.pdf
[3] http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/%5BMS-SSTR%5D.pdf
https://bugzilla.gnome.org/show_bug.cgi?id=699924
2013-11-27 09:26:36 -03:00
Antonio Ospite
f02e7a2439
mssdemux: use mssdemux_debug debug category for gstmssmanifest.c too
2013-11-27 09:26:36 -03:00
Antonio Ospite
8345c5acfb
mssdemux: fix coding style
2013-11-27 09:26:36 -03:00
Sebastian Dröge
de3abac8ed
openexrdec: Consider the pixel aspect ratio stored in the file
2013-11-23 19:11:42 +01:00
Sebastian Dröge
a90585c686
openexr: Add OpenEXR decoder element
...
This currently converts from ARGB64_F16 (16 bit float per component)
to ARGB64 by clipping. We should add support for the F16 format and
implement a conversion filter element that can apply gamma curves,
change exposure, etc.
2013-11-23 18:51:52 +01:00
Sebastian Dröge
da65dccd78
openexr: Add OpenEXR plugin
...
See http://www.openexr.com
2013-11-23 18:51:35 +01:00