Justin Ruggles [Mon, 23 May 2011 15:45:51 +0000 (17:45 +0200)]
ac3enc: add channel coupling support
Channel coupling is an optional AC-3 feature that increases quality by
combining high frequency information from multiple channels into a
single channel. The per-channel high frequency information is sent with
less accuracy in both the frequency and time domains. This allows more
bits to be used for lower frequencies while preserving enough
information to reconstruct the high frequencies.
Diego Biurrun [Sun, 15 May 2011 12:32:15 +0000 (14:32 +0200)]
configure: Add -U__STRICT_ANSI__ to CPPFLAGS on Cygwin and DOS.
In -std=c99 mode GCC defines __STRICT_ANSI__ to hide non-ANSI interfaces.
This causes declarations for some POSIX functions to be omitted from system
headers, which causes compilation failures.
Martin Storsjö [Sun, 22 May 2011 11:40:33 +0000 (14:40 +0300)]
ffmpeg: Don't trigger url_interrupt_cb on the first signal
Currently, the url_interrupt_cb callback will abort all IO
after the first received signal. This makes the output files
from e.g. the mov muxer to be unreadable if the transcode is
aborted with ctrl+c.
After this patch, the first signal cleanly breaks out of
the transcoding loop, but won't forcibly abort all IO.
After the second signal is received, the url_interrupt_cb
callback will abort all IO.
Ronald S. Bultje [Fri, 20 May 2011 14:49:20 +0000 (10:49 -0400)]
LATM/AAC: Free previously initialized context on reinit.
Fixes memory leaks which are the result of overwriting already-initialized
MDCT contexts during context reinitialization, e.g. in valgrind
fate-aac-latm_000000001180bc60.
Mans Rullgard [Fri, 20 May 2011 11:57:12 +0000 (12:57 +0100)]
fate: disable threading for encoding
This explicitly disables threading for encoding as slices are otherwise
automatically activated. This should be dropped once option resetting
between files is fully implemented.
Martin Storsjö [Fri, 20 May 2011 08:33:57 +0000 (11:33 +0300)]
mpegtsenc: Add an AVClass pointer to the private data
Since a private class is set for this muxer, the callers will
assume that the private data starts with an AVClass pointer.
If no such member exists, the first few bytes of the struct
will be overwritten, and the class pointer may be broken at
any later time.
Ronald S. Bultje [Thu, 19 May 2011 20:47:59 +0000 (16:47 -0400)]
h264: correct border check.
When backing up the top-left border, check that the top-left
(rather than left) MB indeed does belong to our slice. If it
doesn't, backing up has no positive effect but may accidentally
interfere with other threads writing in the same space.
Fixes occasional one-off effects when enabling slice-MT.
Diego Biurrun [Sun, 15 May 2011 22:53:07 +0000 (00:53 +0200)]
Rename costablegen.c ---> cos_tablegen.c.
This is consistent with how all other table generation programs are named.
Moreover this ensures that the cos table generation program is correctly
deleted when cleaning the tree.
Mans Rullgard [Thu, 19 May 2011 17:34:40 +0000 (18:34 +0100)]
Simplify trig table rules
This collapses the make rules for the trig tables into a pattern
rule. Based on a patch by Diego, modified to avoid using fragile
make constructs and allow future addition of fixed-point sin tables.
Diego Biurrun [Mon, 16 May 2011 12:23:59 +0000 (14:23 +0200)]
configure: Adjust AVX assembler check.
Older nasm versions have trouble assembling certain AVX instructions, but the
current AVX check did not detect this. Update the check to use an instruction
that triggers the nasm problem.
Mans Rullgard [Mon, 16 May 2011 15:52:01 +0000 (16:52 +0100)]
Move some mpegaudio functions to new mpegaudiodsp subsystem
This separation allows these functions to be used in a cleaner
fashion from other codecs (e.g. qdm2) and simplifies creating
optimised versions of them.
Diego Biurrun [Sun, 15 May 2011 15:09:25 +0000 (17:09 +0200)]
Clean up #includes in cmdutils.h.
inttypes.h is not necessary, just stdint.h is enough.
Unconditionally #include avfilter.h in cmdutils.h. It is an installed
header with no non-standard external dependencies, so it is safe.
Mans Rullgard [Wed, 18 May 2011 16:23:47 +0000 (17:23 +0100)]
fate: remove redundant aref and vref references
The ref targets are included in the FATE_[AV]CODEC lists created
by configure so they do not need to be listed separately in the
makefile. Filter them out when setting dependencies to avoid make
warnings about circular deps.
Mans Rullgard [Wed, 18 May 2011 14:13:58 +0000 (15:13 +0100)]
fate: remove do_ffmpeg_nocheck function
This function is essentially an alias for run_ffmpeg and is only
used in one place. This patch removes the function and replaces
the call with the equivalent (simpler) run_ffmpeg call.
Mans Rullgard [Wed, 18 May 2011 12:05:39 +0000 (13:05 +0100)]
fate: run aref and vref as regular tests
These tests create reference files used for psnr calculation in
the other codec tests. Treating them as (mostly) regular tests
simplifies the makefile and makes them visible in the fate reports.
The latter makes errors in these runs easier to identify.
asf_read_seek() inside the asf demuxer already does the
right thing, it tries the index and if that fails it uses
binary search. If binary search is called from outside of asfdec.c
it will fail because the asf code cannot clean up after itself.
Therefore introduce AVFMT_NOBINSEARCH that prevents the seek
code to fallback to binary search and AVFMT_NOGENSEARCH that
prevents the seek code to fallback to generic search.
Mans Rullgard [Tue, 17 May 2011 12:07:08 +0000 (13:07 +0100)]
mpegaudio: add _fixed suffix to some names
This adds a _fixed suffix to the fixed-point versions of things
with both float and fixed-point variants. This makes it more
consistent with other dual-implementation things, e.g. fft.
Redesign the way -aspect option is handled. This is done by making
ffmpeg read the sample aspect ratio set in the corresponding input
stream by default, and overriding it using the value specified by
-aspect.
If the output display aspect ratio is specified with -aspect, it is
set at the end of the filterchain, thus overriding the value set by
filters in the filterchain.
This implementation is more robust, since does not modify the
filterchain description (which was creating potential syntax errors).
Move up the definition of audio_write_get_buf_size(), so that it is
defined before it is used. Simplify.
(cherry picked from commit 8776f3d22e401e30d17856e341f6cabbbefa92f7)