c766eb1ce1 
								
							
								 
							
						 
						
							
							
								
								ac3enc: add macros for option names to make them more understandable.  
							
							
								
							
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								9542ca9fb7 
								
							
								 
							
						 
						
							
							
								
								ac3enc: fix 'channel_coupling' option to actually allow 'auto'.  
							
							Use 'auto' as the default value. 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								c3d63262fe 
								
							
								 
							
						 
						
							
							
								
								ac3enc: allow new coupling coordinates to be sent independently for each  
							
							channel. 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								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. 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								093ee8e199 
								
							
								 
							
						 
						
							
							
								
								cosmetics: reindent  
							
							
								
							
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								1bca72e1bd 
								
							
								 
							
						 
						
							
							
								
								eac3enc: support writing of basic mixing and info metadata  
							
							
								
							
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								be7bd626c4 
								
							
								 
							
						 
						
							
							
								
								eac3enc: use different numbers of blocks per frame to allow higher bitrates  
							
							
								
							
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								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. 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								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. 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								82cea7cb6c 
								
							
								 
							
						 
						
							
							
								
								ac3enc: prefer passing AC3EncodeContext rather than AVCodecContext  
							
							
								
							
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								f501157e53 
								
							
								 
							
						 
						
							
							
								
								ac3enc: fix memleak  
							
							
								
							
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								bd2deab706 
								
							
								 
							
						 
						
							
							
								
								cosmetics: remove outdated comment that is no longer true  
							
							
								
							
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								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. 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								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. 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								684f4abfac 
								
							
								 
							
						 
						
							
							
								
								ac3enc: remove unneeded local variable in asym_quant()  
							
							
								
							
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								f21fb76b1b 
								
							
								 
							
						 
						
							
							
								
								ac3enc: remove a branch in asym_quant() by doing 2 shifts  
							
							
								
							
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								0e4dbe2996 
								
							
								 
							
						 
						
							
							
								
								ac3enc: avoid masking output in asym_quant() by using signed values for  
							
							quantized mantissas. 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								99477adc31 
								
							
								 
							
						 
						
							
							
								
								ac3enc: fix allocation of floating point samples.  
							
							sizeof(SampleType) is different for fixed and float encoders. 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								38c304addd 
								
							
								 
							
						 
						
							
							
								
								ac3enc: remove empty ac3_float function that is never called  
							
							
								
							
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								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. 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								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. 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								36151b3e31 
								
							
								 
							
						 
						
							
							
								
								ac3enc: use function pointer to choose between AC-3 and E-AC-3 header output  
							
							functions. 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								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. 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								c8e9ea43d0 
								
							
								 
							
						 
						
							
							
								
								Move E-AC-3 encoder functions to a separate eac3enc.c file.  
							
							
								
							
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								787a13535a 
								
							
								 
							
						 
						
							
							
								
								ac3enc: remove convenience macro, #define DEBUG  
							
							
								
							
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								a8bd53402a 
								
							
								 
							
						 
						
							
							
								
								ac3enc: remove unused #define  
							
							
								
							
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								35d5cb1ab4 
								
							
								 
							
						 
						
							
							
								
								ac3enc: extract all exponents for the frame at once  
							
							
								
							
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								90da52f01f 
								
							
								 
							
						 
						
							
							
								
								ac3enc: fix LOCAL_ALIGNED usage in count_mantissa_bits()  
							
							Signed-off-by: Mans Rullgard <mans@mansr.com> 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								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. 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								1323828a0f 
								
							
								 
							
						 
						
							
							
								
								ac3enc: split mantissa bit counting into a separate function.  
							
							No speed difference. This is to allow for more flexible bit counting. 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								7743865ffc 
								
							
								 
							
						 
						
							
							
								
								ac3enc: store per-block/channel bap pointers by reference block in a 2D array  
							
							rather than in the AC3Block struct.
This will make it easier to access the bap values without having to chase
the reference block pointers each time. 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								7f7726c7a2 
								
							
								 
							
						 
						
							
							
								
								ac3enc: use LOCAL_ALIGNED macro  
							
							Aligned local variables must use the LOCAL_ALIGNED macro to ensure
correct alignment on all systems.  The unusual size argument to
memset is required since the implementation of LOCAL_ALIGNED may
use a pointer to an array.
Signed-off-by: Mans Rullgard <mans@mansr.com> 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								1a950da6a2 
								
							
								 
							
						 
						
							
							
								
								cosmetics: indentation and alignment after previous commit  
							
							
								
							
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								aa47c35dff 
								
							
								 
							
						 
						
							
							
								
								ac3enc: add support for E-AC-3 encoding.  
							
							This adds basic stream format support and allows for arbitrary bit rates
rather than just those supported in AC-3. 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								b1bf8c7887 
								
							
								 
							
						 
						
							
							
								
								ac3enc: Move AC-3 AVOptions array to a separate file to make it easier to  
							
							use only selected options for the different AC-3 encoder types. 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								478455d66b 
								
							
								 
							
						 
						
							
							
								
								ac3enc: initialize all coefficients to zero.  
							
							Uninitialized coefficients were being used to generate exponents, some
of which actually ended up in the final stream.  Even though, they were
just extra exponents that are not used by any decoder, it is still
better to have consistent output for testing. This also fixes valgrind
errors. 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								7f3a7b5c40 
								
							
								 
							
						 
						
							
							
								
								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. 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								4d7a421574 
								
							
								 
							
						 
						
							
							
								
								ac3enc: put the counting of stereo rematrixing bits in the same place to  
							
							make the code easier to understand. 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								257de756fb 
								
							
								 
							
						 
						
							
							
								
								ac3enc: clean up count_frame_bits() and count_frame_bits_fixed()  
							
							
								
							
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								b66752790a 
								
							
								 
							
						 
						
							
							
								
								AVOptions: make default_val a union, as proposed in AVOption2.  
							
							This breaks API and ABI. 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								1a5e4fd8c5 
								
							
								 
							
						 
						
							
							
								
								Replace strncpy() with av_strlcpy().  
							
							
								
							
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								177fed4e9b 
								
							
								 
							
						 
						
							
							
								
								ac3enc: do not store a bandwidth code for each channel.  
							
							Although AC-3 allows it, it's not very useful. The encoder uses the same code
for all full-bandwidth channels. 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								a1d0f511fc 
								
							
								 
							
						 
						
							
							
								
								ac3enc: remove bandwidth reduction as fallback for bit allocation failure.  
							
							It was only needed at low bitrates, which now already use a low bandwidth, so
the bandwidth reduction is no longer needed. 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								ba6bce5140 
								
							
								 
							
						 
						
							
							
								
								ac3enc: merge compute_exp_strategy_ch() into compute_exp_strategy()  
							
							
								
							
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								4142487d1c 
								
							
								 
							
						 
						
							
							
								
								ac3enc: return error if frame+exponent bits are too large instead of using  
							
							av_assert2().
This can occur in some very rare cases with low bitrates. 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								987fe2dc55 
								
							
								 
							
						 
						
							
							
								
								ac3enc: differentiate between current block and reference block in bit_alloc()  
							
							
								
							
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								6b2636bba6 
								
							
								 
							
						 
						
							
							
								
								ac3enc: simplify exponent_init() by calculating exponent_group_tab[] based  
							
							on exponent group sizes. 
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								e0b33d479c 
								
							
								 
							
						 
						
							
							
								
								ac3enc: simplify stereo rematrixing decision options  
							
							
								
							
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								8745e9c458 
								
							
								 
							
						 
						
							
							
								
								ac3enc: remove check for mismatching channels and channel_layout  
							
							
								
							
							
						 
						14 years ago  
				
					
						
							
							
								 
						
							
							
							
								
							
								9d35fa520e 
								
							
								 
							
						 
						
							
							
								
								Add AVX FFT implementation.  
							
							Signed-off-by: Reinhard Tartler <siretart@tauware.de> 
							
						 
						14 years ago