Commit graph

3602 commits

Author SHA1 Message Date
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