Justin Ruggles [Sun, 27 Nov 2011 18:07:19 +0000 (13:07 -0500)]
mpegaudio: do not use init_static_data() for initializing tables.
It is called once for each mpegaudio codec that is registered, which adds
significant overhead.
Mans Rullgard [Sun, 27 Nov 2011 10:29:33 +0000 (10:29 +0000)]
musepack: fix signed shift overflow in mpc_read_packet()
Using an unsigned variable avoids problems with overflows.
There is further no need for a 64-bit intermediate here.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Alex Converse [Sun, 27 Nov 2011 03:41:54 +0000 (19:41 -0800)]
mov: Make format string match variable type.
Alex Converse [Sun, 27 Nov 2011 03:40:34 +0000 (19:40 -0800)]
wmavoice: Make format string match variable type.
Kostya Shishkov [Sat, 26 Nov 2011 12:23:39 +0000 (13:23 +0100)]
vc1: select interlaced scan table by FCM element
Interlaced videos can contain progressive frames too and now wrong scantable
is selected for them.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Victor Vasiliev [Thu, 24 Nov 2011 20:02:43 +0000 (00:02 +0400)]
Generalize RIFF INFO tag support; support reading INFO tag in wav
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Cheng Sun [Sun, 27 Nov 2011 00:36:50 +0000 (16:36 -0800)]
pthread: track thread existence in a separate variable.
This fixes a compile error on mingw32 when using p->thread
directly (as if it were a pointer) to track thread existence,
because the type is opaque and may be a non-pointer.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Mans Rullgard [Sat, 26 Nov 2011 21:53:00 +0000 (21:53 +0000)]
swscale: fix signed overflow in yuv2mono_X_c_template
As old bits are shifted out of the accumulator, they cause signed
overflows when they reach the end. Making the variable unsigned fixes
this.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Sat, 26 Nov 2011 20:59:17 +0000 (20:59 +0000)]
snow: fix integer overflows
The way these values are used, they should have an unsigned type.
A similar change was made for mpegvideo in cb66847.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Sat, 26 Nov 2011 20:44:37 +0000 (20:44 +0000)]
svq1enc: remove stale altivec-related hack
altivec.h is no longer (indirectly) included, so this hack is not
needed.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Sat, 26 Nov 2011 20:42:07 +0000 (20:42 +0000)]
snow: fix signed overflow in byte to 32-bit replication
Signed-off-by: Mans Rullgard <mans@mansr.com>
Justin Ruggles [Sat, 26 Nov 2011 22:00:00 +0000 (17:00 -0500)]
adx: rename ff_adx_decode_header() to avpriv_adx_decode_header()
It is used by the ADX decoder, and therefore needs to be exported in order to
work with shared libs.
Justin Ruggles [Mon, 21 Nov 2011 07:34:18 +0000 (02:34 -0500)]
avformat: add CRI ADX format demuxer
Justin Ruggles [Mon, 21 Nov 2011 06:49:37 +0000 (01:49 -0500)]
adx: add an ADX parser.
This simplifies the decoder so it doesn't have to process an in-packet header
or handle arbitrary-sized packets. It also fixes decoding of files with large
headers.
Justin Ruggles [Mon, 21 Nov 2011 01:16:05 +0000 (20:16 -0500)]
adx: move header decoding to ADX common code
Justin Ruggles [Sun, 20 Nov 2011 22:53:43 +0000 (17:53 -0500)]
adx: calculate the number of blocks in a packet
Justin Ruggles [Sun, 20 Nov 2011 22:50:46 +0000 (17:50 -0500)]
adx: define and use 2 new macro constants BLOCK_SIZE and BLOCK_SAMPLES
Justin Ruggles [Sun, 20 Nov 2011 22:07:59 +0000 (17:07 -0500)]
adx: check for unsupported ADX formats
Justin Ruggles [Sun, 20 Nov 2011 21:49:13 +0000 (16:49 -0500)]
adx: simplify encoding by using put_sbits()
Justin Ruggles [Sun, 20 Nov 2011 19:21:32 +0000 (14:21 -0500)]
adx: calculate correct LPC coeffs
Instead of using fixed coefficients, the correct way is to calculate the
coefficients using the highpass cutoff frequency from the ADX stream header
and the sample rate.
Justin Ruggles [Sun, 20 Nov 2011 19:03:21 +0000 (14:03 -0500)]
adx: use 12-bit coefficients instead of 14-bit to avoid integer overflow
Justin Ruggles [Sun, 20 Nov 2011 18:06:32 +0000 (13:06 -0500)]
adx: simplify adx_decode() by using get_sbits() to read residual samples
Justin Ruggles [Sun, 20 Nov 2011 17:57:21 +0000 (12:57 -0500)]
adx: fix the data offset parsing in adx_decode_header()
first 2 bytes are 0x80, 0x00. offset is only 16-bit.
this is according to format descriptions on multimedia wiki and wikipedia.
Justin Ruggles [Sun, 20 Nov 2011 17:46:41 +0000 (12:46 -0500)]
adx: remove unneeded post-decode channel interleaving
instead interleave channels while decoding
Justin Ruggles [Sat, 19 Nov 2011 22:51:36 +0000 (17:51 -0500)]
adx: validate header values
Justin Ruggles [Sat, 19 Nov 2011 22:46:15 +0000 (17:46 -0500)]
adx: cosmetics: general pretty-printing and comment clean-up
Justin Ruggles [Sat, 19 Nov 2011 22:07:46 +0000 (17:07 -0500)]
adx: remove useless comments
Justin Ruggles [Sat, 19 Nov 2011 22:06:45 +0000 (17:06 -0500)]
adx: change short to int16_t
Justin Ruggles [Sat, 19 Nov 2011 22:05:44 +0000 (17:05 -0500)]
adx: rename struct PREV to ADXChannelState
Mans Rullgard [Sat, 26 Nov 2011 20:11:12 +0000 (20:11 +0000)]
dnxhdenc: fix signed overflows
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Sat, 26 Nov 2011 18:48:16 +0000 (18:48 +0000)]
dv: simplify bitstream splicing in dv_decode_ac()
This is simpler and fixes some overflow checker warnings.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Sat, 26 Nov 2011 16:51:44 +0000 (16:51 +0000)]
s3tc: fix shift overflow by using unsigned constant
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Sat, 26 Nov 2011 16:50:51 +0000 (16:50 +0000)]
svq1enc: fix signed multiplication overflow
This multiplication can overflow the signed range but not the
unsigned. After right-shifting it will thus fit in the signed
range again.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Sat, 26 Nov 2011 15:16:29 +0000 (15:16 +0000)]
svq1dec: use sign_extend()
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Sat, 26 Nov 2011 14:50:23 +0000 (14:50 +0000)]
rv34: fix signed multiplication overflow
Multiply by unsigned 0x01010101 to replicate bytes into 32-bit
word.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Cheng Sun [Sat, 26 Nov 2011 18:45:36 +0000 (10:45 -0800)]
[PATCH] Fix crash when initializing multi-threaded decoding for corrupted file.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Mans Rullgard [Sat, 26 Nov 2011 00:22:28 +0000 (00:22 +0000)]
sol: use AV_RL32 instead of raw pointer cast
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Fri, 25 Nov 2011 20:43:05 +0000 (20:43 +0000)]
cook: use a table for xor key rotation
This is simpler and avoids an invalid shift by 32 in the
aligned case.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Fri, 25 Nov 2011 18:46:35 +0000 (18:46 +0000)]
apedec: fix signed integer overflows
This bit manipulation is equivalent but avoids undefined
shifts and overflows.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Fri, 25 Nov 2011 18:16:44 +0000 (18:16 +0000)]
qtrle: simplify 32-bit decode using intreadwrite macros
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Fri, 25 Nov 2011 17:51:10 +0000 (17:51 +0000)]
gif: fix invalid signed shifts
Signed-off-by: Mans Rullgard <mans@mansr.com>
Reimar Döffinger [Sat, 5 Nov 2011 21:07:22 +0000 (22:07 +0100)]
rtjpeg: simplify get_block() by using get_bits_left.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Reimar Döffinger [Sat, 5 Nov 2011 21:26:42 +0000 (22:26 +0100)]
rtjpeg: check get_block return value for error.
This avoids crashes due to reading out-of-bounds.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Reimar Döffinger [Sat, 5 Nov 2011 22:13:07 +0000 (23:13 +0100)]
nuv: check per-frame header for validity.
Since it contains dimensions parsing an invalid one has rather
annoying effects.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Reimar Döffinger [Sat, 5 Nov 2011 20:11:37 +0000 (21:11 +0100)]
nuv: use FFALIGN.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Carl Eugen Hoyos [Wed, 9 Nov 2011 13:04:22 +0000 (14:04 +0100)]
flicvideo: check extradata_size before accessing extradata.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Michael Niedermayer [Wed, 9 Nov 2011 18:40:59 +0000 (19:40 +0100)]
fraps: check for overread.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
K.Y.H [Thu, 10 Nov 2011 23:30:39 +0000 (00:30 +0100)]
cook: fix apparent typo in extradata parsing
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Anton Khirnov [Fri, 18 Nov 2011 10:16:23 +0000 (11:16 +0100)]
lavc: update doxy to use nondeprecated API.
Martin Storsjö [Thu, 24 Nov 2011 22:45:16 +0000 (00:45 +0200)]
swscale: Readd #define _SVID_SOURCE
This was removed erroneously in
046f081b46c8479820409cf8f530b988221bd15b. This define still is
necessary for getting MAP_ANONYMOUS defined on linux/glibc,
despite the define reshuffling done in that commit.
Without MAP_ANONYMOUS defined, the mprotect calls for setting the
generated mmx2 scaler code pages executable are left out, causing
crashes if that codepath is chosen.
This patch fixes scaling from 192x144 to 320x240 with
-sws_flags fast_bilinear, which crashes on linux at the
moment.
Signed-off-by: Martin Storsjö <martin@martin.st>
Mans Rullgard [Fri, 25 Nov 2011 14:58:50 +0000 (14:58 +0000)]
Fix av_get_channel_layout_string() for positions >31
A value shifted left by >31 needs to have a 64-bit type.
As there are no defined channels in this range, the fix
is purely theoretical at this point, although it does
avoid some invalid shifts triggering the overflow
checker.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Rafaël Carré [Fri, 25 Nov 2011 00:43:46 +0000 (19:43 -0500)]
configure: Store vda lib flags in extralibs instead of ldflags
This way the needed linking flags end up in libavcodec.pc.
Signed-off-by: Martin Storsjö <martin@martin.st>
Mans Rullgard [Fri, 25 Nov 2011 12:51:57 +0000 (12:51 +0000)]
Make channel layout masks unsigned
It makes more sense for a bit mask to use an unsigned type.
The change should be source and binary compatible on all
supported systems, hence micro version bump.
Fixes a few invalid shifts.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Sun, 23 Oct 2011 16:39:49 +0000 (17:39 +0100)]
dca: ARMv6 optimised decode_blockcode()
This is a hand-tuned version of the code with impossible parts of
the FASTDIV function ommitted.
2-5% faster overall on Cortex-A8.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Luca Barbato [Thu, 24 Nov 2011 22:03:25 +0000 (23:03 +0100)]
nullenc: drop AVFMT_RAWPICTURE from the flags
This makes the two pass encoding with x264 working with -f null - as
first pass.
Janne Grunau [Thu, 24 Nov 2011 00:50:05 +0000 (01:50 +0100)]
frame-mt: return consumed packet size in ff_thread_decode_frame
This is required to fulfill avcodec_decode_video2() promise to return
the number of consumed bytes on success.
Janne Grunau [Wed, 23 Nov 2011 00:28:14 +0000 (01:28 +0100)]
aacdec: add more fate tests covering SBR and PS
Add all seven test bitstreams of Coding Technologies "aacPlus Decoder
Check Package". The streams cover different ways to signal SBR and PS
in different formats.
Mans Rullgard [Thu, 24 Nov 2011 23:15:59 +0000 (23:15 +0000)]
MK(BE)TAG: avoid undefined shifts
Casting the left-most byte to unsigned avoids an undefined
result of the shift by 24 if bit 7 is set. This affects
the rm demuxer.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Luca Barbato [Wed, 2 Nov 2011 17:10:40 +0000 (10:10 -0700)]
snow: split snow in snowdec and snowenc
The common non inlined code goes in snow.c, the common inlined code in
snow.h, tables move in snowdata.h (included only by snow.c)
Anton Khirnov [Thu, 24 Nov 2011 19:26:23 +0000 (20:26 +0100)]
tiffenc: deprecate using compression_level
Ronald S. Bultje [Thu, 24 Nov 2011 20:21:03 +0000 (12:21 -0800)]
swscale: fix failing fate tests.
isGray() is left as a FIXME for later.
Ronald S. Bultje [Thu, 24 Nov 2011 18:40:05 +0000 (10:40 -0800)]
swscale: add support for planar RGB input.
Ronald S. Bultje [Tue, 22 Nov 2011 04:00:47 +0000 (20:00 -0800)]
h264: add support for decoding planar RGB images.
Ronald S. Bultje [Mon, 7 Nov 2011 00:52:27 +0000 (16:52 -0800)]
Clean up swscale pixfmt macros using av_pix_fmt_descriptors[].
Ronald S. Bultje [Sun, 6 Nov 2011 23:30:10 +0000 (15:30 -0800)]
pixfmt: add planar RGB formats.
Justin Ruggles [Sat, 12 Nov 2011 20:43:43 +0000 (15:43 -0500)]
libavutil: add utility functions to simplify allocation of audio buffers.
Based on code by Stefano Sabatini.
Justin Ruggles [Sat, 12 Nov 2011 20:58:40 +0000 (15:58 -0500)]
libavutil: add planar sample formats and av_sample_fmt_is_planar()
Janne Grunau [Wed, 23 Nov 2011 23:18:33 +0000 (00:18 +0100)]
avconv: fix segfault at EOF with delayed pictures
At EOF it makes no sense to modify avpkt.{data,size} in output_packet
since no data is consumed. Frame threading with more than 1 threads
hits the segfault.
Justin Ruggles [Wed, 23 Nov 2011 20:32:50 +0000 (15:32 -0500)]
pcmdec: remove unneeded resetting of samples pointer
Anton Khirnov [Tue, 22 Nov 2011 06:17:38 +0000 (07:17 +0100)]
avconv: remove a now unused parameter from output_packet().
Anton Khirnov [Tue, 22 Nov 2011 06:16:23 +0000 (07:16 +0100)]
avconv: formatting fixes in output_packet()
Anton Khirnov [Tue, 22 Nov 2011 06:13:29 +0000 (07:13 +0100)]
avconv: declare some variables in blocks where they are used
Anton Khirnov [Mon, 21 Nov 2011 20:30:23 +0000 (21:30 +0100)]
avconv: use the same behavior when decoding audio/video/subs
I.e. if the packet was only partially consumed, pass the rest of it into
the decoder again.
Also simplify the code so it's the same for video/audio/subs.
Anton Khirnov [Mon, 21 Nov 2011 20:22:44 +0000 (21:22 +0100)]
bethsoftvideo: return proper consumed size for palette packets.
Also check for sufficient packet size.
Justin Ruggles [Mon, 21 Nov 2011 20:14:42 +0000 (21:14 +0100)]
cdg: skip packets that don't contain a cdg command.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Anton Khirnov [Sun, 20 Nov 2011 11:45:36 +0000 (12:45 +0100)]
crcenc: add flags
AVFMT_NOTIMESTAMPS for crc, as it ignores the timestamps.
AVFMT_VARIABLE_FPS for framecrc, as it prints dts.
Many FATE changes, because avconv is no longer duplicating frames in
those tests.
Also added -vsync 0 for some tests to prevent avconv from dropping
frames until it can be fixed more properly.
Anton Khirnov [Sun, 20 Nov 2011 11:46:24 +0000 (12:46 +0100)]
avconv: use vsync 0 for AVFMT_NOTIMESTAMPS formats.
Prevent avconv from duplicating or dropping frames for formats where it
makes even less sense than usual, e.g. image2.
Anton Khirnov [Wed, 23 Nov 2011 18:45:39 +0000 (19:45 +0100)]
tiffenc: add a private option for selecting compression algorithm
Anton Khirnov [Sun, 20 Nov 2011 11:45:36 +0000 (12:45 +0100)]
md5enc: add flags
AVFMT_NOTIMESTAMPS for md5, as it ignores the timestamps.
AVFMT_VARIABLE_FPS for framemd5, as it prints dts.
-vsync 0 for the vp8 test is needed because with vsync 2 the timestamp
guessing code gets confused by an altref frame that is never displayed
and drops a frame later.
Mans Rullgard [Tue, 22 Nov 2011 16:53:18 +0000 (16:53 +0000)]
ARM: remove needless .text/.align directives
The 'function' macro already includes the appropriate
directives.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Alex Converse [Tue, 22 Nov 2011 20:12:10 +0000 (12:12 -0800)]
aacdec: Fix PS in ADTS.
Fixes File1.aac and Bug 80.
Alex Converse [Tue, 22 Nov 2011 18:38:37 +0000 (10:38 -0800)]
avconv: Consistently use PIX_FMT_NONE.
Use PIX_FMT_NONE instead of -1 when dealing with PixelFormat variables.
Justin Ruggles [Sun, 6 Nov 2011 22:42:50 +0000 (17:42 -0500)]
dsputil: use cpuflags in x86 emu_edge_core
avoids passing around the extra argument among all the macros it uses
Justin Ruggles [Mon, 7 Nov 2011 01:43:13 +0000 (20:43 -0500)]
dsputil: use movups instead of movdqu in ff_emu_edge_core_sse()
This allows emulated_edge_mc_sse() and gmc_sse() to be used under
AV_CPU_FLAG_SSE.
Justin Ruggles [Tue, 22 Nov 2011 18:37:52 +0000 (13:37 -0500)]
wma: initialize prev_block_len_bits, next_block_len_bits, and block_len_bits.
The initial values are not checked against the number of block sizes.
Initializing them to frame_len_bits will result in a block size index of 0
in these cases instead of something that might be out-of-range.
Fixes Bug 81.
Alex Converse [Tue, 22 Nov 2011 02:46:02 +0000 (18:46 -0800)]
mov: Remove some redundant and obsolete comments.
Mans Rullgard [Sun, 17 Jul 2011 10:19:35 +0000 (11:19 +0100)]
Add libavutil/mathematics.h #includes for INFINITY
This fixes build errors in some environments.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Luca Barbato [Tue, 22 Nov 2011 16:11:28 +0000 (17:11 +0100)]
doxy: structure libavformat groups
Luca Barbato [Sun, 20 Nov 2011 20:29:52 +0000 (21:29 +0100)]
doxy: introduce an empty structure in libavcodec
Luca Barbato [Sun, 20 Nov 2011 19:38:24 +0000 (20:38 +0100)]
doxy: provide a start page and document libavutil
Introduce a basic layout, the subpages are currently left empty.
Split libavutil in multiple groups as example of the structure
Luca Barbato [Sat, 19 Nov 2011 15:57:53 +0000 (16:57 +0100)]
doxy: cleanup pixfmt.h
Remove the dubious warning about the header being private and
add some formatting
Mans Rullgard [Mon, 21 Nov 2011 23:02:32 +0000 (23:02 +0000)]
regtest: split video encode/decode tests into individual targets
Signed-off-by: Mans Rullgard <mans@mansr.com>
Mans Rullgard [Tue, 15 Nov 2011 01:15:52 +0000 (01:15 +0000)]
ARM: add explicit .arch and .fpu directives to asm.S
This prevents build errors when compiler and assembler default
targets differ. Ideally each file would declare the highest
level it requires. This is however not easily possible as it
complicates assembling pre-armv6t2 code in Thumb-2 mode.
HAVE_NEON is used as indicator for ARMv7-A since no other
symbol exists for this and NEON is only available in this
variant.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Janne Grunau [Thu, 10 Nov 2011 16:30:33 +0000 (17:30 +0100)]
pthread: do not touch has_b_frames
Adding the thread count in frame level multithreading to has_b_frames
as an additional delay causes more problems than it solves.
For example inconsistent behaviour during timestamp calculation in
libavformat.
Thread count and frame level multithreading are both set by the user.
If the additional delay caused by frame level multithreading needs
to be considered in the calling code it has all information to take
it into account.
Should it become necessary to calculate a maximum delay inside
libavcodec it should be exported as its own field and not reusing
an existing field.
Based on a patch by Michael Niedermayer.
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
Anton Khirnov [Mon, 21 Nov 2011 14:37:40 +0000 (15:37 +0100)]
avconv: cleanup the transcoding loop in output_packet().
Anton Khirnov [Mon, 21 Nov 2011 13:39:22 +0000 (14:39 +0100)]
avconv: split subtitle transcoding out of output_packet().
Anton Khirnov [Mon, 21 Nov 2011 13:39:22 +0000 (14:39 +0100)]
avconv: split video transcoding out of output_packet().
Anton Khirnov [Mon, 21 Nov 2011 13:39:22 +0000 (14:39 +0100)]
avconv: split audio transcoding out of output_packet().
Anton Khirnov [Mon, 21 Nov 2011 13:06:25 +0000 (14:06 +0100)]
avconv: reindent.
Anton Khirnov [Mon, 21 Nov 2011 13:05:38 +0000 (14:05 +0100)]
avconv: move streamcopy-only code out of decoding loop.