Thibault Saunier
513aa08bee
Merge remote-tracking branch 'origin/0.10'
2012-04-05 17:15:11 -04:00
Sebastian Dröge
cda192b3b7
gst: Update for GST_PLUGIN_DEFINE() API changes
2012-04-05 18:02:56 +02:00
Thibault Saunier
70056a37c4
hls: Some more debugging
2012-04-05 11:51:40 -04:00
Thibault Saunier
f9b0d59e84
hlsdemux: Replace the fetcher code with a GstURIDownloader object
2012-04-05 10:33:51 -04:00
Thibault Saunier
2415f9080d
hls: Minor cleanup in GstUriDownloader
2012-04-05 10:33:51 -04:00
Andoni Morales Alastruey
71b9f57b63
hlsdemux: Factor out all the fetcher code in a GstURIDownloader class
...
This class is meant to be reusable by other components
2012-04-05 10:33:51 -04:00
Thibault Saunier
5e85aaf11d
hls: Do not add reference to buffers passed in GstFragment
...
We just steal the reference to the buffer, which means we can keep writing metadatas
on the buffers.
2012-04-05 10:33:51 -04:00
Thibault Saunier
fdaa60c44f
hls: Minor GstFragment cleanup
2012-04-05 10:15:13 -04:00
Andoni Morales Alastruey
501d42fa78
hls: Add a GstFragment class that represents a fragment in a m3u playlist
2012-04-05 10:15:12 -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
Tim-Philipp Müller
f8f4620451
build: fix CFLAGS order and LIBS order
...
_BAD_CFLAGS should always come first, then GST_PLUGINS_BASE_CFLAGS,
then GST_BASE_CFLAGS then GST_CFLAGS. Same for libs: first plugins
base libs, then GST_BASE_LIB then GST_LIBS.
2012-02-03 00:50:33 +00: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
Sebastian Dröge
24517ba784
hlsdemux: Fix merge mistake from last commit
2011-09-09 12:27:57 +02: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
Youness Alaoui
6133608789
hlsdemux: Add a get_target_duration and get_current_uri api to m3u8_client
2011-09-03 09:00:50 +02:00
Youness Alaoui
a252794a03
hlsdemux: Make the m3u8 client thread-safe
2011-09-03 09:00:35 +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
0561c3751c
hlsdemux: Remove obsolete FIXME comment
2011-09-02 15:00:58 +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
Sebastian Dröge
c8b7ae1ffa
hlsdemux: Remove unused variable
2011-08-31 12:12:59 +02:00
Youness Alaoui
0c97deb59d
hlsdemux: switch to higher/lower bitrate by more than one step at a time
2011-08-31 12:12:33 +02:00
Youness Alaoui
6436747eb0
hlsdemux: remove spamming GST_LOG_OBJECT
2011-08-31 12:11:32 +02:00
Youness Alaoui
277a7d05b2
hlsdemux: If paused, do not cache fragments until out of memory error!
...
We should stop the update thread in PAUSED state and avoid fetching
new fragments when the queue is not empty. The queue should always be
empty since we push data into a queue. Also, in totem, if we seek and
pause the stream while it's buffering, then the state will stay playing
for some reason, so it's best not to continue fetching fragments forever.
2011-08-31 12:11:20 +02:00
Youness Alaoui
917708df82
hlsdemux: start/stop update thread and keep track of status
2011-08-31 12:10:32 +02:00
Youness Alaoui
4724b9a5b6
hlsdemux: Post duration message when we parse the playlist
2011-08-31 12:09:53 +02:00
Youness Alaoui
f93939b46c
hlsdemux: Send a flush-stop when switching pads. Fixes A->A/V sync issue.
...
This is to ensure that we reset the accumulate segment on the sinks
so if we start with audio only then switch to audio+video, then both
sinks will have the same segments and will be synchronized.
2011-08-31 12:09:38 +02:00
Youness Alaoui
ed5a5cc139
hlsdemux: seems there was a typo, free the adapter if it contains data, not if already empty
2011-08-30 16:18:30 +02:00
Youness Alaoui
4a6d888961
hlsdemux: oups, we need to empty the queue after freeing its content
2011-08-30 16:18:08 +02:00
Youness Alaoui
cb30cd242c
hlsdemux: do not broadcast the fetcher_cond on bus error if we're cancelled
...
If we cancel the fetch and call the stop_fetcher, which holds the lock,
when it sets the fetcher's state to NULL, it might send an error
on the bus. In that case, we must ignore it, otherwise it will try
to take the lock and will block forever.
2011-08-30 16:16:54 +02:00