ffmpeg/libavformat
John Högberg 82de8d7111 mpegts: Update the PSI/SI table only if the version change
If a PAT is finished while a PMT section filter is opened but
not yet finished, the PMT section filter is closed and all
the received data is discarded.

This is usually not an issue but some multiplexers (With very
quick PAT/PMT repetition settings) consistently emit a PMT
section start, then a PAT, and then the rest of the PMT,
causing the aforementioned behavior to result in no PMT being
finished.

In the most pathologic situation the stream information are lost
and the probe fallback miscategorizes subtitles as mp3 audio.

Avoid the issue through eliminating redundant PSI/SI table
updates by checking their version field, which is required by
the standard to be incremented on every change no matter how
minor.

CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-04-28 21:09:59 +02:00
..
4xm.c
a64.c
aacdec.c
ac3dec.c
adtsenc.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
adxdec.c avformat/adxdec: set avctx->channels in adx_read_header 2015-03-05 15:57:48 +01:00
aea.c aea: Return proper error code on invalid header 2015-01-16 10:35:02 +01:00
aiff.h
aiffdec.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
aiffenc.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
allformats.c lavf: Add DSS demuxer 2015-02-19 12:05:19 -05:00
amr.c
anm.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
apc.c
ape.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
apetag.c ape: Use the proper variable type 2015-02-15 18:20:54 +01:00
apetag.h
asf.c
asf.h
asfcrypt.c
asfcrypt.h
asfdec.c Replace av_dlog with normal av_log at trace level 2015-04-19 12:41:59 +01:00
asfenc.c asfenc: fix leaking asf->index_ptr on error 2015-03-11 20:24:59 +01:00
assdec.c Replace av_dlog with normal av_log at trace level 2015-04-19 12:41:59 +01:00
assenc.c
au.c
audiointerleave.c
audiointerleave.h
avc.c
avc.h
avformat.h lavf: Document the codec context initialization 2015-02-17 11:27:42 -05:00
avi.h
avidec.c Replace av_dlog with normal av_log at trace level 2015-04-19 12:41:59 +01:00
avienc.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
avio_internal.h avio: Rename avclass symbols relating to avio 2015-02-28 22:07:04 +02:00
avio.c lavf: Explicitly convert types at function pointer assignment 2015-03-11 23:53:13 +01:00
avio.h
aviobuf.c lavf: Explicitly convert types at function pointer assignment 2015-03-11 23:53:13 +01:00
avisynth.c avisynth: Simplify shared library name construction 2015-04-15 14:52:57 +02:00
avlanguage.c
avlanguage.h
avs.c
bethsoftvid.c
bfi.c
bink.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
bmv.c
c93.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
caf.c
caf.h
cafdec.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
cavsvideodec.c
cdg.c
cdxl.c
concat.c
crcenc.c
crypto.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
cutils.c
dashenc.c dashenc: Add a publishTime field in dynamic manifests 2015-04-20 13:16:45 +03:00
dauddec.c
daudenc.c
dfa.c
diracdec.c
dnxhddec.c
dsicin.c
dss.c lavf: Add DSS demuxer 2015-02-19 12:05:19 -05:00
dtsdec.c dca: Move syncword definitions to a separate header 2015-03-04 13:29:33 +01:00
dump.c
dv.c lavf: move internal fields from public to internal context 2015-02-10 21:45:04 +01:00
dv.h
dvenc.c
dxa.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
eacdata.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
electronicarts.c
ffmeta.h
ffmetadec.c
ffmetaenc.c
file_open.c
file.c
filmstripdec.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
filmstripenc.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
flac_picture.c
flac_picture.h
flacdec.c
flacenc_header.c
flacenc.c
flacenc.h
flic.c
flv.h
flvdec.c Replace av_dlog with normal av_log at trace level 2015-04-19 12:41:59 +01:00
flvenc.c flv: Validate and reject unsupported codecs 2015-03-04 18:28:40 +01:00
format.c
framecrcenc.c
framehash.c
g722.c
g723_1.c
gif.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
gopher.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
gsmdec.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
gxf.c
gxf.h
gxfenc.c
h261dec.c
h263dec.c
h264dec.c
hdsenc.c Revert "lavf: Don't try to update files atomically with renames on windows" 2014-11-27 09:29:47 +02:00
hevc.c Replace av_dlog with normal av_log at trace level 2015-04-19 12:41:59 +01:00
hevc.h
hevcdec.c
hls.c
hlsenc.c hlsenc: write playlist into a temp file and replace the original atomically 2015-02-20 23:55:28 +02:00
hlsproto.c hlsproto: Properly close avio buffer in case of error 2015-01-23 14:55:03 +00:00
hnm.c
http.c Replace av_dlog with normal av_log at trace level 2015-04-19 12:41:59 +01:00
http.h
httpauth.c
httpauth.h
icecast.c
id3v1.c
id3v1.h
id3v2.c libavformat: Use ffio_free_dyn_buf where applicable 2015-02-24 23:07:47 +02:00
id3v2.h
id3v2enc.c
idcin.c
idroqdec.c
idroqenc.c
iff.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
ilbc.c
img2.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
img2dec.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
img2enc.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
ingenientdec.c
internal.h lavf: move internal fields from public to internal context 2015-02-10 21:45:04 +01:00
ipmovie.c Replace av_dlog with normal av_log at trace level 2015-04-19 12:41:59 +01:00
isom.c Replace av_dlog with normal av_log at trace level 2015-04-19 12:41:59 +01:00
isom.h mov: Add option to keep exact packet sequence after seeking 2015-03-18 14:28:56 +00:00
iss.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
iv8.c
ivfdec.c
ivfenc.c
jvdec.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
latmenc.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
libavformat.v
librtmp.c
lmlm4.c
log2_tab.c
lxfdec.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
m4vdec.c
Makefile lavf: Do not list mov-only codecs in riff tags 2015-03-17 13:34:22 +00:00
matroska.c matroskadec: export cover art correctly 2015-04-08 12:36:53 +02:00
matroska.h matroskadec: export cover art correctly 2015-04-08 12:36:53 +02:00
matroskadec.c matroskadec: fix crash when parsing invalid mkv 2015-04-18 16:49:25 +02:00
matroskaenc.c matroskadec: export cover art correctly 2015-04-08 12:36:53 +02:00
md5enc.c
md5proto.c
metadata.c
metadata.h
mm.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
mmf.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
mms.c mms: Check memory allocation 2015-03-21 23:18:15 +01:00
mms.h
mmsh.c Replace av_dlog with normal av_log at trace level 2015-04-19 12:41:59 +01:00
mmst.c Replace av_dlog with normal av_log at trace level 2015-04-19 12:41:59 +01:00
mov_chan.c Replace av_dlog with normal av_log at trace level 2015-04-19 12:41:59 +01:00
mov_chan.h
mov.c mov: Double-check that alias path is not an absolute path 2015-04-19 22:50:24 +01:00
movenc.c movenc: Write the make and model metadata keys for mov style files 2015-03-23 12:43:35 +02:00
movenc.h movenc: Don't assume that fragment durations in pts is equal to duration in dts 2015-03-19 10:27:20 +02:00
movenchint.c libavformat: Use ffio_free_dyn_buf where applicable 2015-02-24 23:07:47 +02:00
mp3dec.c mp3: Properly use AVCodecContext API 2015-03-11 17:57:56 +00:00
mp3enc.c Drop the unofficial extension prefix for MPEG and MPEG-TS formats 2014-12-02 15:28:22 +00:00
mpc8.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
mpc.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
mpeg.c Replace av_dlog with normal av_log at trace level 2015-04-19 12:41:59 +01:00
mpeg.h
mpegenc.c Replace av_dlog with normal av_log at trace level 2015-04-19 12:41:59 +01:00
mpegts.c mpegts: Update the PSI/SI table only if the version change 2015-04-28 21:09:59 +02:00
mpegts.h
mpegtsenc.c Replace av_dlog with normal av_log at trace level 2015-04-19 12:41:59 +01:00
mpegvideodec.c
mpjpeg.c
msnwc_tcp.c
mtv.c lavf: move internal fields from public to internal context 2015-02-10 21:45:04 +01:00
mux.c Replace av_dlog with normal av_log at trace level 2015-04-19 12:41:59 +01:00
mvdec.c
mvi.c
mxf.c
mxf.h
mxfdec.c Replace av_dlog with normal av_log at trace level 2015-04-19 12:41:59 +01:00
mxfenc.c Replace av_dlog with normal av_log at trace level 2015-04-19 12:41:59 +01:00
mxg.c
ncdec.c
network.c
network.h
noproxy-test.c
nsvdec.c Replace av_dlog with normal av_log at trace level 2015-04-19 12:41:59 +01:00
nullenc.c
nut.c
nut.h
nutdec.c nutdec: Prevent leaks on memory error 2015-03-12 15:29:59 +00:00
nutenc.c libavformat: Use ffio_free_dyn_buf where applicable 2015-02-24 23:07:47 +02:00
nuv.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
oggdec.c ogg: Forward errors further 2015-04-20 12:41:33 +02:00
oggdec.h oggdec: add support for VP8 demuxing 2014-12-18 23:27:07 +01:00
oggenc.c ogg: check memory allocations 2015-02-15 18:20:54 +01:00
oggparsecelt.c
oggparsedirac.c
oggparseflac.c
oggparseogm.c
oggparseopus.c
oggparseskeleton.c
oggparsespeex.c
oggparsetheora.c
oggparsevorbis.c
oggparsevp8.c oggdec: add support for VP8 demuxing 2014-12-18 23:27:07 +01:00
oma.c
oma.h
omadec.c oma: Report a timestamp 2015-02-07 15:36:15 +01:00
omaenc.c
options_table.h
options.c avio: Rename avclass symbols relating to avio 2015-02-28 22:07:04 +02:00
os_support.c
os_support.h libavformat: Only use MoveFileExA when targeting the desktop API subset 2014-12-19 23:24:47 +02:00
paf.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
pcm.c lavf: move internal fields from public to internal context 2015-02-10 21:45:04 +01:00
pcm.h
pcmdec.c
pcmenc.c
pmpdec.c
psxstr.c
pva.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
qcp.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
qtpalette.h
r3d.c Replace av_dlog with normal av_log at trace level 2015-04-19 12:41:59 +01:00
rawdec.c latm: Do not give a score for a single instance 2014-12-07 13:15:03 +01:00
rawdec.h
rawenc.c Drop the unofficial extension prefix for MPEG and MPEG-TS formats 2014-12-02 15:28:22 +00:00
rawenc.h
rawvideodec.c
rdt.c rdt: Use a separate variable to clarify the different value namespaces 2015-03-05 00:26:42 +02:00
rdt.h
replaygain.c lavf: add a convenience function for adding side data to a stream 2015-01-27 09:18:32 +01:00
replaygain.h
riff.c riff: Add GMP4 fourcc for mpeg4 2015-04-24 14:55:10 +01:00
riff.h
riffdec.c
riffenc.c
rl2.c
rm.c
rm.h rm: Use the correct codec_data_size signedness 2014-12-04 13:14:28 +00:00
rmdec.c Replace av_dlog with normal av_log at trace level 2015-04-19 12:41:59 +01:00
rmenc.c rmenc: Drop the temporary buffer for ac3 byteswap 2015-04-20 12:41:33 +02:00
rmsipr.c
rmsipr.h
rpl.c
rso.c
rso.h
rsodec.c
rsoenc.c
rtmp.h
rtmpcrypt.c
rtmpcrypt.h
rtmpdh.c
rtmpdh.h
rtmphttp.c
rtmppkt.c rtmppkt: Repeat the full 32 bit timestamp for chunking continuation packets 2015-01-15 10:20:18 +02:00
rtmppkt.h
rtmpproto.c Replace av_dlog with normal av_log at trace level 2015-04-19 12:41:59 +01:00
rtp.c
rtp.h
rtpdec_ac3.c rtpdec: Rename the free method to close 2015-02-24 23:07:50 +02:00
rtpdec_amr.c rtpdec: Use .init instead of .alloc to set default values 2015-02-24 23:07:28 +02:00
rtpdec_asf.c rtpdec_asf: Don't set RTP_FLAG_KEY 2015-03-05 00:26:24 +02:00
rtpdec_dv.c rtpdec: Rename the free method to close 2015-02-24 23:07:50 +02:00
rtpdec_formats.h rtpdec: experimental VP9 depacketizer (draft 0) 2015-03-05 10:05:44 +02:00
rtpdec_g726.c
rtpdec_h261.c rtpdec: Rename the free method to close 2015-02-24 23:07:50 +02:00
rtpdec_h263_rfc2190.c rtpdec: Rename the free method to close 2015-02-24 23:07:50 +02:00
rtpdec_h263.c rtpdec: Set need_parsing via a handler field 2015-02-24 16:22:41 +02:00
rtpdec_h264.c rtpdec: Rename the free method to close 2015-02-24 23:07:50 +02:00
rtpdec_hevc.c Replace av_dlog with normal av_log at trace level 2015-04-19 12:41:59 +01:00
rtpdec_ilbc.c rtpdec: Don't pass non-const pointers to fmtp attribute parsing functions 2015-02-24 23:07:22 +02:00
rtpdec_jpeg.c build: Split JPEG-related tables off into a separate component 2015-03-30 17:51:21 +02:00
rtpdec_latm.c rtpdec: Rename the free method to close 2015-02-24 23:07:50 +02:00
rtpdec_mpa_robust.c rtpdec_mpa_robust: Fix incrementing split_pos 2015-03-04 09:34:14 +02:00
rtpdec_mpeg4.c rtpdec: Rename the free method to close 2015-02-24 23:07:50 +02:00
rtpdec_mpeg12.c rtpdec: Set need_parsing via a handler field 2015-02-24 16:22:41 +02:00
rtpdec_mpegts.c rtpdec: Rename the free method to close 2015-02-24 23:07:50 +02:00
rtpdec_qcelp.c rtpdec: Get rid of all trivial .alloc/.free functions 2015-02-24 16:24:19 +02:00
rtpdec_qdm2.c rtpdec: Get rid of all trivial .alloc/.free functions 2015-02-24 16:24:19 +02:00
rtpdec_qt.c rtpdec_qt: Use a local variable instead of RTP_FLAG_KEY 2015-03-05 00:26:42 +02:00
rtpdec_svq3.c rtpdec: Rename the free method to close 2015-02-24 23:07:50 +02:00
rtpdec_vp8.c rtpdec: Rename the free method to close 2015-02-24 23:07:50 +02:00
rtpdec_vp9.c rtpdec_vp9: Drop extra sanity check for size of input packet 2015-03-11 18:01:25 +00:00
rtpdec_xiph.c rtpdec: Rename the free method to close 2015-02-24 23:07:50 +02:00
rtpdec.c Replace av_dlog with normal av_log at trace level 2015-04-19 12:41:59 +01:00
rtpdec.h rtpdec: Rename the free method to close 2015-02-24 23:07:50 +02:00
rtpenc_aac.c rtpenc: Don't set max_frames_per_packet based on the packet frame size or frame rate 2015-02-28 22:54:31 +02:00
rtpenc_amr.c rtpenc: Don't set max_frames_per_packet based on the packet frame size or frame rate 2015-02-28 22:54:31 +02:00
rtpenc_chain.c libavformat: Use ffio_free_dyn_buf where applicable 2015-02-24 23:07:47 +02:00
rtpenc_chain.h
rtpenc_h261.c rtp: Initial H.261 support 2014-12-18 23:11:37 +02:00
rtpenc_h263_rfc2190.c
rtpenc_h263.c
rtpenc_h264_hevc.c rtpenc: Merge the h264 and hevc packetizers 2015-02-24 16:25:43 +02:00
rtpenc_jpeg.c rtpenc_jpeg: Handle case of picture dimensions not dividing by 8 2015-04-23 23:20:03 +03:00
rtpenc_latm.c
rtpenc_mpegts.c rtpenc_mpegts: Set chain->rtp_ctx only after avformat_write_header succeeded 2015-03-10 09:58:41 +02:00
rtpenc_mpv.c
rtpenc_vp8.c
rtpenc_xiph.c rtpenc: Don't set max_frames_per_packet based on the packet frame size or frame rate 2015-02-28 22:54:31 +02:00
rtpenc.c Replace av_dlog with normal av_log at trace level 2015-04-19 12:41:59 +01:00
rtpenc.h rtpenc: Merge the h264 and hevc packetizers 2015-02-24 16:25:43 +02:00
rtpproto.c rtp: Add an option to set the send/receive buffer size 2015-04-01 14:26:35 +02:00
rtpproto.h
rtsp.c rtsp: Make sure we don't write too many transport entries into a fixed-size array 2015-04-24 16:07:14 +03:00
rtsp.h rtsp: Add a buffer_size option 2015-04-01 14:26:35 +02:00
rtspcodes.h
rtspdec.c Replace av_dlog with normal av_log at trace level 2015-04-19 12:41:59 +01:00
rtspenc.c
sapdec.c
sapenc.c
sauce.c
sauce.h
sctp.c sctp: Update to match tcp 2015-03-15 18:29:11 +01:00
sdp.c rtp: Initial H.261 support 2014-12-18 23:11:37 +02:00
seek-test.c
segafilm.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
segment.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
sierravmd.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
siff.c siff: Use the correct type for packet size variables 2015-03-09 12:58:17 +00:00
smacker.c
smjpeg.c
smjpeg.h
smjpegdec.c
smjpegenc.c
smoothstreamingenc.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
smush.c
sol.c
sox.h
soxdec.c
soxenc.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
spdif.c
spdif.h
spdifdec.c
spdifenc.c dca: Move syncword definitions to a separate header 2015-03-04 13:29:33 +01:00
srtdec.c
srtp.c
srtp.h
srtpproto.c srtpproto: fix option flag type 2014-12-18 11:58:23 +02:00
swf.c
swf.h
swfdec.c
swfenc.c lavf: Explicitly convert types at function pointer assignment 2015-03-11 23:53:13 +01:00
takdec.c
tcp.c libavformat: Handle error return from ff_listen_bind 2015-04-09 14:32:37 +02:00
thp.c
tiertexseq.c
tls.c tls: Pass AVOptions dictionaries through to the chained protocol 2015-02-28 22:08:19 +02:00
tmv.c
tta.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
tty.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
txd.c
udp.c udp: Fix pkt_size management 2015-03-29 17:35:59 +02:00
unix.c libavformat: Handle error return from ff_listen_bind 2015-04-09 14:32:37 +02:00
url-test.c
url.c
url.h
urldecode.c
urldecode.h
utils.c lavf: Fix variables constness in ff_iso8601_to_unix_time() 2015-04-20 18:43:33 +01:00
vc1test.c
vc1testenc.c
version.h mov: Add option to keep exact packet sequence after seeking 2015-03-18 14:28:56 +00:00
voc.c
voc.h
vocdec.c
vocenc.c
vorbiscomment.c
vorbiscomment.h
vqf.c lavf: move internal fields from public to internal context 2015-02-10 21:45:04 +01:00
wavdec.c
wavenc.c
wc3movie.c
westwood_aud.c
westwood_vqa.c
wtv.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
wv.c
wv.h
wvdec.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
wvenc.c
xa.c
xmv.c
xwma.c avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
yop.c lavf: move internal fields from public to internal context 2015-02-10 21:45:04 +01:00
yuv4mpeg.h
yuv4mpegdec.c yuv4mpegdec: initialize field_order in yuv4_read_header() 2015-01-29 15:26:33 +00:00
yuv4mpegenc.c