Martin Storsjö [Sun, 23 Jan 2011 21:42:18 +0000 (23:42 +0200)]
applehttp: Handle AES-128 encrypted streams
This should hopefully fix roundup issue 2586.
This commit only implements it in the demuxer, not in the
protocol handler. If desired, some of the code could be
refactored to be shared by both implementations.
Martin Storsjö [Sat, 22 Jan 2011 23:31:41 +0000 (01:31 +0200)]
Add a protocol handler for AES CBC decryption with PKCS7 padding
This can later be extended to support other AES bit sizes,
encryption, other crypto algorithms, reading the key from a URL, etc.
In order to use it, the key and initialization vector has to be
passed via AVOptions. Since such options can't be passed to
protocols from the command line, the protocol is currently
only for libavformat internal use.
Martin Storsjö [Thu, 21 Apr 2011 21:45:06 +0000 (00:45 +0300)]
doc: Mention that DragonFly BSD requires __BSD_VISIBLE set
Setting this should fix the FATE build failure on DragonFly BSD,
since inet_aton only is visible if __BSD_VISIBLE is set.
Alternatively, a line defining __BSD_VISIBLE=1 could be
added at the top of os_support.c. For FreeBSD, similar lines
are required in libavdevice/bktr.c and libavdevice/oss_audio.c, too.
AVERROR_NUMEXPECTED is used only in the image muxer and demuxer, and
has a too much specific meaning, which is better explained through a
log message. Thus it can be replaced by AVERROR(EINVAL).
This breaks API.
Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it> Signed-off-by: Anton Khirnov <anton@khirnov.net>
Martin Storsjö [Wed, 20 Apr 2011 18:22:08 +0000 (21:22 +0300)]
Makefile: Include dependencies for test tools, too
This makes seek_test to be rebuilt when its dependencies
has changed. The changes to the dependencies didn't usually matter
in practice, but the introduction of side data in AVPacket required
a recompilation.
In avcodec_open(), set return code to an error value only when an error occurs
instead of unconditionally at the start of the function.
This fixes a bug where a successful call to ff_thread_init() masks errors that
occur after that point in the function. It also makes future bugs like this
less likely since the error code is now set near to the point in the code
where the error is found.
The problem with url_exist() is that it tries to open a resource in
RDONLY mode. If the file is a FIFO and there is already a reading
client, the open() call will hang.
By using avio_check() with access mode of 0, the second reading
process will check if the file exists without attempting to open it,
thus avoiding the lock.
avio: remove AVIO_* access symbols in favor of new AVIO_FLAG_* symbols
Make AVIO_FLAG_ access constants work as flags, and in particular fix
the behavior of functions (such as avio_check()) which expect them to
be flags rather than modes.
Ronald S. Bultje [Sat, 16 Apr 2011 19:29:05 +0000 (19:29 +0000)]
vc1: fix fate-vc1 after previous commit.
PROFILE_ADVANCED doesn't set res_fasttx, so make that a special case
in the condition that decides which IDCT to use (and whether to read
coefficients transposed or not).
Ronald S. Bultje [Sat, 16 Apr 2011 19:07:14 +0000 (15:07 -0400)]
wmv3dec: fix playback of complex WMV3 files using simple_idct.
IDCT coefficients are read transposed, but simple_idct does not expect
this. Therefore, only do tranposed coefficient reading if we're not
using simple_idct.
Diego Biurrun [Fri, 15 Apr 2011 11:28:04 +0000 (13:28 +0200)]
xwma: Fix wrong printf format expression.
Also add inttypes.h #include for PRId64 macros.
This fixes the following warnings:
libavformat/xwma.c:147: warning: too many arguments for format
libavformat/xwma.c:151: warning: too many arguments for format
Keep only the plain C code in the main rgb2rgb.c and move the x86
specific optimizations to x86/rgb2rgb.c
Change the initialization pattern a little so some of it can be
factorized to behave more like dsputils.
Max Horn [Tue, 12 Apr 2011 15:44:20 +0000 (17:44 +0200)]
handle malloc failures in ff_get_wav_header
ff_get_wav_header is reading data from a WAVE file and then uses it
(without validation) to malloc a buffer. It then proceeded to read
data into the buffer, without verifying that the allocation succeeded.
To address this, change ff_get_wav_header to return an error if
allocation failed, and adapted all calling code to handle that error.
Rudolf Polzer [Thu, 14 Apr 2011 09:12:57 +0000 (11:12 +0200)]
mpegts: force the default timebase
The mpegts muxer does not set the stream time base using
av_set_pts_info, but expects it to have the default value of 1/90000.
If the calling code changes stream pts before writing the header,
other muxers override the time base at that point (like mpegenc.c).