#define AVCODEC_AC3_H
#define AC3_MAX_CODED_FRAME_SIZE 3840 /* in bytes */
-#define AC3_MAX_CHANNELS 6 /* including LFE channel */
+#define AC3_MAX_CHANNELS 7 /**< maximum number of channels, including coupling channel */
+#define CPL_CH 0 /**< coupling channel index */
#define AC3_MAX_COEFS 256
#define AC3_BLOCK_SIZE 256
#define AC3_CRITICAL_BANDS 50
#define AC3_MAX_CPL_BANDS 18
+#include "libavutil/opt.h"
+#include "avcodec.h"
#include "ac3tab.h"
/* exponent encoding strategy */
EAC3_FRAME_TYPE_RESERVED
} EAC3FrameType;
+/**
+ * Encoding Options used by AVOption.
+ */
+typedef struct AC3EncOptions {
+ /* AC-3 metadata options*/
+ int dialogue_level;
+ int bitstream_mode;
+ float center_mix_level;
+ float surround_mix_level;
+ int dolby_surround_mode;
+ int audio_production_info;
+ int mixing_level;
+ int room_type;
+ int copyright;
+ int original;
+ int extended_bsi_1;
+ int preferred_stereo_downmix;
+ float ltrt_center_mix_level;
+ float ltrt_surround_mix_level;
+ float loro_center_mix_level;
+ float loro_surround_mix_level;
+ int extended_bsi_2;
+ int dolby_surround_ex_mode;
+ int dolby_headphone_mode;
+ int ad_converter_type;
+
+ /* other encoding options */
+ int allow_per_frame_metadata;
+ int stereo_rematrixing;
+ int channel_coupling;
+ int cpl_start;
+} AC3EncOptions;
+
void ff_ac3_common_init(void);
+extern const int64_t ff_ac3_channel_layouts[];
+extern const AVOption ff_ac3_options[];
+
+extern AVCodec ff_ac3_float_encoder;
+extern AVCodec ff_ac3_fixed_encoder;
+
/**
* Calculate the log power-spectral density of the input signal.
* This gives a rough estimate of signal power in the frequency domain by using