Slice threading does not work with hardware acceleration, as decoding
is per-picture. This fixes Bugzilla #542.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
(cherry picked from commit 93a51984a2)
Conflicts:
libavcodec/mpeg12dec.c
Fixes non deterministic output
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8f09957194)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
decode_tonal_components returns a proper AVERROR.
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 5eaed6d336)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
If the tile data size does not match the buffer size it did not
return an AVERROR_INVALIDDATA causing futher corruption later.
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
(cherry picked from commit 7388c0c586)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Otherwise, during error conditions, the caller will be left with
dangling pointers to a destructed packet => boom.
BUG=242786
TEST=ffmpeg_regression_tests
Commit slightly simplified by commiter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c54a1565f5)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This should also work reasonable with truncated and growing mp3s.
Fixes Ticket2590
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit e096283ea5)
Conflicts:
libavformat/mp3dec.c
since there should not be more than one fisbone for a given stream.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 63d7684fef)
Conflicts:
libavformat/oggparseskeleton.c
start_granule should be applied to the stream referenced in the fisbone packet, not to the
Skeleton stream.
This was broken in d1f05dd183 and produced bogus warnings about
multiple fisbone in the same stream on files with more than one stream.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3960992f0a)
The code that copies any extradata from the MXFDescriptor to the codec does
not set the size, which it should otherwise the copied data is useless.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 42bd0cd21a)
Conflicts:
libavformat/mxfdec.c
The volatile is not required here, and prevents a miscompilation with GCC
4.8.1 when building on x86 with --cpu=i686
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 659df32a9d)
Fixes resource leak and Ticket2450
Reviewed-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 1ee8fadb81)
This ensures that theres enough data for mpeg_probe() to recognize mpeg-ps
Fixes Ticket2583
Based on code by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c605adbf56)
The limit value could become slightly wrong in the last iteration
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit b3dd50cd0d)
Fixes an assertion when called on uninitialized frame. Spotted after
seeking in vlc.
Fixes ticket #2461.
Tested-by: Timo
Reviewed-by: Joakim Plate
Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
(cherry picked from commit 2ee380aefb)
Fixes a case where multichannel bitrate isn't accurately
targetted by psy model alone, never achieving the target bitrate.
Now fixed.
Fixes ticket #2625.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
These are needed for lowres 3
Fixes Ticket2538
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c2625c26c5)
Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
This fixes a regression (reproducible since 1.2) and restores the
behaviour of 0.6, 0.7, 0.8, 0.9, 0.10, 0.11, 1.0 and 1.1.
(cherry picked from commit 17989dcf54)
This fixes out of array accesses.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit d23b8462b5)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Fixes out of array accesses
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit ad002e1a13)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Fixes integer overflow and out of array accesses
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 9dd04f6d8c)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Solution based on rational.c, which uses isinf() too
This should fix compilation with msvc
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c25224737c)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Should fix pgc warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit cc6f848dba)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Fixes calling a random pointer
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 7edb984dd0)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This fixes out of array accesses
The code prior to this commit could not have worked, thus obviously
was untested. I was also not able to find a valid sample that uses this
code.
This fix is thus only based on the description of the format
If someone has a sample that uses unpack_rle(), please mail me.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c1f2c4c3b4)
Conflicts:
libavcodec/vmdav.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Fixes out of array accesses
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8d3c99e825)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit b39fd7d63648442c20671c3e4b357268ec5c49f2)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Fixes out of array accesses
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit adaa7743f5)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Fixes a few green artifacts at the top
Fixes rest of Ticket 2535
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c67bca2b5a)
Text subtitles packets are not 0-terminated (and if they are,
it is handled by the recoding process since 0 is a valid
Unicode code point). The terminating 0 would overwrite the
last payload octet.
OTOH, packets must be 0-padded.
Fix a problem reported in trac ticket #2431.
Many players ignore broken aac frames, so don't abort mov or flv
muxing when encountering one, just print a warning instead.
Fixes ticket #2380.
(cherry picked from commit 1741fece70)
Credits to Khusraw of bttr-software.de forum.
Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
(cherry picked from commit 91b747ac78)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This reverts commit 9ad3cd5b5f.
The misdetection on OS X should be fixed, we will only get
problem reports if auto-detection is enabled.
(cherry picked from commit 3f78f0904b)
This prevents various values from becoming stuck at NAN and
output to become silent
If someone knows a cleaner solution, thats welcome!
Fixes Ticket2335
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
The IIR filter numerically diverges in such cases, this could easily be
fixed but would make the filter slower on some platforms
Fixes Ticket2246
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '70762508ec5919474edb92a5b1f266fd06640f9c':
lavc: Prettify printing of codec tags containing non alphanumeric characters
h264: Rename the jpeg_420 pixfmt list to match the common naming structure
Conflicts:
libavcodec/h264.c
libavcodec/utils.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This makes the decoder independent of mpegvideo.
This copy of the draw_horiz_band code is simplified compared to
the "generic" mpegvideo one which still has a number of special
cases for different codecs.
Signed-off-by: Martin Storsjö <martin@martin.st>
Make av_get_codec_tag_string() show codec tag string characters in a more
intelligible ways. For example the ascii char "@" is used as a number, so
should be displayed like "[64]" rather than as a printable character.
Apart alphanumeric chars, only the characters ' ' and '.' are used
literally in codec tags, all the other characters represent numbers.
This also avoids relying on locale-dependent character class functions.
Signed-off-by: Martin Storsjö <martin@martin.st>
This patch changes existing mathematical functions with faster
ones. Speeds up encoding more than 10%. Tested on x86 and
MIPS platforms.
Signed-off-by: Bojan Zivkovic <bojan@mips.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
The escape API will be useful to perform escaping programmatically, which
is required when crafting argument strings, and will be used for context
printing as well.
This is based on the ffescape tool code, with a few extensions and fixes.
* commit '5da51284937649a8ebb84fa951c235438fcbf8ae':
cavs: Add a dependency on h264chroma
lavc: Split out ff_hwaccel_pixfmt_list_420[] over individual codecs
Conflicts:
libavcodec/h263dec.c
libavcodec/h264.c
libavcodec/mpeg12.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '5a4e9fe855282a99586050a507d0a486ad39df5b':
avcodec/internal: Fix #if DECODE_AUDIO / ENCODE_AUDIO name mismatch
shorten: use the unsigned type where needed
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'c10da30d8426a1f681d99a780b6e311f7fb4e5c5':
shorten: set invalid channels count to 0
vorbisdec: check memory allocations
h264: check for luma and chroma bit dept being equal
Conflicts:
libavcodec/shorten.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Not all hwaccels implement all codecs, so using one single list for
multiple such codecs means some codecs will be represented in the list,
even though they don't actually handle that codec. Copying specific
lists in each codec fixes that.
Signed-off-by: Martin Storsjö <martin@martin.st>
This fixes a regression caused by changes to the buffer initialization code.
Fixes valgrind warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
hwaccel: consistent name prefixes for start_frame/end_frame/decode_slice
Conflicts:
libavcodec/vda_h264.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* cehoyos/master:
Move the iconv test to the bottom of configure.
Make 32bit zmbv colour-space opaque.
Use uint8_t instead of uint16_t pointer in kega decoder.
kgv1dec: Simplify kega decoding by using memcpy instead of loops
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Fixes invalid memcpy and out of array accesses
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
get_uint returns an unsigned value, use an unsigned to store
blocksize to make sure the comparison logic is correct and report
correctly the error for the channel count not supported.
Prevent the loop shorten_decode_close from writing and freeing out of
the array boundary.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
This fixes a possible mis-detection of iconv on OS X.
OS X with macports often has two version of libiconv.2.dylib
installed, one with symbols like "_iconv_open" and one with
"_libiconv_open", so test for iconv with all flags to make
sure the detection uses the same library as the actual
compilation / linking.
Tested-by: Paul Sturbaum
It should be easy to add support but without a sample we would
not know if they work.
Fixes out of array reads
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Fixes use of uninitialized variables and possible out of array accesses
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
The decoder assumes a single bit depth for all the planes
while the specification allows different bit depths for luma
and chroma.
Avoid the possible problems described in CVE-2013-2277
CC: libav-stable@libav.org
Do not re-call avcodec_get_context_defaults3(), it is already
called by avformat_new_stream() and it leaks the codec
priv_data that was already allocated.
Use avformat_free_context() instead of freeing (not)
everything manually.
Fix trac ticket #2322.
This reverts commit 6cc12353a8.
Conflicts:
libavformat/version.h
Allowing to automatically select the concat demuxer raises
security concerns, as it allows a possibly hostile file to
access any file on the system. Guessing the format based on
the file name extension does not allow to enable the safe
mode designed to avoid it.
When parsing the Xing/Info tag, don't set the bit rate if it's an Info tag.
When parsing the stream, don't override the bit rate if it's already set,
otherwise calculate the mean bit rate from parsed frames. This way, the bit
rate will be set correctly both for CBR and VBR streams.
Signed-off-by: Alexander Kojevnikov <alexander@kojevnikov.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '813b82b927b19532e3bc3397b972c8a27b9f6326':
configure: Fix silly typo in logging command of check_struct()
fate: remove last incomplete frame from mpeg2-field-enc test
Conflicts:
tests/fate/video.mak
tests/ref/fate/mpeg2-field-enc
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* cehoyos/master:
buildsys: only include log2_tab per library for shared builds
Add h264chroma dependency for cavs decoder to configure.
Add h264qpel dependency for snow codec to configure.
Add h264chroma dependency for vp5 and vp6 decoder to configure.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
It seems to break a lot on MacOS because of a mixup between multiple
iconv libraries. The issue is that the configure check link with no
particular library path (so it uses /usr/lib/libiconv.dylib where all
the symbols are defined). OTOH, the final build might link with extra
library paths, such as the ports lib directory (typically you get
-L/opt/local/lib because of an extra library such as SDL). Whatever this
option position (before or after -liconv), it will try to link with
/opt/local/lib/libiconv.dylib, and the issue is that this version has
the same symbols as the ones in /usr/lib/libiconv.dylib except that they
all start with 'lib' (libiconv_open, libiconv_close, ...). I don't plan
to try to workaround this mess, so any better solution is welcome.
As far as I can tell the code should not change behaviour
depending on locale in any of these places.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
The code is located in mpegvideo, and it's likely that in a minimal
config, we don't want to include debug info anyway.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
The warnings are false positives, older gcc versions (such as 4.5)
think the variables can be used uninitialized while they in
practice can't, while newer (4.6) gets it right.
Signed-off-by: Martin Storsjö <martin@martin.st>
* commit '668e16a0dd1ff56d4beeff5c658d8a2a08dbfac8':
h264: on reference overflow, reset the reference count to 0, not 1.
Conflicts:
libavcodec/h264.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'e671d3ad6cd7fe1d02e9b35b889a25d8c059fce9':
h264: do not copy ref count/ref2frm when updating per-frame context
flvdec: Check the return value of a malloc
Conflicts:
libavformat/flvdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'c91c63b5380bf79655c09320774a022f84d76fd5':
flvdec: Don't read the VP6 header byte when setting codec type based on metadata
Conflicts:
libavformat/flvdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This will avoid the possibility that we dequeue more buffers than we
have obtained from the v4l2 driver.
Fixes ticket #1570
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
The callers of this function can't report errors sanely. If this
one malloc fails, don't write the extradata byte, make sure we
try to malloc it the next time we're called instead, and make sure
we still consume the input data byte.
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
This header byte is only present when actually reading a VP6 frame,
not when reading the codec type field in the metadata. This
potential bug has been present since 5b54a90c.
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
Libsoxr 0.1.1 will be out very soon; no changes planned beyond what's currently in git.
It includes a couple of fixes (not affecting FFmpeg's current usage) and a minor API change (but remains ABI compatible).
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'e8c52271c45ec27d783e74238dcfad0c2008731c':
Revert "Move H264/QPEL specific asm from dsputil.asm to h264_qpel_*.asm."
Conflicts:
libavcodec/x86/dsputil.asm
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '9d4da474f5f40b019cb4cb931c8499deee586174':
lls: move to the private namespace
Conflicts:
libavutil/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'df0229a7caa124dcfb84c34b48d316744c467311':
avconv: Apply codec options to streams that are copied as well
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'cb6f8245aed2c26fe95c30cd68c45983277a945a':
cmdutils: Allow calling filter_codec_opts without a set encoder
pnm: Use av_pix_fmt_desc_get instead of accessing the array directly
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This reverts commit f90ff772e7.
The code should be put back in h264_qpel_8bit.asm, but unfortunately
it is unconditionally used from dsputil_mmx.c since 71155d7.
This ensures that fps and other values are estimated correctly,
the probesize also is intended to limit disk/protocol reads which
does not apply to lavfi inputs at all.
Fixes Ticket1051
Something similar could be usefull to other input devices
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Previous naming was misleading.
Also fix wrong message about missing
support for 32-bit unsigned int pixel type.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
If the first "special" character in a filename is a comma,
it can introduce protocol options, but only if there is a
colon at the end. Otherwise, it is just a filename with a
comma.
Fix trac ticket #2303.
Fix trac ticket #2300 because the duration of the segments
was computed using the timestamp of the last packet plus its
duration using the 1/90000 default time base instead of using
the chained muxer time base.
This allows setting/overriding e.g. the bitrate parameter, which
is required for the smoothstreaming muxer. Normally, the bitrate
is set by the demuxer in these cases, but not all demuxers can
provide it. This allows stream copy of data to the smoothstreaming
muxer from such inputs.
Signed-off-by: Martin Storsjö <martin@martin.st>
In this case, no encoder specific options are filtered, only
options specific to that codec type in general.
Signed-off-by: Martin Storsjö <martin@martin.st>
* qatar/master:
lavf: Add a fate test for the noproxy pattern matching
lavf: Handle the environment variable no_proxy more properly
Conflicts:
libavformat/Makefile
libavformat/internal.h
libavformat/tls.c
libavformat/utils.c
libavformat/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'e2c272eb3660d7f4f1d7720980e30f6a617e7eb3':
LICENSE: Move (L)GPLv3 explanation block to a more suitable place
swscale: Add support for unscaled 8-bit Packed RGB -> Planar RGB
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* cus/stable:
ffplay: do not cycle through unavailable show modes
ffplay: add option to disable subtitling
ffplay: use NAN to signal invalid external clock
ffplay: if audio or video clock is invalid return NAN
ffplay: allow frame dropping if we redisplay an already displayed frame
ffplay: return true for pictq_prev_picture if it was successful
ffplay: only quit from audio_decode_frame before decoding when paused
ffplay: drop remaining frames in current audio avpacket when seeking
ffplay: signal seek event to read thread
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This reverts commit 4a8fc1d83b.
The commit caused null pointer derefernces when using udp://
after i fixed that it caused ffmpeg to get stuck and remapped
arguments like ?ttl=255 -> ?ttl%3d255
I dont want to leave this broken thus temporary revert so we all
have some time to look at this without half the network protocols
being broken in the meantime
This helps us not to make bad decision (frame dropping, audio compensation)
right after seeking when we do not know yet the recent audio or video clock.
Signed-off-by: Marton Balint <cus@passwd.hu>
The handling of the environment variable no_proxy, present since
one of the initial commits (de6d9b6404), is inconsistent with
how many other applications and libraries interpret this
variable. Its bare presence does not indicate that the use of
proxies should be skipped, but it is some sort of pattern for
hosts that does not need using a proxy (e.g. for a local network).
As investigated by Rudolf Polzer, different libraries handle this
in different ways, some supporting IP address masks, some supporting
arbitrary globbing using *, some just checking that the pattern matches
the end of the hostname without regard for whether it actually is
the right domain or a domain that ends in the same string.
This simple logic should be pretty similar to the logic used by
lynx and curl.
Signed-off-by: Martin Storsjö <martin@martin.st>
Fix trac ticket #2242.
Note: under valid circumstances, when using -fix_sub_duration,
the last subtitle is a dummy termination packet, with no
allocated memory.
* commit '845cfc92f908791714b8c4c8a49c91b8c64b685e':
x86: dsputil: Drop aliasing of ff_put_pixels8_mmx to ff_put_pixels8_mmxext
Conflicts:
libavcodec/x86/dsputil_mmx.c
Note, the commit message is wrong, there are no mmxext instructions as
claimed in the function. The change should do no harm though
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '096cc11ec102701a18951b4f0437d609081ca1dd':
x86: vc1dsp: Move ff_avg_vc1_mspel_mc00_mmxext out of dsputil_mmx.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The external assembly function uses mmxext instructions and should not be
masqueraded as an mmx-only function. Instead, use the mmx-only inline
assembly function.
Fixes some of the issues with segment.mov
See: 0226 15:16 Joseph Artsimov (2.1K) [FFmpeg-devel] Two problems with MPEG2 decoder
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '76b19a3984359b3be44d4f7e4e69b7b86729a622':
Fix a number of incorrect intmath.h #includes.
avconv: remove an unused variable
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'e8da807537e314d74cb6d93598f1dcfb891fa655':
cmdutils: only use libavresample when it is enabled
libschroedinger: cosmetics: rename variable avccontext to avctx
vorbisenc: cosmetics: rename variable avccontext to avctx
Conflicts:
cmdutils.c
libavcodec/libschroedinger.c
libavcodec/libschroedingerenc.c
libavcodec/vorbisenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'e951b6d94c441d46b396ef12da1428297d77251d':
vorbisdec: cosmetics: rename variable avccontext to avctx
configure: Identify icc compiler with a less ambiguous pattern
Conflicts:
libavcodec/vorbisdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'b58b00aeca21de00ab6da2944684f784d9d6bc47':
configure: Separate "ln" command line arguments
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Check whether CQ level is within qmin..qmax and abort on error. If this isn't properly
set, encoding will fail at the first frame.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
The specification does not prevent an encoder to write the amplitude 0
as 0 amplitude_bits.
Our get_bits() implementation might not support a zero sized read
properly, thus the additional branch.
"channels" is an int in all the other places in the libraries, and the
av_frame_*_channels() accessors return and set an int, so this should not
implicate ABI breaks.
Previously avctx->hwaccel would have been set to a dummy value,
now an explicit check is necessary instead.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
As the name indicates we can't just assume what the
"opaque" field contains.
This fixes a crash in third-party applications see e.g.:
http://bugzilla.mplayerhq.hu/show_bug.cgi?id=2126
This fixes also FFmpeg trac #2293, which is a different
third-party application.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
* commit '3fc09b0081184f26edbb62d2d72ae89bf9e21768':
configure: Move list of external libs to a separate variable
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '45235ac488363e3360bf2f2275102d1ec66eba0f':
configure: Move x11grab option to a more suitable place in the help output
lavr: allow setting internal_sample_fmt option by string
lavr: Add "resample_cutoff" option as a duplicate of "cutoff"
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
If you want it back (yeah i want it back too)
then you just need to volunteer to maintain the code in configure
thats related to hwaccel autodetection.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '2aac411fd4c74e22b978525206f3b8257de1842b':
configure: Simplify VDPAU header check
Conflicts:
configure
Not merged as the code seems not to work
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '0a8da1a3e5f0b9329dfb89d17356ff5444c02351':
configure: Do not redundantly list enabled hwaccel libs
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '7432e872066d6960a9fbd31c51a94ebe6183389e':
configure: Add print_3_columns helper function and use where appropriate
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '040c565e51985477a8fa5e42d2ddfb26ebde6608':
doc: developer: Allow tabs in the vim configuration for Automake files
Remove pointless av_cold attributes in header files
Conflicts:
libavcodec/h264.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'b5f536d24b5ae360503935c34d5d59fa5181b94d':
pnm: add high-bitdepth PGMYUV support for both encoder and decoder
Conflicts:
libavcodec/pnm.c
libavcodec/pnmdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '2f325a6fd4421c4dd4e26d7065e5d4bf26ed52f2':
libx264: change i_qfactor to use x264cli's default
qtrle: use AV_LOG_ERROR in an error message.
Conflicts:
libavcodec/libx264.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'e10659244782b26061e7d52c06437de32a43a7af':
qtrle: add more checks against pixel_ptr being negative.
Conflicts:
libavcodec/qtrle.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '4f3b058c84f570e261d743c7c22f865617fd28ac':
cavs: initialize various context tables to 0
mlpdec: do not try to allocate a zero-sized output buffer.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '56daf10e0313c5e36f43e773f457d2a99ff0df10':
mov: use the format context for logging.
flicvideo: avoid an infinite loop in byte run compression
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '067432c1c95882c7221e694f33d9f3bdbe46de7f':
loco: check that there is data left after decoding a plane.
lagarith: avoid infinite loop in lag_rac_refill()
Conflicts:
libavcodec/loco.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'f935aca44c674d30e3ed940ef73bbad1228a5855':
av_memcpy_backptr: avoid an infinite loop for back = 0
4xm: check the return value of read_huffman_tables().
Conflicts:
libavcodec/4xm.c
libavutil/mem.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The following commit:
b97d61f avfilter/ff_merge_formats: only merge if doing so does not loose chroma or alpha
introduced an exception to avoid lossy conversions.
Add a comment to explain the logic.
Fix the call to avoid applying it on audio formats.
The init functions marked as av_cold have to be executed in any case,
so there is no gain from trying to mark paths leading to such functions
as unlikely.
This also allows libx264 to modify its i_qfactor value
when using the "-tune" setting. Previously it had a static
value of 1.25
Signed-off-by: Anton Khirnov <anton@khirnov.net>
In particular, fix warnings:
*** Undefined node `quoting_and_escaping' in @ref (in doc/muxers.texi l. 767)
*** Undefined node `quoting_and_escaping' in @ref (in doc/muxers.texi l. 772)
Avoid searching for the lowest bulk cost for each pixel that isn't a repeat/skip. Instead store the lowest cost as we go along each pixel, and use it as needed.
Signed-off-by: Malcolm Bechard <malcolm.bechard@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Also read data size for raw compressions too and
make sure its value is sane.
Remove code that fills missing blocks with zeroes.
It is marginally useful and make implementation
of actually useful features harder.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
* qatar/master:
x86: h264: Don't use redzone in AVX h264_deblock on Win64
No code change, as the commit has been already integrated
merge just for metadata
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This is a regression introduced from the h264/mpegvideo split
Fixes out of array reads
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This fixes crashes in chromium on win64 on machines with AVX
(crashes that apparently aren't triggered by fate).
Signed-off-by: Martin Storsjö <martin@martin.st>
If buffersrc was configured for frames with an unknown layout,
the incoming frames will have channel_layout = 0.
If the format negotiation has selected a known (and compatible)
channel layout for the link, the frame is assumed to have
that layout, the field must be set before injecting the frame
in the filters.
Force termination when the overlay stream ends. Simplify scripting logic,
for example when an infinite source is used to generate a background for
a composite video.
Avoid to write more than one cuepoint per track and PTS in
mkv_write_cues(). This avoids a later assertion failure on "(bytes >=
needed_bytes)" in put_ebml_num() called from end_ebml_master(), in case
there are several cuepoints per track with the same PTS.
This may happen with files containing packets with duplicated PTS in the
same track.
* commit '8a11ce43d08352f7a290355ebb5b29c495ad9609':
build: Ensure that output directories for header objects are created
h264: Get rid of unnecessary casts
Conflicts:
common.mak
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '7ebfb466aec2c4628fcd42a72b29034efcaba4bc':
h264: Don't store intra pcm samples in h->mb
get_bits: Return pointer to buffer that is the result of the alignment
Conflicts:
libavcodec/h264_mb_template.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'e5ffffe48d20642acc079166f0fa7d93a6a9f594':
h264chroma: Remove duplicate 9/10 bit functions
x86: Use simple nop codes for <= sse (rather than <= mmx)
vp56: Remove clear_blocks call, and clear alpha plane U/V DC only
Merged-by: Michael Niedermayer <michaelni@gmx.at>
change the treatment of the strip y coordinates which previously did
not follow the description (nor did it behave like the binary decoder
on files with absolute strip offsets).
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
The new code is also faster and more robust.
As for the performance:
old decoder + conversion to rgb: fps = 2618
old decoder, without converting to rgb: fps = 4012
new decoder, producing rgb: fps = 4502
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This gets rid of a number of warnings about casts discarding
qualifiers from the pointer target, present since 7ebfb466a.
Signed-off-by: Martin Storsjö <martin@martin.st>
Instead, only extend edges on-demand when the motion vector actually
crosses the visible decoded area using ff_emulated_edge_mc(). This
changes decoding time for cathedral from 8.722sec to 8.706sec, i.e.
0.2% faster overall. More generally (VP8 uses this also), low-motion
content gets significant speed improvements, whereas high-motion content
tends to decode in approximately the same time.
Signed-off-by: Martin Storsjö <martin@martin.st>
Instead, keep them in the bitstream buffer until we read them verbatim,
this saves a memcpy() and a subsequent clearing of the target buffer.
decode_cabac+decode_mb for a sample file (CAPM3_Sony_D.jsv) goes from
6121.4 to 6095.5 cycles, i.e. 26 cycles faster.
Signed-off-by: Martin Storsjö <martin@martin.st>
This allows more transparent mixing of get_bits and whole-byte access
without having to touch get_bits internals.
Signed-off-by: Martin Storsjö <martin@martin.st>
These functions are mostly H264-specific (the only other user I can
spot is bink), and this allows us to special-case some functionality
for H264. Also remove the 16-bit-coeff with >8bpp versions (unused)
and merge the duplicate 32-bit-coeff for >8bpp (identical).
Signed-off-by: Martin Storsjö <martin@martin.st>
The "CentaurHauls family 6 model 9 stepping 8" family of CPUs
(flags: fpu vme de pse tsc msr cx8 sep mtrr pge mov pat mmx fxsr sse
up rng rng_en ace ace_en) SIGILLs on long nop codes.
Signed-off-by: Martin Storsjö <martin@martin.st>
The non-alpha and alpha-Y planes are cleared in the idct_put/add()
calls. For the alpha U/V planes, we only care about the DC for entropy
context prediction purposes, the rest of the data is unused.
Signed-off-by: Martin Storsjö <martin@martin.st>
The non-intra-pcm branch in hl_decode_mb (simple, 8bpp) goes from 700
to 672 cycles, and the complete loop of decode_mb_cabac and hl_decode_mb
(in the decode_slice loop) goes from 1759 to 1733 cycles on the clip
tested (cathedral), i.e. almost 30 cycles per mb faster.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
The residual block data of 16x16 blocks was ignored for b-frames, which
leads to easy-to-identify artifacts. After this patch, the artifacts are
gone. Sample video: svq3_watermark.mov. (Fate results unaffected.)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Reference:
commit 3615e2be84
Author: Michael Niedermayer <michaelni@gmx.at>
Date: Tue Dec 2 22:02:57 2003 +0000
h263_h_loop_filter_mmx
Originally committed as revision 2553 to svn://svn.ffmpeg.org/ffmpeg/trunk
commit 359f98ded9
Author: Michael Niedermayer <michaelni@gmx.at>
Date: Tue Dec 2 20:28:10 2003 +0000
h263_v_loop_filter_mmx
Originally committed as revision 2552 to svn://svn.ffmpeg.org/ffmpeg/trunk
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
x86: dsputil: Fix h263 loop filter link error in some configurations
Conflicts:
libavcodec/x86/dsputil.asm
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '202b5f6deb65e405b07b9b5c20f97c8cb925cf49':
doc: Fix some obsolete references to av* tools as ff* tools
Conflicts:
doc/demuxers.texi
No code changes, merge for metadata only
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Not all hwaccels implement all codecs, so using one single list for
multiple such codecs means some codecs will be represented in the list,
even though they don't actually handle that codec. Copying specific
lists in each codec fixes that.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This was caused by unconditionally referencing a conditionally compiled
table. Now the code is also compiled conditionally.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
This avoids SIMD-optimized functions having to sign-extend their
line size argument manually to be able to do pointer arithmetic.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
The symbol "ff_h263_loop_filter_strength" is defined in h263.c, but
the h263 loopfilter functions (in the .asm file) are not optimized
out (even though their function pointers are never assigned).
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Instead, only extend edges on-demand when the motion vector actually
crosses the visible decoded area using ff_emulated_edge_mc(). This
changes decoding time for cathedral from 8.722sec to 8.706sec, i.e.
0.2% faster overall. More generally (VP8 uses this also), low-motion
content gets significant speed improvements, whereas high-motion content
tends to decode in approximately the same time.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '8837f4396a1a458a0efb07fe7daba7b847755a7a':
libopencore-amrwb: Make AMR-WB ifdeffery more precise
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '56632fef65c0cb6946ed3648ded3d7b82e5c5c17':
libopencore-amrnb: cosmetics: Group all encoder-related code together
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '0b70fb1d518cbd796545fd6eef02772cd0d892c7':
dsputil: convert remaining op_pixels_func
No changes to the code as all these fixes already existed in FFmpeg.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Instead, keep them in the bitstream buffer until we read them verbatim,
this saves a memcpy() and a subsequent clearing of the target buffer.
decode_cabac+decode_mb for a sample file (CAPM3_Sony_D.jsv) goes from
6121.4 to 6095.5 cycles, i.e. 26 cycles faster.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Some applications do not like that.
Fixes VDA
Reduces noise for VDPAU
Tested-by: Guillaume POIRIER <poirierg@gmail.com>
Tested-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
The size of the AVFrame structure is not part of the ABI;
it can grow with later versions. Therefore, applications
are not supposed to allocate AVFrame directly, they are
supposed to use avcodec_alloc_frame() instead.
The library might provide an encoder in the future, so it's better to
check for the presence of the decoder rather than just the library.
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
The user can provide a password even when the stream
is not encrypted, so check the value of s->format
instead of s->pass in ttafilter_init().
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Writing into uninitialized hw surfaces is not supported and triggers an assert inside avpriv_color_frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
internal.h doesn't need to include cpu.h anymore since
the relevant code was moved to x86/emms.h
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'd2a25c4032ce6ceabb0f51b5c1e6ca865395a793':
get_buffer(): do not initialize the data.
Conflicts:
libavcodec/utils.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* cus/stable:
ffplay: only display frames if there are no pending events
ffplay: remove remains of video_clock
ffplay: remove refresh thread to achieve more precise frame delay
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Correct the advancement of a pointer to skip over LFE samples as
intended in the loudness computation.
This suggested patch is 3 of 3 for Ticket #2144 "libavfilter ebur128
loudness inaccuracy, irregular time interval, LFE interference".
This suggested patch supersedes the contribution of January 15, 2013
in the thread “[PATCH] lavfi: EBU R.128 irreg time, ch weights, skip
LFE” which combined multiple fixes in one batch.
Correct the recognition of channel layouts for good channel weight
in the loudness computation.
This suggested patch is 2 of 3 for Ticket #2144 "libavfilter ebur128
loudness inaccuracy, irregular time interval, LFE interference".
Signed-off-by: David A. Sedacca <sedacca at comcast.net>
Most of the changes are just trivial are just trivial replacements of
fields from MpegEncContext with equivalent fields in H264Context.
Everything in h264* other than h264.c are those trivial changes.
The nontrivial parts are:
1) extracting a simplified version of the frame management code from
mpegvideo.c. We don't need last/next_picture anymore, since h264 uses
its own more complex system already and those were set only to appease
the mpegvideo parts.
2) some tables that need to be allocated/freed in appropriate places.
3) hwaccels -- mostly trivial replacements.
for dxva, the draw_horiz_band() call is moved from
ff_dxva2_common_end_frame() to per-codec end_frame() callbacks,
because it's now different for h264 and MpegEncContext-based
decoders.
4) svq3 -- it does not use h264 complex reference system, so I just
added some very simplistic frame management instead and dropped the
use of ff_h264_frame_start(). Because of this I also had to move some
initialization code to svq3.
Additional fixes for chroma format and bit depth changes by
Janne Grunau <janne-libav@jannau.net>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
* commit '4db96649ca700db563d9da4ebe70bf9fc4c7a6ba':
avutil: Ensure that emms_c is always defined, even on non-x86
configure: Move MinGW CPPFLAGS setting to libc section, where it belongs
avutil: Move emms code to x86-specific header
Conflicts:
configure
libavutil/internal.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
We are now using a pts based approach, libavutil/libavcodec should provide the
correct pts-es anyway. This also fixes an issue when seeking to a frame with a
pts set to zero.
Signed-off-by: Marton Balint <cus@passwd.hu>
We use a refresh loop which displays the frames and also does the polling for
pending events in a non-blocking way. If we know the required delay until the
next frame, then exactly that amount of sleeping will be done. After each
handled event we check if we have to display a frame which kind of makes
displaying the frame a high priority event.
This improves greatly the smoothness of the video output especially with 50fps
content.
Signed-off-by: Marton Balint <cus@passwd.hu>
It is currently possible that such changes leak through from the decoder as
well as a filter could generate such changes itself.
This commit blocks such changed packets unless the encoder declares support.
Fixes out of array reads
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Adding support for parsing AlphaMode element in the Track header
and export that information as a metadata tag. This flag indicates
presence of alpha channel data in BlockAdditional element.
Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Other software does not store it in this case, and the information
is provided by the codec stream
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
The QuickTime specification does not contain any hint that the atom
must not be written in some cases and both the QuickTime and the
AVID decoders do not fail if the atom is present.
This change allows to signal (visually) interlaced streams with
a codec different from uncompressed video.
As a side-effect, this fixes ticket #2202
* qatar/master:
doc/platform: Fix 10l typo
dsputil: Move STRIDE_ALIGN macro to the only place it is used
Conflicts:
libavcodec/dsputil.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Matroska specification lists support for BlockAdditional element
which is not supported by ffmpeg's matroska parser. This patch
adds grammar definitions for parsing that element (and few other
related elements) and then puts the data in AVPacket.side_data
with new AVPacketSideDataType AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL.
Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Init code in that if statement goes down from 26716 cycles to 26047
cycles, i.e. the removal of the clear_blocks and smaller memcpy()
together save around 670 cycles.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
lavr: fix mixing matrix reduction when normalization is disabled
lavr: fix matrix reduction for upmixing in certain cases
lavr: cosmetics: reindent
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '1647da89dd8ac09a55c111589f7a30d7e6b87d90':
lavr: make sure that the mix function is reset even if no mixing will be done
lavr: print out the mix matrix in ff_audio_mix_set_matrix()
ws-snd1: decode directly to the user-provided AVFrame
wmavoice: decode directly to the user-provided AVFrame
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '205a95f7b5178362874bc1e65eae9866723491c1':
wmaenc: alloc/free coded_frame instead of keeping it in the WMACodecContext
wma: decode directly to the user-provided AVFrame
wmapro: decode directly to the user-provided AVFrame
wavpack: decode directly to the user-provided AVFrame
Conflicts:
libavcodec/wavpack.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'ee6ca11b657515ad736ec0d2b8635e098d0a2680':
vorbis: decode directly to the user-provided AVFrame
vmdaudio: decode directly to the user-provided AVFrame
twinvq: decode directly to the user-provided AVFrame
tta: decode directly to the user-provided AVFrame
truespeech: decode directly to the user-provided AVFrame
Conflicts:
libavcodec/tta.c
libavcodec/twinvq.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '4a2b26fc1b1ad123eba473a20e270f2b0ba92bca':
tak: decode directly to the user-provided AVFrame
smackaud: decode directly to the user-provided AVFrame
sipr: decode directly to the user-provided AVFrame
shorten: decode directly to the user-provided AVFrame
Conflicts:
libavcodec/shorten.c
libavcodec/takdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '5d5c248c3df30fa91a8dde639618c985b9a11c53':
s302m: decode directly to the user-provided AVFrame
ra288: decode directly to the user-provided AVFrame
ra144: decode directly to the user-provided AVFrame
ralf: decode directly to the user-provided AVFrame
qdm2: decode directly to the user-provided AVFrame
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '1b9b6d6e5ea556b6d307f9d473f54f6406fdc3c8':
qcelp: decode directly to the user-provided AVFrame
pcm-bluray: decode directly to the user-provided AVFrame
nellymoser: decode directly to the user-provided AVFrame
mpc7/8: decode directly to the user-provided AVFrame
mpegaudio: decode directly to the user-provided AVFrame
mlp/truehd: decode directly to the user-provided AVFrame
Conflicts:
libavcodec/mpc7.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '86bfcfcf2364bc837b7bb582c66a8a15a332414f':
mace: decode directly to the user-provided AVFrame
libspeex: decode directly to the user-provided AVFrame
libopus: decode directly to the user-provided AVFrame
libopencore-amr: decode directly to the user-provided AVFrame
libgsm: decode directly to the user-provided AVFrame
Conflicts:
libavcodec/libopusdec.c
libavcodec/mace.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'a8ea936a0a00570f61a16a588821b52f6a3115c2':
libilbc: decode directly to the user-provided AVFrame
dpcm: decode directly to the user-provided AVFrame
imc/iac: decode directly to the user-provided AVFrame
gsm: decode directly to the user-provided AVFrame
Conflicts:
libavcodec/dpcm.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'cb7b47a61dba0b9329ecede5dd3211dc0662dc05':
g726: decode directly to the user-provided AVFrame
g723.1: decode directly to the user-provided AVFrame
g722: decode directly to the user-provided AVFrame
flac: decode directly to the user-provided AVFrame
cinaudio: decode directly to the user-provided AVFrame
Conflicts:
libavcodec/g723_1.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '182821cff43f5f977004d105b86c47ceb20d00d6':
dca: decode directly to the user-provided AVFrame
cook: decode directly to the user-provided AVFrame
comfortnoise: decode directly to the user-provided AVFrame
bmvaudio: decode directly to the user-provided AVFrame
pcm: decode directly to the user-provided AVFrame
Conflicts:
libavcodec/pcm.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '5cc0bd2cb47cbb1040f2bb0ded8d72a442c79b20':
binkaudio: decode directly to the user-provided AVFrame
atrac3: decode directly to the user-provided AVFrame
atrac1: decode directly to the user-provided AVFrame
ape: decode directly to the user-provided AVFrame
amrwb: decode directly to the user-provided AVFrame
Conflicts:
libavcodec/amrwbdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'e3db34291f4401a16f6ac92721617a9f33cd4c31':
amrnb: decode directly to the user-provided AVFrame
als: decode directly to the user-provided AVFrame
alac: decode directly to the user-provided AVFrame
adxenc: alloc/free coded_frame instead of keeping it in the ADXContext
adx: decode directly to the user-provided AVFrame
Conflicts:
libavcodec/alsdec.c
libavcodec/amrnbdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'e57daa876bf0cf50782550e366e589441cd8c2bd':
adpcm: decode directly to the user-provided AVFrame
ac3: decode directly to the user-provided AVFrame
aac: decode directly to the user-provided AVFrame
8svx: decode directly to the user-provided AVFrame
Conflicts:
libavcodec/8svx.c
libavcodec/ac3dec.c
libavcodec/adpcm.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
In some cases when an input contributes fully to the corresponding
output, other inputs may also contribute to the same output. This is the
case, for example, for the default 5.1 to stereo downmix matrix without
normalization.
* qatar/master:
lavu: avoid clashing definition of E
doc: developer: Add a note about reserved system name space
Conflicts:
libavutil/internal.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '56dea32f09e71460add14a1b6d0fbe6eb16f02a4':
doc: developer: Fix wording in "naming conventions" section
openbsd: Add minor number to shared library install name
Conflicts:
doc/developer.texi
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '304b806cb524fb040f8e09a241040f1af2cb820b':
build: Make library minor version visible in the Makefile
x86: mpeg4qpel: Make movsxifnidn do the right thing
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '62a43d30cc3b9b2460f2c926beb522df32493625':
crc: Move static data table from header to .c file
avcodec/rectangle: Remove nonsense assert
Conflicts:
libavcodec/rectangle.h
libavutil/crc_data.h
The assert is not removed as the assert ensures clear and easy
to debug failures instead of undefined behavior in case of
misalignment.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '375ef6528c9dd2db7f9881e232cb0ec3aa16970d':
libfdk-aacenc: Actually check for upper bounds of cutoff
arm: Fall back to runtime cpu feature detection via /proc/cpuinfo
Merged-by: Michael Niedermayer <michaelni@gmx.at>
These functions are mostly H264-specific (the only other user I can
spot is bink), and this allows us to special-case some functionality
for H264. Also remove the 16-bit-coeff with >8bpp versions (unused)
and merge the duplicate 32-bit-coeff for >8bpp (identical).
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Fixes integer overflow and out of array accesses
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
The "CPU: CentaurHauls family 6 model 9 stepping 8" family of CPUs
(flags: fpu vme de pse tsc msr cx8 sep mtrr pge mov pat mmx fxsr sse
up rng rng_en ace ace_en) SIGILLs on long nop codes.
Change-Id: I7e7c52a2191006df30a9aadbc40d481a1db89106
Also use the resulting 16bpp functions for anything >8 and <=16, not just
9 and 10. This fixes 12 and 14bpp H264 support.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This reverts parts of d6d5ef5534, that didn't work right. (The
tests that were added failed on big endian, and the output looked
garbled on little endian as well.)
This is due to the fact that the intermediate scaling values (from
e.g. hScale8To19_c or hScale16To19_c) are stored as int32_t and
thus requires a separate output function, while yuv2gbrp_full_X_c
only interprets it as int16_t.
Signed-off-by: Martin Storsjö <martin@martin.st>
On recent android versions, /proc/self/auxw is unreadable
(unless the process is running running under the shell uid or
in debuggable mode, which makes it hard to notice). See
http://b.android.com/43055 and
https://android-review.googlesource.com/51271 for more information
about the issue.
This makes sure e.g. neon optimizations are enabled at runtime in
android apps even when built in release mode, if configured to
use the runtime detection.
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
This allows more transparent mixing of get_bits and whole-byte access
without having to touch get_bits internals.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Rely on generic utilities for computing each plane linesize.
In particular, add support to NV12/21 formats and avoid use of
PIX_FMT_PLANAR pixdesc flag, whose semantics is questionable.
It also fixes various crashes.
* commit 'e58013dd8f00e17dd98ba64e41c72f1d152f6608':
sws: use planarRgbToRgbWrapper only for 8bit per component
Conflicts:
libswscale/swscale_unscaled.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '81726a4f0b8a43e19898e2a36fdde80583bafff0':
FATE: add tests for additional flavors of asf cover art
asfdec: do not assume every AVStream has a corresponding ASFStream
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'db0a943266be29ff0596872ebb418dfed75d00de':
avplay: apply the stream sample_aspect_ratio to decoded video frames
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '61f9ad2dfcb3f98b7ac5777d19d0e7b61d0be01e':
asfdec: read the full Metadata Object, not just aspect ratio information
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '36fab50e90d15352e403e4cc210890810f2fb4e2':
asfdec: silence a warning
mss4, ra288: Remove unused DSPContext local codec context members
Merged-by: Michael Niedermayer <michaelni@gmx.at>
get_pix_fmt_score() returns a score representing the amount
of loss when converting a pixel format
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This code path is not implemented and makes not much sense to implement
either.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
If there is a sample_aspect_ratio in the stream, then apply it to every
decoded frame in the same way as avconv does. This also makes sure that
the avfilter chain has access to the aspect ratio.
Signed-off-by: Vladimir Pantelic <vladoman@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
In some ASF files this objects holds cover art and other tags. Compared to
Metadata Object it can also hold GUIDs, but we ignore these for now.
Signed-off-by: Vladimir Pantelic <vladoman@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Use the same get_tag()/get_value() as for the Extended Content Description
but handle the 16 bit vs 32 bit difference for type 2 (BOOL)
Signed-off-by: Vladimir Pantelic <vladoman@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Now it displays all color components (not just luma)
either in parade or overlay and also works with RGB colorspace.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
* commit '059866eb17cd3c66422a61d3e9c3305f55830a50':
dsputil: Move WRAPPER8_16_SQ macro to the only place it is used
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Reference:
commit 41fda91d09
Author: BERO <bero@geocities.co.jp>
Date: Wed May 14 17:46:55 2003 +0000
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
Originally committed as revision 1880 to svn://svn.ffmpeg.org/ffmpeg/trunk
commit 8dbe585641
Author: Oskar Arvidsson <oskar@irock.se>
Date: Tue Mar 29 17:48:59 2011 +0200
Adds 8-, 9- and 10-bit versions of some of the functions used by the h264 decoder.
This patch lets e.g. dsputil_init chose dsp functions with respect to
the bit depth to decode. The naming scheme of bit depth dependent
functions is <base name>_<bit depth>[_<prefix>] (i.e. the old
clear_blocks_c is now named clear_blocks_8_c).
Note: Some of the functions for high bit depth is not dependent on the
bit depth, but only on the pixel size. This leaves some room for
optimizing binary size.
Preparatory patch for high bit depth h264 decoding support.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'bf6b3ec924b4fb64d14df33077f4d4541d525dbf':
dsputil: Move rnd_avg inline functions to a separate header
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '35685a3c2a1ec09f3c62dcfc4368fe9e92bcddf6':
dsputil: Move ff_shrink* function declarations to separate header
dsputil: Move ff_svq3 function declarations to a separate header
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '6a4430407404bfe55581e66a86a496c9adf6fb44':
dsputil: Move ff_h264_idct function declarations to a separate header
Conflicts:
libavcodec/dsputil.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'b9ba5253dd1232be4b48cfe61c31ff4b3de3d10a':
dsputil: Move copy_block functions to a separate header
dsputil: Drop unused functions copy_block{2|4|16}
No functions are droped because they are used in several places.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'b9ee5f2cab3ffe1c962e542346b1ed61394864ec':
indeo3: replace use of copy_block4 with put_pixels
mjpegdec: use put_pixels instead of copy_block8
Conflicts:
libavcodec/mjpegdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'b5b7b75e91e291c810ebd01868a42b53f267a87c':
dsputil: Move get_penalty_factor() to the only place it is used.
Conflicts:
libavcodec/dsputil.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
They were renamed by mistake in 25841df.
This should fix compilation failures on sparc.
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
If its start is not aligned then aligning its end will
likely break many demuxers as they check the size and not
the position.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This replaces a large number of checks for the second field by
fixing the pointers when they are setup
This should also fix I/BI field pictures
Changes checksums for vc1_sa10143, the file becomes slightly closer
to what the reference decoder outputs
Based on "vc1dec: the second field is written wrong to the picture"
by Sebastian Sandberg <sebastiand.sandberg@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
17% faster
Note the speedup is smaller if its done before
storing in the context (gcc 4.6.3 core i7)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Reference:
commit 3615e2be84
Author: Michael Niedermayer <michaelni@gmx.at>
Date: Tue Dec 2 22:02:57 2003 +0000
h263_h_loop_filter_mmx
Originally committed as revision 2553 to svn://svn.ffmpeg.org/ffmpeg/trunk
commit 359f98ded9
Author: Michael Niedermayer <michaelni@gmx.at>
Date: Tue Dec 2 20:28:10 2003 +0000
h263_v_loop_filter_mmx
Originally committed as revision 2552 to svn://svn.ffmpeg.org/ffmpeg/trunk
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'ca1fe6c0e60808da45d4dfd8728f45e843b9f9b0':
h263: remove an unused parameter from ff_h263_decode_init_vlc
flac: add channel layout masks for streams with 7 or 8 channels.
flac: don't check the number of channels before setting the channel layout.
Conflicts:
libavcodec/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'a846dccb29d2bb0798af1d47d06100eda9ca87cc':
h264chroma: x86: Fix building with yasm disabled
rv34: Drop now unnecessary dsputil dependencies
Conflicts:
libavcodec/x86/Makefile
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Non-ascii chars are not correctly rendered in both MAN and HTML output or
may even cause compilation failure. Thus avoid to use them until we find
a satisfying way to deal with them.
Fix trac ticket #2243.
The DTS needs to be resynched against the segment start PTS, or the
resulting DTS may result < PTS.
Reported-by: Owen Jones <riots6@gmail.com>
See thread:
Subject: [FFmpeg-user] pts/dts error using reset_timestamps while splitting a DVD
Date: Sat, 19 Jan 2013 08:58:27 +0000
Modified the fate test crc generator to print the side_data's
crc if side_data is present.
Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
mpegvideo: initialize dummy reference frames.
Conflicts:
libavcodec/mpegvideo.c
tests/ref/fate/filter-yadif-mode1
The luma init is left at 0x80 as it was previously, and tested and
working since a long time. Its also mandated to be 0x80 by at least
one specification. Cases that need different values already had
code in place to handle them.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'dff6197dfb9b2d145729885c63f865c5fdd184aa':
nuv: do not rely on get_buffer() initializing the frame.
yop: initialize palette to 0
Conflicts:
libavcodec/nuv.c
tests/ref/fate/nuv-rtjpeg-fh
tests/ref/fate/yop
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '06cf597c352519d2b70f293518c61b8c312f5d4f':
yop: check that extradata is large enough.
Conflicts:
libavcodec/yop.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '89f11f498b9c15bc71494a11a7ec560f4adf630d':
qtrle: fix the topmost line for 1bit
Conflicts:
tests/ref/fate/qtrle-1bit
See: 1af91978db
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '2cd4068071b9a8908823a3107f97e938211045ce':
fraps: fix off-by one bug for version 1.
Conflicts:
libavcodec/fraps.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'da7baaaae79b4d7d715d35ea6bcfbdd149edc177':
aasc: fix output for msrle compression.
msrledec: check bounds before constructing a possibly invalid pointer,
cmdutils: remove ansi from the list of broken codecs.
Conflicts:
tests/ref/fate/aasc
Also See: e7117f1c10
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '238614de679a71970c20d7c3fee08a322967ec40':
cdgraphics: do not rely on get_buffer() initializing the frame.
svq1: replace struct svq1_frame_size with an array.
vf_yadif: silence a warning.
Conflicts:
libavcodec/svq1dec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '620289a20e022b9c16c10d546ef86cc0bb77cc84':
sh4: Fix silly type vs. variable name search and replace typo
configure: Group all hwaccels together in a separate variable
Add av_cold attributes to arch-specific init functions
Conflicts:
configure
libavcodec/arm/mpegvideo_armv5te.c
libavcodec/x86/mlpdsp.c
libavcodec/x86/motion_est.c
libavcodec/x86/mpegvideoenc.c
libavcodec/x86/videodsp_init.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '25841dfe806a13de526ae09c11149ab1f83555a8':
Use ptrdiff_t instead of int for {avg, put}_pixels line_size parameter.
Conflicts:
libavcodec/alpha/dsputil_alpha.c
libavcodec/dsputil_template.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The FATE sample contains some pixels with value 0, but the palette
stored in the file contains only values from 16 up. Because the default
and cmdutils get_buffer() initialize the data to 0x80, they appear as
gray dots.
After this commit they change to black dots, which is probably still
incorrect but less visible and doesn't rely on get_buffer() initializing
the data.
Merged commits:
commit 9a2978f37bcdf7a28235c9322e9e5a4fe15e2ff2
Author: cehoyos <cehoyos@b3059339-0415-0410-9bf9-f77b7e298cf2>
Date: Thu Jan 31 12:12:36 2013 +0000
Add more vf_stereo3d output formats.
Adds high quality green-magenta and yellow-blue dubois
anaglyph 3D output support.
Patch by thomas schorpp, thomas.schorpp gmail
git-svn-id: svn://svn.mplayerhq.hu:/mplayer/trunk@35906 b3059339-0415-0410-9bf9-f77b7e298cf2
commit 2c50e66460d8d3ec460cbf9425f252f75ea1022d
Author: reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>
Date: Sun Aug 12 17:31:47 2012 +0000
Add another anaglyph color variant.
Patch by Bob [mpbob ezpi net].
git-svn-id: svn://svn.mplayerhq.hu:/mplayer/trunk@35080 b3059339-0415-0410-9bf9-f77b7e298cf2
commit 71c5261c2ac63e6e29a5a899b52d1ec4bdb62c4e
Author: reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>
Date: Sun Aug 12 17:25:30 2012 +0000
Convert comments into designated initializers.
That is a simple way to ensure they always correspond
to what the compiler actually does.
git-svn-id: svn://svn.mplayerhq.hu:/mplayer/trunk@35079 b3059339-0415-0410-9bf9-f77b7e298cf2
commit d7164c5e1ba524c2a6983d979ef57e193b2c8a9f
Author: reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>
Date: Sun Aug 12 17:20:24 2012 +0000
Make compiler give the ana_coeff array automatically the right size.
Makes adding more colour schemes easier.
git-svn-id: svn://svn.mplayerhq.hu:/mplayer/trunk@35078 b3059339-0415-0410-9bf9-f77b7e298cf2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
In particular: always use @table @samp for showing constant tables, add a
few empty lines for improving readability, and specify default value when
missing.
Always evaluate to NULL when the source Picture is not located in the
MpegEncContext.picture array. That will only happen for
next/last_picture_ptr when updating the thread context during h264 frame
threaded decoding, where they will point to elements of ref_list. Since
ref_list is not copied during updating the context and is invalid until
it is constructed for the current slice, there is no point in doing
anything complicated with next/last_picture_ptr, as they will get
updated when the ref_list is filled.
The code is untested and contained bugs, we need a sample if any files
use this branch.
Suggested-by: Roberto Togni
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Only power-of-two FFTs are supported; so to get a full spectrum
(that is, one up to Nyquist), the height must be a power of two.
Therefore, change the default height from 480 to 512.
Signed-off-by: Rudolf Polzer <divverent@xonotic.org>
This patch corrects a mistake in the documentation and aligns the
documentation of frame rates to the values that exist in parseutils.c.
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
Replace wrong "EXT-X-ALLOWCACHE" with "EXT-X-ALLOW-CACHE", and value 1/0
with YES/NO, as per spec.
Fix trac ticket #2228.
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
* cus/stable:
ffplay: step to next frame if paused when seeking
ffplay: move up pause functions
ffplay: remember last window dimensions
ffplay: fix order of setting show_mode
ffplay: dynamically allocate audio buffer
Merged-by: Michael Niedermayer <michaelni@gmx.at>
After this change the dimensions of single image videos will be remembered when
coming back from full screen. The issue was mentioned in ticket #2174.
Signed-off-by: Marton Balint <cus@passwd.hu>
We simply remove the fixed length VideoState->audio_buf2 and use
the previously unused VideoState->audio_buf1.
Fixes ticket #2191.
Signed-off-by: Marton Balint <cus@passwd.hu>
The non-alpha and alpha-Y planes are cleared in the idct_put/add()
calls. For the alpha U/V planes, we only care about the DC for entropy
context prediction purposes, the rest of the data is unused.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
Use proper "" quotes for local header #includes
ppc: fmtconvert: Drop two unused variables.
bink demuxer: set framerate.
Conflicts:
libavcodec/kbdwin.c
libavcodec/ppc/fmtconvert_altivec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '1730ca2eca42974af0c29f38a0770997cba2f0da':
bink demuxer: check malloc return value
See:
commit e400b95b32
Author: Paul B Mahol <onemda@gmail.com>
Date: Sat Jun 9 10:57:14 2012 +0000
bink: check av_mallocz() return value
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'f2960097e42ddf9a356bab6547f87906f6999e0a':
bink: fix a check for the first frame.
doc/developer: Drop obsolete MPlayer reference
doc/developer: Add ISC license to list of acceptable licenses
doc/developer: Add web links for all suggested licenses
Conflicts:
doc/developer.texi
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
x86: hpel: Move {avg,put}_pixels16_sse2 to hpeldsp
configure: Add a comment indicating why uclibc is checked before glibc
Merged-by: Michael Niedermayer <michaelni@gmx.at>
All the removed names are already mentioned in the commit log, or are
listed as copyright holders in the contributed files.
Amongst the removed names, the following ones were not listed in the
commit log:
Mario Brito (Xan DPCM decoder)
Brian Foley (DSP utils optimizations)
Vladimir Gneushev (lavf/lavc)
Juan J. Sierralta (H.263)
Ewald Snel (qdm2, cinepak)
Lionel Ulmer (DSP utils optimizations)
Generally speaking, there are two types of v4l2 devices [1]:
1) devices that support a standard, like PAL or NTFS (tv cards, for example). For
this class of devices the framerate is fixed by the standard (for example PAL uses
25 fps) and the v4l2 driver cannot usually negotiate a different framerate (unless
it can skip frames on the driver side, to save I/O bandwidth).
2) devices for which the notion of standard does not make sense (webcams, for example).
For these devices it is usually possibile to request a desidered framerate.
In either case, the desidered frame rate can be requested when the VIDIOC_G_PARM
ioctl returns the V4L2_CAP_TIMEPERFRAME flag in the capability field.
Currently the code does not check for V4L2_CAP_TIMEPERFRAME and supports only the
second category of devices, returning a time per frame of 0/0 for devices in the
first group that do not permit to negotiate the framerate.
This patch adds support to read the correct framerate in all cases.
[1] http://linuxtv.org/downloads/v4l-dvb-apis/standard.html
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
Since the user is expected to choose the standard by name (with -standard
option), add the possibility to list all the supported standards.
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
On Cygwin systems MinGW headers can be present if the corresponding
packages have been installed. Since the MinGW libc is checked for
first, this results in newlib getting misdetected as MinGW libc.
REBASE_PICTURE (more specifically, this half of it) takes a Picture
pointer that points into one larger struct, finds the offset of
that Picture within the struct and finds the corresponding field
within another instance of a similar struct.
The pointer difference "pic - (Picture*)old_ctx" is a value given
in sizeof(Picture) units, and when applied back on
(Picture*)new_ctx gets multiplied back with sizeof(Picture). Many
compilers seem to optimize out this division/multiplication, but
not all do.
GCC 4.2 on OS X doesn't seem to remove the division/multiplication,
therefore the new pointer didn't turn out to point to exactly
the right place in the new struct since it only had sizeof(Picture)
granularity (and the Picture is not aligned on a sizeof(Picture)
boundary within the encompassing struct). This bug has been present
before 47318953d as well - with H264, pointers to h->ref_list[0][0]
pointed to 88 bytes before h->ref_list[0][0] after the rebase. After
shrinking Picture, the difference ended up even larger, making
writes via such a Picture pointer overwrite other fields at random
in H264Context, ending up in crashes later.
This fixes H264 multithreaded decoding on OS X with GCC 4.2.
Signed-off-by: Martin Storsjö <martin@martin.st>
Also check number of streams and give error message why muxing failed.
This prevents muxing unsupported codec with known and supported tag.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Memory passed to av_realloc cannot be allocated using memalign.
From realloc(3):
The realloc() function changes the size of the memory block pointed to
by ptr to size bytes. (...) Unless ptr is NULL, it must have been returned
by an earlier call to malloc(), calloc() or realloc().
The issue has been found by debugallocation, a part of google-perftools:
http://code.google.com/p/gperftools/ .
Signed-off-by: Paweł Hajdan, Jr <phajdan@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Memory passed to av_realloc must come from malloc,
calloc or realloc, and not e.g. memalign. realloc(3):
The realloc() function changes the size of the memory block pointed to
by ptr to size bytes. (...) Unless ptr is NULL, it must have been
returned by an earlier call to malloc(), calloc() or realloc().
The issue has been found by debugallocation, a part of google-perftools:
http://code.google.com/p/gperftools/ .
This makes fate pass when using LD_PRELOAD-ed debugallocation.
See also earlier discussion
http://ffmpeg.org/pipermail/ffmpeg-devel/2013-January/137234.html
Signed-off-by: Paweł Hajdan, Jr <phajdan@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'f81c37e40fe3236d54da12aef9cdba48ba70ec31':
vf_delogo: fix an uninitialized read.
h264: remove obsolete comment.
mpegvideo: remove some unused variables from Picture.
utvideoenc/v410enc: do not set AVFrame.reference.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'e6b1c3bbe7082c71ea8ee8ac83698c156c9e4838':
pthread: make ff_thread_release_buffer idempotent.
mvi: set framerate
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '098eed95bc1a6b2c8ac97f126f62bb74699670cf':
mdec: merge mdec_common_init() into decode_init().
eatgv: use fixed-width types where appropriate.
x86: Simplify some arch conditionals
bfin: Separate VP3 initialization code
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The existing checks are insufficient to detect a pixel format
changes in case of some damaged streams.
Fixes inconsistency and later out of array accesses
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Prevents reconfiguration with threads which is unsupported
and would bring the contexts into an inconsistent state.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This prevents out of array reads. An alternative solution would be
to check the index but this would require several checks in the
inner loops
Yet another alternative would be to change the index reset logic
but this likely would introduce a difference to the binary decoder
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
x86: hpeldsp: Fix a typo, use the right register
shorten: fix array subscript is below array bounds warning
Conflicts:
libavcodec/shorten.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '05b0998f511ffa699407465d48c7d5805f746ad2':
dsputil: Fix error by not using redzone and register name
swscale: GBRP output support
Conflicts:
libswscale/output.c
libswscale/swscale.c
libswscale/swscale_internal.h
libswscale/utils.c
tests/ref/lavfi/pixdesc
tests/ref/lavfi/pixfmts_copy
tests/ref/lavfi/pixfmts_null
tests/ref/lavfi/pixfmts_scale
tests/ref/lavfi/pixfmts_vflip
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Because libavdevice/v4l2 is a demuxer, it makes sense to look for
decoders instead of encoders when listing the formats supported by the
device.
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
Make device_try_init() return an error value, and allow to properly
report errors which are not due to a wrong pixel/codec configuration.
In particular, report intelligible feedback in case of busy device.
* commit '96753bd00d6d4046db6818c0aadc21bf2a11d77b':
dsputil: x86: Correct the number of registers used in put_no_rnd_pixels16_l2
dsputil: add missing HAVE_YASM guard
hwaccel: do not offer unsupported pixel formats
vdpau: add missing pixel format for H.264
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Also fix project name
See git blame/log/show and
commit 826f429ae9
Author: Michael Niedermayer <michaelni@gmx.at>
Date: Sun Jan 5 15:57:10 2003 +0000
qpel in mmx2/3dnow
qpel refinement quality parameter
Originally committed as revision 1393 to svn://svn.ffmpeg.org/ffmpeg/trunk
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This also fixes the project name
Original authors fabrice and nick go back to the initial ffmpeg commit
Others for example contributed in: (for a complete list please use git blame / show / log)
commit e9c0a38ff0
Author: Zdenek Kabelac <kabi@informatics.muni.cz>
Date: Tue May 28 16:35:58 2002 +0000
* optimized avg_* functions (except xy2)
* minor speedup for put_pixels_x2 & cleanup
Originally committed as revision 619 to svn://svn.ffmpeg.org/ffmpeg/trunk
commit 607dce96c0
Author: Michael Niedermayer <michaelni@gmx.at>
Date: Fri May 17 01:04:14 2002 +0000
hopefully faster mmx2&3dnow MC
Originally committed as revision 506 to svn://svn.ffmpeg.org/ffmpeg/trunk
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'f90ff772e7e35b4923c2de429d1fab9f2569b568':
Move H264/QPEL specific asm from dsputil.asm to h264_qpel_*.asm.
doc: update the reference for the title
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This makes the plain-armv6 version use the same registers as the
armv6t2 version above.
This fixes fate-vp8 on plain-armv6 devices.
Signed-off-by: Martin Storsjö <martin@martin.st>
This prevents potential crashes and out of memory issues if
the user manually sets such insane values.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
We have to make some symetric changes elsewhere as this increases
the precission with which samples are stored.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '69c25c9284645cf5189af2ede42d6f53828f3b45':
dnxhdenc: fix invalid reads in dnxhd_mb_var_thread().
x86: h264qpel: Move stray comment to the right spot and clarify it
atrac3: use correct loop variable in add_tonal_components()
Conflicts:
tests/ref/vsynth/vsynth1-dnxhd-1080i
tests/ref/vsynth/vsynth2-dnxhd-1080i
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Add a field to the AVBufferSinkParams for a list of accepted
channel counts.
Change the default value for the lists in AVBufferSinkParams
to NULL, to let lavfi fill them with something useful.
The fail_enomem path is unneeded because filters are uninited
on failure.
Some code was copy pasted from muxer, which still
have same comments but unlike encoder they are still
relevant to muxer.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
The checks existing previously where not sufficient
Fixes out of array accesses
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Fixes integer overflow and out of array accesses
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
avfilter: allow setpts filter to use wallclock time for calculations
Conflicts:
doc/filters.texi
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '2c10e2a2f62477efaef5b641974594f7df4ca339':
build: Make the H.264 parser select h264qpel
x86: h264qpel: add cpu flag checks for init function
Conflicts:
libavcodec/x86/h264_qpel.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '6bdb841b46d170d58488deaed720729b79223b1d':
arm: h264qpel: use neon h264 qpel functions only if supported
* bug was fixed previously (in merge of buggy code):
h264: copy h264qpel dsp context to slice thread copies
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '4a4a7e138c92901e04db46a6b05cc6948023e5f5':
rtpenc_chain: Use the original AVFormatContext for getting payload type
rtp: Make sure the output format pointer is set
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '57ed8debb9b9cc565cc6e9f98c5b5cbb9f69097c':
wmv2: Propagate the wmv2 idct permutation type to the dsputils context
rtp: Make sure priv_data is set before reading it
Merged-by: Michael Niedermayer <michaelni@gmx.at>
In particular, prefer "prefix" to "postfix" as in the tool manuals, and
specify powers of 2 and 10 explicitly.
This is based on the commit:
commit 2bf794b698
Author: Marcus Stollsteimer <sto.mar@web.de>
Date: Mon Nov 19 21:39:20 2012 +0100
This is wrong function to check for input parameters.
Function is not needed because query_formats() already
sets supported sample rates.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
The sh4 optimizations are removed, because the code is
100% identical to the C code, so it is unlikely to
provide any real practical benefit.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Previously PIC was enabled as a magic workaround for binaries that
built fine, but failed to function at all. This problem no longer
exists, possibly since the introduction of symbol versioning.
In ff_rtp_get_payload_type, the AVFormatContext is used for checking
whether the payload_type or rtpflags options are set. In rtpenc_chain,
the rtpctx struct is a newly initialized struct where no options have
been set yet, so no options can be fetched from there.
All muxers that internally chain rtp muxers have the "rtpflags" field
that allows passing such options on (which is how this worked before
8034130e06), so this works just as intended.
This makes it possible to produce H263 in RFC2190 format with chained
RTP muxers.
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
Not sure if this actually happens, but we do the same check when
checking payload_type further above in the function, so it might
be needed.
Signed-off-by: Martin Storsjö <martin@martin.st>
Prevents inconsistent state and null pointer dereference
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Fix integer overflow and out of array read
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This reverts 312645e :
"Do not set codec_tag property for matroska muxers."
Also adds dummy codec_tag lists with codecs
supported in mkv but not in wav / avi.
Fixes ticket #2169.
This prevents a buffer overflow in rle_decode()
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This fixes encoding where the idct setting originally was set to
FF_IDCT_AUTO and dsputil chose a default idct with a non-null
permutation - even if the permutation tables were updated,
dct_quantize in x86/mpegvideoenc_template.c also checked the
value of this type variable.
Signed-off-by: Martin Storsjö <martin@martin.st>
* commit '2bef1a83d7a3ca60b161ab90bf4d4338e5def5e7':
dsputil: remove some never-assigned function pointers from the struct.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '2e4bb99f4df7052b3e147ee898fcb4013a34d904':
vorbisdsp: convert x86 simd functions from inline asm to yasm.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'ed1b01131e662c9086b27aaaea69684d8575fbea':
mlp: implement support for AVCodecContext.request_channel_layout.
Conflicts:
libavcodec/mlpdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'b0c7e3ffd09f68022429920da483ad7abed84aa1':
mlp_parser: account for AVCodecContext.request_channels when setting the channel layout.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '1fd2deedcc6400e08b31566a547a5fac3b38cefb':
mlpdec: set the channel layout.
Conflicts:
libavcodec/mlpdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '99ccd2ba10eac2b282c272ad9e75f082123c765a':
mlp: store the channel layout for each substream.
Conflicts:
libavcodec/mlp_parser.c
libavcodec/mlpdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The check `start + res < start' is broken since pointer overflow is
undefined behavior in C. Many compilers such as gcc/clang optimize
away this check.
Use `res > end - start' instead. Also change `res' to unsigned int
to avoid signed left-shift overflow.
Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
A negative `size' will bypass FFMIN(). In the subsequent memcpy() call,
`size' will be considered as a large positive value, leading to a buffer
overflow.
Change the type of `size' to unsigned int to avoid buffer overflow, and
simplify overflow checks accordingly. Also change a literal buffer
size to use sizeof, and limit the amount of data copied in another
memcpy call as well.
Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
Sanity checks like `data + size >= data_end || data + size < data' are
broken, because `data + size < data' assumes pointer overflow, which is
undefined behavior in C. Many compilers such as gcc/clang optimize such
checks away.
Use `size < 0 || size >= data_end - data' instead.
Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
This makes sure that the restrict keyword is mapped to whatever
keyword the compiler prefers/supports. This fixes building on MSVC
(and possibly on GCC 2.x as well).
Signed-off-by: Martin Storsjö <martin@martin.st>
A negative `size' will bypass FFMIN(). In the subsequent memcpy() call,
`size' will be considered as a large positive value, leading to a buffer
overflow.
Change the type of `size' to unsigned int to avoid buffer overflow, and
simplify overflow checks accordingly.
Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Sanity checks like `data + size >= data_end || data + size < data' are
broken, because `data + size < data' assumes pointer overflow, which is
undefined behavior in C. Many compilers such as gcc/clang optimize such
checks away.
Use `size < 0 || size >= data_end - data' instead.
Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
The check `start + res < start' is broken since pointer overflow is
undefined behavior in C. Many compilers such as gcc/clang optimize
away this check.
Use `res > end - start' instead. Also change `res' to unsigned int
to avoid signed left-shift overflow.
Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Fixes use of uninitialized and half initialized values, which
can occur on several error pathes
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Allows users to configure the output based on what's actually decoded, rather than the full native layout.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
Also stop storing the channel arrangement in the header info, as it's unused outside of ff_mlp_read_major_sync.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
CC:libav-stable@libav.org
Avoids integer overflows and out of array accesses.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Now, nellymoserenc and aacenc no longer depends on dsputil. Independent
of this patch, wmaprodec also does not depend on dsputil, so I removed
it from there also.
outpicref is not always in synch with showwaves->outpicref, which is
changed as a side effect of the call to functions.
Fix regression introduced in 5f634480d1,
+10l to me.
The function is known to be missing in at least one target (MSVC).
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
proresdec: support mixed interlaced/non-interlaced content
vp3/5: move put_no_rnd_pixels_l2 from dsputil to VP3DSPContext.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '4f56e773fe8a554b8c2662650aaf799c2ece2721':
x86: ac3: Fix HAVE_MMXEXT condition to only refer to external assembly
rtpenc: Start the sequence numbers from a random offset
Conflicts:
libavformat/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Documentation copied from asyncts, the options are supposed to do
the same thing. If not please submit a testcase where they differ
so we can fix it.
Disscussed-with: saste on IRC
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Expose the current sequence number via an AVOption - this can
be used both for setting the initial sequence number, or for
querying the current number.
Signed-off-by: Martin Storsjö <martin@martin.st>
* commit 'ce378f0dd0c4e5350b3280e6b3e8d6b46fe4b0a3':
fate: Use wmv2 IDCT for wmv2 tests
vorbisdsp: change block_size type from int to intptr_t.
Conflicts:
tests/fate-run.sh
tests/fate/vcodec.mak
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '93af2734ee609133eaeca28329d7f13241dd411f':
lavc: put FF_IDCT_{VP3,H264,CAVS,BINK,EA,WMV2} under FF_API_IDCT.
Conflicts:
libavcodec/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'e6bc38fd49c94726b45d5d5cc2b756ad8ec49ee0':
wmv2: move IDCT to its own DSP context.
Conflicts:
libavcodec/dsputil.h
tests/ref/seek/vsynth2-wmv2
tests/ref/vsynth/vsynth1-wmv2
tests/ref/vsynth/vsynth2-wmv2
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Use AVERROR_INVALIDDATA on invalid inputs, and AVERROR_EOF when no more
frames are available in an interleaved AVI.
Signed-off-by: Jindrich Makovicka <makovick@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
* commit '8a4f26206d7914eaf2903954ce97cb7686933382':
dsputil: remove butterflies_float_interleave.
srtp: Move a variable to a local scope
srtp: Add tests for the crypto suite with 32/80 bit HMAC
Conflicts:
libavcodec/x86/dsputil.asm
libavcodec/x86/dsputil_mmx.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '3ef6d22e1ba544ab37c73e8fc61382f13aac250f':
srtp: cosmetics: Use fewer lines for the test vectors
srtp: Don't require more input data than what actually is needed
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'a2a991b2ddf951454ffceb7bcedc9db93e26c610':
srtp: Improve the minimum encryption buffer size check
srtp: Add support for a few DTLS-SRTP related crypto suites
Conflicts:
libavformat/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'f53490cc0c809975f8238d5a9edbd26f83bd2f84':
rtpdec/srtp: Handle CSRC fields being present
rtpdec: Check the return value from av_new_packet
ac3dec: fix non-optimal dithering of zero bit mantissas
Conflicts:
libavcodec/ac3dec.c
libavformat/rtpdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Use a noise range of -0.707 to 0.707 instead of -0.5 to 0.5
Based on patch by: Mathias Rauen <madshi@gmail.com> and commit by Justin Ruggles (04ea5491)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'd9bf716945046333c24580d538f450b516f15710':
ppc: vorbisdsp: Drop some unnecessary #includes
avconv: Increase the SDP buffer size to fit xiph SDPs
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'c6f1dc8e4cd967ae056698eafb891a08003c211c':
rtpdec: Move setting the parsing flags to the actual depacketizers
rtpdec: Split handling of mpeg12 audio/video to a separate depacketizer
Conflicts:
libavformat/rtpdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'a717f9904227d7979473bad40c50eb40af41d01d':
mpegts: Share the cleanup code between the demuxer and lavf-internal parser functions
rtpdec_mpeg4: Return one AAC AU per AVPacket
ppc: Include string.h for memset
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This allows us to get rid of them on the next major bump. All of the
above are functionally irrelevant, and most of them are unused, except
the vp3 one, which is used wrongly in the bfin arch optimizations.
This allows us to remove FF_IDCT_WMV2, which serves no practical purpose
other than to be able to select the WMV2 IDCT for MPEG (or vice versa)
and get corrupt output.
Fate tests for all wmv2-related tests change, because (for some obscure
reason) they forced use of the MPEG IDCT. You would get the same changes
previously by not using -idct simple in the fate test (or replacing it
with -idct auto).
Move the first use of `link' after the null pointer check.
Signed-off-by: Xi Wang <xi.wang@gmail.com>
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This clarifies where the limit number comes from, and only
requires exactly as much padding space as will be needed.
Signed-off-by: Martin Storsjö <martin@martin.st>
The theoretical minimum for a (not totally well formed) RTCP packet
is 8 bytes, so we shouldn't require 12 bytes as minimum input.
Also return AVERROR_INVALIDDATA instead of 0 if something that is
not a proper packet is given.
Signed-off-by: Martin Storsjö <martin@martin.st>
The main difference to the existing suites from RFC 4568 is
that the version with a 32 bit HMAC still uses 80 bit HMAC
for RTCP packets.
Signed-off-by: Martin Storsjö <martin@martin.st>
Several compilers such as clang/icc/pathscale will optimize the check
pos + size < pos (assuming size > 0) into false, since signed integer
overflow is undefined behavior in C. This breaks overflow checking.
Use a safe precondition check instead.
Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
The lavf-internal parser functions are used when receiving
mpegts over RTP. This fixes memory leaks in this setup.
The normal mpegts demuxer close function was updated in ec7d0d2e in
2004 to fix leaks, but the parsing function used for RTP wasn't
updated and has been leaking ever since.
Signed-off-by: Martin Storsjö <martin@martin.st>
This makes the returned data valid to stream copy into other
containers as well, not only for decoding straight away.
Signed-off-by: Martin Storsjö <martin@martin.st>
This fixes build failures on ppc machines with a compiler that
supports -Werror=implicit-function-declaration.
Signed-off-by: Martin Storsjö <martin@martin.st>
The uninitialized use implicates 0 channels, which is unlikely
to reach this function but fixed anyway in this commit.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavutil/arm/asm.S sets '.arch' depending on HAVE_ARMV5TE so that
assembling armv5te code will always succeed even if the default -march
flag does not support it. HAVE_ARMV5TE_EXTERNAL tests assembling code
with the default arch.
Fixes the missing symbol ff_prefetch_arm with --cpu= not including
armv5te.
CC: libav-stable@libav.org
Without any correctly decoded slices, there can be no frame.
Fixes out of array reads
Found-by: Rafaël Carré
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'aeaf268e52fc11c1f64914a319e0edddf1346d6a':
vp3: integrate clear_blocks with idct of previous block.
mpegvideo: fix loop condition in draw_line()
dvdsubdec: parse the size from the extradata
Conflicts:
libavcodec/dvdsubdec.c
libavcodec/mpegvideo.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This is identical to what e.g. vp8 does, and prevents the function call
overhead (plus dependency on dsputil for this particular function).
Arm asm updated by Janne Grunau <janne-libav@jannau.net>.
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
Makes ff_id3v2_read reset stream position at the end of ID3 data if the
header size is not matched (caused by an EOF for example).
Current behaviour (without the patch):
filesize = 400
id3 data size = 399
file offset after ff_id3v2_read is 400 instead of 399
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
The loop condition `x = ex' is incorrect. It should be `x <= ex'.
This bug was introduced in commit c65dfac4 "mpegvideo.c: K&R formatting
and cosmetics."
CC:libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Barcelona/amdfam10 does not support SSE4 instructions.
Also, Bulldozer supports AVX instructions, so use them instead.
Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
x86: dsputil: Drop some unused macro definitions
x86: Add a Yasm-based emms() replacement
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'd633d12b2cc999cee3ac25bf9a810fe7ff03726d':
x86inc: Add cvisible macro for C functions with public prefix
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'ef5d41a5534b65f03d02f2e11a503ab8416bfc3b':
x86inc: Rename "program_name" to "private_prefix"
configure: Run SHFLAGS through ldflags_filter()
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* cus/stable:
ffplay: flush video filters on seek
ffplay: use videoq.serial to detect obsolete frames
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Correct the time interval between logged data rows to the expected
value of 100 milliseconds by naming a new loop counter variable
to be distinct from loop counters for inner loops that
inadvertently change the outer loop operation.
This suggested patch is 1 of 3 for Ticket #2144 "libavfilter ebur128
loudness inaccuracy, irregular time interval, LFE interference".
This suggested patch supersedes the contribution of January 15, 2013
in the thread “[PATCH] lavfi: EBU R.128 irreg time, ch weights, skip
LFE” which combined multiple fixes in one patch.
Reviewed-by: Clément Bœsch <ubitux@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Actually we just re-create the filters, since there is no way to flush them.
Fixes hangup with yadif filter on seeking forward caused by a filtered frame
with a pts before the seek.
Signed-off-by: Marton Balint <cus@passwd.hu>
Previously VideoPicture->skip was used for that, using videoq.serial enables us
to detect obsolete frames right after pushing flush_pkt to the packet queue, so
we don't have to wait for the decoder thread to pop the flush packet anymore.
This is good because until now a full video picture queue may have blocked the
decoder thread.
Signed-off-by: Marton Balint <cus@passwd.hu>
This provides a fallback when building with Yasm enabled, but neither
inline assembly, nor the _mm_empty intrinsic are available or enabled.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
The new name is more descriptive and will allow defining a separate
public prefix for externally visible library symbols.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
These flags are as linker-specific as other LDFLAGS and thus
need to be translated to the correct linker syntax.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
ref_list is constructed from other fields per slice when needed, so do
not copy it for both frame and slice threading.
default_ref_list is constructed per frame and still needs to be copied
to per-slice contexts for slice threading, but a copy is not needed for
frame threading.
This is needed if a custom matrix is set by the user after opening the
AVAudioResampleContext because the matrix channel count can change if
different mixing coefficients are used.
CC:libav-stable@libav.org
This fixes a regression since d9cf5f51 with theora over RTP
(possibly with other variants of theora as well).
In theora over RTP, the second of the 3 headers turns out to be
0 bytes long, which prior to d9cf5f51 worked just fine. After
d9cf5f51, reading from the bitstream reader fails (since the reader
wasn't initialized but returned an error if initialized with 0 bits).
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
Write the packet unaltered if found.
Fixes ticket #1917
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
The code did not account properly for packets that where added to
the end of the packet list. Also flags for such packets where not
set correctly leading to incorrect chunked interleaving.
Reported-by: bcoudurier
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
The exact packing of Opus inside Matroska is not finalized.
Use A_OPUS/EXPERIMENTAL as codec name, like mkvtoolnix.
The A_OPUS name stays to let ffmpeg open files it has produced
until now, but newly produced file use the EXPERIMENTAL version.
Once the spec is stabilized it will be possible to consider
options to ensure compatibility with these files.
icc should not complain when 2 enum values are combined (for example when
used as flags)
Adding casts to suppress these would not help code quality
Reviewed-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
a small value was rounded to 0 and then treated special as if
chunked_duration was 0. This led to a inconsistency that further led
to wrong interleaving
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
lavc: Move vector_fmul_window to AVFloatDSPContext
rtpdec_mpeg4: Check the remaining amount of data before reading
Conflicts:
libavcodec/dsputil.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '977d4a3b8a2dbc2fb5e747c7072485016c9cdfaa':
rtpdec_mpeg4: Check the return value from malloc
srtp: Mark a few variables as uninitialized
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '0eecafc948b74c247ebbc59f18f508db5d590d0b':
configure: Make the new srtp protocol depend on the rtp protocol
lavf: Add a fate test for the SRTP functions
lavu: Add a fate test for the HMAC API
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'fb845ffdd335a1efd6dfd43e8adeb530397b348e':
h264: add 3 pixels below for subpixel filter wait position
dvdsubdec: Support palette in mkv
Conflicts:
libavcodec/dvdsubdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'dae1d507af94261bafd3b11549884e5d1eca590e':
x86: Add PAVGB macro to abstract pavgb/pavgusb instruction via cpuflags
vf_fps: add final flushed frames to the dropped frame count
rv34_parser: Adjust #if for disabling individual parsers
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Fixes out of array reads
Regression probably since allowing pixel format changes or a related commit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
If the motion vector is at a subpixel position, we need 3 pixels below
the motion vector's wholepel position available, not 2, since the MC
filter is a sixtap filter for the hpel position, and then a bilin filter
for the qpel position.
This patch fixes highly irreproducible (0.1%) fate failures in frame 2
and 4 of h264-conformance-cama2_vtc_b (e.g. first P-frame, first field,
last line of MB x=40,y=2 and second field and last lines of MBs x=39-40,
y=3). These used pre-loopfilter instead of post-loopfilter data because
the await_progress() waited for one line too little in that field, and
the motion vector of these particular MBs happened to align exactly to a
position where that demonstrates the bug.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
If the motion vector is at a subpixel position, we need 3 pixels below
the motion vector's wholepel position available, not 2, since the MC
filter is a sixtap filter for the hpel position, and then a bilin filter
for the qpel position.
This patch fixes highly irreproducible (0.1%) fate failures in frame 2
and 4 of h264-conformance-cama2_vtc_b (e.g. first P-frame, first field,
last line of MB x=40,y=2 and second field and last lines of MBs x=39-40,
y=3). These used pre-loopfilter instead of post-loopfilter data because
the await_progress() waited for one line too little in that field, and
the motion vector of these particular MBs happened to align exactly to a
position where that demonstrates the bug.
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Attempting to re-parse the headers at demuxer level is a
pandora box the way its done currently.
This allows full reconfiguration of vorbis streams
Fixes Ticket2117
Fixes Ticket2121
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Untested, due to lack of rtp stream with CSRCs, but the code as
is does not work with multiple CSRCs
Reviewed-by: Luca Abeni <lucabe72@email.it>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '094a7405e5d8463d7d167d893e04934ec1a84ecd':
x86: ABSB: port to cpuflags
sdp: Include SRTP crypto params if using the srtp protocol
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '2f3bada63e57345329c4f9b48e9b81b5cfc03d05':
lavf: Add a protocol for SRTP encryption/decryption
rtsp: Support decryption of SRTP signalled via RFC 4568 (SDES)
Conflicts:
libavformat/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'ab2ad8bd56882c0ea160b154e8b836eb71abc49d':
lavf: Add functions for SRTP decryption/encryption
lavu: Add an API for calculating HMAC (RFC 2104)
Conflicts:
doc/APIchanges
libavutil/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '47812070a267cbdf74164e154d03d99bf8ced100':
libx264: use the library specific default rc_initial_buffer_occupancy
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'bff3607547fdbb6e32b3830a351e6a33280c1e0d':
lavc: set the default rc_initial_buffer_occupancy
Conflicts:
libavcodec/utils.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'd8c772de53d29afb1bada88afa859fce8489c668':
nutdec: Always return a value from nut_read_timestamp()
configure: Make warnings from -Wreturn-type fatal errors
x86: ABS2: port to cpuflags
vdpau: Remove av_unused attribute from function declaration
h264: fix ff_generate_sliding_window_mmcos() prototype.
Conflicts:
configure
libavformat/nutdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '5e753ed502d3597077d8675ca1438e1bcade1459':
suncc: Replace more GCC flags by their equivalents in suncc_flags()
libtheoraenc: fix granularity of video quality
oggparsetheora: fix comment header parsing
h264: don't clobber mmco opcode tables for non-first slice headers.
Conflicts:
libavcodec/h264_refs.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '3f111804eb5c603a344706b84b7164cbf7b4e0df':
libvpx: make vp8 and vp9 selectable
libvpx: support vp9
nut: support vp9 tag
mkv: support vp9 tag
rtpdec: Make variables that should wrap unsigned
Conflicts:
configure
libavcodec/Makefile
libavcodec/allcodecs.c
libavcodec/avcodec.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'ba0c72a9ae1e2954e5dcf920f7b4e9a8f8a22f3e':
build: Remove stray Makefile entry for non-existent VCR1 encoder
rtpdec: Handle more received packets than expected when sending RR
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'd0fe217e3990b003b3b3f2c2daaadfb2af590def':
rtpdec: Simplify insertion into the linked list queue
rtpdec: Remove a woefully misplaced comment
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Clobbering these tables will temporarily clobber the template used
as a basis for other threads to start decoding from. If the other
decoding thread updates from the template right at that moment,
subsequent threads will get invalid (or, usually, none at all) mmco
tables. This leads to invalid reference lists and subsequent decode
failures.
Therefore, instead, decode the mmco tables only for the first slice in
a field or frame. For other slices, decode the bits and ensure they
are identical to the mmco tables in the first slice, but don't ever
clobber the context state. This prevents other threads from using a
clobbered/invalid template as starting point for decoding, and thus
fixes decoding in these cases.
This fixes occasional (~1%) failures of h264-conformance-mr1_bt_a with
frame-multithreading enabled.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This is mostly useful for encryption together with the RTP muxer,
but could also be set up as IO towards the peer with the SDP
demuxer with custom IO.
Signed-off-by: Martin Storsjö <martin@martin.st>
This only takes care of decrypting incoming packets; the outgoing
RTCP packets are not encrypted. This is enough for some use cases,
and signalling crypto keys for use with outgoing RTCP packets
doesn't fit as simply into the API. If the SDP demuxer is hooked
up with custom IO, the return packets can be encrypted e.g. via the
SRTP protocol.
If the SRTP keys aren't available within the SDP, the decryption
can be handled externally as well (when using custom IO).
Signed-off-by: Martin Storsjö <martin@martin.st>
This supports the AES_CM_128_HMAC_SHA1_80 and
AES_CM_128_HMAC_SHA1_32 cipher suites (from RFC 4568) at the
moment. The main missing features are replay protection (which can be
added later without changing the internal API), and the F8 and null
ciphers.
Signed-off-by: Martin Storsjö <martin@martin.st>
rc_buffer_size is not set before.
Solve the initial the rate control underflow issue reported in
bug 222.
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Since resolution change support this also was exploitable, which is
how it was found.
Fixes read after free and out of array reads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
The function is a callback that is called by ff_gen_search with
a constant stream index.
Avoid a false positive on older gcc version.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
This could also be fixed by changing the argument type if
someone prefers that and wants to change it ...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
The floating point version of av_clip has to be used when
converting the quality level.
Signed-off-by: Maximilian Seesslen <mes@seesslen.net>
Signed-off-by: Martin Storsjö <martin@martin.st>
Clobbering these tables will temporarily clobber the template used
as a basis for other threads to start decoding from. If the other
decoding thread updates from the template right at that moment,
subsequent threads will get invalid (or, usually, none at all) mmco
tables. This leads to invalid reference lists and subsequent decode
failures.
Therefore, instead, decode the mmco tables only for the first slice in
a field or frame. For other slices, decode the bits and ensure they
are identical to the mmco tables in the first slice, but don't ever
clobber the context state. This prevents other threads from using a
clobbered/invalid template as starting point for decoding, and thus
fixes decoding in these cases.
This fixes occasional (~1%) failures of h264-conformance-mr1_bt_a with
frame-multithreading enabled.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
This makes the behaviour defined when they wrap around. The value
assigned to expected_prior was a uint32_t already.
Signed-off-by: Martin Storsjö <martin@martin.st>
Without this, we'd signal a huge loss rate (due to unsigned
wraparound) if we had received one packet more than expected (that
is, one seq number sent twice). The code has a check for lost_interval
<= 0, but that doesn't do what was intended as long as the variable is
unsigned.
Signed-off-by: Martin Storsjö <martin@martin.st>
The code below the comment does not at all relate to statistics,
and even if moved to the right place, the comment adds little
value.
Signed-off-by: Martin Storsjö <martin@martin.st>
* commit '90cfc084e3e6d37ab88fc96a95f0401d8e8b4cd1':
avpacket: free side data in av_free_packet().
v4l2: do not assert on a value received from outside of Libav
v4l2: set the average framerate instead of codec timebase.
Conflicts:
libavcodec/avpacket.c
libavdevice/v4l2.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '44e065d56c87d6a9d0effccec5f31517f72924ec':
vdpau: Add context and common helpers for hwaccel support
Conflicts:
Changelog
doc/APIchanges
libavcodec/vdpau.h
libavcodec/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Fixes null pointer dereference later, since if this function failed,
a positive return value was returned to the caller.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Martin Storsjö <martin@martin.st>
Manually load registers to avoid using 8 registers on x86_32 with
compilers that do not align the stack (e.g. MSVC).
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Freeing it in av_destruct_packet(), as is done currently, would mean
that we allow it to be allocated with other means. But that would make
av_packet_new_side_data() unsafe.
Side data is not expected to be large, so copying it if required
shouldn't be a problem.
This prevents insane memory usage in case of insane input values.
Untested due to lack of a testcase that causes such insane allocation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
"analyzeduration" is not used to detect the input duration, but to
specify the max probe data duration. Fix option description and related
doc entry accordingly.
* commit 'abae27ed3acd0a7c54f11760c5be2d2653c4edf8':
rtpdec: Fix the calculation of expected number of packets
fate: vp3: Fix fate-vp3-coeff-level64 test dependencies
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '4d3b144c5ea824193019019d33740a1ae9e0bb69':
fate: cosmetics: Order some test entries
Conflicts:
tests/fate/lossless-video.mak
tests/fate/microsoft.mak
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Previously, we always signalled a zero time since the last RTCP
SR, which is dubious.
The code also suggested that this would be the difference in
RTP NTP time units (32.32 fixed point), while it actually is
in in 1/65536 second units. (RFC 3550 section 6.4.1)
Signed-off-by: Martin Storsjö <martin@martin.st>
This brings back some code that was added originally in 4a6cc061
but never was used, and was removed as unused in 4cc843fa. The
code is updated to actually work and is tested to return sane
values.
Signed-off-by: Martin Storsjö <martin@martin.st>
The base_seq variable is set to first_seq - 1 (in
rtp_init_sequence), so no + 1 is needed here.
This avoids reporting 1 lost packet from the start.
Signed-off-by: Martin Storsjö <martin@martin.st>
If nb_samples divide sample_rate and if nb_samples allow it, aevalsrc
should generate the exact amount of samples according to duration.
Example:
aevalsrc=0::n=480:s=48000:d=5.21 should generate 250080 samples.
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
* qatar/master:
Add version bump and APIchanges entry for Add AV_PIX_FMT_VDPAU.
pixfmt: add picture format for VDPAU
Conflicts:
doc/APIchanges
libavutil/pixfmt.h
libavutil/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '54cb096ee4558b3bfc28c2fcd6418ce82dc39fe1':
rtsp: Remove an outdated comment
rtsp: Remove references to weirdly named variables in other files
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'c44784c9bb9d0ddf5d39d0dfa640816a57b8f457':
rtp: Rename a static variable to normal naming conventions
rtp: Cosmetic cleanup
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The paragraph is about what ffserver is not and where to look for other
information, but is pretty redundant and distracting, especially
considering the new organization of the documentation.
The question can be answered: No, we do not know the initial sequence
number from the SDP. In certain cases, it can be known from the
RTP-Info response header in RTSP though. (In that case, we use it as
timestamp origin, but not for rtp receiver statistics.)
Signed-off-by: Martin Storsjö <martin@martin.st>
It is unclear what the bug exactly was and if it ever was fixed,
and we don't even support decoding via faad any longer. The
comment has been present since d0deedcb in 2006.
Signed-off-by: Martin Storsjö <martin@martin.st>
One of them is renamed now, but mentioning it by name serves
no purpose here. The other table mentioned ceased to exist
under that name in 4934884a1 in 2006.
Signed-off-by: Martin Storsjö <martin@martin.st>
Fixes division by zero
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Reviewed-by: Matthieu Bouron <matthieu.bouron@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
configure: enable pic for shared libs on AArch64
zmbv: Reset the decoder on keyframe errors
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '7b8c5b263bc680eff5710bee5994de39d47fc15e':
vc1dec: prevent a crash due missing pred_flag parameter
matroska: Fix use after free
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'ec86ba57312745fd7ad9771e3121e79c6aacba30':
vp3: Fix double free in vp3_decode_end()
fate: Split fate-siff test into demuxer and VB video decoder test
Conflicts:
tests/fate/demux.mak
tests/fate/video.mak
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Handle pred_flag parameter not given to get_mvdata_interlaced()
Signed-off-by: Vladimir Pantelic <vladoman@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Fixes state becoming inconsistent
Fixes a null pointer dereference
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
rtpdec_vp8: Don't trim too much data from broken frames
rtpdec_vp8: Simplify code by using an existing helper function
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'ed79093222ceb42f0c3a39095a69af0b32be5450':
rtpdec: Add a terminating null byte at the end of the SDES/CNAME
yuv4mpeg: do not use deprecated functions
oggdec: fix faulty cleanup prototype
idcin: return 0 from idcin_read_packet() on success.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '7040e479a1530b2eda4b89a182d5eb50a77bd907':
idcin: allow seeking back to the first packet
idcin: set AV_PKT_FLAG_KEY for video packets with a palette
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'ccc0ffb1ba3fc1adb05a9f56dfc26131e61db3fb':
idcin: set start_time and packet duration instead of manually tracking pts.
idcin: set channel_layout
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '12c2530b1d87fa94f81ea97df575b77c825e6f4f':
idcin: fix check for presence of an audio stream
idcin: validate header parameters
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'c88d245c9866e48cb8a238b7564964c1fcf3315f':
au: use ff_raw_write_packet()
au: set stream start time and packet durations
Conflicts:
libavformat/au.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'af68a2baae6761044cbed95575e8bcfebf55c6f1':
au: use %u when printing id and channels since they are unsigned
au: validate sample rate
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'c837b38dd33a11c3810e988a60193a858eb4f58c':
au: move skipping of unused data to before parameter validation
au: do not arbitrarily limit channel count
Conflicts:
libavformat/au.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
We dont use au_read_packet() anymore and block_align is already set.
Thus nothing had to be merged from these.
* commit '2613de88051818abafccb98646394341887acb3a':
au: do not set pkt->size directly
au: set block_align and use it in au_read_packet()
Conflicts:
libavformat/au.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '9a7b56883d1333cdfcdf0fa7584a333841b86114':
au: set bit rate
au: validate bits-per-sample separately from codec tag
rtpdec_vp8: Mark broken packets with AV_PKT_FLAG_CORRUPT
Conflicts:
libavformat/au.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Previously, for broken frames, we only returned the first partition
of the frame (we would append all the received packets to the packet
buffer, then set pkt->size to the size of the first partition, since
the rest of the frame could have lost data inbetween) - now instead
return the full buffered data we have, but don't append anything more
to the buffer after the lost packet discontinuity. Decoding the
truncated packet should hopefully get better quality than trimming out
everything after the first partition.
Signed-off-by: Martin Storsjö <martin@martin.st>
This is required by RFC 3550 (section 6.5):
The list of items in each chunk MUST be terminated by one or more
null octets, the first of which is interpreted as an item type of
zero to denote the end of the list.
This was implicitly added as padding before, unless the host name
length matched up so no padding was added.
This makes wireshark parse the packets properly if other RTCP items
are appended to the same packet.
Signed-off-by: Martin Storsjö <martin@martin.st>
The read value is not used when its outside the array.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Add some additional checks for EOF and print error messages on an incomplete
header or packet.
FATE reference updated for id-cin-video due to the demuxer no longer
returning a partial video packet at EOF.
* commit '1fb8f6a44f06e48386450fe0363aefc02583d24a':
x86: lavr: add SSE2 quantize() for dithering
doc/APIchanges: fill in missing dates and hashes.
rtpdec_vp8: Request a keyframe if RTP packets are lost
Conflicts:
doc/APIchanges
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '42805eda554a7fc44341282771531e7837ac72b7':
rtpdec: Store the dynamic payload handler in the rtpdec context
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '9c80ed836a511293f4cc3a858060969d32f2b1ce':
rtpdec_vp8: Avoid a warning about a possibly unused variable
rtpdec_vp8: Make sure the previous packet is returned
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '92e354b655613b88c3c202a7e19e7037daed37eb':
rtpdec_vp8: Set the timestamp when returning a deferred packet
hlsenc: Make the start_number option set the right variable
Conflicts:
libavformat/hlsenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This allows the caller to either include them (and get more packets
decoded, but possibly some nonperfect frames), or discard them (by
setting fflags=discardcorrupt).
Signed-off-by: Martin Storsjö <martin@martin.st>
Regression since: ea6da80
Fixes Ticket2123
I cannot reproduce any regressions by flipping the wrong condition
to how it should have been.
Thanks-to: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Sometimes the muxer modifies the packet, like for instance lavf/mp3enc
changing pkt->destruct in order to keep a copy. These changes must be
kept, even though the muxer behaviour is questionable. Regression since
0072116.
Fixes#2124.
This uses page duration instead of byte size to determine when to buffer
the page. Also, it tries to avoid continued pages by buffering the current
page if there are already packets in the page and adding the next packet
would require it to be continued on a new page. This can improve seeking
performance.
The default page duration is 1 second, which is much saner than filling
all page segments by default.
This sends NACK for missed packets and PLI (picture loss indication)
if a depacketizer indicates that it needs a new keyframe, according
to RFC 4585.
This is only enabled if the SDP indicated that feedback is supported
(via the AVPF or SAVPF profile names).
The feedback packets are throttled to a certain maximum interval
(currently 250 ms) to make sure the feedback packets don't eat up
too much bandwidth (which might be counterproductive). The RFC
specifies a more elaborate feedback packet scheduling.
The feedback packets are currently sent independently from normal
RTCP RR packets, which is not totally spec compliant, but works
fine in the environments I've tested it in. (RFC 5506 allows this,
but requires a SDP attribute for enabling it.)
Signed-off-by: Martin Storsjö <martin@martin.st>
The warning is a false positive, but I prefer actually initializing
it over masking it with av_uninit, since the code is not performance
critical.
Signed-off-by: Martin Storsjö <martin@martin.st>
This is a bug from c7d4de3d73 - if the previous frame wasn't
returned yet (due to missing the final packets), but we have
enough data of it to return the first partition, we write that into
pkt and set returned_old_frame. That commit forgot returning 0 for
the case where this current packet didn't have the end_packet flag
set.
Signed-off-by: Martin Storsjö <martin@martin.st>
* commit '8729698d50739524665090e083d1bfdf28235724':
rtsp: Recheck the reordering queue if getting a new packet
lavr: log channel conversion description for any-to-any functions
lavr: mix: reduce the mixing matrix when possible
lavr: cosmetics: reindent
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '074a00d192c0e749d677b008b337da42597e780f':
lavr: add a public function for setting a custom channel map
lavr: typedef internal structs in internal.h
doc: Extend commit message section
Conflicts:
doc/APIchanges
doc/developer.texi
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '9a00374cb4512a58a1fee366b850dfa87c76e1f3':
doc: Fix a few typos in the developer documentation
xwma: Remove unused variable
asfdec: Fix printf format string length modifier
Conflicts:
doc/developer.texi
Merged-by: Michael Niedermayer <michaelni@gmx.at>
If we timed out and consumed a packet from the reordering queue,
but didn't return a packet to the caller, recheck the queue status.
Otherwise, we could end up in an infinite loop, trying to consume
a queued packet that has already been consumed.
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
If the matrix results in an output channel not getting a contribution
from any input channel and the corresponding input channel does not
contribute to any outputs, we can skip the channel during mixing and
silence it after mixing.
If the matrix results in an input channel not contributing to any output
channels and it is not in the output mix, or if the input channel only
contributes fully to the same output channel, we can skip the channel
during mixing.
If the matrix results in an output channel only getting full
contribution from the corresponding input channel and that input channel
does not contribute to any other output channels, we can skip the
channel during mixing.
It's obviously undesireable to blindly allocate memory based on
a damaged 'size' value, for example.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
If a bug exists on the tracker, its ID should always be included
in fix messages.
Also, any relevant bug fixes should be CC'd to libav-stable, so
we can actually track what needs to be backported, instead of
just randomly combing the git history and old CVEs.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
We obviously prefer git-send-email(1), and the disjointed nature
of the two statements was misleading.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* commit '89b51b570daa80e6e3790fcd449fe61fc5574e07':
oggdec: free the ogg streams on read_header failure
Conflicts:
libavformat/oggdec.c
Original commit this was based on: (this merge just moves the function up)
commit 07a866282f
Author: Michael Niedermayer <michaelni@gmx.at>
Date: Tue Nov 20 15:12:37 2012 +0100
oggdec: fix memleak on header parsing failure
Fixes Ticket1931
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge only for metadata, no commits merged
* qatar/master:
Drop Snow codec
Prepare for 10_alpha1 Release
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '5b4dfbffc258f90a7d2540d21209ac23afcf7cd0':
x86: ABS1: port to cpuflags
v210x: cosmetics, reformat
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.