1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-02 03:06:28 +02:00
Commit Graph

20749 Commits

Author SHA1 Message Date
Michael Niedermayer
367929bed9 avformat/mov: Fix integer overflow in mov_get_stsc_samples()
Fixes: runtime error: signed integer overflow: 5 * -2147483647 cannot be represented in type 'int'
Fixes: Chromium bug 817338
Reviewed-by: Matt Wolenetz <wolenetz@google.com>
Reported-by: Matt Wolenetz <wolenetz@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-03-07 20:37:33 +01:00
Michael Niedermayer
5735a390a6 avformat/internal: Document the freeing behavior of ff_alloc_extradata()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-03-07 20:37:33 +01:00
James Almer
a43e9cdd44 avformat/isom: don't free extradata before calling ff_get_extradata()
ff_get_extradata() frees any existing extradata before allocating now,
and using av_free() here leaves a dangling pointer that will result in
a double free.

Fixes a regression since 0ca33b1d4e.

Tested-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-06 23:41:32 -03:00
Stefan _
7c39305a17 libavformat/tls_libtls: pass numeric hostnames to tls_connect_cbs()
Numeric hosts in certificates are not very common, but supported by LibreSSL.
Forward the IP address to make verification work in this case.

Fixes ticket #7029
2018-03-07 02:06:09 +02:00
James Almer
2aa42fac77 avformat/utils: simplify ff_alloc_extradata()
Cosmetic refactor

Reviewed-by: 74a2fa708af88d225ed708af758f236f869b1a57
Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-06 19:13:46 -03:00
James Almer
0ca33b1d4e avformat/utils: free existing extradata before trying to allocate a new one
This prevents leaks in the rare cases the function is called when extradata
already exists.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-06 19:13:12 -03:00
Matt Wolenetz
133ddd3875 avformat/mov: Initialize a potential gap in ctts_data in mov_build_index
mov_read_ctts ignores ctts entries having count <= 0. Generally, the
aggregate of all ctts entries' count fields resulting from mov_read_ctts
can be less than the corresponding sample_count.

mov_build_index attempts to normalize any existing ctts_data counts to
be 1, to make a 1-1 mapping of a ctts_data entry to a sample.

That 1-1 mapping left a tail of uninitialized ctts_data entries when the
aggregate, normalized ctts_count < sample_count.

Even more generally, later usage of ctts_data may depend on the entire
ctts_allocated_size having been initialized.

This change memsets the entire allocation of the normalized ctts_data in
mov_build_index, to prevent use of uninitialized data later.

BUG=816787

Change-Id: I7fd7db255e3aeed076ee32c90cb2df211741c052
Reviewed-on: https://chromium-review.googlesource.com/947110
Reviewed-by: Xiaohan Wang <xhwang@chromium.org>

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-03-05 01:16:34 +01:00
Tianqiang Liu
5df9d75b44 avformat/mov: Add manu/modl to mov_read_udta_string.
Documentation: http://mp4ra.org/atoms.html

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-03-03 23:01:41 +01:00
Serhii Marchuk
e45d557561 avformat/dashenc: Use HTTP DELETE for HTTP base proto 2018-03-03 18:27:48 +05:30
Vishwanath Dixit
0dd1fff1c9 avformat/dashenc: fix for segment open issue when persistent connection is enabled 2018-03-03 18:26:44 +05:30
James Almer
6ce5dd228c avformat/mxg: return reference counted packets
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-03-02 12:26:09 -03:00
Steven Liu
aa294ad00a avformat/hlsenc: add reference stream index for split segment
fix ticket: #7044
Get the first video stream to reference for split segment
when there have more than one video stream

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
Reviewed-by: Karthick Jeyapal <kjeyapal@akamai.com>
2018-03-02 10:56:36 +08:00
Xiaohan Wang
f5f2209d68 ffmpeg: Fix memset size on ctts_data in mov_read_trun() (round 2)
The allocated size of sc->ctts_data is
(st->nb_index_entries + entries) * sizeof(*sc->ctts_data).

The size to memset at offset sc->ctts_data + sc->ctts_count should be
(st->nb_index_entries + entries - sc->ctts_count) *
sizeof(*sc->ctts_data))

The current code missed |entries| I believe, which was introduced in
https://patchwork.ffmpeg.org/patch/5541/.

However, after offline discussion, it seems the original code is much
more clear to read (before https://patchwork.ffmpeg.org/patch/5541/).

Hence this CL revert the memset logic to it's previous state by
remembering the |old_ctts_allocated_size|, and only memset the newly
allocated entries.

BUG=812567

Change-Id: Ibe94c7138e5818bfaae76866bfa6619a9b8a2b6b
Reviewed-on: https://chromium-review.googlesource.com/934925
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-03-01 22:54:49 +01:00
Marton Balint
f50741147c avformat/mxfdec: always use a stream which matches the first index table when seeking
Obviously this is still not perfect, but better then it was. Using the first
index table and mxf->current_edit_unit is still hardcoded in many places, so
this change has hopefully the less chance of breaking anything that works
now.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-03-01 22:03:53 +01:00
Marton Balint
e8e1c22f21 avformat/mxfdec: compute sample_count after seek from index for audio streams
This fixes audio timestamps if the audio streams are not frame wrapped with the
video.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-03-01 22:03:53 +01:00
Marton Balint
0827c78e98 avformat/mxfdec: use body_offset of the partitions in mxf_absolute_bodysid_offset
Use body_offset of the partitions to search for the partition with the given
offset in the essence. This makes the function find the correct partition for
non frame-wrapped essences as well, where only the essence data is part of the
the edit unit byte count, not the KLV-s.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-03-01 22:03:53 +01:00
Marton Balint
5b36379eb6 avformat/mxfdec: set index_duration from the track using the index
Also use original_duration as index_duration is in edit units.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-03-01 22:03:53 +01:00
Marton Balint
c46e430c5b avformat/mxfdec: fix sorting of index segments
Fixes ticket #5320.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-03-01 22:03:53 +01:00
Marton Balint
9492bb58ee avformat/mxfdec: use both body_sid and track_number to find the track of a packet
In order to do that we have to parse the EssenceContainerData and assign the
proper body_sid and index_sid to the tracks from the corresponding source
packages.

This fixes packets returned in the wrong stream for some OP1-b files.

Based on a patch by Alex Mogurenko from https://github.com/da8eat/FFmpeg

Reference: http://mogurenko.com/2018/01/02/mxf-op1b-ffmpeg-part1/

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-03-01 22:03:53 +01:00
Marton Balint
9ec3e61fc3 avformat/mxfdec: use full UMID to resolve source package
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-03-01 22:03:53 +01:00
Marton Balint
5c2fd59700 avformat/mxfdec: use the first system item if available for calculating essence_offset
Also add an additional system item key.

Fixes parsing of ffmpeg-bugs/trac/ticket2817/warehouse.mxf

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-03-01 22:03:53 +01:00
Marton Balint
e9b0e42e77 avformat/mxfdec: fix essence_offset calculation
The reference point for a KAG is the first byte of the key of a Partition Pack.

Fixes ticket #2817.
Fixes ticket #5317.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-03-01 22:03:53 +01:00
Marton Balint
d54a04b69b avformat/mxfdec: fix indentation
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-03-01 22:03:53 +01:00
Karthick Jeyapal
e3851f6a37 avformat/dashenc: Removed usage of deprecated 'filename' variable 2018-02-27 08:40:48 +05:30
Serhii Marchuk
6d763ab588 avformat/dashenc: add option to change HTTP method 2018-02-27 08:39:47 +05:30
James Almer
f235359b2b avformat/utils: don't overwrite the return value of read_packet()
This only affected demuxers that didn't return reference counted packets.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-02-26 22:17:21 -03:00
Marton Balint
ffabff1baa avformat/concatdec: add support for very long line sizes
Fixes ticket #6761.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-02-24 20:21:35 +01:00
Marton Balint
dcb2ef2211 avformat/aviobuf: add ff_read_line_to_bprint and ff_read_line_to_bprint_overwrite functions
To be able to read lines longer than a static buffer size.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-02-24 20:17:04 +01:00
Tomas Härdin
5655048c73 Add muxer/demuxer for raw codec2 and .c2 files 2018-02-24 17:06:31 +01:00
Vishwanath Dixit
28924f4b48 avformat/dashenc: chunk streaming support for low latency use cases 2018-02-24 10:55:28 +05:30
Vishwanath Dixit
ffe7cc89d0 avformat/dashenc: opening a segment file when its first frame is ready 2018-02-24 10:54:09 +05:30
James Almer
9482ec1b20 avformat/hvcc: zero initialize the nal buffers past the last written byte
Prevents use of uninitialized values.

Fixes ticket #7038.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-02-24 00:30:28 -03:00
Aman Gupta
4f40d64e00 avformat/mpegts: set AV_DISPOSITION_DEPENDENT for mix_type=0 supplementary audio
Signed-off-by: Aman Gupta <aman@tmm1.net>
2018-02-23 13:47:29 -08:00
Aman Gupta
61ecfbc32a avformat/dump: tag AV_DISPOSITION_DESCRIPTIONS streams
Signed-off-by: Aman Gupta <aman@tmm1.net>
2018-02-23 13:47:29 -08:00
Stefan Pöschel
8720d3ffdd lavf/mpegts: add supplementary audio descriptor
The supplementary audio descriptor is defined in ETSI EN 300 468 and
provides more details regarding accessibility audio tracks, especially
the normative annex J contains a detailed description of its use.

Its language code (if present) overrides the language code of an also
present ISO 639 language descriptor.

Note that this also changes the priority of multiple descriptors with
language from "the last descriptor with language within the ES loop" to
"specific descriptor over general ISO 639 descriptor".

Signed-off-by: Aman Gupta <aman@tmm1.net>
2018-02-23 08:30:06 -08:00
Bela Bodecs
85e6a33bdf hlsenc: Fixing HLS_TEMP_FILE usage with HLS_SECOND_LEVEL_SEGMENT_...
Currently using HLS_TEMP together with HLS_SECOND_LEVEL_SEGMENT_DURATION
or HLS_SECOND_LEVEL_SEGMENT_SIZE gives error at end of each segment
writing and the final segment file names do not contain the desired
data. This patch fixes this bug by delaying the initilization of
original segment filename after actual temp file renaming will skip the
interfering.

Signed-off-by: Bela Bodecs <bodecsb@vivanet.hu>
2018-02-23 21:36:11 +08:00
Nikolas Bowe
ce8a12fb72 avformat/flvdec: Set broken_sizes for FlixEngine.
we found some very old videos which suffered from
corruption after 9e6a242755, but were fine
before.
These had "End of AC stream reached in vp6_parse_coeff" warnings in logs.
These also had flv Packet mismatch warnings.
Adding FlixEngine to the list of flv muxers which produce broken packet
sizes fixes this corruption.

FlixEngine is very old and not maintained or available anymore (since
2010), so we won't need to worry about newer versions fixing the issue.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-02-23 01:53:34 +01:00
Gyan Doshi
4f8c691040 avformat/mpegenc - log error msgs for unsupported LPCM streams
The MPEG-PS muxer only accepts PCM streams having up to 8 channels
and the following sampling rates: 32/44.1/48/96 kHz.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-02-22 00:29:27 +01:00
Vishwanath Dixit
a877d22d9a avformat/movenc: addition of flag to fragment at every frame
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-02-20 15:27:51 +01:00
James Almer
f4f39582e7 avformat/matroskadec: fix return value
err is already an AVERROR.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-02-20 10:26:21 -03:00
James Almer
88eb368f42 avformat/matroskadec: free the packet on webvtt side data allocation failure
Fixes potential memory leaks

Signed-off-by: James Almer <jamrial@gmail.com>
2018-02-20 10:25:54 -03:00
James Almer
acdea9e7c5 avformat/matroskadec: ignore CodecPrivate if the stream is VP9
Defined in a recent revision of https://www.webmproject.org/docs/container/

This prevents storing the contents of CodecPrivate into extradata for
a codec that doesn't need nor expect any. It will among other things
prevent matroska specific binary data from being dumped onto other
formats during remuxing.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-02-19 22:13:13 -03:00
Gyan Doshi
f0809bc0fa avformat/mpegenc - accept PCM_DVD streams
PCM_S16BE stream packets in MPEG-PS have a 3-byte header and
are recognized as PCM_DVD by the demuxer which prevents their
correct remuxing in MPEG-1/2 PS.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-02-16 21:53:22 +01:00
James Almer
aa6280805e avformat/aviobuf: zero initialize the AVIOContext in ffio_init_context()
This makes sure no field is ever used uninitialized.

Reviewed-by: Carl Eugen Hoyos <ceffmpeg@gmail.com>
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-02-14 20:56:51 -03:00
Carl Eugen Hoyos
dc77e64f2d lavf/rtpdec*: Constify all RTPDynamicProtocolHandler.
Reviewed-by: Muhammad Faiz
2018-02-14 01:14:35 +01:00
Carl Eugen Hoyos
d401ba6b3d lavf/matroskaenc: Force the minimum value for -reserve_index_space to 2.
Fixes an assertion failure:
Assertion size >= 2 failed at libavformat/matroskaenc.c:298
2018-02-12 22:50:52 +01:00
Richard Shaffer
e023334661 libavformat/aac: Parse ID3 tags between ADTS frames.
While rare, ID3 tags may be inserted between ADTS frames. This change enables
parsing them and setting the appropriate metadata updated event flag.
2018-02-12 22:08:49 +01:00
James Almer
192ea5bb77 avformat/Makefile: use individual dependencies for librtmp protocols
Fixes compilation of libavformat when librtmp is enabled but all the
relevant protocols are disabled.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-02-12 11:29:20 -03:00
James Almer
35347e7e9b Merge commit '4cf84e254ae75b524e1cacae499a97d7cc9e5906'
* commit '4cf84e254ae75b524e1cacae499a97d7cc9e5906':
  Drop some unnecessary config.h #includes

Merged-by: James Almer <jamrial@gmail.com>
2018-02-11 23:08:48 -03:00
Carl Eugen Hoyos
dced1f6cdf lavf/rtpdec: Constify several pointers.
Fixes two warnings:
libavformat/rtpdec.c:155:20: warning: return discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
libavformat/rtpdec.c:168:20: warning: return discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
2018-02-11 20:03:33 +01:00