Age | Commit message (Collapse) | Author |
|
When this demuxer was created, there didn't seem to be any
consensus of a common short name for this protocol. Now
the consensus seems to be to call it hls.
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|
|
|
update
This is mandated in draft-pantos-http-live-streaming-07, section
6.3.4.
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|
According to draft-pantos-http-live-streaming-07, 6.3.4,
the duration of the last media segment in the playlist
should be used as initial minimum reload delay.
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|
This avoids a segfault if the probe function wasn't able to
determine the format.
The bug was found by Panagiotis H.M. Issaris.
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|
|
|
The Apple HTTP Live Streaming demuxer's implementation of
seeking searches for the MPEG TS segment which contains the
requested timestamp. In its current implementation it assumes
that the first segment will start from 0.
But, MPEG TS streams do not necessarily start with timestamp
(near) 0, causing seeking to fail for those streams.
This also occurs when using live streaming of HTTP Live Streams.
In this case sliding playlists may be used, which means that in
that case only the last x encoded segments are stored, the earlier
segments get deleted from disk and removed from the playlist.
Because of this, when starting playback of a stream in the middle
of such a broadcast, the initial segment fetched after parsing
the m3u8 playlist will not start from timestamp (near) 0, causing
(the admittedly limited live) seeking to fail.
This patch changes this demuxers seeking implementation to use
the initial DTS as an offset for searching the segments containing
the requested timestamp.
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|
Signed-off-by: Anton Khirnov <anton@khirnov.net>
|
|
Not used anywhere yet, support for passing options from avio_open() will
follow.
|
|
Change all uses of these function to pass the relevant
callback on.
|
|
|
|
Manual replacements are done in this commit.
In many cases, the id is some constant made up number (e.g. 0 for video
and 1 for audio), which is then not used in the demuxer for anything.
Those ids are removed.
|
|
|
|
The v->ctx is always not NULL now, check for streams presence to
mark the read_header state.
Fixes bug #25, possibly introduced by 603b8bc
|
|
It's more readable and less prone to breakage.
|
|
Signed-off-by: Mans Rullgard <mans@mansr.com>
|
|
Deprecate the last remaining member of AVFormatParameters.
|
|
|
|
Adding _POSIX_C_SOURCE to CPPFLAGS globally produces all sorts of problems
since it causes certain system functions to be hidden on some (BSD) systems.
The solution is to only add the flag on systems that really require it, i.e.
glibc-based ones.
This change makes BSD systems compile out-of-the-box without the need for
adding specific flags manually. It also allows dropping a number of flags
set manually on a file-per-file basis, but were only present to work around
breakage introduced by the presence of _POSIX_C_SOURCE.
Also add _XOPEN_SOURCE to CPPFLAGS for glibc systems. We use XSI extensions
in several places already, so it is preferable to define it globally instead
of littering source files with individual #defines only needed for glibc.
|
|
If there are no variants, the total bitrate of the single
stream isn't known, and exporting variant_bitrate = 0 does
look weird, since there really aren't any variants.
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|
This should hopefully fix roundup issue 2586.
This commit only implements it in the demuxer, not in the
protocol handler. If desired, some of the code could be
refactored to be shared by both implementations.
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|
This helps callers to intelligently switch between bitrate
variants.
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|
Make AVIO_FLAG_ access constants work as flags, and in particular fix
the behavior of functions (such as avio_check()) which expect them to
be flags rather than modes.
This breaks API.
|
|
This code could be executed if the demuxer reads more than one
segment before returning from av_open_input_stream.
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|
|
|
|
|
|
|
The previous commit didn't do this straight away, to keep the
diff slightly simpler.
|
|
This avoids issues where EOF at the end of the segment is given
the variant demuxer. Now the demuxers only see one single data
stream (as when using the applehttp protocol handler).
|
|
This is a preparation for a restructuring of the demuxer, to
minimize the later diff.
|
|
A similar variable for the total stream duration was changed to
int64_t in b79c3df08807c96a945, due to overflows in some odd
streams.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
|
|
Signed-off-by: Mans Rullgard <mans@mansr.com>
|
|
This is shared by both applehttp demuxer and protocol.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
|
|
Signed-off-by: Mans Rullgard <mans@mansr.com>
|
|
Functions interrupted by url_interrupt_cb should not be restarted.
Therefore using AVERROR(EINTR) was wrong, as it did not allow to distinguish
when the underlying system call was interrupted and actually needed to be
restarted.
This fixes roundup issues 2657 and 2659 (ffplay not exiting for streamed
content).
Signed-off-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
|
|
AVIOContext.eof_reached should be used directly instead.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
|
|
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
|
|
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
|
|
This fixes roundup issue 2583.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
|
|
This also lists the objects from those two libraries as internal (by adding
the ff_ prefix) so that they can then be hidden via linker scripts.
|
|
The key string is supposed to contain the equals character,
too. Since the checked string was wrong, and the return value
check was wrong too, it incorrectly seemed to work right before.
Signed-off-by: Mans Rullgard <mans@mansr.com>
|
|
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|
Originally committed as revision 25319 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
Originally committed as revision 25318 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
Originally committed as revision 25317 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
Originally committed as revision 25316 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
Originally committed as revision 24839 to svn://svn.ffmpeg.org/ffmpeg/trunk
|
|
Originally committed as revision 24834 to svn://svn.ffmpeg.org/ffmpeg/trunk
|