- 05 Apr, 2020 3 commits
-
-
Carl Eugen Hoyos authored
Suggested-by: James Almer
-
Carl Eugen Hoyos authored
This reverts commit b7168586. The commit lead to the use of an uninitialized variable. Other issues were listed by Andreas Rheinhardt: https://ffmpeg.org/pipermail/ffmpeg-devel/2020-March/259150.html
-
Stephen Hutchinson authored
Signed-off-by: Marton Balint <cus@passwd.hu>
-
- 04 Apr, 2020 23 commits
-
-
Carl Eugen Hoyos authored
Fixes the actual output duration of the sample in ticket #7113.
-
Stephen Hutchinson authored
-
Stephen Hutchinson authored
Related to this are the following changes: * Mention the GNUmakefile that AviSynth+ provides for installing just the headers. * Expand on users installing AviSynth on their system a little more.
-
Stephen Hutchinson authored
AviSynth+ now supports non-Windows OSes, making AvxSynth obsolete. Since we no longer support AviSynth 2.5 (which is essentially what AvxSynth is), remove AvxSynth support and replace it with AviSynth+. As a result, the USING_AVISYNTH defines can be switched back to generic _WIN32.
-
Stephen Hutchinson authored
-
Carl Eugen Hoyos authored
-
Carl Eugen Hoyos authored
-
Carl Eugen Hoyos authored
-
Carl Eugen Hoyos authored
The C standard requires sizeof(char) == 1.
-
Carl Eugen Hoyos authored
-
Carl Eugen Hoyos authored
-
Carl Eugen Hoyos authored
Fixes ticket #8518.
-
Marton Balint authored
This brings a performance improvement when demuxing files, most of the improvement comes from buffer pooling unbound packets. time ffprobe -i samples/ffmpeg-bugs/trac/ticket6132/Samsung_HDR_-_Chasing_the_Light.ts -show_packets >/dev/null 2>&1 Before: real 0m1.967s user 0m1.471s sys 0m0.493s After: real 0m1.497s user 0m1.364s sys 0m0.129s Based on a patch of James Almer. Signed-off-by: Marton Balint <cus@passwd.hu>
-
Marton Balint authored
1 sec might not be enough for the cards to detect the format... Signed-off-by: Marton Balint <cus@passwd.hu>
-
Michael Niedermayer authored
Fixes: Ticket8508
-
Michael Niedermayer authored
Fixes: signed integer overflow: 1169365504 + 981452800 cannot be represented in type 'int' Fixes: ticket8293 Found-by: Suhwan Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-
Michael Niedermayer authored
Fixes: signed integer overflow: 524280 * 4432 cannot be represented in type 'int' Fixes: ticket8322 Found-by: Suhwan Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-
Michael Niedermayer authored
This allows handling more than 26.5h of mpeg* input Fixes: Ticket 7876 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-
Gautam Ramakrishnan authored
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-
Gautam Ramakrishnan authored
This patch allows decoding of j2k streams which do not have an EOC marker. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-
Paul B Mahol authored
-
Gyan Doshi authored
Stats and logs are written to stderr, not stdout.
-
Gyan Doshi authored
Since 3b491c5a, stats would be hidden if loglevel was lower than info, even if -stats was set. Fixes #6962
-
- 03 Apr, 2020 9 commits
-
-
Steve Lhomme authored
Always use a comma at the end, order elements by value. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
-
Andreas Rheinhardt authored
Put a buffer with a known fixed size into the demuxer's context instead of allocating it separately. This also allows to remove the demuxer's read_close()-function. Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
-
Andreas Rheinhardt authored
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
-
Paul B Mahol authored
-
Andreas Rheinhardt authored
8ffcc826 added support for muxing BlockAdditions with BlockAddID equal to one. The restriction to BlockAddID == 1 probably resulted from a limitation to what was needed; yet over time this led to three occurences of "(side_data_size && additional_id == 1)". This commit changes this by setting side_data_size to 0 if additional_id != 1. It also stops hardcoding 1 for the value of BlockAddID to write; but it still upholds the requirement that it is 1. See below. Despite BlockAddId actually having a default value of 1, it is still written, because until very recently (namely dbc50f8a) our demuxer used a wrong default value of 0. Furthermore, use put_ebml_binary() to write the BlockAdditional element. (The Matroska specifications have evolved and now the BlockAddID 1 is reserved for the codec (as described in the codec's codec mapping), BlockMore elements with BlockAddID > 1 are now of a more codec-independent nature and require a BlockAdditionalMapping in the track's TrackEntry. Given that this muxer does not support writing said BlockAdditionalMapping yet (actually, none have been defined yet), we have to uphold the requirement that BlockAddID == 1.) Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
-
Andreas Rheinhardt authored
When updating the Tags at the end, the Matroska muxer would twice check for whether (!mkv->is_live) is true, despite this code being only executed if it is. Furthermore, a loop iterates over all the streams even when there is no Tags element to update at all, because the check for whether there are Tags is only performed later. This commit fixes this. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
-
Andreas Rheinhardt authored
avio_close_dyn_buf() has a bug: When the write pointer does not point to the end of the written data when calling it (i.e. when one has performed a seek back to update already written data), it would not add padding to the end of the buffer, but to the current position, overwriting other data; furthermore the reported size would be wrong (off by the amount of data it has overwritten with padding). In order not to run into this when updating already written elements or elements for which size has only been reserved, the Matroska muxer would first record the current position of the dynamic buffer, then seek to the desired position, perform the update and seek back to the earlier position. But now that end_ebml_master_crc32() does not make use of avio_close_dyn_buf() any more, this is no longer necessary. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
-
Andreas Rheinhardt authored
The Matroska muxer uses a dynamic buffer to buffer the content of Clusters before eventually writing them. Up until now, each time a Cluster was written, the dynamic buffer was closed, i.e. freed; now it is only reset, saving allocations of the AVIOContext itself, its opaque as well as most of the reallocations of the buffer. This is advantageous performance-wise, in particular on systems where reallocations are slow (namely Windows). The following table shows the decicyles for writing a frame on Linux (Ubuntu 19.10) and Windows (7) on an x64 Haswell (to /dev/null on Linux, to stdout which is discarded on Windows (the default values of the size and duration of clusters for seekable output have been explicitly set in this case); in all tests, writing CRC-32 values has been disabled in all tests; calls to the muxer's write_packet function in write_packet() in libavformat/mux.c have been timed; each of the following tests has been repeated 50 times): | Windows before | Windows after | Linux before | Linux after _________________________________________________________________ A | 979437 | 192304 | 259500 | 183320 B | 715936 | 155648 | 152786 | 130879 C | 265115 | 56034 | 78496 | 53243 D | 386224 | 80307 | 128894 | 75354 E | 21732 | 10695 | 11320 | 9801 (A is a 10.2 mb/s file with a GOP length of 2s, amounting to an average Cluster size of about 2.5 MiB; the average Cluster size of B is 1.1 MiB; for C it is 2.35 MiB, for D it is 0.46 MiB; for E - a file with just a single audio track of 158kb/s resulting in a Cluster size of about 100 kB, the relative gains were the smallest, probably because of the small Cluster size.) Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
-
Guo, Yejun authored
vf_dnn_processing.c recently changed to use swscale to trasfer data between AVFrame and dnn model. Signed-off-by: Guo, Yejun <yejun.guo@intel.com> Signed-off-by: Linjie Fu <linjie.fu@intel.com>
-
- 02 Apr, 2020 5 commits
-
-
John Rummell authored
If the buffer doesn't contain enough bytes when reading a stream, fail rather than continuing on with initialized data. Caught by Chromium fuzzeras (crbug.com/1065731). Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-
Ruiling Song authored
Signed-off-by: Ruiling Song <ruiling.song@intel.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-
David Michael authored
Using a compiler with a different host triplet is considered cross-compiling, even when it is for the same architecture as the build system. With such a cross-compiler, it is still valid to optimize builds with --cpu=host. Make the condition that aborts in this case into a warning instead, since a cross-compiler for an incompatible architecture will fail with -mtune=native anyway. Signed-off-by: David Michael <fedora.dm0@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-
Andreas Rheinhardt authored
containing updated extradata, in this case a new FLAC streaminfo. Furthermore, it also tests that the Matroska muxer is able to preserve uncommon channel layouts by adding Vorbis comments to the CodecPrivate. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
-
Andreas Rheinhardt authored
The hnm demuxer's context struct contained lots of fields that are write-only variables or that are not used outside of parsing the header and that can therefore be replaced by local variables of hnm_read_header(). This commit removes all of these from the context; the second type has been replaced by local variables. An AVPacket (that was initialized when reading the header and for which dead code to unreference it existed in hnm_read_close()) is among the removed things. Removing it allowed to remove hnm_read_close() altogether and also removes another instance of usage of sizeof(AVPacket). Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
-