1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

Merge commit 'f023d57d355ff3b917f1aad9b03db5c293ec4244'

* commit 'f023d57d355ff3b917f1aad9b03db5c293ec4244':
  lavc: G.723.1 encoder

Split existing FFmpeg G.723.1 encoder into a new file.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
This commit is contained in:
Hendrik Leppkes 2015-12-07 15:50:45 +01:00
commit 90c93fb129
7 changed files with 1220 additions and 1161 deletions

View File

@ -984,7 +984,7 @@ following image formats are supported:
@item Enhanced AC-3 @tab X @tab X @item Enhanced AC-3 @tab X @tab X
@item EVRC (Enhanced Variable Rate Codec) @tab @tab X @item EVRC (Enhanced Variable Rate Codec) @tab @tab X
@item FLAC (Free Lossless Audio Codec) @tab X @tab IX @item FLAC (Free Lossless Audio Codec) @tab X @tab IX
@item G.723.1 @tab X @tab X @item G.723.1 @tab X @tab X
@item G.729 @tab @tab X @item G.729 @tab @tab X
@item GSM @tab E @tab X @item GSM @tab E @tab X
@tab encoding supported through external library libgsm @tab encoding supported through external library libgsm

View File

@ -276,9 +276,10 @@ OBJS-$(CONFIG_FOURXM_DECODER) += 4xm.o
OBJS-$(CONFIG_FRAPS_DECODER) += fraps.o OBJS-$(CONFIG_FRAPS_DECODER) += fraps.o
OBJS-$(CONFIG_FRWU_DECODER) += frwu.o OBJS-$(CONFIG_FRWU_DECODER) += frwu.o
OBJS-$(CONFIG_G2M_DECODER) += g2meet.o elsdec.o OBJS-$(CONFIG_G2M_DECODER) += g2meet.o elsdec.o
OBJS-$(CONFIG_G723_1_DECODER) += g723_1dec.o g723_1.o acelp_vectors.o \ OBJS-$(CONFIG_G723_1_DECODER) += g723_1dec.o g723_1.o \
celp_filters.o celp_math.o acelp_vectors.o celp_filters.o celp_math.o
OBJS-$(CONFIG_G723_1_ENCODER) += g723_1dec.o g723_1.o acelp_vectors.o celp_math.o OBJS-$(CONFIG_G723_1_ENCODER) += g723_1enc.o g723_1.o \
acelp_vectors.o celp_filters.o
OBJS-$(CONFIG_G729_DECODER) += g729dec.o lsp.o celp_math.o acelp_filters.o acelp_pitch_delay.o acelp_vectors.o g729postfilter.o OBJS-$(CONFIG_G729_DECODER) += g729dec.o lsp.o celp_math.o acelp_filters.o acelp_pitch_delay.o acelp_vectors.o g729postfilter.o
OBJS-$(CONFIG_GIF_DECODER) += gifdec.o lzw.o OBJS-$(CONFIG_GIF_DECODER) += gifdec.o lzw.o
OBJS-$(CONFIG_GIF_ENCODER) += gif.o lzwenc.o OBJS-$(CONFIG_GIF_ENCODER) += gif.o lzwenc.o

View File

@ -61,6 +61,16 @@ int ff_exp2(uint16_t power);
*/ */
int ff_log2_q15(uint32_t value); int ff_log2_q15(uint32_t value);
/**
* Calculate the dot product of 2 int16_t vectors.
* @param a input data array
* @param b input data array
* @param length number of elements
*
* @return dot product = sum of elementwise products
*/
int64_t ff_dot_product(const int16_t *a, const int16_t *b, int length);
/** /**
* Shift value left or right depending on sign of offset parameter. * Shift value left or right depending on sign of offset parameter.
* @param value value to shift * @param value value to shift
@ -74,16 +84,6 @@ static inline int bidir_sal(int value, int offset)
else return value << offset; else return value << offset;
} }
/**
* returns the dot product of 2 int16_t vectors.
* @param a input data array
* @param b input data array
* @param length number of elements
*
* @return dot product = sum of elementwise products
*/
int64_t ff_dot_product(const int16_t *a, const int16_t *b, int length);
/** /**
* Return the dot product. * Return the dot product.
* @param a input data array * @param a input data array

View File

@ -53,7 +53,7 @@ int ff_g723_1_normalize_bits(int num, int width)
int ff_g723_1_dot_product(const int16_t *a, const int16_t *b, int length) int ff_g723_1_dot_product(const int16_t *a, const int16_t *b, int length)
{ {
int sum = ff_dot_product(a,b,length); int sum = ff_dot_product(a, b, length);
return av_sat_add32(sum, sum); return av_sat_add32(sum, sum);
} }

View File

@ -145,10 +145,11 @@ typedef struct g723_1_context {
int postfilter; int postfilter;
int16_t audio[FRAME_LEN + LPC_ORDER + PITCH_MAX + 4]; int16_t audio[FRAME_LEN + LPC_ORDER + PITCH_MAX + 4];
/* encoder */
int16_t prev_data[HALF_FRAME_LEN]; int16_t prev_data[HALF_FRAME_LEN];
int16_t prev_weight_sig[PITCH_MAX]; int16_t prev_weight_sig[PITCH_MAX];
int16_t hpf_fir_mem; ///< highpass filter fir int16_t hpf_fir_mem; ///< highpass filter fir
int hpf_iir_mem; ///< and iir memories int hpf_iir_mem; ///< and iir memories
int16_t perf_fir_mem[LPC_ORDER]; ///< perceptual filter fir int16_t perf_fir_mem[LPC_ORDER]; ///< perceptual filter fir

File diff suppressed because it is too large Load Diff

1202
libavcodec/g723_1enc.c Normal file

File diff suppressed because it is too large Load Diff