Sebastian Dröge
e3f00d6252
hlsdemux: Port some things from the last commits
2012-10-15 09:47:35 +02:00
Sebastian Dröge
4df3fad9e4
hlsdemux: Never ever stop a task from the task function
...
This will deadlock. Also make sure to always post an error message
if required before pausing tasks from the task function.
Should fix another bunch of deadlocks.
Conflicts:
gst/hls/gsthlsdemux.c
2012-10-15 09:45:14 +02:00
Sebastian Dröge
ca57dd81e4
hlsdemux: Fix lots of deadlocks caused by race conditions in the task state handling
2012-10-15 09:44:09 +02:00
Sebastian Dröge
80a3a014f5
hlsdemux: Fix invalid read
2012-10-12 15:09:07 +02:00
Mark Nauwelaerts
578861abea
replace gst_element_class_set_details_simple with gst_element_class_set_metadata
2012-09-14 17:27:49 +02:00
Wim Taymans
b8f913555d
ffmpegcolorspace is no more
2012-09-14 16:45:34 +02:00
Tim-Philipp Müller
a79edf27d0
gst_message_new_duration -> gst_message_new_duration_changed
2012-09-02 01:48:12 +01:00
Sebastian Dröge
bdc46898de
gst: Add stream-id to stream-start events
2012-08-06 14:05:08 +02:00
Tim-Philipp Müller
41a39d93bf
celt, opencv, wayland, dvbsub, festival, hls: printf format fixes
2012-07-15 12:27:12 +01:00
Wim Taymans
dbed726057
update for task api change
2012-06-20 10:40:42 +02:00
Sebastian Dröge
701da03ff9
elements: Use gst_pad_set_caps() instead of manual event fiddling
2012-06-08 15:58:36 +02:00
Thibault Saunier
52265cce1e
hlsdemux: Add a connection-speed property
...
Conflicts:
gst/hls/gsthlsdemux.c
2012-05-10 14:17:57 -04:00
Thibault Saunier
a8afa9755e
hls: Add a way to get best playlist for a specific bitrate in M3U8Client
...
Make use of it in hlsdemux
2012-05-10 14:08:11 -04:00
Youness Alaoui
594d983ff9
hlsdemux: Add failover protection.
...
Multiple streams with same bandwidth get retried
2012-05-10 14:07:54 -04:00
Youness Alaoui
705a52a1ac
hlsdemux: Calculate the real bitrate and switch to the correct variant
...
We now calculate the actual bitrate using the download speed/size and
then switch directly to the variant that matches our bandwidth the
most.
It will also be able to handle any use case where some of the
variants are not available, and would skip them and go to the next
possible variant.
Conflicts:
gst/hls/gsthlsdemux.c
2012-05-10 14:06:44 -04:00
Youness Alaoui
bfd7a52c5d
hlsdemux: Do not reset the sequence number in a live stream for a normal playlist update.
...
Only for stream switching
2012-05-10 14:00:49 -04:00
Thibault Saunier
f7553b6b0d
hlsdemux: If we update the playlist, make sure the sequence number is never more than 3 fragments before the end
2012-05-10 14:00:19 -04:00
Youness Alaoui
df958b4906
hlsdemux: In a live stream, do not start from 3 fragments before the end.
2012-05-10 13:59:46 -04:00
Youness Alaoui
3cc3e9ad1b
hlsdemux: No need to store position since it's the buffer's timestamp
...
This also will fix the issue of having the current position different
from the actual position of the first buffer in the queue in case
the caching caused a resync of the sequence number.
Conflicts:
gst/hls/gsthlsdemux.c
2012-05-10 13:38:57 -04:00
Youness Alaoui
87d10cf683
hlsdemux: Fallback to previous playlist when switching if the new playlist can't be fetched
2012-05-10 13:23:58 -04:00
Gil Pedersen
da001be15a
hlsdemux: start paused task on new data
2012-04-25 15:58:13 +02:00
Gil Pedersen
1fa5624762
hlsdemux: port to 0.11
2012-04-20 15:34:59 +02:00
Thibault Saunier
513aa08bee
Merge remote-tracking branch 'origin/0.10'
2012-04-05 17:15:11 -04:00
Thibault Saunier
f9b0d59e84
hlsdemux: Replace the fetcher code with a GstURIDownloader object
2012-04-05 10:33:51 -04:00
Thibault Saunier
fef060590f
hls: Make the updates thread a GstTask
2012-04-05 10:15:12 -04:00
Sebastian Dröge
860ccd414d
Merge remote-tracking branch 'origin/0.10'
...
Conflicts:
NEWS
RELEASE
common
configure.ac
docs/libs/gst-plugins-bad-libs-sections.txt
docs/plugins/gst-plugins-bad-plugins.args
docs/plugins/gst-plugins-bad-plugins.hierarchy
docs/plugins/gst-plugins-bad-plugins.interfaces
docs/plugins/inspect/plugin-adpcmdec.xml
docs/plugins/inspect/plugin-adpcmenc.xml
docs/plugins/inspect/plugin-assrender.xml
docs/plugins/inspect/plugin-audiovisualizers.xml
docs/plugins/inspect/plugin-autoconvert.xml
docs/plugins/inspect/plugin-bayer.xml
docs/plugins/inspect/plugin-bz2.xml
docs/plugins/inspect/plugin-camerabin2.xml
docs/plugins/inspect/plugin-celt.xml
docs/plugins/inspect/plugin-dataurisrc.xml
docs/plugins/inspect/plugin-debugutilsbad.xml
docs/plugins/inspect/plugin-dtmf.xml
docs/plugins/inspect/plugin-dtsdec.xml
docs/plugins/inspect/plugin-dvbsuboverlay.xml
docs/plugins/inspect/plugin-dvdspu.xml
docs/plugins/inspect/plugin-faac.xml
docs/plugins/inspect/plugin-faad.xml
docs/plugins/inspect/plugin-gsm.xml
docs/plugins/inspect/plugin-h264parse.xml
docs/plugins/inspect/plugin-mms.xml
docs/plugins/inspect/plugin-modplug.xml
docs/plugins/inspect/plugin-mpeg2enc.xml
docs/plugins/inspect/plugin-mpegdemux2.xml
docs/plugins/inspect/plugin-mpegtsdemux.xml
docs/plugins/inspect/plugin-mpegvideoparse.xml
docs/plugins/inspect/plugin-mplex.xml
docs/plugins/inspect/plugin-pcapparse.xml
docs/plugins/inspect/plugin-rawparse.xml
docs/plugins/inspect/plugin-rtpmux.xml
docs/plugins/inspect/plugin-rtpvp8.xml
docs/plugins/inspect/plugin-scaletempo.xml
docs/plugins/inspect/plugin-schro.xml
docs/plugins/inspect/plugin-sdp.xml
docs/plugins/inspect/plugin-segmentclip.xml
docs/plugins/inspect/plugin-shm.xml
docs/plugins/inspect/plugin-videomaxrate.xml
docs/plugins/inspect/plugin-videoparsersbad.xml
docs/plugins/inspect/plugin-vp8.xml
docs/plugins/inspect/plugin-y4mdec.xml
ext/celt/gstceltdec.c
ext/dts/gstdtsdec.c
ext/modplug/gstmodplug.cc
ext/opus/gstopusenc.c
gst-libs/gst/video/gstbasevideocodec.c
gst-libs/gst/video/gstbasevideocodec.h
gst-libs/gst/video/gstbasevideodecoder.c
gst-libs/gst/video/gstbasevideodecoder.h
gst-libs/gst/video/gstbasevideoencoder.c
gst-libs/gst/video/gstbasevideoencoder.h
gst/adpcmdec/Makefile.am
gst/audiovisualizers/gstbaseaudiovisualizer.c
gst/h264parse/gsth264parse.c
gst/mpegdemux/mpegtsparse.c
gst/mpegtsdemux/mpegtsbase.c
gst/mpegtsdemux/mpegtspacketizer.c
gst/mpegtsdemux/mpegtsparse.c
gst/mpegtsdemux/tsdemux.c
gst/mpegtsdemux/tsdemux.h
gst/mxf/mxfdemux.c
gst/rawparse/gstaudioparse.c
gst/videoparsers/gsth263parse.c
gst/videoparsers/gsth264parse.c
sys/d3dvideosink/d3dvideosink.c
sys/decklink/gstdecklinksink.cpp
sys/dvb/gstdvbsrc.c
sys/shm/gstshmsrc.c
sys/vdpau/h264/gstvdph264dec.c
sys/vdpau/mpeg/gstvdpmpegdec.c
tests/examples/opencv/gst_element_print_properties.c
win32/common/config.h
2012-03-29 17:41:53 +02:00
Wim Taymans
a9ec4d62a8
update for buffer changes
2012-03-28 12:53:09 +02:00
Gil Pedersen
fd92f8d6a2
hlsdemux: add floating point segment duration support
2012-03-12 15:30:35 +01:00
Xavier Queralt
b5004e058b
hlsdemux: don't set the fetcher's location twice
...
Calling gst_element_make_from_uri already does it and filesrc
fails when using file protocol in a location
2012-02-29 09:52:39 +01:00
Xavier Queralt
5b0d2ce2b2
hlsdemux: don't fail for playlists smaller than fragments-cache
...
https://bugzilla.gnome.org/show_bug.cgi?id=670963
2012-02-28 12:29:03 +00:00
Wim Taymans
1119f6ee41
Merge branch 'master' into 0.11
...
Conflicts:
ext/chromaprint/gstchromaprint.c
ext/mpeg2enc/Makefile.am
ext/voaacenc/gstvoaacenc.c
gst/dvbsuboverlay/gstdvbsuboverlay.c
gst/mpegtsdemux/mpegtsbase.c
gst/sdp/gstsdpdemux.c
gst/videoparsers/gsth264parse.c
sys/d3dvideosink/d3dvideosink.c
tests/examples/camerabin/gst-camera-perf.c
tests/examples/camerabin/gst-camerabin-test.c
tests/examples/camerabin2/gst-camerabin2-test.c
tests/examples/mxf/mxfdemux-structure.c
tests/examples/scaletempo/demo-main.c
2012-02-10 16:46:50 +01:00
Vincent Penquerc'h
8147669971
plenty: fixup glib deprecations
2012-01-27 15:47:07 +00:00
Tim-Philipp Müller
699677ed8a
Merge remote-tracking branch 'origin/master' into 0.11
2012-01-13 00:11:54 +00:00
Vincent Penquerc'h
72eb8209a5
hlsdemux: fix queue leak
2012-01-12 15:58:36 +00:00
Vincent Penquerc'h
7521b597f4
various: fix pad template ref leaks
...
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:08:27 +00:00
Wim Taymans
8ec6da7797
more template fixes
2011-11-04 16:41:44 +01:00
Youness Alaoui
55e4206159
hlsdemux: Report the correct timestamp for live streams
...
Buffers would always start with timestamp 0 and we'd start streaming
from the first buffer, but live streams always start streaming from
the last fragment - 3 fragments in the playlist, which makes its
timestamp, as returned by get_next_fragment, be whatever position
they had in the playlist. This makes sure the position correctly
reports the position of the buffer in the playlist, and added a shifting
variable to allow seeking in the middle of fragments.
2011-09-09 12:21:36 +02:00
Youness Alaoui
894ac8f493
hlsdemux/tsdemux: Add HP copyright on work done on HLS
2011-09-09 12:12:12 +02:00
Youness Alaoui
609bdd6642
hlsdemux: set playlist to NULL after unreffing it to avoid a double-unref in the dispose
2011-09-09 12:11:42 +02:00
Youness Alaoui
84e67767a3
hlsdemux: Do not lock the mutex of the fetcher during EOS
...
The fetch_location might call stop_fetcher which could generate an EOS
and cause a deadlock
2011-09-09 12:10:56 +02:00
Youness Alaoui
baf875b928
hlsdemux: Do not join the task from the task's thread itself. join it only in the state change
2011-09-07 22:26:47 +02:00
Youness Alaoui
473e71e1ca
hlsdemux: If a fetch fails, decrement the sequence number
2011-09-03 09:09:02 +02:00
Youness Alaoui
5aa972eab2
hlsdemux: make hlsdemux lock/unlock the m3u8 client when it accesses it
2011-09-03 09:01:40 +02:00
Sebastian Dröge
a82f92aed2
hlsdemux: Reset in PAUSED->READY after chaining up to the parent class
...
Otherwise there are possible race conditions with the streaming thread.
2011-09-02 19:45:21 +02:00
Sebastian Dröge
82bbc76f15
hlsdemux: Reset the internal state going to/from READY instead of NULL
...
This theoretically allows reuse of the element when setting it to READY
instead of NULL.
2011-09-02 14:55:45 +02:00
Sebastian Dröge
445f626016
hlsdemux: Set playlist parsing helper object to NULL after freeing
2011-09-02 14:54:56 +02:00
Youness Alaoui
acacc251fa
hlsdemux: Allow up to 3 consecutive failed downloads before erroring
...
In some networks, especiall in 3G, a fragment download or playlist
update may fail. We allow for up to 3 consecutive failures, while using
the rfc's specs for retry delays before considering that there was an
error on the stream.
2011-09-02 14:52:07 +02:00
Youness Alaoui
8889c5927c
hlsdemux: remove unused argument
2011-09-02 14:51:11 +02:00
Sebastian Dröge
cf8f00d57a
hlsdemux: Just join the task
...
gst_task_join() will already stop the task, no need
to stop it additionally.
2011-08-31 14:48:47 +02:00
Sebastian Dröge
119771eaab
hlsdemux: Join the task instead of just stopping it and not waiting for it to finish
...
Fixes interesting race conditions that cause crashes in decodebin2
because pads are added/removed from child elements although they
should be in READY state already.
2011-08-31 14:47:40 +02:00