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
Edward Hervey
fc34d163d8
mpegtsbase: Uncomment PAT clearup in _reset
...
The PAT is related to the stream, we therefore want it cleared along
with anything stream related.
This commented section was from the (old) mpegtsparse and *might* have
been related to speeding up DVB start-up. But we have another plan for that.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=724716
2014-02-21 14:07:51 +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
Edward Hervey
c229a87ac3
mpegtspacketizer: Fix ts_to_offset beyond last observed PCR
...
The requested TS might be beyond the last observed PCR. In order to calculate
a coherent offset, we need to use the last and previous-to-last groups.
https://bugzilla.gnome.org/show_bug.cgi?id=721035
2014-02-20 21:52:16 +01:00
Brendan Long
cd3c3ebf01
mpegts: Add gst_mpegts_section_get_data, to allow us to get the original binary section data.
...
https://bugzilla.gnome.org/show_bug.cgi?id=724255
2014-02-20 19:19:03 +01:00
Edward Hervey
142233d917
mpegts: Add size guards for descriptors where neeeded
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=724464
2014-02-20 19:08:33 +01:00
Edward Hervey
4190a1717a
mpeg-ts: Rename private function
...
Calling it _desc_checks when it was in fact used for sections was a
tad confusing ...
2014-02-20 18:14:51 +01:00
Stefan Ringel
beb31d127b
mpegts: Add support for content descriptor
...
https://bugzilla.gnome.org/show_bug.cgi?id=724034
2014-02-17 08:55:37 +01:00
Stefan Ringel
792fc1cf01
mpegts: Add support for component descriptor
...
https://bugzilla.gnome.org/show_bug.cgi?id=724034
2014-02-17 08:55:12 +01:00
Stefan Ringel
347ac5fbd7
mpegts: Add support for extended event desriptor
...
https://bugzilla.gnome.org/show_bug.cgi?id=724034
2014-02-17 08:54:37 +01:00
Stefan Ringel
e6cb996cea
mpegts: Add support for DVB terrestrial delivery system descriptor
...
https://bugzilla.gnome.org/show_bug.cgi?id=724069
2014-02-16 10:13:53 +01:00
Sebastian Dröge
22b4223c86
configure: Rename all variables related to the winks plugin
...
It does not make sense to call them after directshow if they
are for the winks plugin only.
https://bugzilla.gnome.org/show_bug.cgi?id=724100
2014-02-16 10:09:18 +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
5b23cf694c
amcaudiodec: Calculate number of samples per frame for MP3 and use that
...
Some audio decoders (at least the MP3 decoder on MTK based devices) outputs
raw audio in batches of multiple audio frames. We need to handle that
properly, otherwise the base class will be kind of unhappy.
2014-02-14 12:51:50 +01:00
Sebastian Dröge
aeeeedd7c7
amcaudiodec: Error out if we get an invalid raw audio buffer size
2014-02-14 12:51:50 +01:00
Sebastian Dröge
cea218db6f
amcvideodec: Store return value of gst_caps_merge_structure()
...
The inputs are both invalid afterwards.
2014-02-14 12:51:50 +01:00
Sebastian Dröge
faf48d26bf
amcvideodec: Release buffer to Android if allocating output failed
2014-02-14 12:51:50 +01:00
Sebastian Dröge
2476b926b1
amcaudiodec: Release buffer back to Android if allocating output fails
2014-02-14 12:51:50 +01:00
Sebastian Dröge
a1d9f6c796
uridownloader: Keep alive connections if the source supports that
2014-02-13 10:44:58 +01:00
Sebastian Dröge
c76ea2919f
uridownloader: Re-use old source element if possible
...
Allows to implement keep-alive handling in the source element.
2014-02-13 10:06:48 +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
d436844434
uridownloader: Fix potential deadlock
...
The streaming thread might use our lock, so shutting
down the element while holding that lock calls for problems.
2014-02-12 18:06:43 +01:00
Sebastian Dröge
8cd6208b7d
uridownloader: Shutdown the source element before unlinking it
...
Otherwise we might get warnings about pushing to unlinked pads.
Based on a patch by Andoni Morales.
2014-02-12 18:01:10 +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
2a38c1409b
uridownloader: Add support for compressed downloads
...
Very useful for playlists, less useful for media files.
2014-02-12 13:08:29 +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
3726c00b95
uridownloader: Reset cancelled state after fetching an URI
...
Otherwise it will never ever be able to fetch anything after an
error until the user resets it manually.
2014-02-11 15:26:01 +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