Diego Biurrun
2d60444331
dsputil: Split motion estimation compare bits off into their own context
2014-07-17 09:07:10 -07:00
Diego Biurrun
9a9e2f1c8a
dsputil: Split audio operations off into a separate context
2014-06-22 06:20:15 -07:00
Diego Biurrun
27631796c9
ac3: Only initialize float_dsp for the float encoder variant
2014-06-13 05:21:34 -07:00
Diego Biurrun
2832ea26f3
Remove commented-out debug #define cruft
2013-05-16 00:23:30 +02:00
Diego Biurrun
6fee1b90ce
avcodec: Add av_cold attributes to init functions missing them
2013-05-04 21:09:45 +02:00
Anton Khirnov
f073b1500e
lavc: remove disabled FF_API_OLD_ENCODE_AUDIO cruft
2013-03-09 08:36:40 +01:00
Diego Biurrun
218aefce44
dsputil: Move LOCAL_ALIGNED macros to libavutil
2013-02-08 23:13:37 +01:00
Diego Biurrun
511cf612ac
miscellaneous typo fixes
2012-12-21 00:18:34 +01:00
Justin Ruggles
a903f8f087
Include libavutil/channel_layout.h instead of libavutil/audioconvert.h
...
Also reorder some other #include when applicable.
2012-11-11 13:35:12 -05:00
Anton Khirnov
36ef5369ee
Replace all CODEC_ID_* with AV_CODEC_ID_*
2012-08-07 16:00:24 +02:00
Justin Ruggles
d5a7229ba4
Add a float DSP framework to libavutil
...
Move vector_fmul() from DSPContext to AVFloatDSPContext.
2012-06-08 13:14:38 -04:00
Justin Ruggles
5cc51a5847
avutil: Add av_get_default_channel_layout()
...
Also, use the new function in the AC-3 encoder.
2012-04-05 16:35:14 -04:00
Justin Ruggles
aa872af5e3
ac3enc: update to AVCodec.encode2()
...
Update FATE references due to encoder delay.
2012-03-20 18:46:56 -04:00
Justin Ruggles
4e99501f62
(e)ac3enc: select a default bit rate based on the channel layout
2012-02-29 14:36:00 -05:00
Justin Ruggles
6aeea1dfb2
ac3enc: choose the closest bit rate to the one requested instead of failing
2012-02-29 14:36:00 -05:00
Martin Storsjö
9cf0841ef3
dsputil: Add ff_ prefix to the dsputil*_init* functions
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:34 +02:00
Diego Biurrun
a8798c7eb9
Drop unnecessary av_uninit attributes from some variable declarations.
...
Recent versions of gcc (4.4+) no longer give false positive warnings.
2012-02-13 19:20:52 +01:00
Mans Rullgard
cc276c85d1
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>
2011-11-25 13:19:54 +00:00
Justin Ruggles
c2d9a65bc0
ac3enc: doxygen update.
...
Add some parameters to existing function documentation.
Remove some unneeded documentation.
Convert some static function documentation to non-doxygen style.
2011-11-02 17:21:45 -04:00
Justin Ruggles
ae264bb29b
ac3enc: Add channel coupling support for the fixed-point AC-3 encoder.
...
Update FATE references accordingly.
2011-09-05 10:09:44 -04:00
Justin Ruggles
c766eb1ce1
ac3enc: add macros for option names to make them more understandable.
2011-08-11 11:33:32 -04:00
Justin Ruggles
9542ca9fb7
ac3enc: fix 'channel_coupling' option to actually allow 'auto'.
...
Use 'auto' as the default value.
2011-08-11 11:33:32 -04:00
Justin Ruggles
c3d63262fe
ac3enc: allow new coupling coordinates to be sent independently for each
...
channel.
2011-08-09 16:44:34 -04:00
Justin Ruggles
d55ad59a8a
ac3enc: separate exponent bit counting from exponent grouping.
...
Move bit counting to the bit allocation function. Move exponent grouping to
after bit allocation. This will allow for adjustment of bandwidth parameters
during bit allocation without having to do exponent grouping multiple times.
2011-08-09 16:28:18 -04:00
Justin Ruggles
093ee8e199
cosmetics: reindent
2011-07-27 11:51:46 -04:00
Justin Ruggles
1bca72e1bd
eac3enc: support writing of basic mixing and info metadata
2011-07-27 11:51:46 -04:00
Justin Ruggles
be7bd626c4
eac3enc: use different numbers of blocks per frame to allow higher bitrates
2011-07-21 14:57:10 -04:00
Justin Ruggles
08a747afb9
eac3enc: use frame exponent strategy when applicable.
...
This checks if the set of selected exponent strategies for all blocks in a
channel are in the frame exponent strategy table, and if so, writes the
table index instead of each strategy. This saves up to 7 bits per channel per
frame, so the overall effect on quality is small.
2011-07-19 14:15:00 -04:00
Justin Ruggles
b5849f7709
ac3enc: merge AC3MDCTContext with AC3EncodeContext.
...
Since both the fixed-point and floating-point encoders use the FFTContext,
this no longer needs to be in a separate context. Also, when a short-transform
context is added, the same MDCT window will be used.
2011-07-13 16:55:28 -04:00
Justin Ruggles
82cea7cb6c
ac3enc: prefer passing AC3EncodeContext rather than AVCodecContext
2011-07-13 16:55:28 -04:00
Justin Ruggles
f501157e53
ac3enc: fix memleak
2011-07-13 16:54:02 -04:00
Justin Ruggles
bd2deab706
cosmetics: remove outdated comment that is no longer true
2011-06-28 11:03:42 -04:00
Justin Ruggles
8683c6a638
ac3enc: move ff_ac3_encode_frame() to ac3enc_template.c
...
This avoids using function pointers for quite a few small functions, most of
which just call DSP functions.
2011-06-27 12:59:39 -04:00
Justin Ruggles
7dcdf974d0
ac3enc: Remove bit allocation fallbacks.
...
They introduce too much complexity for very little benefit. The result is that
encoding will be more likely to fail at extremely low bitrates where quality
would be awful anyway.
2011-06-27 12:59:39 -04:00
Justin Ruggles
684f4abfac
ac3enc: remove unneeded local variable in asym_quant()
2011-06-22 12:18:10 -04:00
Justin Ruggles
f21fb76b1b
ac3enc: remove a branch in asym_quant() by doing 2 shifts
2011-06-22 12:18:10 -04:00
Justin Ruggles
0e4dbe2996
ac3enc: avoid masking output in asym_quant() by using signed values for
...
quantized mantissas.
2011-06-22 12:18:10 -04:00
Justin Ruggles
99477adc31
ac3enc: fix allocation of floating point samples.
...
sizeof(SampleType) is different for fixed and float encoders.
2011-06-13 17:49:37 -04:00
Justin Ruggles
38c304addd
ac3enc: remove empty ac3_float function that is never called
2011-06-13 16:49:35 -04:00
Justin Ruggles
e0cc66df61
ac3enc: split templated float vs. fixed functions into a separate file.
...
Function pointers are used for templated functions instead of needlessly
duplicating many functions.
2011-06-13 16:49:35 -04:00
Justin Ruggles
e754dfc0bb
ac3enc: dynamically allocate AC3EncodeContext fields windowed_samples and mdct
...
This will allow the same struct to be used for both the fixed and float ac3
encoders.
2011-06-13 16:49:35 -04:00
Justin Ruggles
36151b3e31
ac3enc: use function pointer to choose between AC-3 and E-AC-3 header output
...
functions.
2011-06-13 16:49:35 -04:00
Diego Biurrun
d3778972d8
ac3enc: Fix linking of AC-3 encoder without the E-AC-3 encoder.
...
The AC-3 encoder unconditionally references some symbols from the E-AC-3
encoder; make those references conditional to fix linking.
2011-06-08 00:06:19 +02:00
Justin Ruggles
c8e9ea43d0
Move E-AC-3 encoder functions to a separate eac3enc.c file.
2011-06-07 15:16:41 -04:00
Justin Ruggles
787a13535a
ac3enc: remove convenience macro, #define DEBUG
2011-06-07 15:16:41 -04:00
Justin Ruggles
a8bd53402a
ac3enc: remove unused #define
2011-06-07 15:16:41 -04:00
Justin Ruggles
35d5cb1ab4
ac3enc: extract all exponents for the frame at once
2011-06-04 19:08:37 -04:00
Mans Rullgard
90da52f01f
ac3enc: fix LOCAL_ALIGNED usage in count_mantissa_bits()
...
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-05-28 21:42:31 +01:00
Justin Ruggles
6ca23db9cc
ac3enc: modify mantissa bit counting to keep bap counts for all values of bap
...
instead of just 0 to 4.
This does all the actual bit counting as a final step.
2011-05-28 12:39:28 -04:00
Justin Ruggles
1323828a0f
ac3enc: split mantissa bit counting into a separate function.
...
No speed difference. This is to allow for more flexible bit counting.
2011-05-28 12:39:28 -04:00