Commit graph

21254 commits

Author SHA1 Message Date
Michael Niedermayer
5d208aac52 avformat/gdv: Check fps
Fixes: Division by 0
Fixes: ffmpeg_zero_division.bin

Found-by: Anatoly Trosinenko <anatoly.trosinenko@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 38381400fc)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-14 16:53:57 +01:00
Michael Niedermayer
339f40f618 avformat/webmdashenc: Check id in adaption_sets
Fixes: out of array access

Found-by: Wenxiang Qian
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit b687b549aa)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-14 00:24:44 +01:00
Wenxiang Qian
ec22b46a4d avformat/http: Fix Out-of-Bounds access in process_line()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 85f91ed760)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-14 00:24:44 +01:00
Wenxiang Qian
11375cd101 avformat/ftp: Fix Out-of-Bounds Access and Information Leak in ftp.c:393
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit a142ffdcae)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-14 00:24:44 +01:00
Michael Niedermayer
4d1fcd734e avformat/matroskadec: Do not leak queued packets on sync errors
Fixes: memleak
Fixes: clusterfuzz-testcase-minimized-audio_decoder_fuzzer-5649187601121280

Reported-by: Chris Cunningham <chcunningham@google.com>
Tested-by: Chris Cunningham <chcunningham@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit d1afa7284c)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-14 00:24:44 +01:00
Michael Niedermayer
d25f388584 avformat/mov: Do not use reference stream in mov_read_sidx() if there is no reference stream
Fixes: NULL pointer dereference
Fixes: clusterfuzz-testcase-minimized-audio_decoder_fuzzer-5634316373721088

Reported-by: Chris Cunningham <chcunningham@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit b0d8b7cb8e)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-14 00:24:44 +01:00
Charles Liu
53f3f5233f avformat/mov: fix hang while seek on a kind of fragmented mp4
Binary searching would hang if the fragment items do NOT have timestamp for the
specified stream.

For example, a fmp4 consists of separated 'moof' boxes for each track, and
separated 'sidx' for each segment, but no 'mfra' box.  Then every fragment item
only have the timestamp for one of its tracks.

Example:
ffmpeg -f lavfi -i testsrc -f lavfi -i sine -movflags dash+frag_keyframe+skip_trailer+separate_moof -t 1 out.mp4
ffmpeg -ss 0.5 -i out.mp4 -f null none

Also fixes the hang in ticket #7572, but not the reason for having
AV_NOPTS_VALUE timestamps there.

Signed-off-by: Charles Liu <liuchh83@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
(cherry picked from commit aa25198f1b)
2019-02-11 22:07:54 +01:00
Marton Balint
110eff79ca avformat/async: fix assertion condition when draining buffer
Fixes some random assertion failures with

ffprobe -show_packets async:samples/ffmpeg-bugs/trac/ticket6132/Samsung_HDR_-_Chasing_the_Light.ts > /dev/null

Signed-off-by: Marton Balint <cus@passwd.hu>
(cherry picked from commit 4b46d1ee46)
2019-02-11 22:07:06 +01:00
chcunningham
00cdf4e4e5 avformat/mov: validate chunk_count vs stsc_data
Bad content may contain stsc boxes with a first_chunk index that
exceeds stco.entries (chunk_count). This ammends the existing check to
include cases where chunk_count == 0. It also patches up the case
when stsc refers to unknown chunks, but stts has no samples (so we
can simply ignore stsc).

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 1c15449ca9)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-02-08 12:22:37 +01:00
chcunningham
bcc71f30ad avformat/mov.c: require tfhd to begin parsing trun
Detecting missing tfhd avoids re-using tfhd track info from the previous
moof. For files with multiple tracks, this may make a mess of the
avindex and fragindex, which can later trigger av_assert0 in
mov_read_trun().

Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 3ea87e5d9e)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-02-08 12:22:13 +01:00
Michael Niedermayer
953f97979f avformat/rtsp: Check number of streams in sdp_parse_line()
Fixes: OOM

Found-by: Michael Hanselmann <public@hansmi.ch>
Reviewed-by: Michael Hanselmann <public@hansmi.ch>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 497c9b0cce)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-01-31 18:03:35 +01:00
Michael Niedermayer
e75a73d629 avformat/rtsp: Clear reply in every iteration in ff_rtsp_connect()
Fixes: Infinite loop

Found-by: Michael Hanselmann <public@hansmi.ch>
Reviewed-by: Michael Hanselmann <public@hansmi.ch>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 0b50f27635)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-01-31 17:29:41 +01:00
Michael Niedermayer
6b6c854658 avformat/libopenmpt: Fix successfull typo
Reviewed-by: Lou Logan <lou@lrcd.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 571af98a59)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-01-21 07:53:26 +01:00
David Bryant
ea279bd160 avformat/wvdec: detect and error out on WavPack DSD files
Not currently supported.

(cherry picked from commit db109373d8)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-01-21 07:53:26 +01:00
Jacob Trimble
73c90818b1 libavformat/mov: Fix NULL-dereference read for some encrypted content.
When reading frames, we need to use the fragment for the correct
stream.  Sometimes the "current" fragment is not the same as the one
the frame is for.

Found by Chromium's ClusterFuzz:
https://crbug.com/906392 and https://crbug.com/915524

Signed-off-by: Jacob Trimble <modmaker@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 555f332e7a)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-01-21 07:53:26 +01:00
Michael Niedermayer
e3fbbb7d18 avformat/mpegts: Fix side data type for stream id
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit ab1319d82f)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-01-21 07:53:26 +01:00
chcunningham
45f5f2086e lavf/id3v2: fail read_apic on EOF reading mimetype
avio_read may return EOF, leaving the mimetype array unitialized. fail
early when this occurs to avoid using the array in an unitialized state.

Reviewed-by: Tomas Härdin <tjoppen@acc.umu.se>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit ee1e39a576)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-01-21 07:53:26 +01:00
Michael Niedermayer
f5859d4a8e avformat/nutenc: Document trailer index assert better
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 3a95b73abc)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-01-21 07:53:26 +01:00
chcunningham
54fbdacc37 lavf/mov: ensure only one tkhd per trak
Chromium fuzzing produced a whacky file with extra tkhds. This caused
an AVStream that was already in use to be corrupted by assigning it a
new id, which blows up later in mov_read_trun because the
MOVFragmentStreamInfo.index_entry now points OOB.

Reviewed-by: Baptiste Coudurier <baptiste.coudurier@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit c9f7b6f7a9)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-01-21 07:53:26 +01:00
Paul B Mahol
59e30c05d7 avformat/movenc: get number of written bytes from bitstream writer
Update fate test.

(cherry picked from commit 97d1ee437b)
2018-11-26 15:36:12 +01:00
Paul B Mahol
fcffed470a avformat/movenc: fix size calculation in mov_write_eac3_tag()
Otherwise it would assert when flushing bits.

(cherry picked from commit 027f032bbc)
2018-11-26 15:36:05 +01:00
James Almer
1c98cf4ddd avformat/ivfenc: use the av1_metadata bsf to insert Temporal Delimiter OBUs if needed
Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: James Almer <jamrial@gmail.com>
(cherry picked from commit 2d2af23349)
2018-11-04 22:06:08 -03:00
Marton Balint
63c1e291ef avformat/ftp: allow nonstandard 202 reply to OPTS UTF8
Fixes ticket #7481.

Signed-off-by: Marton Balint <cus@passwd.hu>
(cherry picked from commit 8e5a2495a8)
2018-11-04 22:55:09 +01:00
Michael Niedermayer
780d5e30a0 Bump minor versions for branching 4.1
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-11-02 00:15:32 +01:00
Marton Balint
6a034adf75 avformat/ftp: return AVERROR_EOF for EOF
Without this FTP just hangs on eof...

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-11-01 21:04:57 +01:00
Charles Liu
1ff4bd59df avformat/hlsenc.c: fix the output's duration smaller than input's in sub-range mode.
In fmp4 & sub-range mode, the output's duration always smaller than expected,
because the size of the last #EXT-X-BYTERANGE is too small.

Signed-off-by: Charles Liu <liuchh83@gmail.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-10-30 11:11:27 +08:00
Charles Liu
76b8e42c1f avformat/hlsenc.c: the size of init.mp4 is zero.
The size of init.mp4 is zero in fmp4 mode,
when the input duraton smaller than the expected segment time.

fix ticket: 7166

Signed-off-by: Charles Liu <liuchh83@gmail.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-10-30 11:10:27 +08:00
Charles Liu
2365f47bf5 avformat/hlsenc.c: remove the useless variable fmp4_init_mode.
Signed-off-by: Charles Liu <liuchh83@gmail.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-10-30 11:09:14 +08:00
Charles Liu
e9dbd62cb5 avformat/hlsenc.c: fix memory leak in fmp4 mode.
Signed-off-by: Charles Liu <liuchh83@gmail.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-10-30 11:08:29 +08:00
Charles Liu
3d1b795493 avformat/hlsenc: fix the duration of m4s segment is unusually smaller than expected.
In fmp4 mode, the duration of the second m4s segment is
unusually smaller than the expected segment time.

Signed-off-by: Charles Liu <liuchh83@gmail.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-10-30 11:07:14 +08:00
Cameron Cawley
0e9c01fd87 avformat/rpl: Support files containing 8 bit PCM or VIDC audio
Signed-off-by: Cameron Cawley <ccawley2011@gmail.com>
2018-10-26 13:39:25 +02:00
Cameron Cawley
22238d0b94 avcodec: Implement Archimedes VIDC encoder/decoder
Signed-off-by: Cameron Cawley <ccawley2011@gmail.com>
2018-10-26 13:39:25 +02:00
kjeyapal@akamai.com
de43c227fd avformat/dashenc: Support HTTP persistent for init segments as well 2018-10-26 11:49:47 +05:30
Baptiste Coudurier
8c733013af avformat/mxfenc: simplify dnxhd handling and add more flavors 2018-10-24 09:07:19 -07:00
Matsuzawa Tomohiro
c2ac3b8e6a avformat/libsrt: add several options supported in srt 1.3.0
Several SRT options are missing. Since pkg_config requires libsrt v1.3.0 and above, it should be able to support options added in libsrt v1.3.0 and below.
This commit adds 8 SRT options.
sndbuf, rcvbuf, lossmaxttl, minversion, streamid, smoother, messageapi and transtype
The keys of option are equivalent to stransmit.
https://github.com/Haivision/srt/blob/v1.3.0/apps/socketoptions.hpp#L196-L223

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-10-23 19:42:48 +02:00
Jun Zhao
18fce29d8f lavf/vc1test: add rcv to vc1test demuxer extensions
rcv is commonly used as extension for vc1 test stream files.

Signed-off-by: Jun Zhao <jun.zhao@intel.com>
2018-10-22 19:09:47 +08:00
Jun Zhao
cc82402ed3 lavf/vc1test: fix vc1test can't probe some RCV file.
case 1:
use the hexdump -C SMM0005.rcv get:
                     size              skip (size - 4)
                      |                        |
                      V                        V
00000000  18 00 00 c5 05 00 00 00  4d f1 0a 11 00 e0 01 00
00000010  00 d0 02 00 00 0c 00 00  00 88 13 00 00 c0 65 52
                         ^
			 |
		     size + 16
case 2:
same the command for SMM0015.rcv get:
                    size
                      |
                      V
00000000  19 00 00 c5 04 00 00 00  41 f3 80 01 40 02 00 00
00000010  d0 02 00 00 0c 00 00 00  00 00 00 10 00 00 00 00
                      ^
		      |
		   size + 16

There are different the RCV file format for VC-1, vc1test
just handle the case 2 now, this fix will support the case 1.
(Both of test clips come from: SMPTE Recommended Practice -
VC-1 Decoder and Bitstream Conformance). And I think I got
a older VC-1 test clip in the case 1.

Reviewed-by: Carl Eugen Hoyos <ceffmpeg@gmail.com>
Reviewed-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Yan, FengX <fengx.yan@intel.com>
2018-10-22 19:09:20 +08:00
kjeyapal@akamai.com
e715b8e10d avformat/dashenc: URL close unconditionally after DELETE segments
Fixes bug with HTTP DELETE when HTTP Persistent is ON.
Right now, HTTP Persistent connections is supported only for POSTs and PUTs.
HTTP DELETE will still open a new connection every time.
2018-10-21 16:26:32 +05:30
kjeyapal@akamai.com
f848d384dd avformat/dashenc: Support HTTP Persistent for master.m3u8 as well 2018-10-21 16:26:32 +05:30
Carl Eugen Hoyos
6871c17173 lavf/matroskadec: Simplify string length calculation.
FFmpeg relies on sizeof(char) == 1.
2018-10-19 20:36:55 +02:00
Carl Eugen Hoyos
feb05ffa99 lavf/dump: Fix a typo: comentary -> commentary.
Fixes ticket #7499.
2018-10-19 20:19:25 +02:00
Karthick Jeyapal
444cdb422d avformat/dashenc: Dont ignore the codec tag from codec parameters 2018-10-18 10:56:05 +05:30
Michael Niedermayer
079d1a7175 avformat/utils: Never store negative values in last_IP_duration
Fixes: integer overflow compute_pkt_fields()
Fixes: compute_pkt_usan

Reported-by: Thomas Guilbert <tguilbert@chromium.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-10-18 02:28:54 +02:00
Michael Niedermayer
4e19cfcfa3 avformat/utils: Fix integer overflow in discontinuity check
Fixes: signed integer overflow: 7738135736989908991 - -7954308516317364223 cannot be represented in type 'long'
Fixes: find_stream_info_usan

Reported-by: Thomas Guilbert <tguilbert@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-10-18 02:28:54 +02:00
Carl Eugen Hoyos
b9136c1b90 lavf/mxfenc: Remove a write-only variable.
Fixes the following warning:
libavformat/mxfenc.c:2125:22: warning: variable 'frame_size' set but not used
2018-10-17 20:47:14 +02:00
bnnm
02ea060b29 avformat/xwma: fix WMAv2 with incorrect bit rate
Fixes trac issue #7215

Output for files created by xWMAEncode and various videogames is correct now.

1ch 32000hz files are still broken, would need fixes in WMA decoder.

Signed-off-by: bnnm <bananaman255@gmail.com>
2018-10-17 20:35:06 +02:00
Paul B Mahol
0709b0561f avformat: add SER demuxer 2018-10-13 15:40:08 +02:00
Carl Eugen Hoyos
b4e29e6225 lavf/mxfenc: Remove two unused variables.
Fixes the following warnings:
libavformat/mxfenc.c:2036:9: warning: unused variable 'i'
libavformat/mxfenc.c:2125:9: warning: unused variable 'i'
2018-10-13 13:08:32 +02:00
Baptiste Coudurier
ef23ed6fe9 lavf/mxfdec: demux s436m as eia608 subtitle track 2018-10-12 12:28:28 -07:00
Baptiste Coudurier
9b7ab57953 lavf/mxfenc: support creating s436m data tracks 2018-10-12 12:28:22 -07:00