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
Vincent Penquerc'h
1a6dbe1e27
mpegvideoparse: make this build with older glib
...
g_list_free_full is a new convenience function.
Replace it with g_list_foreach and g_list_free.
https://bugzilla.gnome.org/show_bug.cgi?id=658450
2011-09-07 14:34:33 +02:00
Sebastian Dröge
724d7a3def
videoparsers: Make the h263 and (new) mpeg video parser autopluggable
2011-09-07 13:47:51 +02:00
George Kiagiadakis
ddf32e2c49
h264parse: Fix IDR position marking when the IDR is split into several NALs
2011-09-07 13:36:12 +03:00
Sebastian Dröge
e86e66e86c
h263parse: Add all always present fields to the src template caps
2011-09-07 11:29:37 +02:00
Sebastian Dröge
89aa5dae9d
diracparse: Add all fields to the src template caps
2011-09-07 11:29:37 +02:00
Sebastian Dröge
2adf76eb52
videoparsers: Allow parsed streams to be passed through the parsers
2011-09-07 11:29:37 +02:00
Sebastian Dröge
d4147a2798
h264parse: Put stream-format and alignment into the src template caps
...
Also remove the parsed field from the sink template caps.
2011-09-07 11:29:37 +02:00
Sebastian Dröge
456335eab4
h264parse: Change rank to PRIMARY+1 to have h264parse autoplugged
2011-09-07 11:29:36 +02:00
Sebastian Dröge
29a358e8cd
diracparse: Constify some arrays
2011-09-07 11:29:36 +02:00
Sebastian Dröge
cfb986b6bf
h264parse: Add Converter to classification
...
This parser can convert between different alignments and stream-formats.
2011-09-06 13:21:28 +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
Thibault Saunier
b968f82b18
h264parse: Port to the new h.264 parsing library
2011-09-02 15:46:02 +02:00
Thibault Saunier
a983b29a49
mpegvideoparse: Port to the new mpeg parsing library
2011-09-02 15:46:02 +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
Robert Swain
db0739e54f
camerabin2: Add a flag to disable image conversion elements
...
If we know that our camera source element produces buffers at the same
resolution and appropriate colourspace for the output, we don't need any
of the generic conversion elements in encodebin. This reduces caps
negotiation overheads among other things.
2011-09-01 15:57:50 +02:00
Thiago Santos
2ed3d1b309
camerabin2: Micro optimize encodebin pads linking
...
Reduce one check in encodebin pads linking on camerabin2 by
using the link_pads_full version
2011-08-31 15:45:18 -03:00
Thiago Santos
ac7fc0d357
camerabin2: Use explicit boolean literals to make gobject happy
...
gobject boolean properties are strict and only accept 1 or 0, otherwise
they throw an assertion.
2011-08-31 15:45:18 -03: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
59c61209cf
tsdemux: Need to flush all streams when we receive a flush-start
2011-08-30 16:17:47 +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
Jonas Larsson
fc0fe37b10
hlsdemux: Split playslist on \r\n not just \n
2011-08-30 16:16:07 +02:00
Youness Alaoui
6e9eeb7678
hlsdemux: Do not succeed a download if the fetcher had an error
2011-08-30 16:15:41 +02:00
Youness Alaoui
e22c300be2
hlsdemux: Rename functions that need to be called with a locked mutex
2011-08-30 16:15:28 +02:00
Youness Alaoui
50d0468241
hlsdemux: We must signal the fetcher_cond while holding its lock
2011-08-30 16:15:03 +02:00
Youness Alaoui
3054355dc1
hlsdemux: We do not need to set the current playlist to the main one
...
When caching fragments, if we set the current playlist to main, then
it will always think it's a live stream (no endlist in it) so it will
force the redownload of the main playlist after every seek, which is
unnecessary. Also, it causes a race condition where a seek migh happen
during that redownload, and we'll think we're trying to seek a live pipeline.
2011-08-30 16:14:30 +02:00
Thiago Santos
5ae630489c
camerabin2: Make viewfinder's queue a thread limit only
...
Reduce the viewfinder queue limits to only allow it to store
one buffer, preventing the queue from holding old buffers for
too long. This also avoids showing slightly outdated frames on
the viewfinder when the source has already produced new ones
and improves the buffer recycling rate, important for sources
that use bufferpools.
2011-08-26 09:43:14 -03:00
Youness Alaoui
e380fbb019
tsdemux: In push mode, do not start pull loop if upstream seek fails
2011-08-26 09:51:46 +02:00
Youness Alaoui
108493ee51
hlsdemux: do not make the update_thread joinable
2011-08-26 09:51:46 +02:00