FFmpeg/libavformat
Andreas Rheinhardt c602deb138 avformat/mux: Preserve sync even if later packet has negative ts
write_packet() has code to shift the packets timestamps
to make them nonnegative or even make them start at ts zero;
this code inspects every packet that is written and if a packet
with negative timestamp (whether this is dts or pts depends upon
another flag; basically: Matroska uses pts, everyone else dts)
is encountered, this is offset to make the timestamp zero.
All further packets will be offset accordingly (with the offset
converted according to the streams' timebases).

This is based around an assumption, namely that the timestamps
are indeed non-decreasing, so that the first packet with negative
timestamps is the first packet with timestamps. This assumption
is often fulfilled given that the default interleavement function
by default interleaves per dts; yet there are scenarios in which
it may not be fulfilled:
a) av_write_frame() instead of av_interleaved_write_frame() is used.
b) The audio_preload option is used.
c) When the timestamps that are made nonnegative/zero are pts
(i.e. with Matroska), because the packet with the smallest dts
is not necessarily the packet with the smallest pts.
d) Possibly with custom interleavement functions.
In these cases the relative sync of the first few packet(s) is offset
relative to the later packets. This contradicts the documentation
("When shifting is enabled, all output timestamps are shifted by
the same amount").

Therefore this commit changes this: As soon as the first packet
with valid timestamps is output, it is checked and recorded whether
the timestamps need to be shifted. Further packets are no longer
checked for needing to be offset; instead they are simply offset.
In the cases above this leads to packets with negative timestamps
(and the appropriate warnings) instead of desync. This will mostly
be fixed in the next commit.

This commit also factors handling the avoid_negative_ts stuff out
of write_packet() in order to be able to return immediately.

Tickets #4536 and #5784 as well as the matroska-avoid-negative-ts-test
are examples of c); as has been said, some timestamps are now negative,
yet the ref file update does not show it because ffmpeg.c sanitizes
the timestamps (-copyts disables it; ffprobe and mkvinfo also show
the original timestamps).

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-01-21 16:47:38 +01:00
..
tests avformat/avformat: Add AVFMT_AVOID_NEG_TS_DISABLED 2022-01-21 16:47:38 +01:00
.gitignore
3dostr.c
4xm.c avformat/4xm: Check for duplicate track ids 2021-12-16 22:31:13 +01:00
a64.c lavf/a64: avoid avcodec.h dependency 2021-06-10 16:51:44 +02:00
aacdec.c avformat/aacdec: enable probesize-sized resyncs mid-stream 2021-09-28 23:02:20 +03:00
aadec.c avformat/aadec: Use smaller scope for variables 2021-12-08 14:12:42 +01:00
aaxdec.c avformat: Use ffio_read_size where appropriate 2021-08-06 22:47:22 +02:00
ac3_channel_layout_tab.c avcodec/ac3tab: Unavpriv ac3_channel_layout_tab 2022-01-04 13:16:49 +01:00
ac3dec.c avformat/rawdec: Deduplicate AVClasses based upon ff_raw_options 2021-07-08 16:03:18 +02:00
acedec.c
acm.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
act.c avformat: Use ffio_read_size where appropriate 2021-08-06 22:47:22 +02:00
adp.c
ads.c
adtsenc.c avformat/adtsenc: return value check for init_get_bits in adts_decode_extradata 2021-08-06 21:04:43 +02:00
adxdec.c
aea.c
afc.c Avoid calling functions repeatedly via FFMIN 2021-07-18 22:06:20 +02:00
aiff.c
aiff.h
aiffdec.c avformat/aiffdec: "-1" -> AVERROR_INVALIDDATA 2021-11-01 20:37:20 +01:00
aiffenc.c avcodec/packet_internal: Add proper PacketList struct 2022-01-04 13:16:50 +01:00
aixdec.c
allformats.c avformat/imf: Demuxer 2021-12-31 17:26:01 +10:00
alp.c avcodec/avcodec: Stop including channel_layout.h in avcodec.h 2021-07-22 11:14:31 +02:00
amr.c avformat/amr: Return error upon error 2022-01-09 21:25:03 +01:00
amvenc.c avformat/amvenc: Avoid allocating packet 2021-10-03 20:56:12 +02:00
anm.c
apc.c
ape.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
apetag.c
apetag.h
apm.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
apngdec.c
apngenc.c avformat/apngenc: Use UINT16_MAX instead of USHRT_MAX 2021-11-09 15:40:36 +01:00
aptxdec.c avformat/aptxdec: Deduplicate AVClasses 2021-07-08 16:03:17 +02:00
aqtitledec.c avformat/aqtitledec: Simplify cleanup after read_header failure 2021-07-07 21:32:24 +02:00
argo_asf.c avformat/argo_asf: use title metadata when muxing 2021-10-15 23:40:15 +10:00
argo_asf.h avformat/argo_asf: cleanup and NULL-terminate name field in header 2021-10-15 23:39:47 +10:00
argo_brp.c avformat/argo_brp: use bits_per_coded_sample instead of bits_per_raw_sample 2021-07-19 14:14:39 +10:00
argo_cvg.c avformat/internal: Move ff_read_line_to_bprint_overwrite to avio_internal.h 2021-07-29 22:02:05 +02:00
asf.c
asf.h
asfcrypt.c
asfcrypt.h
asfdec_f.c libavformat/asfdec: Add braces to define 2021-09-30 14:02:27 +02:00
asfdec_o.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
asfenc.c avformat/asfenc: Return proper error codes 2021-10-03 20:50:50 +02:00
assdec.c avformat/subtitles: Deduplicate subtitles' read_(packet|seek|close) 2021-07-18 04:26:35 +02:00
assenc.c
ast.c
ast.h
astdec.c
astenc.c avformat/astenc: Simplify writing padding 2021-09-23 17:37:22 +02:00
async.c
au.c avformat/internal: Move ff_read_line_to_bprint_overwrite to avio_internal.h 2021-07-29 22:02:05 +02:00
av1.c avformat/avio: Move internal AVIOContext fields to avio_internal.h 2021-08-25 23:01:54 +02:00
av1.h avformat/av1: Document actual behaviour of ff_av1_filter_obus() 2022-01-19 11:57:58 +01:00
av1dec.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
avc.c avformat/avc: Add functions to split access unit into list of NALUs 2022-01-19 12:02:36 +01:00
avc.h avformat/avc: Add functions to split access unit into list of NALUs 2022-01-19 12:02:36 +01:00
avformat.h avformat/avformat: Add AVFMT_AVOID_NEG_TS_DISABLED 2022-01-21 16:47:38 +01:00
avformatres.rc
avi.h
avidec.c avformat/avidec: Check read_odml_index() for failure 2021-11-26 21:31:06 +01:00
avienc.c avcodec/raw: Reduce number of avpriv symbols 2022-01-04 13:16:49 +01:00
avio_internal.h avformat/aviobuf: ffio_copy_url_options 2021-12-19 00:35:24 +10:00
avio.c avformat/avio: Check av_opt_copy() for failure 2021-05-27 17:41:36 +02:00
avio.h avformat/avio{,buf}: introduce public AVIOContext::bytes_{read,written} 2021-10-24 13:04:39 +03:00
aviobuf.c avformat/aviobuf: ffio_copy_url_options 2021-12-19 00:35:24 +10:00
avisynth.c
avlanguage.c
avlanguage.h
avr.c
avs2dec.c
avs3dec.c
avs.c
bethsoftvid.c
bfi.c avformat/bfi: check nframes 2021-07-31 22:08:19 +02:00
bink.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
binka.c
bintext.c
bit.c
bluray.c
bmv.c
boadec.c avformat: Avoid allocation for AVFormatInternal 2021-09-17 04:58:34 +02:00
brstm.c avformat/brstm: Simplify cleanup after read_header failure 2021-07-07 21:43:15 +02:00
c93.c
cache.c
caf.c
caf.h
cafdec.c avformat/cafdec: Avoid unnecessary avio_tell() calls 2021-11-26 18:55:58 +01:00
cafenc.c avformat/cafenc: Fix memleak when trailer is never written 2021-09-27 07:08:58 +02:00
cavsvideodec.c
cdg.c
cdxl.c
chromaprint.c avformat/chromaprint: Improve returned error codes 2021-09-27 06:05:46 +02:00
cinedec.c avformat/cinedec: Avoid repeatedly allocating packets beyond the input 2021-12-16 22:31:13 +01:00
codec2.c avformat: Avoid allocation for AVFormatInternal 2021-09-17 04:58:34 +02:00
concat.c avformat/concatf: ignore trailing whitespaces 2021-12-07 17:50:55 +05:30
concatdec.c libavformat: add side_data copy in concat demuxer 2021-12-22 12:05:41 +01:00
crcenc.c avformat/crcenc: Make init function out of write_header 2021-12-20 14:29:01 +01:00
crypto.c
dash.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
dash.h
dashdec.c avformat/dashdec: do not use filesize when reading XML file 2022-01-09 18:44:26 +01:00
dashenc.c avformat: introduce AVFormatContext io_close2 which returns an int 2021-12-12 00:32:20 +01:00
data_uri.c
dauddec.c
daudenc.c
dca_sample_rate_tab.c avcodec/dca: Unavpriv dca_sample_rates 2022-01-04 13:16:49 +01:00
dcstr.c
demux.c avcodec/packet_internal: Add proper PacketList struct 2022-01-04 13:16:50 +01:00
derf.c avcodec/avcodec: Stop including channel_layout.h in avcodec.h 2021-07-22 11:14:31 +02:00
dfa.c
dhav.c avformat/dhav: Limit get_duration() iterations 2021-11-14 17:51:35 +01:00
diracdec.c
dnxhddec.c
dovi_isom.c avformat/dovi_isom: Implement Dolby Vision configuration parsing/writing 2022-01-04 04:29:36 +01:00
dovi_isom.h avformat/dovi_isom: Implement Dolby Vision configuration parsing/writing 2022-01-04 04:29:36 +01:00
dsfdec.c avformat: Avoid allocation for AVFormatInternal 2021-09-17 04:58:34 +02:00
dsicin.c avformat/dsicin: Check packet size for overflow 2021-07-31 22:08:20 +02:00
dss.c
dtsdec.c avformat/rawdec: Deduplicate AVClasses based upon ff_raw_options 2021-07-08 16:03:18 +02:00
dtshddec.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
dump.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
dv.c avformat/dv: Set AVFMTCTX_NOHEADER flag 2021-09-26 08:51:58 +02:00
dv.h
dvbsub.c
dvbtxt.c
dvenc.c lavf/dvenc: replace av_fifo_peek2() with av_fifo_generic_peek_at() 2022-01-10 16:04:00 +01:00
dxa.c avformat/dxa: Check fps to be within the supported range more precissely 2021-06-18 18:58:25 +02:00
eacdata.c avcodec/avcodec: Stop including channel_layout.h in avcodec.h 2021-07-22 11:14:31 +02:00
electronicarts.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
epafdec.c
ffmeta.h
ffmetadec.c
ffmetaenc.c
fifo_test.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
fifo.c avformat: introduce AVFormatContext io_close2 which returns an int 2021-12-12 00:32:20 +01:00
file_open.c
file.c avformat/file: use proper return value in file_close 2021-12-12 00:32:20 +01:00
filmstripdec.c
filmstripenc.c avformat/filmstripenc: Simplify writing reserved elements 2021-09-27 06:06:08 +02:00
fitsdec.c
fitsenc.c
flac_picture.c avformat/flac_picture: Reindentation 2021-08-28 15:25:18 +02:00
flac_picture.h avformat/flac_picture: Try to reuse buffer for attached picture 2021-08-28 15:25:18 +02:00
flacdec.c avformat/flacdec: Also set channels when setting channel_layout 2021-10-07 22:06:27 +02:00
flacenc_header.c
flacenc.c avcodec/packet_internal: Add proper PacketList struct 2022-01-04 13:16:50 +01:00
flacenc.h
flic.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
flv.h
flvdec.c avformat/flvdec: timestamps cannot use the full int64 range 2021-12-30 22:20:14 +01:00
flvenc.c avcodec/mpeg4audio: Unavpriv and deduplicate mpeg4audio_sample_rates 2022-01-04 13:16:50 +01:00
format.c lavf: add a flag for experimental (de)muxers 2022-01-03 20:38:35 +01:00
framecrcenc.c avformat/internal: Move ff_read_line_to_bprint_overwrite to avio_internal.h 2021-07-29 22:02:05 +02:00
framehash.c avcodec/avcodec: Stop including channel_layout.h in avcodec.h 2021-07-22 11:14:31 +02:00
frmdec.c
fsb.c avformat: Avoid allocation for AVFormatInternal 2021-09-17 04:58:34 +02:00
ftp.c lavf/ftp: check for truncation in snprintf 2021-12-07 11:16:14 +01:00
fwse.c avcodec/avcodec: Stop including channel_layout.h in avcodec.h 2021-07-22 11:14:31 +02:00
g722.c avformat/rawdec: Deduplicate AVClasses based upon ff_raw_options 2021-07-08 16:03:18 +02:00
g723_1.c
g726.c avformat/g726: Deduplicate AVClasses 2021-07-08 16:03:17 +02:00
g729dec.c
gdv.c
genh.c avcodec/avcodec: Stop including channel_layout.h in avcodec.h 2021-07-22 11:14:31 +02:00
gif.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
gifdec.c avformat/gifdec: log loop count 2021-07-20 11:20:04 +05:30
golomb_tab.c
gopher.c
gsmdec.c
gxf.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
gxf.h
gxfenc.c avformat/mux: Don't use stack packet when writing interleaved packets 2021-10-03 20:50:50 +02:00
h261dec.c
h263dec.c
h264dec.c
hashenc.c Replace all occurences of av_mallocz_array() by av_calloc() 2021-09-20 01:03:52 +02:00
hca.c avformat: Avoid allocation for AVFormatInternal 2021-09-17 04:58:34 +02:00
hcom.c
hdsenc.c avformat: do not use AVIO_FLAG_* with avio_alloc_context 2021-12-04 14:06:30 +01:00
hevc.c lavf/hevc: drop unnecessary avcodec.h include 2021-06-10 16:51:44 +02:00
hevc.h
hevcdec.c
hls_sample_encryption.c avcodec/ac3tab: Unavpriv ac3_channel_layout_tab 2022-01-04 13:16:49 +01:00
hls_sample_encryption.h libavformat/hls: add support for decryption of HLS media segments encrypted using SAMPLE-AES encryption method 2021-10-13 11:23:53 +08:00
hls.c avformat/aviobuf: ffio_copy_url_options 2021-12-19 00:35:24 +10:00
hlsenc.c avformat/hlsenc: convey stream id to segment streams 2022-01-09 10:37:00 +05:30
hlsplaylist.c
hlsplaylist.h
hlsproto.c Remove obsolete version.h inclusions 2021-07-22 14:34:31 +02:00
hnm.c
http.c http: honor response headers in redirect caching 2022-01-18 17:35:26 -05:00
http.h
httpauth.c avformat/utils: Make ff_data_to_hex() zero-terminate the string 2021-12-08 00:42:48 +01:00
httpauth.h
icecast.c
icodec.c avformat/icodec: Simplify cleanup after read_header failure 2021-07-07 22:13:06 +02:00
icoenc.c avformat/icoenc: Use avcodec_get_name() instead of codec descriptor 2021-09-27 07:08:59 +02:00
id3v1.c lavf/id3v1: drop unnecessary avcodec.h include 2021-06-10 16:51:44 +02:00
id3v1.h
id3v2.c avformat/avio: Move internal AVIOContext fields to avio_internal.h 2021-08-25 23:01:54 +02:00
id3v2.h
id3v2enc.c
idcin.c avformat/utils: make ff_update_cur_dts() shared 2021-06-09 13:55:25 -03:00
idroqdec.c
idroqenc.c
iff.c avformat/iff: Use 64bit in duration computation 2021-06-18 18:58:25 +02:00
ifv.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
ilbc.c avformat/ilbc: Use av_get_packet 2021-08-06 22:49:26 +02:00
imf_cpl.c avformat/imf: Fix indentation 2022-01-05 21:19:48 +10:00
imf.h avformat/imf: Demuxer 2021-12-31 17:26:01 +10:00
imfdec.c avformat/imfdec: Use proper logcontext 2022-01-19 16:50:46 +01:00
img2_alias_pix.c
img2_brender_pix.c
img2.c avformat/img2dec: add GEM Raster image demuxer 2021-10-08 20:37:36 +11:00
img2.h
img2dec.c avformat/img2dec: Don't include disabled demuxers 2022-01-08 18:12:30 +01:00
img2enc.c avformat/img2enc: do not ignore IO errors 2021-12-12 00:32:20 +01:00
imx.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
ingenientdec.c avformat/rawdec: Deduplicate AVClasses based upon ff_rawvideo_options 2021-07-08 16:03:18 +02:00
internal.h avformat/mux: Preserve sync even if later packet has negative ts 2022-01-21 16:47:38 +01:00
ip.c
ip.h
ipmovie.c avformat: Avoid allocation for AVFormatInternal 2021-09-17 04:58:34 +02:00
ipudec.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
ircam.c
ircam.h
ircamdec.c
ircamenc.c
isom_tags.c avformat/isom_tags: fix 'ipcm' with samplesize equal to 16 2021-11-03 17:45:02 +01:00
isom.c avcodec/mpegaudiodata: Unavpriv mpa_bitrate and mpa_frequency tabs 2022-01-04 13:16:50 +01:00
isom.h avformat/mov: add option max_stts_delta 2021-12-31 14:44:20 +05:30
iss.c
iv8.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
ivfdec.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
ivfenc.c
jacosubdec.c avformat/jacosubdec: Check for min in t overflow in get_shift() 2021-09-13 22:48:10 +02:00
jacosubenc.c avformat/jacosubenc: Fix writing extradata 2021-09-25 23:11:56 +02:00
jpegtables.c avcodec/jpegtables: Unavpriv MJPEG-tables 2022-01-04 13:16:50 +01:00
jvdec.c avformat/jvdec: Make sizeof(JVFrame) smaller to save memory 2021-09-26 01:43:18 +02:00
kvag.c avformat: Use ffio_read_size where appropriate 2021-08-06 22:47:22 +02:00
latmenc.c avformat/avformat: Add AVStream parameter to check_bitstream() sig 2021-11-27 12:55:41 +01:00
libamqp.c
libavformat.v
libgme.c avformat/libgme: Simplify cleanup after read_header failure 2021-07-07 22:26:44 +02:00
libmodplug.c
libopenmpt.c avcodec/avcodec: Stop including channel_layout.h in avcodec.h 2021-07-22 11:14:31 +02:00
librist.c avformat/librist: correctly initialize logging_settings 2021-11-18 20:40:24 +01:00
librtmp.c
libsmbclient.c
libsrt.c avformat/libsrt: add missing version check for snddropdelay 2021-11-25 19:11:24 +01:00
libssh.c
libzmq.c
lmlm4.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
loasdec.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
log2_tab.c
lrc.c
lrc.h
lrcdec.c avformat/subtitles: Deduplicate subtitles' read_(packet|seek|close) 2021-07-18 04:26:35 +02:00
lrcenc.c avformat/lrcenc: Unify writing timestamps 2021-10-07 11:55:55 +02:00
luodatdec.c
lvfdec.c
lxfdec.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
m4vdec.c
Makefile avformat/matroskaenc: Disable MKV-only code if MKV muxer is disabled 2022-01-08 18:16:29 +01:00
matroska.c
matroska.h avformat/matroska{dec, enc}: Parse BlockAdditionMapping elements 2022-01-04 04:29:36 +01:00
matroskadec.c avformat/matroskadec: Use correct type for field_order 2022-01-19 23:20:05 +01:00
matroskaenc.c avformat/matroskaenc: Fix writing AV_SPHERICAL_EQUIRECTANGULAR 2022-01-20 18:31:59 +01:00
mca.c avformat/utils: make ff_update_cur_dts() shared 2021-06-09 13:55:25 -03:00
mccdec.c avformat/subtitles: Deduplicate subtitles' read_(packet|seek|close) 2021-07-18 04:26:35 +02:00
md5proto.c avformat/md5proto: Simplify data->hex conversion 2021-12-08 14:15:53 +01:00
metadata.c
metadata.h
mgsts.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
microdvddec.c avformat/microdvddec: Simplify cleanup after read_header failure 2021-07-07 23:42:13 +02:00
microdvdenc.c
mj2kdec.c
mkvtimestamp_v2.c
mlpdec.c avformat/mlpdec: fix time_base for packet timestamps 2021-09-07 18:16:13 +02:00
mlvdec.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
mm.c
mmf.c
mms.c
mms.h
mmsh.c
mmst.c avformat/avio: Move internal AVIOContext fields to avio_internal.h 2021-08-25 23:01:54 +02:00
mods.c
moflex.c avformat/moflex: Don't use uninitialized timebase for data stream 2021-12-16 03:08:10 +01:00
mov_chan.c avformat/mov_chan: Make ff_mov_get_channel_layout() static 2021-09-08 22:59:14 +02:00
mov_chan.h avformat/mov_chan: Make ff_mov_get_channel_layout() static 2021-09-08 22:59:14 +02:00
mov_esds.c
mov.c avformat/mov: Fix endian-dependent parsing 2022-01-21 11:52:45 +01:00
movenc_ttml.c avcodec/packet_internal: Add proper PacketList struct 2022-01-04 13:16:50 +01:00
movenc_ttml.h avformat/movenc: add support for TTML muxing 2021-08-25 09:26:46 +03:00
movenc.c avformat/movenc: fix duration in mdhd box 2022-01-10 12:32:21 +02:00
movenc.h avcodec/packet_internal: Add proper PacketList struct 2022-01-04 13:16:50 +01:00
movenccenc.c avformat/movenccenc: Fix memory leak for muxing CENC-encrypted files 2021-02-27 22:09:51 +01:00
movenccenc.h
movenchint.c avformat/movenchint: Simplify writing padding 2021-09-24 00:13:49 +02:00
mp3dec.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
mp3enc.c avcodec/packet_internal: Add proper PacketList struct 2022-01-04 13:16:50 +01:00
mpc8.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
mpc.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
mpeg4audio_sample_rates.c avcodec/mpeg4audio: Unavpriv and deduplicate mpeg4audio_sample_rates 2022-01-04 13:16:50 +01:00
mpeg.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
mpeg.h
mpegaudiotabs.c avcodec/mpegaudiodata: Unavpriv mpa_bitrate and mpa_frequency tabs 2022-01-04 13:16:50 +01:00
mpegenc.c avformat/mpegenc: Simplify writing padding/stuffing 2021-09-27 07:08:59 +02:00
mpegts.c avformat/mpegts: add option max_packet_size 2022-01-16 10:46:38 +05:30
mpegts.h avformat/mpegts: add support for stream_type 0xd4, which is AVS3 2021-10-20 22:40:13 +08:00
mpegtsenc.c avformat/mpegtsenc: Avoid allocation of AVPacket 2021-11-27 12:55:41 +01:00
mpegvideodec.c
mpjpeg.c
mpjpegdec.c avformat/avio: Move internal AVIOContext fields to avio_internal.h 2021-08-25 23:01:54 +02:00
mpl2dec.c avformat/subtitles: Deduplicate subtitles' read_(packet|seek|close) 2021-07-18 04:26:35 +02:00
mpsubdec.c avformat/subtitles: Deduplicate subtitles' read_(packet|seek|close) 2021-07-18 04:26:35 +02:00
msf.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
msnwc_tcp.c
mspdec.c
mtaf.c
mtv.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
musx.c
mux.c avformat/mux: Preserve sync even if later packet has negative ts 2022-01-21 16:47:38 +01:00
mvdec.c avformat/mvdec: re-indent after last commit 2022-01-08 09:21:21 +11:00
mvi.c
mxf.c Remove/replace some unnecessary avcodec.h inclusions 2021-07-22 15:29:46 +02:00
mxf.h avformat/mxfdec: support MCA audio information 2022-01-09 18:13:53 +01:00
mxfdec.c avformat/mxfdec: support MCA audio information 2022-01-09 18:13:53 +01:00
mxfenc.c avcodec/packet_internal: Add proper PacketList struct 2022-01-04 13:16:50 +01:00
mxg.c
ncdec.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
network.c lavf/network: log ff_listen() errors to proper contexts rather than NULL 2022-01-21 09:25:05 +01:00
network.h lavf/network: log ff_listen() errors to proper contexts rather than NULL 2022-01-21 09:25:05 +01:00
nistspheredec.c
nspdec.c
nsvdec.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
nullenc.c avformat/nullenc: Use ff_interleave_packet_passthrough() 2021-11-19 18:11:46 +01:00
nut.c
nut.h
nutdec.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
nutenc.c avcodec/mpegaudiodata: Unavpriv mpa_bitrate and mpa_frequency tabs 2022-01-04 13:16:50 +01:00
nuv.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
oggdec.c avformat: Avoid allocation for AVFormatInternal 2021-09-17 04:58:34 +02:00
oggdec.h avformat/oggparsevorbis: Avoid tmp bufs when parsing VorbisComment 2021-08-28 15:25:18 +02:00
oggenc.c avformat/avio: Move internal AVIOContext fields to avio_internal.h 2021-08-25 23:01:54 +02:00
oggparsecelt.c
oggparsedirac.c
oggparseflac.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
oggparseogm.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
oggparseopus.c
oggparseskeleton.c
oggparsespeex.c
oggparsetheora.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
oggparsevorbis.c all: Use av_memdup() where appropriate 2021-12-03 16:07:02 +01:00
oggparsevp8.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
oma.c
oma.h
omadec.c avformat/utils: Make ff_data_to_hex() zero-terminate the string 2021-12-08 00:42:48 +01:00
omaenc.c avformat/omaenc: Simplify writing padding 2021-09-27 07:08:59 +02:00
options_table.h avformat/avformat: Add AVFMT_AVOID_NEG_TS_DISABLED 2022-01-21 16:47:38 +01:00
options.c avformat/mux: Preserve sync even if later packet has negative ts 2022-01-21 16:47:38 +01:00
os_support.c
os_support.h
paf.c avformat/paf: read frame rate from header @0x88 2021-08-10 01:14:04 +02:00
pcm.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
pcm.h
pcmdec.c avformat/pcmdec: Deduplicate AVClasses 2021-07-08 16:03:18 +02:00
pcmenc.c
pjsdec.c avformat/subtitles: Deduplicate subtitles' read_(packet|seek|close) 2021-07-18 04:26:35 +02:00
pmpdec.c
pp_bnk.c avcodec/avcodec: Stop including channel_layout.h in avcodec.h 2021-07-22 11:14:31 +02:00
prompeg.c
protocols.c lavf/protocols: avoid discarding const in avio_enum_protocols() 2021-12-07 11:16:14 +01:00
psxstr.c
pva.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
pvfdec.c
qcp.c avformat/qcp: Avoid negative nb_rates 2021-06-18 18:58:25 +02:00
qtpalette.c
qtpalette.h
r3d.c avformat: Avoid allocation for AVFormatInternal 2021-09-17 04:58:34 +02:00
rawdec.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
rawdec.h avformat/rawdec: Make ff_raw_data_read_header() static 2021-09-08 22:59:14 +02:00
rawenc.c avformat/avformat: Add AVStream parameter to check_bitstream() sig 2021-11-27 12:55:41 +01:00
rawenc.h
rawutils.c
rawvideodec.c avformat/rawvideodec: check packet size 2022-01-13 19:43:03 +01:00
rdt.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
rdt.h
realtextdec.c avformat/subtitles: Deduplicate subtitles' read_(packet|seek|close) 2021-07-18 04:26:35 +02:00
redspark.c
replaygain.c Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
replaygain.h
riff.c avcodec/siren: MSN Siren decoder 2021-09-07 18:07:11 +10:00
riff.h Remove/replace some unnecessary avcodec.h inclusions 2021-07-22 15:29:46 +02:00
riffdec.c avformat: Use ffio_read_size where appropriate 2021-08-06 22:47:22 +02:00
riffenc.c avformat/riffenc: Fix indentation 2021-09-24 00:14:01 +02:00
rl2.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
rm.c
rm.h
rmdec.c avformat/rmdec: Check for multiple audio_stream_info 2021-10-09 11:42:16 +02:00
rmenc.c
rmsipr.c
rmsipr.h
rpl.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
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 lavf/rtmp: Add option to set TCP_NODELAY for rtmp 2021-06-20 22:45:35 +02:00
rtmppkt.h
rtmpproto.c avformat/utils: Make ff_data_to_hex() zero-terminate the string 2021-12-08 00:42:48 +01:00
rtp.c lavf/sdp: add const qualifiers where appropriate 2021-12-17 10:22:41 +01:00
rtp.h lavf/sdp: add const qualifiers where appropriate 2021-12-17 10:22:41 +01:00
rtpdec_ac3.c
rtpdec_amr.c
rtpdec_asf.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
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 avcodec/jpegtables: Unavpriv MJPEG-tables 2022-01-04 13:16:50 +01:00
rtpdec_latm.c
rtpdec_mpa_robust.c
rtpdec_mpeg4.c
rtpdec_mpeg12.c
rtpdec_mpegts.c
rtpdec_qcelp.c
rtpdec_qdm2.c Remove/replace some unnecessary avcodec.h inclusions 2021-07-22 15:29:46 +02:00
rtpdec_qt.c avformat/avio: Move internal AVIOContext fields to avio_internal.h 2021-08-25 23:01:54 +02:00
rtpdec_rfc4175.c avformat/rtpdec_rfc4175: reindent after last commit 2022-01-12 09:21:07 +08:00
rtpdec_svq3.c
rtpdec_vc2hq.c
rtpdec_vp8.c
rtpdec_vp9.c
rtpdec_xiph.c
rtpdec.c avformat/rtpdec: Make ff_rtp_handler_iterate() static 2021-09-08 22:59:14 +02:00
rtpdec.h avformat/rtpdec: Make ff_rtp_handler_iterate() static 2021-09-08 22:59:14 +02:00
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 avcodec/jpegtables: Unavpriv MJPEG-tables 2022-01-04 13:16:50 +01:00
rtpenc_latm.c
rtpenc_mpegts.c
rtpenc_mpv.c
rtpenc_rfc4175.c avformat/rtpenc_rfc4175: support for interlace format 2022-01-12 09:21:07 +08:00
rtpenc_vc2hq.c
rtpenc_vp8.c
rtpenc_vp9.c
rtpenc_xiph.c
rtpenc.c avformat/rtpenc_rfc4175: support for interlace format 2022-01-12 09:21:07 +08:00
rtpenc.h avformat/rtpenc_rfc4175: support for interlace format 2022-01-12 09:21:07 +08:00
rtpproto.c avformat/rtp: add localaddr for network interface selection 2021-11-27 11:21:17 +08:00
rtpproto.h
rtsp.c avformat/rtsp: #if unused functions away, fix -O0 compilation 2022-01-08 18:13:04 +01:00
rtsp.h avformat/rtsp: add error code handling for ff_rtsp_skip_packet() 2021-12-07 20:33:17 +08:00
rtspcodes.h
rtspdec.c avformat/rtspdec: get rid of the hardcoded max size for sdp 2021-12-04 08:26:30 +08:00
rtspenc.c avformat/rtsp: add error code handling for ff_rtsp_skip_packet() 2021-12-07 20:33:17 +08:00
s337m.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
samidec.c avformat/subtitles: Deduplicate subtitles' read_(packet|seek|close) 2021-07-18 04:26:35 +02:00
sapdec.c avformat/avio: Move internal AVIOContext fields to avio_internal.h 2021-08-25 23:01:54 +02:00
sapenc.c Replace all occurences of av_mallocz_array() by av_calloc() 2021-09-20 01:03:52 +02:00
sauce.c
sauce.h
sbcdec.c avformat/rawdec: Deduplicate AVClasses based upon ff_raw_options 2021-07-08 16:03:18 +02:00
sbgdec.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
sccdec.c avformat/sccdec: Remove nonsense cast 2021-10-07 11:52:10 +02:00
sccenc.c avformat/(lrc|scc)enc: Use avio_w8() to write a single char 2021-10-02 17:16:34 +02:00
scd.c avformat/scd: add demuxer 2021-12-02 01:41:55 +10:00
sctp.c lavf/network: log ff_socket() errors to proper contexts rather than NULL 2022-01-21 09:25:05 +01:00
sdp.c avformat/rtpenc_rfc4175: support for interlace format 2022-01-12 09:21:07 +08:00
sdr2.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
sdsdec.c
sdxdec.c
seek.c seek: Fix crashes in ff_seek_frame_binary if built with latest Clang 14 2021-10-18 14:34:30 +03:00
segafilm.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
segafilmenc.c avformat/segafilmenc: use ff_format_shift_data for shifting 2022-01-03 22:54:12 +01:00
segment.c avformat: introduce AVFormatContext io_close2 which returns an int 2021-12-12 00:32:20 +01:00
serdec.c avformat: Avoid allocation for AVFormatInternal 2021-09-17 04:58:34 +02:00
sga.c avcodec/avcodec: Stop including channel_layout.h in avcodec.h 2021-07-22 11:14:31 +02:00
shortendec.c avformat/rawdec: Deduplicate AVClasses based upon ff_raw_options 2021-07-08 16:03:18 +02:00
sierravmd.c avformat/sierravmd: Simplify cleanup after read_header failure 2021-07-08 13:54:52 +02:00
siff.c
smacker.c avformat: Avoid allocation for AVFormatInternal 2021-09-17 04:58:34 +02:00
smjpeg.c
smjpeg.h
smjpegdec.c
smjpegenc.c
smoothstreamingenc.c avformat/smoothstreamingenc: Move buffers to the end of structs 2021-12-05 13:27:38 +01:00
smush.c
sol.c
sox.h
soxdec.c
soxenc.c
spdif.c
spdif.h
spdifdec.c
spdifenc.c avcodec/dca: Unavpriv dca_sample_rates 2022-01-04 13:16:49 +01:00
srtdec.c avformat/subtitles: Deduplicate subtitles' read_(packet|seek|close) 2021-07-18 04:26:35 +02:00
srtenc.c
srtp.c
srtp.h
srtpproto.c
stldec.c avformat/subtitles: Deduplicate subtitles' read_(packet|seek|close) 2021-07-18 04:26:35 +02:00
subfile.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
subtitles.c avformat/subtitles: Honour ff_subtitles_read_line() documentation 2021-10-02 17:16:29 +02:00
subtitles.h avformat/avio: Move internal AVIOContext fields to avio_internal.h 2021-08-25 23:01:54 +02:00
subviewer1dec.c avformat/subtitles: Deduplicate subtitles' read_(packet|seek|close) 2021-07-18 04:26:35 +02:00
subviewerdec.c avformat/subtitles: Deduplicate subtitles' read_(packet|seek|close) 2021-07-18 04:26:35 +02:00
supdec.c
supenc.c
svag.c
svs.c avformat: Avoid allocation for AVFormatInternal 2021-09-17 04:58:34 +02:00
swf.c
swf.h
swfdec.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
swfenc.c
takdec.c avformat/takdec: Don't initialize get_bits context to read one value 2022-01-07 11:55:57 +01:00
tcp.c lavf/network: log ff_listen() errors to proper contexts rather than NULL 2022-01-21 09:25:05 +01:00
tedcaptionsdec.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
tee_common.c
tee_common.h
tee.c avformat: introduce AVFormatContext io_close2 which returns an int 2021-12-12 00:32:20 +01:00
teeproto.c
thp.c avformat/avio: Move internal AVIOContext fields to avio_internal.h 2021-08-25 23:01:54 +02:00
tiertexseq.c avformat/tiertexseq: Simplify cleanup after read_header failure 2021-07-08 14:08:00 +02:00
tls_gnutls.c
tls_libtls.c
tls_mbedtls.c lavf/tls_mbedtls: fix handling of tls_verify=0 2021-12-30 19:32:34 +02:00
tls_openssl.c
tls_schannel.c
tls_securetransport.c
tls.c
tls.h
tmv.c
to_upper4.c avcodec/utils: Unavpriv avpriv_toupper4() 2022-01-04 13:16:50 +01:00
tta.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
ttaenc.c avcodec/packet_internal: Add proper PacketList struct 2022-01-04 13:16:50 +01:00
ttmlenc.c avformat/ttml: split TTML paragraph based or not check into header 2021-08-25 09:26:46 +03:00
ttmlenc.h avformat/ttml: split TTML paragraph based or not check into header 2021-08-25 09:26:46 +03:00
tty.c
txd.c
ty.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
udp.c lavf/network: log ff_socket() errors to proper contexts rather than NULL 2022-01-21 09:25:05 +01:00
uncodedframecrcenc.c
unix.c lavf/network: log ff_socket() errors to proper contexts rather than NULL 2022-01-21 09:25:05 +01:00
url.c
url.h avio: do not export avpriv_io_{move,delete} 2021-05-22 15:27:55 +02:00
urldecode.c
urldecode.h
utils.c avcodec/packet_internal: Add proper PacketList struct 2022-01-04 13:16:50 +01:00
vag.c
vapoursynth.c avformat/vapoursynth: Simplify cleanup after read_header failure 2021-07-08 14:09:15 +02:00
vc1dec.c
vc1test.c
vc1testenc.c
version.h avformat/matroskaenc: Add option to shift data to write cues at front 2022-01-13 21:00:26 +01:00
vividas.c avformat/avio: Move internal AVIOContext fields to avio_internal.h 2021-08-25 23:01:54 +02:00
vivo.c avformat/vivo: Favor setting fps from explicit fractions 2021-12-16 22:31:13 +01:00
voc_packet.c
voc.c
voc.h
vocdec.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
vocenc.c
vorbiscomment.c avformat/vorbiscomment: Don't compute strlen twice 2021-08-27 10:47:23 +02:00
vorbiscomment.h
vpcc.c Remove/replace some unnecessary avcodec.h inclusions 2021-07-22 15:29:46 +02:00
vpcc.h Remove/replace some unnecessary avcodec.h inclusions 2021-07-22 15:29:46 +02:00
vpk.c avformat/utils: make ff_update_cur_dts() shared 2021-06-09 13:55:25 -03:00
vplayerdec.c avformat/subtitles: Deduplicate subtitles' read_(packet|seek|close) 2021-07-18 04:26:35 +02:00
vqf.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
w64.c
w64.h
wavdec.c avformat/wavdec: Check smv_block_size 2021-10-09 11:42:16 +02:00
wavenc.c Replace all occurences of av_mallocz_array() by av_calloc() 2021-09-20 01:03:52 +02:00
wc3movie.c avformat/wc3movie: Simplify cleanup after read_header failure 2021-07-08 15:19:03 +02:00
webm_chunk.c avformat/avformat: Add AVFMT_AVOID_NEG_TS_DISABLED 2022-01-21 16:47:38 +01:00
webmdashenc.c lavf/webmdashenc.c: Allow AV1 video in WebM 2021-06-20 22:30:38 +02:00
webpenc.c avformat/webpenc: Don't use sizeof(AVPacket) 2021-10-03 20:56:12 +02:00
webvttdec.c avformat/webvttdec: Simplify cleanup after read_header failure 2021-07-08 15:19:55 +02:00
webvttenc.c
westwood_aud.c
westwood_audenc.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
westwood_vqa.c avcodec/vqavideo: Decode 15-bit VQA3 files 2021-10-28 22:24:54 +02:00
wsddec.c avcodec/avcodec: Stop including channel_layout.h in avcodec.h 2021-07-22 11:14:31 +02:00
wtv_common.c
wtv.h
wtvdec.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
wtvenc.c
wv.c
wv.h
wvdec.c
wvedec.c
wvenc.c avformat/wvenc: Make init function out of write_header 2021-12-20 14:29:01 +01:00
xa.c
xmv.c Replace all occurences of av_mallocz_array() by av_calloc() 2021-09-20 01:03:52 +02:00
xvag.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
xwma.c avformat: Avoid allocation for AVStreamInternal 2021-09-17 13:22:25 +02:00
yop.c avformat: Avoid allocation for AVFormatInternal 2021-09-17 04:58:34 +02:00
yuv4mpeg.h
yuv4mpegdec.c avformat: Avoid allocation for AVFormatInternal 2021-09-17 04:58:34 +02:00
yuv4mpegenc.c avformat/yuv4mpegenc: Write data generically via AVPixFmtDescriptor 2021-08-06 21:59:14 +02:00