Commit Graph

13047 Commits

Author SHA1 Message Date
Carl Eugen Hoyos
a0f593d00d Values >4 for lowres corrupt output.
Originally committed as revision 26386 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-16 12:45:59 +00:00
Carl Eugen Hoyos
05503cee00 Since lowres == crop for bmp, remove it to avoid confusion.
Originally committed as revision 26384 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-16 12:42:43 +00:00
Ronald S. Bultje
1b3e43e4fd Fix overflow in pred16x16_plane x86 simd code. Fixes issue 2547.
Originally committed as revision 26381 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-15 22:00:44 +00:00
Jason Garrett-Glaser
b9af15402d Remove evil timers that snuck their way into r26375.
Originally committed as revision 26377 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-15 18:14:36 +00:00
Jason Garrett-Glaser
fb2734c8a6 Fix r26375 on non-x86.
Originally committed as revision 26376 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-15 18:13:40 +00:00
Jason Garrett-Glaser
f14bdd8e75 H.264: Partially inline CABAC residual decoding
Improves CABAC performance about ~1.2%.

Trick originates from x264 and has also been used in ffvp8.  It's useful because
coded block flags are usually zero, so it helps to have the early termination
inlined into the main function.

Originally committed as revision 26375 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-15 17:52:48 +00:00
Frank Barchard
925aa96915 Second hunk from secrity fix from google.
The hunk is not fully understood but it just makes a check tighter so its
safer for us to apply until it is fully understood.

Might fix issue 2550 (and Chrome issue 68115 and unknown CERT issues).
Our bugtracker issue though should stay open until this has been fully
investiagted

Patch by Frank Barchard, fbarchard at google

Originally committed as revision 26368 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-15 17:10:49 +00:00
Sascha Sommer
f734671925 do not read over the end of the packet
fixes issue 2543

Originally committed as revision 26367 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-15 16:39:52 +00:00
Frank Barchard
13184036a6 Check rangebits to avoid a possible crash.
Fixes issue 2548 (and Chrome issue 68115 and unknown CERT issues).

Patch by Frank Barchard, fbarchard at google

Originally committed as revision 26365 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-15 16:19:06 +00:00
Kostya Shishkov
03ec42aa1c Change some band size calculations in Bink decoder to use width in blocks
instead of real width, this fixes decoding of some Bink files with odd width.

Originally committed as revision 26364 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-15 13:29:14 +00:00
Reimar Döffinger
b0c8b8a69d Lagarith: fix decoding of one-coloured frames by reading the per-plane
color value instead of always taking 0 (resulting in green frames).
Fixes issue issue2531.

Originally committed as revision 26363 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-15 12:44:48 +00:00
Daniel Kang
eb40d7ffa7 Check symbol validity to avoid a crash, fixes issue 2523.
Patch by Daniel Kang, daniel.d.kang at gmail

Originally committed as revision 26360 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-15 10:18:38 +00:00
Justin Ruggles
0db5d2b09e cosmetics: spacing, line wrap, and remove unneeded braces
Originally committed as revision 26359 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-15 01:59:31 +00:00
Justin Ruggles
964f2cf2a0 Process all EXP_REUSE blocks at once in exponent_min().
43% faster in function encode_exponents().

Originally committed as revision 26358 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-15 01:59:21 +00:00
Justin Ruggles
7d87d56ff8 Take advantage of per-channel exponent and exponent strategy layout to
simplify and speed up encode_exponents().
8% faster in function.

Originally committed as revision 26357 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-15 01:59:15 +00:00
Justin Ruggles
5bff8590f3 Simplify compute_exp_strategy() by passing a pointer to all exponents and
exponent strategies for a single channel to compute_exp_strategy_ch().
This allows for removal of the temporary pointer arrays.

Originally committed as revision 26356 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-15 01:59:10 +00:00
Justin Ruggles
4b90c35d74 Use a local variable in the inner loop of group_exponents() to simplify the
code.

Originally committed as revision 26355 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-15 01:59:04 +00:00
Justin Ruggles
a281c6509f cosmetics: remove unneeded braces
Originally committed as revision 26354 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-15 01:58:59 +00:00
Justin Ruggles
5fc2e0075d cosmetics: rename block_num to blk for variable name consistency
Originally committed as revision 26353 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-15 01:58:55 +00:00
Justin Ruggles
0429e4a6ca Move exp_strategy from AC3Block to AC3EncodeContext in order to arrange by
channel first, then by block.

Originally committed as revision 26352 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-15 01:58:50 +00:00
Justin Ruggles
7cc4be58b4 Rearrange exponent buffer to group all blocks for a single channel together.
This will allow for faster and simpler processing of all blocks at once.

Originally committed as revision 26351 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-15 01:58:45 +00:00
Jason Garrett-Glaser
2a1f431d38 H.264/SVQ3: make chroma DC work the same way as luma DC
No speed improvement, but necessary for some future stuff.
Also opens up the possibility of asm chroma dc idct/dequant.

Originally committed as revision 26349 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-15 01:10:46 +00:00
Jason Garrett-Glaser
290fabc684 Port SVQ3 to use the new mb_luma_dc method of storing luma DC coefficients.
Doesn't help speed as there isn't an asm implementation yet, but consistency
is a good thing.

Originally committed as revision 26348 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-15 00:41:18 +00:00
Sascha Sommer
3cdf69eefa also support decoding of AVPackets with multiple wma packets
fixes issue 2539

Originally committed as revision 26346 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-14 23:58:55 +00:00
Jason Garrett-Glaser
65344775b8 H.264: Remove useless arg to chroma_dc_dequant_idct_c
Originally committed as revision 26345 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-14 23:46:55 +00:00
Ronald S. Bultje
ec3233a855 Fix ff_pw_3 alignment.
Originally committed as revision 26344 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-14 23:26:34 +00:00
Jason Garrett-Glaser
2e18660115 Fix SVQ3
Regression in r26336-7.

Originally committed as revision 26341 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-14 22:23:42 +00:00
Jason Garrett-Glaser
bd11c7a1a8 Remove outdated comment in h264dsp.h
Since we no longer have non-transposed scantables, the problem it warns about
no longer exists.

Originally committed as revision 26339 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-14 21:48:33 +00:00
Jason Garrett-Glaser
0d1d01cf70 Reindent after r26337.
Originally committed as revision 26338 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-14 21:36:45 +00:00
Jason Garrett-Glaser
5657d14094 H.264: switch to x264-style tracking of luma/chroma DC NNZ
Useful so that we don't have to run the hierarchical DC iDCT if there aren't
any coefficients.  Opens up some future opportunities for optimization as well.

Originally committed as revision 26337 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-14 21:36:16 +00:00
Jason Garrett-Glaser
19fb234e4a H.264: split luma dc idct out and implement MMX/SSE2 versions
About 2.5x the speed.

NOTE: the way that the asm code handles large qmuls is a bit suboptimal.
If x264-style dequant was used (separate shift and qmul values), it might
be possible to get some extra speed.

Originally committed as revision 26336 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-14 21:34:25 +00:00
Jason Garrett-Glaser
ca32f7f208 H.264: eliminate non-transposed scantable support.
It was an ugly hack to begin with and didn't give any performance.

NOTE: this patch opens up some future simplifications to be made (such as
removing some of the scantables from H264Context) but doesn't take advantage
of them yet.

Originally committed as revision 26329 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-14 19:04:59 +00:00
Sascha Sommer
75e4efd2a7 add support for blocksize 64
fixes issue 2537 and 2538

Originally committed as revision 26328 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-14 16:36:57 +00:00
Aurelien Jacobs
e83c716e16 don't complain about codec type/id mismatche for attachment streams
Originally committed as revision 26316 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-12 00:33:22 +00:00
Daniel Kang
e048a9cab1 Do not crash for illegal sample size, fixes issue 2502.
Patch by Daniel Kang, daniel.d.kang at gmail

Originally committed as revision 26309 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-11 14:08:45 +00:00
Jason Garrett-Glaser
09fffe9bd4 H.264: fix grayscale decoding with explicit wpred
Originally committed as revision 26306 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-10 23:42:45 +00:00
Carl Eugen Hoyos
8219782a6d Do not stop decoding on pnm files with negative maxval.
Originally committed as revision 26304 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-10 22:09:52 +00:00
Clément Bœsch
c56e71309e In gif encoder, fix uninitialized value, patch by Clément Bœsch, ubitux at gmail dot com
Originally committed as revision 26303 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-10 21:14:54 +00:00
Daniel Kang
94e58e5770 perform height sanity check in mmvideo decoder
Fixes issue2495
Original patch by Daniel Kang, daniel.d.kang at gmail

Originally committed as revision 26300 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-10 12:23:03 +00:00
Peter Ross
091bc6ca8c mmvideo: remove some conditional statements by limiting range of half_horiz and half_vert parameters to [0,1]
Originally committed as revision 26299 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-10 12:16:33 +00:00
Clément Bœsch
c19a216af3 Handle ID3v1 tag while decoding mp[123] frames
patch by Clément Bœsch (ubitux at gmail)

Originally committed as revision 26297 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-10 11:36:11 +00:00
Daniel Kang
2843502ea4 Check for invalid decode op-codes, fixes issue 2522.
Patch by Daniel Kang, daniel.d.kang at gmail

Originally committed as revision 26295 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-10 10:47:10 +00:00
Daniel Kang
8e37a1deb3 Check for vectable ID > 0, fixes issue 2508.
Patch by Daniel Kang, daniel.d.kang at gmail

Originally committed as revision 26294 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-10 10:36:14 +00:00
Daniel Kang
43c34675af Check for invalid motion vector, fixes issue 2521.
Patch by Daniel Kang, daniel.d.kang at gmail

Originally committed as revision 26293 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-10 10:28:06 +00:00
Daniel Kang
ebc3488300 Check for invalid maxval in pgm decoder, fixes issue 2518.
Patch by Daniel Kang, daniel.d.kang at gmail

Originally committed as revision 26292 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-10 00:42:57 +00:00
Anssi Hannula
39f4d32908 Fix reading over the end of the allocated buffer.
Patch by Anssi Hannula, anssi d hannula a iki d fi

Originally committed as revision 26291 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-09 23:01:01 +00:00
Daniel Kang
b89f4fb190 Check for several overreads, fixes issue 2512.
Patch by Daniel Kang, daniel.d.kang at gmail

Originally committed as revision 26289 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-09 19:38:32 +00:00
Daniel Kang
a4db272a92 Return on negative soff sizes, fixes issue 2515.
Patch by Daniel Kang, daniel.d.kang at gmail

Originally committed as revision 26288 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-09 19:29:39 +00:00
Martin Storsjö
31561a98ae Fix arm asm offsets for arm/mach-o
Originally committed as revision 26287 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-09 15:23:00 +00:00
Luca Barbato
183cdf7163 Update asm offsets for arm
This unbreak ffmpeg build on arm/elf, arm/mach-o still need an update

Originally committed as revision 26286 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-09 14:21:35 +00:00
Peter Ross
cd426563f4 fix indentation
Originally committed as revision 26280 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-09 08:30:23 +00:00
Daniel Kang
062421e30d eacmv: ensure second-last frame is allocated before referencing it
Fixes issue2513
Original patch by Daniel Kang, daniel.d.kang at gmail

Originally committed as revision 26279 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-09 08:28:40 +00:00
Justin Ruggles
14207fd23e Remove unneeded #include
Originally committed as revision 26272 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-09 02:04:30 +00:00
Justin Ruggles
dc7e07ac1f Add stereo rematrixing support to the AC-3 encoders.
This improves the audio quality significantly for stereo source with both the
fixed-point and floating-point AC-3 encoders.
Update acodec-ac3_fixed and seek-ac3_rm test references.

Originally committed as revision 26271 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-08 23:21:17 +00:00
Carl Eugen Hoyos
d267b339e4 Lagarith decoder by Nathan Caldwell, saintdev at gmail
Originally committed as revision 26270 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-08 21:22:15 +00:00
Kostya Shishkov
c392cc0a64 Limit number of samples decoded for WavPack mono mode, so decoded samples will
fit into output buffer.

Originally committed as revision 26269 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-08 19:23:24 +00:00
Sascha Sommer
15a8bef0b6 skip unsupported postproc information
Originally committed as revision 26268 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-08 15:49:29 +00:00
Sascha Sommer
b86dd1bf6d add support for files that do not allow more than 4 subframes
Originally committed as revision 26267 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-08 15:38:14 +00:00
Sascha Sommer
d7fa58c049 fix indentation
Originally committed as revision 26266 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-08 15:35:56 +00:00
Sascha Sommer
8b5a780e73 add support for files where the frames do not have a length prefix
Originally committed as revision 26265 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-08 15:32:31 +00:00
Anssi Hannula
2a81f4bde5 Show profile in avcodec_string().
Patch by Anssi Hannula, anssi d hannula a iki d fi

Originally committed as revision 26264 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-08 09:23:25 +00:00
Baptiste Coudurier
82dadb90a7 Fix bmp encoder with 8 bits format and correctly set bits_per_coded_sample
Originally committed as revision 26263 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-07 23:56:47 +00:00
Michael Niedermayer
81c623fae0 Deprecate reordered_opaque in favor of pkt_pts/dts
Originally committed as revision 26262 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-07 23:07:31 +00:00
Michael Niedermayer
1919feafb1 Add pkt_dts to AVFrame, this will in the future allow multithreading decoders
to not mess up dts

Originally committed as revision 26261 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-07 23:07:28 +00:00
Michael Niedermayer
393cbb963b Add AVFrame.pkt_pts that contains the correctly reordered AVPacket.pts
Originally committed as revision 26260 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-07 23:07:24 +00:00
Anssi Hannula
060ec0a829 Add av_get_profile_name() to get profile names.
Patch by Anssi Hannula, anssi d hannula a iki d fi

Originally committed as revision 26259 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-07 22:27:26 +00:00
Daniel Kang
f2953365d1 Check if buffer is large enough for given resolution.
Fixes issue 2501.

Patch by Daniel Kang, daniel.d.kang at gmail

Originally committed as revision 26258 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-07 21:54:52 +00:00
Daniel Kang
fea714ecd9 Do not overread input buffer.
Fixes issue 2503.

Patch by Daniel Kang, daniel.d.kang at gmail

Originally committed as revision 26256 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-07 19:55:22 +00:00
Carl Eugen Hoyos
b82579a6ec Fail more gracefully for multichannel wavpack in another container.
Originally committed as revision 26253 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-07 13:24:58 +00:00
Daniel Kang
65cd45a88c Prevent a crash by sanity checking buffer reads.
Patch by Daniel Kang, daniel.d.kang at gmail

Originally committed as revision 26251 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-06 23:14:27 +00:00
Anssi Hannula
f5a2d285f9 Export dca profile information.
Patch by Anssi Hannula anssi d hannula a iki d fi

Originally committed as revision 26250 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-06 22:34:12 +00:00
Anssi Hannula
df1c694c58 Verify FSIZE96 when encountering X96 sync code.
Patch by Anssi Hannula, anssi d hannula a iki d fi

Originally committed as revision 26249 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-06 22:24:39 +00:00
Daniel Kang
d381249bb8 Fix a crash when decoding tiff by moving check
for invalid header up before reading data.
Fixes issue 2500.

Patch by Daniel Kang, daniel.d.kang at gmail

Originally committed as revision 26248 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-06 22:12:55 +00:00
Baptiste Coudurier
35ca5c0b6b In dnxhd decoder, set key_frame on decoded frame
Originally committed as revision 26247 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-06 20:17:51 +00:00
Daniel Kang
1ba44140a3 Fix crash for files with strip size larger than the buffer.
Fixes issue 2498.

Patch by Daniel Kang, daniel.d.kang at gmail

Originally committed as revision 26243 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-06 14:44:50 +00:00
Justin Ruggles
ac05f9030e Convert floating-point MDCT coefficients to 24-bit fixed-point all at once
instead of doing it separately in 2 different functions.
This makes float AC-3 encoding approx. 3-7% faster overall.
Also, the coefficient conversion can now be easily SIMD-optimized.

Originally committed as revision 26232 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-05 20:35:36 +00:00
Vitor Sessak
6e16398aa3 Make dc_lum_vlc and dc_chroma_vlc non-static symbols,
this fixed the decoding of version 3 PSX MDEC files.

Originally committed as revision 26230 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-05 19:38:42 +00:00
Justin Ruggles
9be52d48d9 Use local variables outside the inner loop in extract_exponents() to reduce
accessing of structs and arrays inside the loop.
Approx. 30% faster in function extract_exponents().

Originally committed as revision 26226 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-05 16:02:08 +00:00
Stefano Sabatini
2d777bb7a2 Make mpeg4 encoder log a more explicit error message when the timebase
is not valid.

Originally committed as revision 26223 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-05 11:36:43 +00:00
Michael Niedermayer
db61329607 Our ljpeg encoder supports bgra, use the correct constant in the sanity check.
Originally committed as revision 26220 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-05 04:52:35 +00:00
Michael Niedermayer
dc8465a9b4 Remove PIX_FMT_RGB32 mjpeg encoding, there is no such thing ...
Originally committed as revision 26218 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-05 04:52:21 +00:00
Michael Niedermayer
e27bf2c70c Fix YUV444P LJPEG encoding.
Originally committed as revision 26215 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-04 18:57:16 +00:00
Justin Ruggles
f1cbbb79bf cosmetics: fix typo in previous commit
Originally committed as revision 26210 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-04 12:08:10 +00:00
Justin Ruggles
6fd96d1a85 Change the AC-3 encoder to use floating-point.
Fixed-point AC-3 encoder renamed to ac3_fixed.
Regression test acodec-ac3 renamed to acodec-ac3_fixed.
Regression test lavf-rm changed to use ac3_fixed encoder.

Originally committed as revision 26209 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-04 11:53:44 +00:00
Aurelien Jacobs
4f18f1b089 mpeg4videodec: reset time_base.num to 0 when detecting time_base.den=0
to avoid leaving time_base in a broken/inconsistent state
fix issue2471

Originally committed as revision 26207 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-03 23:33:20 +00:00
Justin Ruggles
ad6b2c1f6d Move fixed-point parts of the AC-3 encoder to separate files.
Originally committed as revision 26206 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-03 16:08:56 +00:00
Daniel Kang
004357a11f Fix compilation on x86-32 with --disable-optimizations,
fixes issue 2127.

Patch by Daniel Kang, daniel.d.kang at gmail

Originally committed as revision 26204 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-03 11:30:04 +00:00
Daniel Kang
3b99e00c75 Fix crash decoding broken wmv2 files.
Fixes issue 1670.

Patch by Daniel Kang, daniel.d.kang at gmail

Originally committed as revision 26202 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-02 23:41:02 +00:00
Aurelien Jacobs
f5dd1eb7b5 srtdec: ensure we don't read 1 byte after buffer end if the buffer is not
properly terminated.

Originally committed as revision 26201 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-02 23:40:30 +00:00
Vitor Sessak
e3e3c82555 Make PSX MDEC decoder output YUVJ420 and always use IDCT_SIMPLE. This
makes the output much closer to original Playstation hardware.

Originally committed as revision 26196 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-02 11:16:21 +00:00
Reimar Döffinger
0a3028b9b0 Use AVSampleFormat instead of the deprecated SampleFormat.
Originally committed as revision 26185 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-01 19:45:08 +00:00
Stefano Sabatini
421167b03b Fix typos.
Originally committed as revision 26183 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-01 11:47:51 +00:00
Justin Ruggles
9c84a72a25 Skip the bit allocation search if previous and current SNR offsets are the
maximum value of 1023.
This speeds up overall encoding depending on the content and bitrate.
The most improvement is with high bitrates and/or low complexity content.

Originally committed as revision 26181 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-31 23:22:08 +00:00
Justin Ruggles
5128842ea2 10l: Fix mistake in r26044. Check increment bounds using actual increment
instead of 64. This will change output in some cases, but it happens to not
affect the AC-3 regression tests.

Originally committed as revision 26180 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-31 22:59:19 +00:00
Justin Ruggles
c05ffcd9ba Change planar_samples from int16_t to SampleType.
This one was missed in r26174.

Originally committed as revision 26179 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-31 20:01:12 +00:00
Jason Garrett-Glaser
32282b50ea Add .pix_fmts to LCL encoder
Now ffmpeg should automatically convert to BGR instead of erroring out.

Originally committed as revision 26178 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-31 04:56:44 +00:00
Daniel Kang
0790caba60 Fix invalid reads in valgrind fate, patch by Daniel Kang <daniel dot d dot
kang at gmail com>, as part of Google's GCI 2010.

Originally committed as revision 26177 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-31 01:29:06 +00:00
Aurelien Jacobs
f19c58b4cf free subtitle_header before overwriting it to avoid memleak
Originally committed as revision 26176 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-31 00:06:25 +00:00
Justin Ruggles
0cbd5ff704 Add typedefs and a macro that will allow sharing of functions between the
fixed-point and floating-point AC-3 encoders.

Originally committed as revision 26174 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-30 22:30:48 +00:00
Justin Ruggles
b33dae5efb Move the list of supported channel layouts to a separate table.
Originally committed as revision 26173 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-30 22:13:41 +00:00
Justin Ruggles
34d5074e6d Add a window field to AC3MDCTContext and use it as an input to apply_window()
instead of using the ff_ac3_window[] table directly.

Originally committed as revision 26172 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-30 22:13:37 +00:00
Justin Ruggles
b5293036b9 cosmetics: alignment, line wrap, and spacing
Originally committed as revision 26171 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-30 22:13:34 +00:00
Justin Ruggles
14166a6d6c Remove avctx from AC3MDCTContext and just pass it to mdct_init() instead.
Originally committed as revision 26170 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-30 22:13:30 +00:00
Justin Ruggles
e0698e4bbd Make exponent_group_tab[] static.
Originally committed as revision 26169 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-30 22:13:25 +00:00
Ronald S. Bultje
7148da489e Fix valgrind invalid read on top MB rows with CODEC_FLAG_EMU_EDGE set.
Originally committed as revision 26168 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-30 14:33:21 +00:00
Justin Ruggles
b3f5c21a91 Use %td instead of %PRIdPTR. The argument has type ptrdiff_t.
Originally committed as revision 26166 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-30 13:34:31 +00:00
Justin Ruggles
78c8b4b758 Add audio flag to libvorbis AVOption.
Originally committed as revision 26165 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-30 04:22:41 +00:00
Justin Ruggles
281bf84fbd Use %"PRIdPTR" instead of %d to silence gcc warning about type mismatch.
Originally committed as revision 26164 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-30 04:09:44 +00:00
Michael Chinen
4b5d4720c1 flac_parser: loop append buffer when the default size is not enough to get
the desired number of frames.
Patch by Michael Chinen [mchinen at gmail]

Originally committed as revision 26163 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-30 04:09:39 +00:00
Daniel Kang
536e9b2f58 Port pred8x8l_down_left_mmxext (H.264 intra prediction) from x264 (authors:
Jason, Loren, Holger) to FFmpeg. Patch by Daniel Kang <daniel dot d dot kang
at gmail com>, as part of Google's GCI 2010.

Originally committed as revision 26162 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 23:48:44 +00:00
Daniel Kang
720ea2d5b2 Port pred4x4_down_right_mmxext (H.264 intra prediction) from x264 (authors:
Jason, Loren, Holger) to FFmpeg. Patch by Daniel Kang <daniel dot d dot kang
at gmail com>, as part of Google's GCI 2010.

Originally committed as revision 26159 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 21:55:51 +00:00
Daniel Kang
d0aebe23e2 Port pred4x4_vertical_right_mmxext (H.264 intra prediction) from x264 (authors:
Jason, Loren, Holger) to FFmpeg. Patch by Daniel Kang <daniel dot d dot kang
at gmail com>, as part of Google's GCI 2010.

Originally committed as revision 26158 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 21:52:41 +00:00
Daniel Kang
76497232ef Port pred4x4_horizontal_down_mmxext (H.264 intra prediction) from x264
(authors:Jason, Loren, Holger) to FFmpeg. Patch by Daniel Kang <daniel dot
d dot kang at gmail com>, as part of Google's GCI 2010.

Originally committed as revision 26157 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 21:49:57 +00:00
Daniel Kang
e9c576a467 Port pred4x4_horizontal_up_mmxext (H.264 intra prediction) from x264 (authors:
Jason, Loren, Holger) to FFmpeg. Patch by Daniel Kang <daniel dot d dot kang
at gmail com>, as part of Google's GCI 2010.

Originally committed as revision 26156 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 21:42:33 +00:00
Daniel Kang
92f441ae86 Port pred4x4_vertical_left_mmxext (H.264 intra prediction) from x264 (authors:
Jason, Loren, Holger) to FFmpeg. Patch by Daniel Kang <daniel dot d dot kang
at gmail com>, as part of Google's GCI 2010.

Originally committed as revision 26155 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 21:35:34 +00:00
Ronald S. Bultje
e8d98764cc Merge a few superfluous CONFIG_GPL checks.
Originally committed as revision 26154 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 21:30:47 +00:00
Ronald S. Bultje
916393da24 Whitespace cosmetics.
Originally committed as revision 26153 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 21:23:31 +00:00
Ronald S. Bultje
42a59278cf Whitespace cosmetics.
Originally committed as revision 26152 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 20:43:15 +00:00
Daniel Kang
57b1f334d1 Port pred8x8l_horizontal_down_sse2/ssse3 (H.264 intra prediction) from x264
(authors: Jason, Loren, Holger) to FFmpeg. Patch by Daniel Kang <daniel dot
d dot kang at gmail com>, as part of Google's GCI 2010.

Originally committed as revision 26151 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 20:42:15 +00:00
Daniel Kang
04cbdf3d24 Port pred8x8l_horizontal_down_mmxext (H.264 intra prediction) from x264
(authors: Jason, Loren, Holger) to FFmpeg. Patch by Daniel Kang <daniel dot
d dot kang at gmail com>, as part of Google's GCI 2010.

Originally committed as revision 26150 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 20:38:06 +00:00
Daniel Kang
98c6053cd0 Port pred8x8l_horizontal_up_mmxext/ssse3 (H.264 intra prediction) from x264
(authors: Jason, Loren, Holger) to FFmpeg. Patch by Daniel Kang <daniel dot
d dot kang at gmail com>, as part of Google's GCI 2010.

Originally committed as revision 26149 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 20:35:31 +00:00
Daniel Kang
ecc7efbbb6 Port pred8x8l_vertical_left_sse2/ssse3 (H.264 intra prediction) from x264
(authors: Jason, Loren, Holger) to FFmpeg. Patch by Daniel Kang <daniel dot
d dot kang at gmail com>, as part of Google's GCI 2010.

Originally committed as revision 26148 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 20:06:22 +00:00
Daniel Kang
bdd93f1b25 Port pred8x8l_vertical_right_sse2/ssse3 (H.264 intra prediction) from x264
(authors: Jason, Loren, Holger) to FFmpeg. Patch by Daniel Kang <daniel dot
d dot kang at gmail com>, as part of Google's GCI 2010.

Originally committed as revision 26147 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 19:54:05 +00:00
Daniel Kang
f25112fc09 Port pred8x8l_vertical_right_mmxext (H.264 intra prediction) from x264
(authors: Jason, Loren, Holger) to FFmpeg. Patch by Daniel Kang <daniel dot
d dot kang at gmail com>, as part of Google's GCI 2010.

Originally committed as revision 26146 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 19:46:09 +00:00
Daniel Kang
602a4cb25a Port pred8x8l_down_right_sse2/ssse3 (H.264 intra prediction) from x264
(authors: Jason, Loren, Holger) to FFmpeg. Patch by Daniel Kang <daniel dot
d dot kang at gmail com>, as part of Google's GCI 2010.

Originally committed as revision 26145 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 19:19:49 +00:00
Justin Ruggles
ec44dd5fc2 Change the default dB-per-bit code from 2 to 3.
This gives slightly better quality in PEAQ tests.
Code 3 gives a dBpb value of 2816 = -132dB (128 psd units = -6dB), which
corresponds to 22 bits. Since the exponents have an offset applied, the
16-bit source looks like 24-bit source to the bit allocation routine.
So using dBpb code=3 is a closer match to the exponent range.

Regression test refs updated for acodec-ac3, lavf-rm, and seek-ac3_rm.

Originally committed as revision 26144 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 19:17:22 +00:00
Daniel Kang
e916acbcd1 Port pred8x8l_down_right_mmxext (H.264 intra prediction) from x264 (authors:
Jason, Loren, Holger) to FFmpeg. Patch by Daniel Kang <daniel dot d dot kang
at gmail com>, as part of Google's GCI 2010.

Originally committed as revision 26143 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 19:12:02 +00:00
Daniel Kang
c249e66576 Port pred8x8l_down_left_sse2/ssse3 (H.264 intra prediction) from x264 (authors:
Jason, Loren, Holger) to FFmpeg. Patch by Daniel Kang <daniel dot d dot kang at
gmail com>, as part of Google's GCI 2010.

Originally committed as revision 26142 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 19:02:50 +00:00
Daniel Kang
ee1ba9c326 Port pred8x8l_vertical_mmxext/ssse3 (H.264 intra prediction) from x264 to
FFmpeg. Original authors: Holger Lubitz <holger lubitz org>, Jason Garrett-
Glaser <darkshikari gmail com> (approves LGPL relicensing for this code) and
Loren Merritt <lorenm at u dot washington dot edu> (approves LGPL relicensing
for this code). Patch by Daniel Kang <daniel dot d dot kang at gmail com>, as
part of Google's GCI 2010.

Originally committed as revision 26140 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 18:46:40 +00:00
Daniel Kang
04207ef353 Port pred8x8l_horizontal_mmxext/ssse3 (H.264 intra prediction) from x264 to
FFmpeg. Original authors: Holger Lubitz <holger lubitz org>, Jason Garrett-
Glaser <darkshikari gmail com> (approves LGPL relicensing for this code) and
Loren Merritt <lorenm at u dot washington dot edu> (approves LGPL relicensing
for this code). Patch by Daniel Kang <daniel dot d dot kang at gmail com>, as
part of Google's GCI 2010.

Originally committed as revision 26139 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 18:40:53 +00:00
Daniel Kang
abab14eac0 Port pred8x8l_dc_mmx/ssse3 (H.264 intra prediction) from x264 to FFmpeg.
Original authors: Holger Lubitz <holger lubitz org>, Jason Garrett-Glaser
<darkshikari gmail com> (approves LGPL relicensing for this code) and Loren
Merritt <lorenm at u dot washington dot edu> (approves LGPL relicensing for
this code). Patch by Daniel Kang <daniel dot d dot kang at gmail com>, as
part of Google's GCI 2010.

Originally committed as revision 26138 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 18:33:10 +00:00
Daniel Kang
2e93fd4b5e Port pred8x8l_top_dc_mmxext/ssse3 (H.264 intra prediction) from x264 to FFmpeg.
Original authors: Holger Lubitz <holger lubitz org>, Jason Garrett-Glaser
<darkshikari gmail com> (approves LGPL relicensing for this code) and Loren
Merritt <lorenm at u dot washington dot edu> (approves LGPL relicensing for
this code). Patch by Daniel Kang <daniel dot d dot kang at gmail com>, as
part of Google's GCI 2010.

Originally committed as revision 26137 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 18:11:27 +00:00
Ronald S. Bultje
54a959e483 Move PRED4x4_LOWPASS up so it can be used in 8x8l predict functions while
keeping the functions ordered in the source file (i.e. cosmetics).

Originally committed as revision 26136 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 18:04:57 +00:00
Ronald S. Bultje
a2dfe8d18d Port pred8x8_dc_mmxext (H.264 intra prediction) from x264 to FFmpeg. Original
authors: Holger Lubitz <holger lubitz org>, Jason Garrett-Glaser <darkshikari
gmail com> (approves LGPL relicensing for this code) and Loren Merritt <lorenm
at u dot washington dot edu> (approves LGPL relicensing for this code). Patch
by Daniel Kang <daniel dot d dot kang at gmail com>, as part of Google's GCI
2010.

Originally committed as revision 26135 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 18:00:26 +00:00
Ronald S. Bultje
83ff3f72e5 Add missing authors to copyright headers.
Originally committed as revision 26133 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 17:45:26 +00:00
Daniel Kang
725a3f9dfb Port pred8x8_top_dc_mmxext (H.264 intra prediction) from x264 to FFmpeg.
Original authors: Holger Lubitz <holger lubitz org>, Jason Garrett-Glaser
<darkshikari gmail com> (approves LGPL relicensing for this code) and Loren
Merritt <lorenm at u dot washington dot edu> (approves LGPL relicensing for
this code). Patch by Daniel Kang <daniel dot d dot kang at gmail com>, as
part of Google's GCI 2010.

Originally committed as revision 26132 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 17:42:34 +00:00
Ronald S. Bultje
98928c83e0 Mark recently added pred4x4_down_left_mmxext as CONFIG_GPL. Although Holger
initially said he'd be OK with relicensing, he also said he wanted to have
another look at the patch, and then he went on vacation, so let's play it
safe for now. We can consider removing this again later.

Originally committed as revision 26131 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-29 17:34:00 +00:00
Aurelien Jacobs
2c77c90684 add SubRip decoder
Originally committed as revision 26119 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-28 23:52:53 +00:00
Ronald S. Bultje
312056c54e Bump micro for VP8 emu-edge support.
Originally committed as revision 26118 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-28 22:48:39 +00:00
Ronald S. Bultje
ee555de7dd Support CODEC_FLAG_EMU_EDGE in VP8 decoder.
Originally committed as revision 26117 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-28 17:37:19 +00:00
Anton Khirnov
fd5b124d74 Metadata demuxer.
Originally committed as revision 26102 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-27 07:46:53 +00:00
Ronald S. Bultje
18f1add31c Fix typo.
Originally committed as revision 26099 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-26 22:48:13 +00:00
Michael Niedermayer
52654005ca Simplify tff setting code in MPV_frame_start().
Originally committed as revision 26090 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-25 19:49:19 +00:00
Daniel Verkamp
13011def1f Fix size of monoblack_pal array, code uses 16 values unconditionally.
Patch by Daniel Verkamp [daniel drv nu].

Originally committed as revision 26088 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-25 16:09:23 +00:00
Daniel Kang
911b32f482 Port pred4x4_down_left_mmxext (H.264 intra prediction) from x264 to FFmpeg.
LGPL relicensing approved by original authors: Holger Lubitz <holger lubitz
org>, Jason Garrett-Glaser <darkshikari gmail com> and Loren Merritt <lorenm
at u dot washington dot edu>. Patch by Daniel Kang <daniel dot d dot kang at
gmail com>, as part of Google's GCI 2010.

Originally committed as revision 26087 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-24 22:43:07 +00:00
Ronald S. Bultje
8d147f1f60 For rounding in chroma MC SSSE3, use 16-byte pw_3/4 instead of reading 8 bytes
and then using movlhps to dup it into the higher half of the register.

Originally committed as revision 26086 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-24 17:23:22 +00:00
Justin Ruggles
b51c740eab cosmetics: line wrap and vertical alignment
Originally committed as revision 26084 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-23 18:01:29 +00:00
Justin Ruggles
e96dc767e4 Make sure that the 2nd CRC value does not match the AC-3 sync word.
This is optional for encoders, but it's a good idea and has minimal impact
on performance.
This will change the output for some files, but it happens not to affect the
regression tests.

Originally committed as revision 26083 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-23 18:01:26 +00:00
Justin Ruggles
a897423baa Store CRC context locally to reduce number of calls to av_crc_get_table().
Originally committed as revision 26082 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-23 18:01:23 +00:00
Justin Ruggles
0e9b064305 Remove unneeded local variable, frame_size, in output_frame_end().
Originally committed as revision 26081 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-23 18:01:19 +00:00
Martin Storsjö
81c8c18780 Makefile: Fix dependencies of components
This fixes compilation with --disable-everything --enable-<component>,
for all encoders, decoders, muxers, demuxers, parsers, protocols, bsfs,
indevs, outdevs and filters at the moment. (All those that work without
any external dependencies at least.)

Originally committed as revision 26076 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-22 20:00:42 +00:00
Justin Ruggles
1ce9d6b85f cosmetics: fix comment after change in clipping range
Originally committed as revision 26072 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-22 12:28:02 +00:00
Justin Ruggles
295ab2af6e Change FIX15() back to clipping to -32767..32767.
This avoids a 16-bit overflow in mdct512() due to a -32768 value in costab.
References updated for acodec-ac3, lavf-rm, and seek-ac3_rm tests.
Thanks to Måns Rullgård for finding the bug.

Originally committed as revision 26071 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-21 21:18:58 +00:00
Justin Ruggles
f9f69028af Add emms_c() after exp_diff calculations.
Fixes AC-3 encoding on OpenBSD 4.8 x86_32 and hopefully other similar
configurations.

Originally committed as revision 26070 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-21 20:56:25 +00:00
Justin Ruggles
a81d7c6aa3 Pre-calculate crc_inv at codec init.
20% faster output_frame_end().

Originally committed as revision 26069 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-21 18:26:13 +00:00
Martin Storsjö
fe7438d97f Fix make checkheaders
amrwbdata.h uses offsetof(), which is defined in stddef.h.

Originally committed as revision 26068 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-21 11:19:59 +00:00
Martin Storsjö
223cefb560 Fix more matroska/webm muxer dependencies
This fixes building with --disable-everything --enable-muxer=matroska and/or
--enable-muxer=webm

Originally committed as revision 26067 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-21 09:28:39 +00:00
Martin Storsjö
8bd1956462 g722: Move the low_inv_quant6 table up to the common tables
Since SVN rev 25866, this table is used by the trellis encoder, too,
not only by the decoder.

Originally committed as revision 26065 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-21 09:03:57 +00:00
Anatoly Nenashev
ba68d9d3e1 Fix -lowres with ffplay.
Patch by Anatoly Nenashev, anatoly d nenashev a ovsoft d ru

Originally committed as revision 26057 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-19 12:17:40 +00:00
Ramiro Polla
d09b5a869f bump lavcodec minor version for amr-wb decoder in r26051
Originally committed as revision 26052 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-18 05:15:32 +00:00
Ronald S. Bultje
2b2a597ec0 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
2010-12-18 03:03:18 +00:00
Justin Ruggles
386268dfff 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
2010-12-17 23:42:56 +00:00
Justin Ruggles
e62ef8f2db Check user-specified cutoff frequency in validate_options().
Originally committed as revision 26049 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-17 23:42:52 +00:00
Justin Ruggles
78646ac206 10l: fix encoding for LFE channel
Originally committed as revision 26048 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-17 22:06:00 +00:00
Justin Ruggles
86c9673bab Add support for fixed-point MDCT sizes other than 512.
Originally committed as revision 26046 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-17 20:52:27 +00:00
Justin Ruggles
234b70d346 cosmetics: reindent after last commit
Originally committed as revision 26045 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-17 15:02:15 +00:00
Justin Ruggles
98e34e71c0 Simplify bit allocation search by using a loop for the SNR offset increment.
Originally committed as revision 26044 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-17 15:02:12 +00:00
Justin Ruggles
cf7c961b19 Do not calculate psd and masking curve if exponents are being reused.
Approx. 20% faster in function bit_alloc_masking().

Originally committed as revision 26042 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-17 14:16:13 +00:00
Justin Ruggles
68e6b0990d cosmetics: reindent after last commit
Originally committed as revision 26041 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-16 22:47:11 +00:00
Justin Ruggles
795063db3b 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
2010-12-16 22:47:07 +00:00
Justin Ruggles
126a29b871 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
2010-12-16 22:47:04 +00:00
Justin Ruggles
e7536ac567 Count bits for fixed parameters at start of encoding rather than in every
frame.

Originally committed as revision 26038 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-16 22:47:00 +00:00
Justin Ruggles
e86ea34dad Use a LUT for number of exponent groups. This avoids recalculating it for
every block and channel for every frame.

Originally committed as revision 26037 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-16 21:09:22 +00:00
Justin Ruggles
834550ea0d 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
2010-12-16 21:09:16 +00:00
Justin Ruggles
cdedf7e625 Convert a for() loop into a while() loop for the downward part of the exponent
delta limiting.

Originally committed as revision 26035 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-16 21:09:08 +00:00
Justin Ruggles
27af78cf0e 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
2010-12-16 21:09:02 +00:00
Justin Ruggles
8846ee54ad Use optimized function DSPContext.sad[0]() instead of calc_exp_diff().
90% faster compute_exp_strategy().

Originally committed as revision 26033 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-16 15:06:28 +00:00
Justin Ruggles
7786c384f6 cosmetics: pretty-printing after last commit
Originally committed as revision 26031 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-16 03:44:35 +00:00
Justin Ruggles
89bedc4d2e Add a goto for init failure instead of duplicate calls to ac3_encode_close().
Originally committed as revision 26030 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-16 03:44:32 +00:00
Justin Ruggles
c41ac4f82e Use pre-allocated temp buffers in mdct512().
5% faster in function.

Originally committed as revision 26029 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-16 03:44:29 +00:00
Justin Ruggles
e29065f7bf Write results of post-rotation complex multiply directly to output.
2% faster in function mdct512().

Originally committed as revision 26028 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-16 03:13:45 +00:00
Justin Ruggles
9d8533368f Use memcpy() instead of a for loop in mdct512().
8% faster in function.

Originally committed as revision 26027 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-16 03:13:41 +00:00
Justin Ruggles
b6f6204db9 Allocate all large per-channel arrays using av_malloc().
Decreases memory usage for less than 6 channels.

Originally committed as revision 26026 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-16 02:33:02 +00:00
Justin Ruggles
aa645b9888 Make windowed_samples 16-byte aligned.
This will allow future SIMD optimization of the window function.

Originally committed as revision 26025 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-16 02:32:59 +00:00
Justin Ruggles
e8d21fba3f Allocate planar_samples using av_mallocz().
Lowers memory usage when encoding less than 6 channels.

Originally committed as revision 26024 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-16 02:32:55 +00:00
Justin Ruggles
171bc51c9b 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
2010-12-15 21:12:28 +00:00
Justin Ruggles
1c3e117e0b 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
2010-12-15 17:28:52 +00:00
Justin Ruggles
7eeca961e3 Remove unneeded line. key_frame is already set to 1 in avcodec_alloc_frame().
Originally committed as revision 26020 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-15 17:28:49 +00:00
Justin Ruggles
2d82d9b1df cosmetics: comment clean-up and misc cosmetics
Originally committed as revision 26019 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-15 17:28:44 +00:00
Justin Ruggles
5901cebecd Separate most of the per-block arrays into a separate per-block struct.
Originally committed as revision 26018 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-15 17:28:41 +00:00
Justin Ruggles
cb6247cb30 Split bit allocation search into a separate function.
Originally committed as revision 26017 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-15 17:28:38 +00:00
Alexander Strange
0f01602362 SVQ3: Allow decoding if thread_count is > 1
svq3 still doesn't support multithreading, but it's simpler for clients if
they can enable threading for all codecs by default.

Originally committed as revision 26015 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-15 00:22:47 +00:00
Justin Ruggles
06f6f78578 10l: fix typo in compute_exp_strategy()
Originally committed as revision 26013 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-14 22:45:35 +00:00
Justin Ruggles
266d24be4a Move large arrays to AC3EncodeContext rather than passing them around.
Originally committed as revision 26012 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-14 22:45:31 +00:00
Justin Ruggles
7da4dc17d9 cosmetics: line wrap and spacing
Originally committed as revision 26011 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-14 22:45:28 +00:00
Justin Ruggles
a0d763fc88 Use a single value for SNR offset in the bit allocation search rather than
the separate coarse and fine values.

Originally committed as revision 26010 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-14 22:45:22 +00:00
Justin Ruggles
70fcd7ea80 Change bit_alloc() to return the mantissa bit count.
Originally committed as revision 26009 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-14 22:45:19 +00:00
Justin Ruggles
937cd1467c cosmetics: alignment and line wrap after last commit
Originally committed as revision 26008 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-14 22:45:15 +00:00
Justin Ruggles
359c1d1926 Move bit counts to AC3EncodeContext.
Originally committed as revision 26007 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-14 22:45:12 +00:00
Justin Ruggles
793bbf9544 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
2010-12-14 14:53:43 +00:00