| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Doing the contrary has no effect and the consequence is that playback
will start with the lowest bitrate even if we can already handle
higher bitrate.
https://bugzilla.gnome.org/show_bug.cgi?id=755108
|
|
|
|
|
|
|
|
|
| |
Not doing this can lead the demuxer to attempt downloading fragments
for an invalid start time. The server would then send a HTTP
Precondition failed error, the demuxer would try some more times to
download the invalid fragment and eventually error out.
https://bugzilla.gnome.org/show_bug.cgi?id=754523
|
|
|
|
| |
This is not needed any longer.
|
|
|
|
| |
downloaded
|
|
|
|
|
| |
Just freeing the url won't reset the byte ranges and can lead to wrong
ranges being used.
|
|
|
|
|
|
| |
Move the property from subclasses to adaptivedemux, it allows
selecing the percentage of the measured bitrate to be used when
selecting stream bitrates
|
|
|
|
|
|
| |
Allows to set a bitrate directly instead of measuring it internally
based on the received chunks. The connection-speed was removed from
mssdemux and hlsdemux as it is now in the base class
|
|
|
|
|
|
|
|
|
| |
q->bitrate is a guint64, but G_TYPE_INT may read fewer bits
off the stack, and if we pass more then the NULL sentinel
may not be found at the right place, which in turn might
lead to crashes.
https://bugzilla.gnome.org/show_bug.cgi?id=741751
|
|
|
|
|
|
|
|
|
| |
Rework reverse fragment traversing with repetition fields to prevent
NULL pointer deref and avoid never advancing a fragment as the variable
is unsigned and would always be non-negative.
CID #1257627
CID #1257628
|
|
|
|
|
| |
Implement the functions of adaptivedemux to have live support
enabled. This allows mssdemux to refresh the Manifest periodically
|
|
|
|
|
| |
For live streams this makes a difference when resyncing after a
Manifest refresh, otherwise it doesn't know where to restart
|
|
|
|
|
|
|
|
|
|
|
|
| |
Read the "r" attribute from fragments to support fragments nodes
that use repetition to have a shorter Manifest xml.
Instead of doing:
<c d="100" />
<c d="100" />
You can use:
<c d="100" r="2" />
|
| |
|
|
|
|
|
| |
Set void as the return and remove error handling as it could
never fail
|
|
|
|
| |
CID #1251107.
|
| |
|
|
|
|
| |
Makes it faster to debug why certain streams are not showing
|
| |
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=736012
|
|
|
|
|
| |
But redownload the playlists from the original URI if it's not
a permanent redirect.
|
|
|
|
|
| |
It might get stuck when posting the message while
a reconfigure event is being pushed upstream
|
| |
|
|
|
|
|
| |
set up a bin message handler to get notified of error messages from
the internal source element
|
|
|
|
|
| |
Upstream or internal elements are irrelevant and we should
always succeed.
|
|
|
|
|
| |
Store the latest pushed timestamp so that mssdemux streams know
where they are in time
|
|
|
|
| |
There is no internal storage of buffers anymore
|
|
|
|
| |
new bitrate = (old bitrate + (last fragment bitrate * 3)) / 4
|
|
|
|
|
|
| |
Refactor mssdemux to remove uridownloader to use an internal
source element which reduces startup latency and provides smaller
buffers for better buffering management downstream
|
| |
|
|
|
|
|
| |
And include the manifest file as referer in requests, and make sure
to set refresh=TRUE when updating the manifest.
|
|
|
|
|
|
| |
If we did not set the manifest yet, early out in the seeking query.
Coverity 1139737
|
|
|
|
|
|
|
| |
The function is static, the only call site passes a non NULL
pointer, and the pointer is dereferenced before anyway.
Coverity 1139839
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
mssdemux changed a lot and the docs were not correct anymore.
Also adds the 'Adaptive' category to its details
|
|
|
|
|
| |
Can lead to deadlocks as the push might block downstream in
serialized event cases.
|
|
|
|
| |
Prevents race conditions when pipeline is seeking near eos
|
|
|
|
|
| |
Check if codec_data was obtained before trying to use it to
prevent a segfault
|
|
|
|
|
|
| |
Some audio will have its audio format defined by the AudioTag
instead of the Fourcc. Fallback to using AudioTag if Fourcc
isn't available
|
|
|
|
|
|
| |
specially when the gst_task_join is waiting for the task
to go stop and the task itself sets its back to paused, causing
a deadlock on exit.
|
|
|
|
|
|
| |
As streams now flow independently, the GstSegment needs to be put
on each stream so they can track the position of each one correctly
instead of being mixed in a single segment
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=712358
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=712358
|
|
|
|
|
|
| |
Download and push from the same task, makes code a lot simpler
to maintain. Also pushing from separate threads avoids deadlocking
when gst_pad_push blocks due to downstream queues being full
|
|
|
|
|
| |
Show the stream's pad on log messages to make easier to debug
issues in the multiple threads
|
|
|
|
|
| |
Handle different flow returns both from the streaming and the
downloading loops
|