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