ffmpeg/libavformat
Jonathan Baudanza 6b3f9c2e92 avformat/rtpdec: fix integer overflow in start_time_realtime calculation
I encountered this problem with NTP timestamps that are extremely old,
like from January, 1990.

Although RFC3550 suggests that the timestamps in the RTCP packets use
the actual wallclock, some implementations use other clocks, such as
the CLOCK_MONOTONIC on linux.

I'm my case, I'm dealing with packets from mediasoup.

Without this patch, start_time_realtime shows up in the distance future
instead of around Jan 1900.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2024-09-23 17:08:33 +02:00
..
riscv
tests
.gitignore
3dostr.c
4xm.c
a64.c
aacdec.c
aadec.c
aaxdec.c
ac3_channel_layout_tab.c
ac3dec.c
ac4dec.c
ac4enc.c
acedec.c
acm.c
act.c
adp.c
ads.c
adtsenc.c
adxdec.c
aeadec.c
aeaenc.c
afc.c
aiff.c
aiff.h
aiffdec.c
aiffenc.c
aixdec.c
allformats.c
alp.c
amr.c
amvenc.c
anm.c
apac.c
apc.c
ape.c
apetag.c avformat/apetag: Check APETAGEX 2024-08-28 16:27:54 +02:00
apetag.h
apm.c
apngdec.c
apngenc.c
aptxdec.c
aqtitledec.c
argo_asf.c
argo_asf.h
argo_brp.c avformat/argo_brp: Check that ASF chunk header is completely read 2024-08-28 16:27:56 +02:00
argo_cvg.c
asf_tags.c
asf.c
asf.h
asfcrypt.c
asfcrypt.h
asfdec_f.c
asfdec_o.c avformat/asfdec_o: Check size of index object 2024-07-21 16:40:48 +02:00
asfenc.c
assdec.c
assenc.c
ast.c
ast.h
astdec.c
astenc.c
async.c
au.c
av1.c
av1.h
av1dec.c avformat/av1dec: Better fix for 70872/clusterfuzz-testcase-minimized-ffmpeg_dem_OBU_fuzzer-6005782487826432 2024-08-14 19:05:17 +02:00
avc.c
avc.h
avformat.c avformat: add an LCEVC stream group 2024-09-19 10:01:02 -03:00
avformat.h avformat: add an LCEVC stream group 2024-09-19 10:01:02 -03:00
avformatres.rc
avi.h
avidec.c
avienc.c
avio_internal.h
avio.c
avio.h
aviobuf.c
avisynth.c avformat/avisynth: move avs_planes* consts into relevant function 2024-08-13 15:09:53 -04:00
avlanguage.c
avlanguage.h
avr.c
avs2dec.c
avs3dec.c
avs.c
bethsoftvid.c
bfi.c
bink.c
binka.c
bintext.c avformat/bintext: Check avio_size() return 2024-07-21 16:40:49 +02:00
bit.c
bluray.c
bmv.c
boadec.c
bonk.c
brstm.c
c93.c
cache.c
caf.c
caf.h
cafdec.c
cafenc.c
cavsvideodec.c
cdg.c
cdxl.c
chromaprint.c
cinedec.c
codec2.c
concat.c
concatdec.c
crcenc.c
crypto.c avformat/crypto: fix variable shadowing 2024-09-13 00:27:35 +02:00
dash.c
dash.h
dashdec.c avformat/dashdec: The segments in dash file doesn't read completely when segment's size and duration is very small. 2024-09-14 11:42:09 +08:00
dashenc.c
data_uri.c
dauddec.c
daudenc.c
dca_sample_rate_tab.c
dcstr.c
demux_utils.c
demux.c lavf/demux: don't reallocate a AVCodecContext when closing a non-open codec. 2024-08-17 12:54:41 +02:00
demux.h
derf.c
dfa.c
dfpwmdec.c
dhav.c
diracdec.c
dnxhddec.c
dovi_isom.c avformat/dovi_isom: implement dv_md_compression 2024-07-28 12:20:07 +02:00
dovi_isom.h
dsfdec.c
dsicin.c
dss.c
dtsdec.c
dtshddec.c
dump.c avformat: add an LCEVC stream group 2024-09-19 10:01:02 -03:00
dv.c
dv.h
dvbsub.c
dvbtxt.c
dvdclut.c
dvdclut.h
dvdvideodec.c avformat/dvdvideodec: implement seeking 2024-09-15 13:53:00 +02:00
dvenc.c
dxa.c
eacdata.c
electronicarts.c avcodec/electronicarts: decode framerate 2024-07-23 06:40:30 +10:00
epafdec.c
evc.c
evc.h
evcdec.c
ffjni.c
ffmeta.h
ffmetadec.c
ffmetaenc.c
fifo.c
file_open.c
file.c avformat/file: guard fd_dup by FD_PROTOCOL or PIPE_PROTOCOL 2024-07-16 22:50:21 +08:00
filmstripdec.c
filmstripenc.c
fitsdec.c
fitsenc.c
flac_picture.c
flac_picture.h
flacdec.c
flacenc_header.c
flacenc.c
flacenc.h
flic.c
flv.h
flvdec.c avformat/flvdec: Free metaVideoColor 2024-09-19 00:24:27 +02:00
flvenc.c
format.c
framecrcenc.c
framehash.c
frmdec.c
fsb.c
ftp.c
fwse.c
g722.c
g723_1.c
g726.c
g729dec.c
gdv.c
genh.c
gif.c
gifdec.c
golomb_tab.c
gopher.c
gsmdec.c
gxf.c
gxf.h
gxfenc.c
h261dec.c
h263dec.c
h264dec.c
hashenc.c
hca.c
hcom.c
hdsenc.c
hevc.c
hevc.h
hevcdec.c
hls_sample_encryption.c
hls_sample_encryption.h
hls.c
hlsenc.c avformat/hlsenc: correctly reset subtitle stream counter per-varstream 2024-08-16 20:22:09 +02:00
hlsplaylist.c
hlsplaylist.h
hlsproto.c
hnm.c avformat/hnm: Check *chunk_size 2024-07-21 16:41:23 +02:00
http.c
http.h
httpauth.c
httpauth.h
iamf_parse.c avformat/iamf_parser: use ffio_read_size() where useful 2024-08-31 23:44:13 -03:00
iamf_parse.h
iamf_reader.c avformat/iamf: use aligned intreadwrite macros where possible 2024-08-07 00:16:21 -03:00
iamf_reader.h
iamf_writer.c avformat/iamf: use aligned intreadwrite macros where possible 2024-08-07 00:16:21 -03:00
iamf_writer.h
iamf.c
iamf.h avformat/iamf: rename Codec Config seek_preroll to audio_roll_distance 2024-07-18 23:27:20 -03:00
iamfdec.c avformat/iamf_parse: ignore Audio Elements with an unsupported type 2024-08-14 23:55:40 -03:00
iamfenc.c
icecast.c
icodec.c
icoenc.c
id3v1.c
id3v1.h
id3v2.c
id3v2.h
id3v2enc.c
idcin.c
idroqdec.c
idroqenc.c
iff.c
ifv.c
ilbc.c
imf_cpl.c
imf.h
imfdec.c
img2_alias_pix.c
img2_brender_pix.c
img2.c
img2.h
img2dec.c avformat/img2dec: Clear padding data after EOF 2024-08-05 23:17:46 +02:00
img2enc.c
imx.c
ingenientdec.c
internal.h
ip.c
ip.h
ipfsgateway.c
ipmovie.c
ipudec.c
ircam.c
ircam.h
ircamdec.c
ircamenc.c
isom_tags.c avformat/mov: support for LCEVC tracks 2024-09-19 10:01:24 -03:00
isom.c avformat/isom: make parameters used for loging a pointer to void 2024-08-31 11:11:42 -03:00
isom.h avformat/mov: support for LCEVC tracks 2024-09-19 10:01:24 -03:00
iss.c
iv8.c
ivfdec.c
ivfenc.c
jacosubdec.c
jacosubenc.c
jpegtables.c
jpegxl_anim_dec.c avformat/jpegxl_anim_dec: ensure input padding is zeroed 2024-08-05 23:17:46 +02:00
jpegxl_parse.c
jvdec.c
kvag.c
lafdec.c
latmenc.c
lc3.c
libamqp.c
libavformat.v
libgme.c
libmodplug.c
libopenmpt.c
librist.c
librtmp.c
libsmbclient.c
libsrt.c
libssh.c
libzmq.c avformat/libzmq: fix check for zmq protocol prefix 2024-09-02 22:51:17 +02:00
lmlm4.c avformat/lmlm4: Eliminate some AVERROR(EIO) 2024-08-11 13:21:12 +02:00
loasdec.c
log2_tab.c
lrc.c
lrc.h
lrcdec.c
lrcenc.c
luodatdec.c
lvfdec.c
lxfdec.c
m4vdec.c
Makefile
matroska.c
matroska.h
matroskadec.c avformat/matroskadec: use AV_WL32A 2024-07-29 21:33:31 -03:00
matroskaenc.c
mca.c
mccdec.c
md5proto.c
metadata.c
metadata.h
mgsts.c
microdvddec.c
microdvdenc.c
mj2kdec.c
mkvtimestamp_v2.c
mlpdec.c
mlvdec.c
mm.c avformat/mm: Check length 2024-07-21 16:41:32 +02:00
mmf.c
mms.c
mms.h
mmsh.c
mmst.c
mods.c
moflex.c
mov_chan.c avformat/mov_chan: add extra checks to channel description count 2024-09-17 15:41:45 -03:00
mov_chan.h
mov_esds.c
mov.c avformat/mov: support for LCEVC tracks 2024-09-19 10:01:24 -03:00
movenc_ttml.c
movenc_ttml.h
movenc.c avformat/movenc: don't look at previous track_id as it may not be set 2024-08-12 11:41:38 -03:00
movenc.h
movenccenc.c
movenccenc.h
movenchint.c
mp3dec.c avformat/mp3dec: Check header_filesize 2024-07-21 16:41:41 +02:00
mp3enc.c
mpc8.c
mpc.c
mpeg4audio_sample_rates.c
mpeg.c avformat/mpeg: Check an avio_read() for failure 2024-08-14 18:21:00 +02:00
mpeg.h
mpegaudiotabs.c
mpegenc.c
mpegts.c lavc/opus*: move to opus/ subdir 2024-09-02 11:56:53 +02:00
mpegts.h
mpegtsenc.c
mpegvideodec.c
mpjpeg.c
mpjpegdec.c
mpl2dec.c
mpsubdec.c
msf.c
msnwc_tcp.c
mspdec.c
mtaf.c
mtv.c
musx.c
mux_utils.c
mux.c
mux.h
mvdec.c avformat/mvdec: Check if name was fully read 2024-08-28 17:38:28 +02:00
mvi.c
mxf.c
mxf.h
mxfdec.c avformat/mxfdec: Check timecode for overflow 2024-09-19 00:43:22 +02:00
mxfenc.c avformat/mxfenc: Fix guess frame_rate 2024-09-04 13:01:37 +02:00
mxg.c
nal.c
nal.h
ncdec.c
network.c avformat/network: use av_err2str to simplify code 2024-09-13 00:26:53 +02:00
network.h
nistspheredec.c
nspdec.c
nsvdec.c avformat/nsvdec: Check asize for PCM 2024-07-21 16:41:43 +02:00
nullenc.c
nut.c
nut.h
nutdec.c
nutenc.c
nuv.c
oggdec.c
oggdec.h
oggenc.c
oggparsecelt.c
oggparsedirac.c
oggparseflac.c
oggparseogm.c
oggparseopus.c
oggparseskeleton.c
oggparsespeex.c
oggparsetheora.c
oggparsevorbis.c
oggparsevp8.c
oma.c
oma.h
omadec.c
omaenc.c
options_table.h
options.c avformat: add an LCEVC stream group 2024-09-19 10:01:02 -03:00
os_support.c
os_support.h
osq.c
paf.c
pcm.c
pcm.h
pcmdec.c
pcmenc.c
pdvdec.c
pjsdec.c
pmpdec.c
pp_bnk.c
prompeg.c
protocols.c
psxstr.c
pva.c
pvfdec.c
qcp.c
qoadec.c
qtpalette.c
qtpalette.h
r3d.c
rangecoder_dec.c
rawdec.c
rawdec.h
rawenc.c
rawenc.h
rawutils.c
rawutils.h
rawvideodec.c
rcwtdec.c
rcwtenc.c
rdt.c
rdt.h
realtextdec.c
redspark.c
replaygain.c
replaygain.h
riff.c
riff.h
riffdec.c
riffenc.c
rka.c
rl2.c
rm.c
rm.h
rmdec.c
rmenc.c
rmsipr.c
rmsipr.h
rpl.c
rsd.c
rso.c
rso.h
rsodec.c
rsoenc.c
rtmp.h
rtmpcrypt.c
rtmpcrypt.h
rtmpdh.c
rtmpdh.h
rtmpdigest.c
rtmphttp.c
rtmppkt.c
rtmppkt.h
rtmpproto.c avformat/rtmpproto: Use AV_DICT_MATCH_CASE instead of litteral number 2024-07-12 16:40:50 +02:00
rtp.c
rtp.h
rtpdec_ac3.c
rtpdec_amr.c
rtpdec_asf.c
rtpdec_dv.c
rtpdec_formats.h
rtpdec_g726.c
rtpdec_h261.c
rtpdec_h263_rfc2190.c
rtpdec_h263.c
rtpdec_h264.c
rtpdec_hevc.c
rtpdec_ilbc.c
rtpdec_jpeg.c
rtpdec_latm.c
rtpdec_mpa_robust.c
rtpdec_mpeg4.c
rtpdec_mpeg12.c
rtpdec_mpegts.c
rtpdec_qcelp.c
rtpdec_qdm2.c
rtpdec_qt.c
rtpdec_rfc4175.c
rtpdec_svq3.c
rtpdec_vc2hq.c
rtpdec_vp8.c
rtpdec_vp9.c
rtpdec_xiph.c
rtpdec.c
rtpdec.h
rtpenc_aac.c
rtpenc_amr.c
rtpenc_chain.c
rtpenc_chain.h
rtpenc_h261.c
rtpenc_h263_rfc2190.c
rtpenc_h263.c
rtpenc_h264_hevc.c
rtpenc_jpeg.c
rtpenc_latm.c
rtpenc_mpegts.c
rtpenc_mpv.c
rtpenc_rfc4175.c avformat/rtpenc_rfc4175: Use 64bit in computation if copy_offset 2024-07-12 16:40:51 +02:00
rtpenc_vc2hq.c
rtpenc_vp8.c
rtpenc_vp9.c
rtpenc_xiph.c
rtpenc.c
rtpenc.h
rtpproto.c avformat/rtpproto: free ip filters on open error 2024-08-07 00:59:19 +02:00
rtpproto.h
rtsp.c avformat/rtpdec: fix integer overflow in start_time_realtime calculation 2024-09-23 17:08:33 +02:00
rtsp.h
rtspcodes.h
rtspdec.c
rtspenc.c
s337m.c
samidec.c
sapdec.c avformat/sapdec: Check ffurl_get_file_handle() for error 2024-07-21 16:41:51 +02:00
sapenc.c
sauce.c avformat/sauce: Check avio_size() for failure 2024-07-21 17:02:10 +02:00
sauce.h
sbcdec.c
sbgdec.c
sccdec.c
sccenc.c
scd.c
sctp.c
sdns.c
sdp.c
sdr2.c
sdsdec.c
sdxdec.c
seek.c
segafilm.c avformat/segafilm: Set keyframe 2024-08-14 18:20:58 +02:00
segafilmenc.c
segment.c
serdec.c
sga.c
shortendec.c
sierravmd.c
siff.c avformat/siff: Basic pkt_size check 2024-07-21 17:02:11 +02:00
smacker.c
smjpeg.c
smjpeg.h
smjpegdec.c
smjpegenc.c
smoothstreamingenc.c
smush.c
sol.c
sox.h
soxdec.c
soxenc.c
spdif.c
spdif.h
spdifdec.c
spdifenc.c
srtdec.c
srtenc.c
srtp.c
srtp.h
srtpproto.c avformat/srtpproto: pass options to nested protocol 2024-08-07 00:59:19 +02:00
stldec.c
subfile.c
subtitles.c
subtitles.h
subviewer1dec.c
subviewerdec.c
supdec.c
supenc.c
svag.c
svs.c
swf.c
swf.h
swfdec.c
swfenc.c
takdec.c
tcp.c
tedcaptionsdec.c
tee_common.c
tee_common.h
tee.c
teeproto.c
thp.c
tiertexseq.c
tls_gnutls.c
tls_libtls.c
tls_mbedtls.c lavf/tls_mbedtls: restrict TLSv1.3 verification workaround to affected version 2024-09-15 13:50:18 +02:00
tls_openssl.c
tls_schannel.c
tls_securetransport.c
tls.c
tls.h
tmv.c
to_upper4.c
tta.c
ttaenc.c
ttmlenc.c
ttmlenc.h
tty.c avformat/tty: Check avio_size() 2024-07-21 17:02:11 +02:00
txd.c
ty.c avformat/ty: rec_size seems to only need 32bit 2024-07-21 17:02:11 +02:00
udp.c Revert "avformat/udp: Fix temporary buffer race" 2024-07-23 23:21:13 +02:00
uncodedframecrcenc.c
unix.c
url.c
url.h
urldecode.c
urldecode.h
usmdec.c
utils.c
vag.c
vapoursynth.c avformat/vapoursynth: load library at runtime 2024-08-26 10:30:52 +02:00
vc1dec.c
vc1test.c
vc1testenc.c
version_major.h
version.c
version.h avformat: add an LCEVC stream group 2024-09-19 10:01:02 -03:00
vividas.c
vivo.c
voc_packet.c
voc.c
voc.h
vocdec.c
vocenc.c
vorbiscomment.c
vorbiscomment.h
vpcc.c
vpcc.h
vpk.c
vplayerdec.c
vqf.c
vvc.c
vvc.h
vvcdec.c
w64.c
w64.h
wady.c
wavarc.c
wavdec.c avformat/wavdec: Check if there are 16 bytes before testing them 2024-08-05 23:17:45 +02:00
wavenc.c
wc3movie.c
webm_chunk.c
webmdashenc.c
webpenc.c avformat/webpenc: Check filesize in trailer 2024-07-21 17:02:12 +02:00
webvttdec.c
webvttenc.c
westwood_aud.c
westwood_audenc.c
westwood_vqa.c
wsddec.c
wtv_common.c
wtv.h
wtvdec.c avformat/wtvdec: Check length of read mpeg2_descriptor 2024-08-08 19:10:05 +02:00
wtvenc.c
wv.c
wv.h
wvdec.c
wvedec.c
wvenc.c
xa.c
xmd.c
xmv.c avformat/xmv: Check this_packet_size 2024-07-21 17:02:12 +02:00
xvag.c
xwma.c
yop.c
yuv4mpeg.h
yuv4mpegdec.c
yuv4mpegenc.c