1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00
FFmpeg/libavformat
Panagiotis H.M. Issaris 6f20921dee Fix seeking when using Apple HTTP Live Streaming
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.
2011-11-15 18:35:03 +01:00
..
4xm.c
a64.c
aacdec.c
ac3dec.c Merge remote-tracking branch 'qatar/master' 2011-10-21 02:01:26 +02:00
act.c Rename remaining get_le32 to avio_rl32. 2011-11-14 07:22:31 +01:00
adts.h
adtsenc.c Merge remote-tracking branch 'qatar/master' 2011-10-21 02:01:26 +02:00
aea.c
aiff.h Merge remote-tracking branch 'qatar/master' 2011-11-12 02:50:25 +01:00
aiffdec.c
aiffenc.c
allformats.c mkvtimestamp v2 muxer: rename so as to avoid confusion with SMPTE timecodes. 2011-11-13 05:19:28 +01:00
amr.c
anm.c
apc.c
ape.c
apetag.c
apetag.h
applehttp.c Fix seeking when using Apple HTTP Live Streaming 2011-11-15 18:35:03 +01:00
applehttpproto.c Merge remote-tracking branch 'qatar/master' 2011-11-14 00:33:39 +01:00
asf.c
asf.h asfenc: rename put_guid to ff_put_guid 2011-11-05 16:51:25 +01:00
asfcrypt.c
asfcrypt.h
asfdec.c asfdec: mark only ts1 as av_unused 2011-11-15 13:06:36 +01:00
asfenc.c Never use MP3 as default audio codec for asf. 2011-11-11 23:49:30 +01:00
assdec.c
assenc.c
au.c Merge remote-tracking branch 'qatar/master' 2011-11-03 02:16:26 +01:00
audiointerleave.c Check for OOM after av_mallocz() in ff_interleave_add_packet(). 2011-11-08 10:35:14 +01:00
audiointerleave.h
avc.c Merge remote-tracking branch 'qatar/master' 2011-11-11 02:50:35 +01:00
avc.h
avformat.h Merge remote-tracking branch 'qatar/master' 2011-11-14 00:33:39 +01:00
avi.c
avi.h
avidec.c Replace all usage of strcasecmp/strncasecmp 2011-11-06 11:52:57 +02:00
avienc.c
avio_internal.h Merge remote-tracking branch 'qatar/master' 2011-11-14 00:33:39 +01:00
avio.c Merge remote-tracking branch 'qatar/master' 2011-11-14 00:33:39 +01:00
avio.h Merge remote-tracking branch 'qatar/master' 2011-11-14 00:33:39 +01:00
aviobuf.c Merge remote-tracking branch 'qatar/master' 2011-11-14 00:33:39 +01:00
avisynth.c Merge remote-tracking branch 'qatar/master' 2011-11-03 02:16:26 +01:00
avlanguage.c
avlanguage.h
avs.c
bethsoftvid.c
bfi.c
bink.c
bintext.c Rename remaining get_le16 to avio_rl16. 2011-11-14 07:22:31 +01:00
bit.c Rename remaining ByteIOContext to AVIOContext. 2011-11-14 07:22:30 +01:00
bmv.c BMV demuxer and decoder 2011-11-08 00:36:45 +02:00
c93.c
cache.c Merge remote-tracking branch 'qatar/master' 2011-11-14 00:33:39 +01:00
caf.c
caf.h
cafdec.c Do not use strcpy for "strings" starting with \0. 2011-11-03 20:22:10 +01:00
cafenc.c
cavsvideodec.c
cdg.c
concat.c Merge remote-tracking branch 'qatar/master' 2011-11-14 00:33:39 +01:00
crcenc.c
crypto.c avio: add support for passing options to protocols. 2011-11-13 13:14:39 +01:00
cutils.c Merge remote-tracking branch 'qatar/master' 2011-11-03 02:16:26 +01:00
daud.c
dfa.c
diracdec.c
dnxhddec.c
dsicin.c Merge remote-tracking branch 'qatar/master' 2011-10-30 01:33:41 +02:00
dtsdec.c
dv.c Merge remote-tracking branch 'qatar/master' 2011-11-03 02:16:26 +01:00
dv.h Merge remote-tracking branch 'qatar/master' 2011-10-21 02:01:26 +02:00
dvenc.c Merge remote-tracking branch 'qatar/master' 2011-10-21 02:01:26 +02:00
dxa.c
eacdata.c
electronicarts.c
ffm.h
ffmdec.c
ffmenc.c
ffmeta.h
ffmetadec.c Merge remote-tracking branch 'qatar/master' 2011-10-21 02:01:26 +02:00
ffmetaenc.c
file.c Merge remote-tracking branch 'qatar/master' 2011-11-03 02:16:26 +01:00
filmstripdec.c
filmstripenc.c
flacdec.c Merge remote-tracking branch 'qatar/master' 2011-10-21 02:01:26 +02:00
flacenc_header.c Merge remote-tracking branch 'qatar/master' 2011-10-21 02:01:26 +02:00
flacenc.c Replace vendor string in Ogg and FLAC muxers. 2011-11-02 10:43:39 +01:00
flacenc.h
flic.c
flv.h
flvdec.c flv: Skip invalid index 2011-11-08 17:39:39 +01:00
flvenc.c Merge remote-tracking branch 'qatar/master' 2011-11-03 02:16:26 +01:00
framecrcenc.c
g723_1.c Rename remaining url_ftell to avio_tell. 2011-11-14 07:22:31 +01:00
g729dec.c Minimal patch for G.729 demuxer 2011-10-29 22:08:25 +02:00
gif.c
gopher.c Merge remote-tracking branch 'qatar/master' 2011-11-14 00:33:39 +01:00
gsmdec.c gsm demuxer: do not allocate packet twice. 2011-11-02 19:36:04 -04:00
gxf.c gxf: add timecode information to metadata 2011-11-01 18:41:46 +01:00
gxf.h
gxfenc.c
h261dec.c
h263dec.c
h264dec.c
http.c Merge remote-tracking branch 'qatar/master' 2011-11-14 00:33:39 +01:00
http.h Merge remote-tracking branch 'qatar/master' 2011-11-11 02:50:35 +01:00
httpauth.c Merge remote-tracking branch 'qatar/master' 2011-11-12 02:50:25 +01:00
httpauth.h
id3v1.c
id3v1.h
id3v2.c Merge remote-tracking branch 'qatar/master' 2011-11-03 02:16:26 +01:00
id3v2.h Merge remote-tracking branch 'qatar/master' 2011-10-24 01:01:21 +02:00
id3v2enc.c id3v2enc: av_strcasecmp() 2011-11-03 20:21:01 +01:00
idcin.c
idroqdec.c
idroqenc.c
iff.c Merge remote-tracking branch 'qatar/master' 2011-11-10 03:45:23 +01:00
img2.c Merge remote-tracking branch 'qatar/master' 2011-11-14 00:33:39 +01:00
ingenientdec.c
internal.h Check for OOM after av_mallocz() in ff_interleave_add_packet(). 2011-11-08 10:35:14 +01:00
ipmovie.c
isom.c Support decoding "m1v " mpeg1video in mov. 2011-11-08 10:33:21 +01:00
isom.h Merge remote-tracking branch 'qatar/master' 2011-10-29 02:08:54 +02:00
iss.c
iv8.c Merge remote-tracking branch 'qatar/master' 2011-10-28 03:05:16 +02:00
ivfdec.c
ivfenc.c
jvdec.c
latmenc.c Merge remote-tracking branch 'qatar/master' 2011-10-21 02:01:26 +02:00
libavformat.v lavf: add init_put_byte() to the list of visible symbols. 2011-10-28 21:46:30 +02:00
libmodplug.c Replace remaining av_new_stream() with avformat_new_stream(). 2011-11-05 15:07:19 +01:00
libnut.c
librtmp.c
lmlm4.c
loasdec.c Replace remaining av_new_stream() with avformat_new_stream(). 2011-11-05 15:07:19 +01:00
lxfdec.c
m4vdec.c
Makefile mkvtimestamp v2 muxer: rename so as to avoid confusion with SMPTE timecodes. 2011-11-13 05:19:28 +01:00
matroska.c
matroska.h
matroskadec.c Merge remote-tracking branch 'qatar/master' 2011-11-06 02:23:34 +01:00
matroskaenc.c Merge remote-tracking branch 'qatar/master' 2011-11-08 02:03:14 +01:00
md5enc.c
md5proto.c Merge remote-tracking branch 'qatar/master' 2011-11-14 00:33:39 +01:00
metadata.c Replace all usage of strcasecmp/strncasecmp 2011-11-06 11:52:57 +02:00
metadata.h
microdvddec.c Replace remaining av_new_stream() with avformat_new_stream(). 2011-11-05 15:07:19 +01:00
microdvdenc.c
mkvtimestamp_v2.c mkvtimestamp v2 muxer: rename so as to avoid confusion with SMPTE timecodes. 2011-11-13 05:19:28 +01:00
mm.c
mmf.c
mms.c
mms.h
mmsh.c Merge remote-tracking branch 'qatar/master' 2011-11-14 00:33:39 +01:00
mmst.c Merge remote-tracking branch 'qatar/master' 2011-11-14 00:33:39 +01:00
mov.c Rename remaining get_byte to avio_r8. 2011-11-14 07:22:31 +01:00
movenc.c movenc: Set a correct packet size for AMR-NB mode 15, "no data" 2011-11-05 12:35:34 +02:00
movenc.h Replace outdated references to ffmpeg tool with avconv. 2011-11-02 10:42:54 +01:00
movenchint.c
mp3dec.c Merge remote-tracking branch 'qatar/master' 2011-10-21 02:01:26 +02:00
mp3enc.c mp3enc: Try to use a matching bitrate in the xing header. 2011-11-14 20:59:28 +01:00
mpc8.c
mpc.c
mpeg.c
mpeg.h
mpegenc.c Merge remote-tracking branch 'qatar/master' 2011-10-26 02:36:07 +02:00
mpegts.c mpegts: Completely ignore H222 spec and consider reserved adaption 2011-11-15 04:15:34 +01:00
mpegts.h Merge remote-tracking branch 'qatar/master' 2011-10-29 02:08:54 +02:00
mpegtsenc.c mpegtsenc: EAC3 support 2011-11-02 20:41:24 +01:00
mpegvideodec.c mpegvideo_probe: reduce score for invalid streams 2011-11-08 23:54:25 +01:00
mpjpeg.c
msnwc_tcp.c
mtv.c
mvi.c
mxf.c
mxf.h
mxfdec.c Rename remaining ByteIOContext to AVIOContext. 2011-11-14 07:22:30 +01:00
mxfenc.c
mxg.c
ncdec.c
network.c Merge remote-tracking branch 'qatar/master' 2011-11-08 02:03:14 +01:00
network.h Merge remote-tracking branch 'qatar/master' 2011-11-08 02:03:14 +01:00
nsvdec.c Replace outdated references to ffmpeg tool with avconv. 2011-11-02 10:42:54 +01:00
nullenc.c
nut.c
nut.h
nutdec.c Replace all usage of strcasecmp/strncasecmp 2011-11-06 11:52:57 +02:00
nutenc.c Merge remote-tracking branch 'qatar/master' 2011-10-21 02:01:26 +02:00
nuv.c
oggdec.c Merge remote-tracking branch 'qatar/master' 2011-10-29 02:08:54 +02:00
oggdec.h
oggenc.c Replace vendor string in Ogg and FLAC muxers. 2011-11-02 10:43:39 +01:00
oggparsecelt.c Remove CELT / Opus confusion in labels, doc and comments. 2011-10-25 15:04:51 +02:00
oggparsedirac.c Merge remote-tracking branch 'qatar/master' 2011-10-21 02:01:26 +02:00
oggparseflac.c Merge remote-tracking branch 'qatar/master' 2011-10-21 02:01:26 +02:00
oggparseogm.c
oggparseskeleton.c
oggparsespeex.c
oggparsetheora.c
oggparsevorbis.c
oma.c
options.c Merge remote-tracking branch 'qatar/master' 2011-11-15 03:13:42 +01:00
os_support.c Merge remote-tracking branch 'qatar/master' 2011-11-07 03:01:43 +01:00
os_support.h Merge remote-tracking branch 'qatar/master' 2011-11-03 02:16:26 +01:00
pcm.c
pcm.h
pcmdec.c
pcmenc.c
pmpdec.c Replace remaining av_new_stream() with avformat_new_stream(). 2011-11-05 15:07:19 +01:00
psxstr.c
pva.c
qcp.c
qtpalette.h
r3d.c
rawdec.c Merge remote-tracking branch 'qatar/master' 2011-11-03 02:16:26 +01:00
rawdec.h
rawenc.c
rawenc.h
rawvideodec.c
rdt.c Merge remote-tracking branch 'qatar/master' 2011-11-08 02:03:14 +01:00
rdt.h
riff.c VBLE Decoder 2011-11-12 01:21:01 +01:00
riff.h
rl2.c
rm.c
rm.h
rmdec.c Merge remote-tracking branch 'qatar/master' 2011-11-08 02:03:14 +01:00
rmenc.c
rpl.c
rso.c
rso.h Merge remote-tracking branch 'qatar/master' 2011-11-03 02:16:26 +01:00
rsodec.c
rsoenc.c
rtmp.h
rtmppkt.c
rtmppkt.h
rtmpproto.c Merge remote-tracking branch 'qatar/master' 2011-11-14 00:33:39 +01:00
rtp.c
rtp.h
rtpdec_amr.c
rtpdec_asf.c
rtpdec_formats.h libavformat: add support for G726 audio decoder in RTP and RTSP streams 2011-11-07 21:55:34 +01:00
rtpdec_g726.c libavformat: add support for G726 audio decoder in RTP and RTSP streams 2011-11-07 21:55:34 +01:00
rtpdec_h263.c
rtpdec_h264.c
rtpdec_latm.c Merge remote-tracking branch 'qatar/master' 2011-11-07 03:01:43 +01:00
rtpdec_mpeg4.c Replace all usage of strcasecmp/strncasecmp 2011-11-06 11:52:57 +02:00
rtpdec_qcelp.c
rtpdec_qdm2.c
rtpdec_qt.c
rtpdec_svq3.c
rtpdec_vp8.c
rtpdec_xiph.c
rtpdec.c Merge remote-tracking branch 'qatar/master' 2011-11-12 02:50:25 +01:00
rtpdec.h
rtpenc_aac.c
rtpenc_amr.c
rtpenc_chain.c Merge remote-tracking branch 'qatar/master' 2011-11-14 00:33:39 +01:00
rtpenc_chain.h
rtpenc_h263.c
rtpenc_h264.c
rtpenc_latm.c
rtpenc_mpv.c Merge remote-tracking branch 'qatar/master' 2011-10-21 02:01:26 +02:00
rtpenc_vp8.c
rtpenc_xiph.c
rtpenc.c
rtpenc.h
rtpproto.c Merge remote-tracking branch 'qatar/master' 2011-11-14 00:33:39 +01:00
rtsp.c Merge remote-tracking branch 'qatar/master' 2011-11-14 00:33:39 +01:00
rtsp.h Merge remote-tracking branch 'qatar/master' 2011-11-03 02:16:26 +01:00
rtspcodes.h
rtspdec.c
rtspenc.c
sapdec.c Merge remote-tracking branch 'qatar/master' 2011-11-14 00:33:39 +01:00
sapenc.c Merge remote-tracking branch 'qatar/master' 2011-11-14 00:33:39 +01:00
sauce.c
sauce.h
sdp.c Merge remote-tracking branch 'qatar/master' 2011-10-21 02:01:26 +02:00
seek-test.c Merge remote-tracking branch 'qatar/master' 2011-10-29 02:08:54 +02:00
seek.c
seek.h
segafilm.c
segment.c
sierravmd.c
siff.c
smacker.c
sol.c
sox.h
soxdec.c
soxenc.c
spdif.c
spdif.h
spdifdec.c Merge remote-tracking branch 'qatar/master' 2011-10-21 02:01:26 +02:00
spdifenc.c spdifenc: use special alignment for DTS-HD length_code 2011-10-30 15:43:19 +02:00
srtdec.c
swf.h
swfdec.c
swfenc.c
tcp.c Merge remote-tracking branch 'qatar/master' 2011-11-14 00:33:39 +01:00
thp.c
tiertexseq.c
tls.c avio: add support for passing options to protocols. 2011-11-13 13:14:39 +01:00
tmv.c
tta.c Merge remote-tracking branch 'qatar/master' 2011-10-26 02:36:07 +02:00
tty.c
txd.c
udp.c Merge remote-tracking branch 'qatar/master' 2011-11-10 03:45:23 +01:00
url.h Merge remote-tracking branch 'qatar/master' 2011-11-14 00:33:39 +01:00
utils.c Merge remote-tracking branch 'qatar/master' 2011-11-14 00:33:39 +01:00
vc1test.c
vc1testenc.c
version.h Merge remote-tracking branch 'qatar/master' 2011-11-08 02:03:14 +01:00
voc.c
voc.h
vocdec.c
vocenc.c
vorbiscomment.c
vorbiscomment.h
vqf.c Merge remote-tracking branch 'qatar/master' 2011-11-12 02:50:25 +01:00
wav.c Replace remaining av_new_stream() with avformat_new_stream(). 2011-11-05 15:07:19 +01:00
wc3movie.c
westwood.c
wtv.c Remove leftover includes of strings.h 2011-11-06 11:53:05 +02:00
wtv.h
wtvdec.c wtvdec: ignore another known guid 2011-11-06 01:53:46 +01:00
wtvenc.c Use AC-3 as default codec for wtv. 2011-11-12 00:15:03 +01:00
wv.c
xa.c
xmv.c
xwma.c
yop.c
yuv4mpeg.c