Martin Storsjö [Mon, 20 Dec 2010 20:46:40 +0000 (20:46 +0000)]
sdp: Add a framesize attribute to H.263 SDP descriptions
While not mentioned in RFC 4629, this is required for H.263 in
3GPP TS 26.234. It is in practice required for playback with
Android stagefright and on Samsung bada phones.
Originally committed as revision 26062 to svn://svn.ffmpeg.org/ffmpeg/trunk
The vflip filter does not need to keep ownership of a picture reference.
Avoid creating and releasing useless extra picture references in the
start_frame and end_frame callbacks.
Originally committed as revision 22596 to svn://svn.ffmpeg.org/ffmpeg/trunk
The new reference creation is required when the linesizes are used by the
previous filters in the filterchain, for example as in "pad=W:H:X:Y,vflip".
Originally committed as revision 26059 to svn://svn.ffmpeg.org/ffmpeg/trunk
Ronald S. Bultje [Sat, 18 Dec 2010 03:03:18 +0000 (03:03 +0000)]
AMR-WB decoder, written as part of Google Summer of Code 2010 by Marcelo
Galvão Póvoa <marspeoplester gmail com>, mentored by Robert Swain <robert
dot swain gmail com>.
Originally committed as revision 26051 to svn://svn.ffmpeg.org/ffmpeg/trunk
Justin Ruggles [Fri, 17 Dec 2010 23:42:56 +0000 (23:42 +0000)]
Add some simple fallbacks for normal bit allocation failure.
This allows encoding with lower bitrates by decreasing exponent bits first,
then decreasing bandwidth if the user did not specify a specific cutoff
frequency.
Originally committed as revision 26050 to svn://svn.ffmpeg.org/ffmpeg/trunk
Zhentan Feng [Fri, 17 Dec 2010 21:17:40 +0000 (21:17 +0000)]
Increase buffer size because the header itself can be larger than 8192
(largest size according to spec: 64k). Fixes playback of
mmsh://a1635.v24937.c2493.g.vm.akamaistream.net/7/1635/2493/v0001/premrad.download.akamai.com/2493/premiere_rock_report/Country_Report.wma
Patch by Zhentan Feng <spyfeng gmail com>.
Originally committed as revision 26047 to svn://svn.ffmpeg.org/ffmpeg/trunk
Justin Ruggles [Thu, 16 Dec 2010 22:47:07 +0000 (22:47 +0000)]
Copy bap from previous block when exponent strategy is EXP_REUSE.
We can do this because exponents are the only bit allocation parameters which
change from block-to-block currently.
Approx. 57% faster in function bit_alloc().
Approx. 25% faster overall encoding.
Originally committed as revision 26040 to svn://svn.ffmpeg.org/ffmpeg/trunk
Justin Ruggles [Thu, 16 Dec 2010 22:47:04 +0000 (22:47 +0000)]
Count grouped mantissas for each block all at once at the end of bit
allocation for each block.
24% faster in function bit_alloc(). Approx. 10% faster overall encoding.
Originally committed as revision 26039 to svn://svn.ffmpeg.org/ffmpeg/trunk
Justin Ruggles [Thu, 16 Dec 2010 21:09:16 +0000 (21:09 +0000)]
Speed up group minimum and group output calculations for EXP_D25 and EXP_D45
in encode_exponents_blk_ch() by removing the inner loops. This is about 30-40%
faster for the modified sections.
Originally committed as revision 26036 to svn://svn.ffmpeg.org/ffmpeg/trunk
Justin Ruggles [Thu, 16 Dec 2010 21:09:02 +0000 (21:09 +0000)]
Redesign encode_exponents_blk_ch() so that duplicate exponent sets are no
longer required. This gets rid of the temp buffer as well as encoded_exp in
AC3EncodeContext. It also allows for skipping the exponent grouping for
EXP_D15. 56% faster in encode_exponents_blk_ch().
Originally committed as revision 26034 to svn://svn.ffmpeg.org/ffmpeg/trunk
Martin Storsjö [Thu, 16 Dec 2010 08:41:17 +0000 (08:41 +0000)]
configure: Avoid warnings if av_always_inline is disabled
This macro is disabled if --enable-small or --disable-optimizations are set.
Currently, this leads to warnings about functions being defined but not used,
for functions in header files.
By defining av_always_inline as inline or as av_unused, we avoid these
warnings.
This doesn't make a normal build with --enable-small any larger,
since the compiler probably chooses not to inline these functions even
if they're marked as inline.
Originally committed as revision 26032 to svn://svn.ffmpeg.org/ffmpeg/trunk
Justin Ruggles [Wed, 15 Dec 2010 21:12:28 +0000 (21:12 +0000)]
Allocate bap and bap1 buffers using av_malloc().
This reduces the memory footprint when using less than 6 channels.
Modify bit allocation to swap the 2 buffers instead of using memcpy() and use
per-block pointers for bap. This is slightly faster (0.3%) in function
cbr_bit_allocation().
Originally committed as revision 26023 to svn://svn.ffmpeg.org/ffmpeg/trunk
Justin Ruggles [Wed, 15 Dec 2010 17:28:52 +0000 (17:28 +0000)]
Remove last_samples[] and copy directly from planar_samples[].
Avoids memcpy that was used to store last samples for next frame.
Approx. 3% faster in function deinterleave_input_samples() and reduces memory
usage by 3kB.
Originally committed as revision 26021 to svn://svn.ffmpeg.org/ffmpeg/trunk
Justin Ruggles [Tue, 14 Dec 2010 14:53:43 +0000 (14:53 +0000)]
Split out setting of bit allocation parameters to a separate function.
Th new function only needs to be called at initialization because bit
allocation parameters currently do not change during encoding.
Originally committed as revision 26003 to svn://svn.ffmpeg.org/ffmpeg/trunk
Justin Ruggles [Tue, 14 Dec 2010 14:53:17 +0000 (14:53 +0000)]
Reverse the exponent & exponent strategy array arrangement to simplify the
per-channel exponent strategy decision. This will also make it easier to
plug-in other exponent strategy algorithms.
Originally committed as revision 25995 to svn://svn.ffmpeg.org/ffmpeg/trunk
Justin Ruggles [Tue, 14 Dec 2010 14:52:46 +0000 (14:52 +0000)]
Deinterleave whole frame at once instead of per-block.
This reduces the amount of memcpy() by using pointers to overlap samples for
successive blocks rather than copying.
Originally committed as revision 25986 to svn://svn.ffmpeg.org/ffmpeg/trunk
Justin Ruggles [Tue, 14 Dec 2010 14:52:21 +0000 (14:52 +0000)]
Remove some duplicate local copies of avctx fields.
This is an av_cold function, and we don't need to duplicate variables just to
save a few characters.
Originally committed as revision 25979 to svn://svn.ffmpeg.org/ffmpeg/trunk