Thiago Santos
afc392c47b
dashdemux: do not try to ref null pointer
...
Playlists might be missing the availability start time, so check for
it before trying to ref the object
2014-12-29 11:39:22 -03:00
Thiago Santos
a862ba4b45
dashdemux: run gst-indent on mpdparser
...
Run gst-indent on mpdparser to have it stop complaining on every
commit
2014-12-29 11:39:22 -03:00
David Waring
1c0c6b6f48
dashdemux: Change period when setting by period id.
...
Make gst_mpd_client_set_period_id set the current period index when it finds a
period with a matching period id.
https://bugzilla.gnome.org/show_bug.cgi?id=741322
2014-12-10 16:22:31 -03:00
David Waring
b03acbf584
dashdemux: Find current segment in the streams that have just been setup
...
Using demux->streams will just skip the whole loop as demux->streams will
always be NULL at that point
https://bugzilla.gnome.org/show_bug.cgi?id=741285
2014-12-09 21:08:10 -03:00
Thiago Santos
f48fa7e763
dashdemux: fix double unref of object
...
the datetime is already released by the end of the function
2014-12-02 15:52:54 -03:00
David Waring
95c3fdc193
dashdemux: Find the current period in a live stream
...
Start from the correct period on a live stream
https://bugzilla.gnome.org/show_bug.cgi?id=737421
2014-12-02 14:22:09 -03:00
David Waring
306ca0cdf6
dashdemux: Fix period selection for live streams
...
Fix period selection and properly error out when update cannot be done
https://bugzilla.gnome.org/show_bug.cgi?id=725298
2014-12-02 13:24:52 -03:00
Thiago Santos
f04d351cd9
dashdemux: replace the streams with the new mpd client's streams
...
Otherwise it won't update with the new segment info from the playlist
update
2014-11-30 21:56:25 -03:00
Thiago Santos
28d66ea589
dashdemux: when updating the manifest, set the uri
...
This will allow dashdemux to create the correct full path URIs to
continue downloading fragments
2014-11-30 21:56:25 -03:00
Thiago Santos
58a1b0d058
dashdemux: port to adaptive demux
2014-11-30 21:56:25 -03:00
Matthieu Bouron
1d733eacf7
dashdemux: do not override last known stream error
...
https://bugzilla.gnome.org/show_bug.cgi?id=736141
2014-11-07 19:52:00 -03:00
Thiago Santos
39ba21619e
dashdemux: make sure flushes have the same seqnum as the seek event
...
They are part of the same operation and should preserve the seqnum
2014-11-07 19:16:47 -03:00
Thiago Santos
e60bdc553c
dashdemux: simplify seek to eos handling
...
Remove redundant flush stop pushing and remove a goto to make
the code flow simpler
2014-11-07 19:09:15 -03:00
Matthieu Bouron
5ae991095d
dashdemux: send missing FLUSH_STOP/EOS when no seeking period is found
...
https://bugzilla.gnome.org/show_bug.cgi?id=736800
2014-11-07 19:02:02 -03:00
Tim-Philipp Müller
f216b7bb11
Sprinkle some G_PARAM_DEPRECATED and #ifndef GST_REMOVE_DEPRECATED
2014-11-02 17:19:34 +00:00
Brendan Long
9b94f29261
dash: Remove obsolete README.
...
https://bugzilla.gnome.org/show_bug.cgi?id=738848
2014-10-23 10:26:54 +02:00
David Waring
29f1f4533e
dash: Use GstUri to join URIs
2014-09-29 12:22:19 +03:00
Matthieu Bouron
22c7559152
dashdemux: mark first buffer as discont after restarting a download task
...
Mark first buffer as discont after restarting a download task, so
downstream can reset its state to properly handle the new fragment.
Related issue: https://bugzilla.gnome.org/show_bug.cgi?id=736318
https://bugzilla.gnome.org/show_bug.cgi?id=736319
2014-09-24 13:30:20 -03:00
Thiago Santos
2273c15f15
dashdemux: push a time segment when restarting streaming
...
This should inform demuxers/decoders downstream that the stream is
about to start from a new position and they should flush accordingly
https://bugzilla.gnome.org/show_bug.cgi?id=736319
2014-09-24 12:35:37 -03:00
George Kiagiadakis
55032ae5fe
dashdemux: synchronize with the download loop thread to signal it to continue
...
If EOS or ERROR happens before the download loop thread has reached its
g_cond_wait() call, then the g_cond_signal doesn't have any effect and
the download loop thread stucks later.
https://bugzilla.gnome.org/show_bug.cgi?id=735663
2014-09-18 13:38:25 -03:00
Thiago Santos
24c99712a8
dashdemux: fix clearing of eos state in pads
...
The internal pad still keeps its EOS flag and event as it can be assigned
after the flush-start/stop pair is sent. The EOS is assigned from the streaming
thread so this is racy.
To be sure to clear it, it has to be done after setting the source to READY to
be sure that its streaming thread isn't running.
https://bugzilla.gnome.org/show_bug.cgi?id=736012
2014-09-18 12:14:30 -03:00
Sebastian Dröge
1ce7d89868
dash: Actually retry 3 times as advertised instead of 2
2014-09-15 11:59:49 +03:00
Matthieu Bouron
4ed7c7919a
dashdemux: improve position detection when a download restart
...
Query other src pads before falling back to the position of the last
known pushed segment (which can be far ahead in time).
https://bugzilla.gnome.org/show_bug.cgi?id=736421
2014-09-11 18:25:19 -03:00
Sebastian Dröge
51a9e13bf2
dashdemux: Don't send flush events to deactivated pads
...
https://bugzilla.gnome.org/show_bug.cgi?id=736012
2014-09-04 18:21:25 +03:00
Tim-Philipp Müller
334a71506c
dashdemux: fix abort in error code path with newer glib
...
Don't forget to unlock mpd client again when erroring out.
Fixes abort when g_mutex_clear() is called on a locked mutex.
2014-08-21 16:25:55 +01:00
Thiago Santos
1cabb3b5a5
dashdemux: unref pad reference when removing internal source in error
...
Avoids leaking the pad in error situations
2014-08-19 17:17:33 -03:00
Thiago Santos
4afa05e567
dashdemux: read language from ContentComponent node as a fallback
...
If the language is not specified in the AdaptationSet, use the ContentComponent
node to get it. We only get it if there is only a single ContentComponent as
it doesn't seem clear on what to do if there are multiple entries
https://bugzilla.gnome.org/show_bug.cgi?id=732237
2014-08-19 16:02:52 -03:00
Matthieu Bouron
82fdb3aefc
dashdemux: push language code tag
...
Language code tag is retrieved from the AdaptationSet language
property.
https://bugzilla.gnome.org/show_bug.cgi?id=732237
2014-08-19 15:34:01 -03:00
George Kiagiadakis
ea90ceac01
dashdemux: support downloading segments in reverse order
...
When a seek with a negative rate is requested, find the target
segment where gstsegment.stop belongs in and then download from
this segment backwards until the first segment.
This allows proper reverse playback.
2014-08-07 16:52:37 +03:00
Thiago Santos
24815a5feb
dashdemux: return the error to the source immediately to stop faster
...
When flushing, this will prevent dashdemux from trying to download more
fragments or more chunks of the same fragment before stopping.
Also improves the error handling to not transform everything non-ok into
an error.
https://bugzilla.gnome.org/show_bug.cgi?id=734014
2014-08-01 10:37:15 -03:00
Sebastian Dröge
ae679506b1
dashdemux: Always use the redirect target to resolve relative URIs
...
But redownload the playlists from the original URI if it's not
a permanent redirect.
2014-05-28 12:47:51 +02:00
Thiago Santos
16d969b945
dashdemux: mpdparser: properly unref gstdatetime
...
Avoid leaking the GstDateTime instances when summing dates
CID #1212143
2014-05-13 11:22:58 -03:00
Thiago Santos
288e8d5c0e
dashdemux: mpdparser: avoid double free of segment timeline node
...
The parsing function already frees the old value (if any), avoid a double
free by not freeing it before calling the function without setting the
pointer to NULL
Coverity ID: 1212178
2014-05-13 10:45:29 -03:00
Thiago Santos
64bea0252b
dashdemux: mpdparser: avoid double free
...
The _parse_url function already frees the previous pointer, avoid
freeing it before without setting to null or we have a double free.
Coverity ID: 1212181
Coverity ID: 1212180
Coverity ID: 1212179
2014-05-13 10:13:37 -03:00
Edward Hervey
651a4ae2e7
dash: Don't leak GstActiveStream
...
CID #1212142
2014-05-13 13:52:48 +02:00
Thiago Santos
4c59f7df4c
dashdemux: initialize the mutex and cond for fragment download
2014-05-12 16:27:37 -03:00
Thiago Santos
21b1d37023
dashdemux: remove unused stream uridownloader
...
The uridownloader for the stream fragments isn't used anymore.
2014-05-11 15:26:45 -03:00
Thiago Santos
a5b3ba09b8
dashdemux: deprecate max-buffering-time property
...
It is not used as dashdemux doesn't have a internal buffer
for fragments anymore
2014-05-07 01:00:50 -03:00
Thiago Santos
e9638fe3fd
dashdemux: removing old unused code
...
The 'catch up mode' isn't needed anymore since dashdemux
is downloading and pushing from the same thread
2014-05-07 01:00:49 -03:00
Thiago Santos
5df2edf80c
dashdemux: remember to set starting fragment to new fragments
2014-05-07 01:00:49 -03:00
Thiago Santos
733c7c0f16
dashdemux: handle a few more error cases
...
related to missing plugins, bad URI and a lockup on dealing with
errors from the source.
2014-05-07 01:00:49 -03:00
Thiago Santos
173c353716
dashdemux: Only set timestamp to the first buffer of fragments
...
Setting it to the other parts of the fragment is slightly wrong
and misleading as it isn't accurate enough.
2014-05-07 01:00:49 -03:00
Thiago Santos
f09dd7e7a5
dashdemux: handle error messages from the sources
...
Set up a message handling function to be able to catch errors
from the source element and signal the cond to allow the download
loop to retry the download.
2014-05-07 01:00:49 -03:00
Thiago Santos
15952dcd8e
dashdemux: check for errors between downloads
...
To abort earlier in case of failures
2014-05-07 01:00:49 -03:00
Thiago Santos
b5998a4c3b
dashdemux: Always accept the latency configure event
...
Upstream or internal elements are irrelevant and we should
always succeed.
2014-05-07 01:00:49 -03:00
Thiago Santos
d6671e73a6
dashdemux: measure download rate just like hlsdemux
...
new bitrate = (old bitrate + (last fragment bitrate * 3)) / 4
2014-05-07 01:00:49 -03:00
Thiago Santos
bed3d66605
dashdemux: remove uridownloader from fragments download
...
Instead, use a source element linked to a ghostpad to provide
smaller buffers and more granular control for downstream
buffering elements while also reducing startup latency
2014-05-07 01:00:49 -03:00
Sebastian Dröge
bb8227e279
dashdemux: Update for uri downloader API changes
2014-05-05 09:41:51 +02:00
Sebastian Dröge
f910ffb637
dashdemux: Update for URI downloader API changes
...
And include the MPD file as referer in requests, and make sure
to set refresh=TRUE when updating the MPD.
2014-05-02 10:39:22 +02:00
Vincent Penquerc'h
2e940ba253
dashdemux: do not ignore failure to register typefinder
...
Coverity 1139629
2014-04-10 17:52:02 +01:00